From 9d6d067e977c7ec4883b136a9eac6b23adf328df Mon Sep 17 00:00:00 2001 From: mattf Date: Fri, 10 Aug 2012 14:23:21 +0000 Subject: [PATCH] Added add_group_alias non-agent API function Added System Settings option to disable list counts in admin web screens git-svn-id: svn://192.168.202.10@1848 3d104415-ff17-0410-8863-d5cf3c621b8a --- agc_2-X/trunk/UPGRADE | 4 + agc_2-X/trunk/docs/NON-AGENT_API.txt | 42 ++++++- .../trunk/extras/MySQL_AST_CREATE_tables.sql | 5 +- agc_2-X/trunk/extras/upgrade_2.6.sql | 4 + .../TO_BE_TRANSLATED_2.6.txt | 2 + agc_2-X/trunk/www/vicidial/admin.php | 29 ++++- agc_2-X/trunk/www/vicidial/non_agent_api.php | 115 +++++++++++++++++- 7 files changed, 184 insertions(+), 17 deletions(-) diff --git a/agc_2-X/trunk/UPGRADE b/agc_2-X/trunk/UPGRADE index e5755069..bbdecf12 100644 --- a/agc_2-X/trunk/UPGRADE +++ b/agc_2-X/trunk/UPGRADE @@ -80,6 +80,10 @@ OTHER CHANGES: 9. Added 'recording' and 'webserver' functions to the agent API +10. Added add_group_alias non-agent API function + +11. Added System Settings option to disable list counts in admin web screens + diff --git a/agc_2-X/trunk/docs/NON-AGENT_API.txt b/agc_2-X/trunk/docs/NON-AGENT_API.txt index fd6195e4..ffa2905a 100644 --- a/agc_2-X/trunk/docs/NON-AGENT_API.txt +++ b/agc_2-X/trunk/docs/NON-AGENT_API.txt @@ -1,4 +1,4 @@ -NON-AGENT API DOCUMENT Started: 2008-07-24 Updated: 2012-03-26 +NON-AGENT API DOCUMENT Started: 2008-07-24 Updated: 2012-08-10 This document describes the functions of an API(Application Programming Interface) for all functions NOT directly relating to the VICIDIAL Agent screen. @@ -30,6 +30,7 @@ add_phone_alias - adds a phone alias record to the system update_phone_alias - updates or deletes an existing phone alias record in the system add_list - adds a list to the system update_list - updates list settings in the system, reset leads in list, delete list +add_group_alias - adds group alias to the system @@ -71,6 +72,7 @@ Changes: 120210-1215 - Small change for hopper adding vendor_lead_code 120213-1613 - Added optional logging of all non-admin.php requests, enabled in options.php 120326-1307 - Added agent_stats_export function +120810-0859 - Added add_group_alias function, altered agent_stats_export function @@ -310,7 +312,7 @@ NOTES- There is a hard limit of 10000000 records analyzed Example URL strings for API calls: -http://server/vicidial/non_agent_api.php?source=test&function=agent_stats_export&time_format=M&stage=pipe&user=6666&pass=1234&agent_user=3125551212&datetime_start=2012-03-26+00:00:00&datetime_end=2012-03-26+23:59:59 +http://server/vicidial/non_agent_api.php?source=test&function=agent_stats_export&time_format=M&stage=pipe&user=6666&pass=1234&agent_user=6666&datetime_start=2012-08-09+00:00:00&datetime_end=2012-08-10+23:59:59 http://server/vicidial/non_agent_apiX.php?DB=0&stage=pipe&user=6666&pass=1234&source=test&function=agent_stats_export&datetime_start=2012-03-26+00:00:00&datetime_end=2012-03-26+23:59:59&header=YES Example responses: @@ -319,9 +321,9 @@ ERROR: agent_stats_export INVALID SEARCH PARAMETERS - 6666||2010-12-03 00:00:00| ERROR: agent_stats_export NO RECORDS FOUND - 1255||2010-12-03 00:00:00|2010-12-03 00:00:01 A SUCCESS response will not show "SUCCESS", but instead will just print the results in the following format: -user|full_name|user_group|calls|login_time|total_talk_time|avg_talk_time|avg_wait_time|pct_of_queue|pause_time|sessions|avg_session|pauses|avg_pause_time|pause_pct|pauses_per_session -1029|test agent|ADMIN|1|0:01:52|0:00:16|0:00:16|0:00:18|16.7%|54|3|0:00:37|5|0:00:11|48.2%|2 -6666|Admin|ADMIN|5|0:04:11|0:01:48|0:00:22|0:00:17|83.3%|27|2|0:02:06|4|0:00:07|10.8%|2 +user|full_name|user_group|calls|login_time|total_talk_time|avg_talk_time|avg_wait_time|pct_of_queue|pause_time|sessions|avg_session|pauses|avg_pause_time|pause_pct|pauses_per_session|total_wait_time +1029|test agent|ADMIN|1|0:01:52|0:00:16|0:00:16|0:00:18|16.7%|54|3|0:00:37|5|0:00:11|48.2%|2|0:00:32 +6666|Admin|ADMIN|5|0:04:11|0:01:48|0:00:22|0:00:17|83.3%|27|2|0:02:06|4|0:00:07|10.8%|2|0:00:32 @@ -632,6 +634,36 @@ SUCCESS: add_user USER HAS BEEN ADDED - 6666|1000|1234|8|Testing+Person|AGENTS +-------------------------------------------------------------------------------- +add_group_alias - adds group alias to the system + +NOTE: api user for this function must have user_level set to 8 or higher and "ast admin access" enabled + +REQUIRED FIELDS- +caller_id_number - 6-20 characters + +OPTIONAL FIELDS- +group_alias_id - 3-30 characters, no spaces or punctuation allowed, if not defined, caller_id_number is used +group_alias_name - 3-50 characters, if not defined, caller_id_number is used +caller_id_name - 6-20 characters, if not defined '' is default +active - 'Y' or 'N', if not defined 'Y' is default +admin_user_group - a valid user group or '---ALL---' is used as default + +Example URL strings for API calls: +http://server/vicidial/non_agent_api.php?source=test&function=add_group_alias&user=6666&pass=1234&caller_id_number=7275551212 +http://server/vicidial/non_agent_api.php?source=test&function=add_group_alias&user=6666&pass=1234&caller_id_number=7275551212&group_alias_id=test_group_alias&group_alias_name=test+group+alias + +Example responses: +ERROR: add_group_alias USER DOES NOT HAVE PERMISSION TO ADD GROUP ALIASES - 6666|0 +ERROR: add_group_alias YOU MUST USE ALL REQUIRED FIELDS - 6666|||1000 +ERROR: add_group_alias GROUP ALIAS ALREADY EXISTS - 6666|7275551212 +SUCCESS: add_group_alias GROUP ALIAS HAS BEEN ADDED - 6666|7275551212|test_group_alias|test group alias + + + + + + -------------------------------------------------------------------------------- add_phone - adds a phone to the system diff --git a/agc_2-X/trunk/extras/MySQL_AST_CREATE_tables.sql b/agc_2-X/trunk/extras/MySQL_AST_CREATE_tables.sql index 900d1545..b844fc36 100644 --- a/agc_2-X/trunk/extras/MySQL_AST_CREATE_tables.sql +++ b/agc_2-X/trunk/extras/MySQL_AST_CREATE_tables.sql @@ -1483,7 +1483,8 @@ did_ra_extensions_enabled ENUM('0','1') default '0', expanded_list_stats ENUM('0','1') default '1', contacts_enabled ENUM('0','1') default '0', svn_version VARCHAR(100) default '', -call_menu_qualify_enabled ENUM('0','1') default '0' +call_menu_qualify_enabled ENUM('0','1') default '0', +admin_list_counts ENUM('0','1') default '1' ); CREATE TABLE vicidial_campaigns_list_mix ( @@ -2816,7 +2817,7 @@ CREATE TABLE vicidial_log_noanswer_archive LIKE vicidial_log_noanswer; CREATE TABLE vicidial_did_agent_log_archive LIKE vicidial_did_agent_log; CREATE UNIQUE INDEX vdala on vicidial_did_agent_log_archive (uniqueid,call_date,did_route); -UPDATE system_settings SET db_schema_version='1323',db_schema_update_date=NOW(); +UPDATE system_settings SET db_schema_version='1324',db_schema_update_date=NOW(); GRANT RELOAD ON *.* TO cron@'%'; GRANT RELOAD ON *.* TO cron@localhost; diff --git a/agc_2-X/trunk/extras/upgrade_2.6.sql b/agc_2-X/trunk/extras/upgrade_2.6.sql index 9dc89330..a1518407 100644 --- a/agc_2-X/trunk/extras/upgrade_2.6.sql +++ b/agc_2-X/trunk/extras/upgrade_2.6.sql @@ -27,3 +27,7 @@ ALTER TABLE vicidial_live_agents ADD external_recording VARCHAR(20) default ''; UPDATE system_settings SET db_schema_version='1323',db_schema_update_date=NOW() where db_schema_version < 1323; +ALTER TABLE system_settings ADD admin_list_counts ENUM('0','1') default '1'; + +UPDATE system_settings SET db_schema_version='1324',db_schema_update_date=NOW() where db_schema_version < 1324; + diff --git a/agc_2-X/trunk/translations/raw_translation_files/TO_BE_TRANSLATED_2.6.txt b/agc_2-X/trunk/translations/raw_translation_files/TO_BE_TRANSLATED_2.6.txt index e059a957..2c9c51e0 100644 --- a/agc_2-X/trunk/translations/raw_translation_files/TO_BE_TRANSLATED_2.6.txt +++ b/agc_2-X/trunk/translations/raw_translation_files/TO_BE_TRANSLATED_2.6.txt @@ -13,6 +13,8 @@ Call Menu Qualify Enabled|| This setting enables the option in Call Menus to put a SQL qualification on the people that hear that call menu. For more information on how that feature works, view the help for Call Menus. Default is 0 for disabled|| Qualify SQL|| This field allows you to input SQL - Structured Query Language - database fragments, like with Filters, to determine whether this call menu should play for the caller or not. This feature only works if the call has the callerIDname set prior to being sent to this call menu, either as an outbound survey transfer, or through the use of a drop call menu for an In-Group call. If there is a match, the call will proceed as normal. If there is no match, the call will go to the D option or the invalid option if no D option is set. You cannot use single-quotes in this field, only double-quotes if they are needed. Default is empty for disabled|| +Admin List Counts|| +This setting allows you to disable the list counts that appear on the Lists listing and the Campaign modify screens. Default is 1 for enabled|| ############################################################ CLIENT diff --git a/agc_2-X/trunk/www/vicidial/admin.php b/agc_2-X/trunk/www/vicidial/admin.php index be2aa125..ffe762f7 100644 --- a/agc_2-X/trunk/www/vicidial/admin.php +++ b/agc_2-X/trunk/www/vicidial/admin.php @@ -1748,6 +1748,8 @@ if (isset($_GET["call_menu_qualify_enabled"])) {$call_menu_qualify_enabled=$_G elseif (isset($_POST["call_menu_qualify_enabled"])) {$call_menu_qualify_enabled=$_POST["call_menu_qualify_enabled"];} if (isset($_GET["qualify_sql"])) {$qualify_sql=$_GET["qualify_sql"];} elseif (isset($_POST["qualify_sql"])) {$qualify_sql=$_POST["qualify_sql"];} +if (isset($_GET["admin_list_counts"])) {$admin_list_counts=$_GET["admin_list_counts"];} + elseif (isset($_POST["admin_list_counts"])) {$admin_list_counts=$_POST["admin_list_counts"];} if (isset($script_id)) {$script_id= strtoupper($script_id);} @@ -1813,7 +1815,7 @@ if ($download_max_system_stats_metric_name) { ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$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,custom_fields_enabled,admin_web_directory,webphone_url,first_login_trigger,hosted_settings,default_phone_registration_password,default_phone_login_password,default_server_password,test_campaign_calls,active_voicemail_server,voicemail_timezones,default_voicemail_timezone,default_local_gmt,campaign_cid_areacodes_enabled,pllb_grouping_limit,did_ra_extensions_enabled,expanded_list_stats,contacts_enabled,alt_log_server_ip,alt_log_dbname,alt_log_login,alt_log_pass,tables_use_alt_log_db,call_menu_qualify_enabled 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,custom_fields_enabled,admin_web_directory,webphone_url,first_login_trigger,hosted_settings,default_phone_registration_password,default_phone_login_password,default_server_password,test_campaign_calls,active_voicemail_server,voicemail_timezones,default_voicemail_timezone,default_local_gmt,campaign_cid_areacodes_enabled,pllb_grouping_limit,did_ra_extensions_enabled,expanded_list_stats,contacts_enabled,alt_log_server_ip,alt_log_dbname,alt_log_login,alt_log_pass,tables_use_alt_log_db,call_menu_qualify_enabled,admin_list_counts FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); @@ -1852,6 +1854,7 @@ if ($qm_conf_ct > 0) $SSalt_log_pass = $row[29]; $SStables_use_alt_log_db = $row[30]; $SScall_menu_qualify_enabled = $row[31]; + $SSadmin_list_counts = $row[32]; } ##### END SETTINGS LOOKUP ##### ########################################### @@ -2089,6 +2092,7 @@ if ($non_latin < 1) $report_rank = ereg_replace("[^0-9]","",$report_rank); $dial_ingroup_cid = ereg_replace("[^0-9]","",$dial_ingroup_cid); $call_menu_qualify_enabled = ereg_replace("[^0-9]","",$call_menu_qualify_enabled); + $admin_list_counts = ereg_replace("[^0-9]","",$admin_list_counts); $drop_call_seconds = ereg_replace("[^-0-9]","",$drop_call_seconds); @@ -3135,12 +3139,13 @@ else # 120529-2112 - Added safe_harbor_audio_field campaign option # 120706-1255 - Added Max stats date range and call menu qualify_sql options # 120713-2123 - Added max stats download link and extended_vl option +# 120810-1018 - Added Admin List Counts system settings option # # 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.6-372a'; -$build = '120713-2123'; +$admin_version = '2.6-373a'; +$build = '120810-1018'; $STARTtime = date("U"); $SQLdate = date("Y-m-d H:i:s"); @@ -8323,6 +8328,11 @@ if ($ADD==99999)
Call Menu Qualify Enabled - This setting enables the option in Call Menus to put a SQL qualification on the people that hear that call menu. For more information on how that feature works, view the help for Call Menus. Default is 0 for disabled. +
+ +
+ Admin List Counts - This setting allows you to disable the list counts that appear on the Lists listing and the Campaign modify screens. Default is 1 for enabled. +

@@ -17458,7 +17468,7 @@ if ($ADD==411111111111111) } $tables_use_alt_log_db = preg_replace("/,$/","",$new_altlog_value); - $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',default_webphone='$default_webphone',default_external_server_ip='$default_external_server_ip',webphone_url='" . mysql_real_escape_string($webphone_url) . "',enable_agc_dispo_log='$enable_agc_dispo_log',custom_dialplan_entry='$custom_dialplan_entry',queuemetrics_loginout='$queuemetrics_loginout',callcard_enabled='$callcard_enabled',queuemetrics_callstatus='$queuemetrics_callstatus',default_codecs='$default_codecs',admin_web_directory='$admin_web_directory',label_title='$label_title',label_first_name='$label_first_name',label_middle_initial='$label_middle_initial',label_last_name='$label_last_name',label_address1='$label_address1',label_address2='$label_address2',label_address3='$label_address3',label_city='$label_city',label_state='$label_state',label_province='$label_province',label_postal_code='$label_postal_code',label_vendor_lead_code='$label_vendor_lead_code',label_gender='$label_gender',label_phone_number='$label_phone_number',label_phone_code='$label_phone_code',label_alt_phone='$label_alt_phone',label_security_phrase='$label_security_phrase',label_email='$label_email',label_comments='$label_comments',custom_fields_enabled='$custom_fields_enabled',slave_db_server='$slave_db_server',reports_use_slave_db='$reports_use_slave_db',webphone_systemkey='$webphone_systemkey',first_login_trigger='$first_login_trigger',default_phone_registration_password='$default_phone_registration_password',default_phone_login_password='$default_phone_login_password',default_server_password='$default_server_password',admin_modify_refresh='$admin_modify_refresh',nocache_admin='$nocache_admin',generate_cross_server_exten='$generate_cross_server_exten',queuemetrics_addmember_enabled='$queuemetrics_addmember_enabled',queuemetrics_dispo_pause='$queuemetrics_dispo_pause',label_hide_field_logs='$label_hide_field_logs',queuemetrics_pe_phone_append='$queuemetrics_pe_phone_append',test_campaign_calls='$test_campaign_calls',agents_calls_reset='$agents_calls_reset',default_voicemail_timezone='$default_voicemail_timezone',default_local_gmt='$default_local_gmt',noanswer_log='$noanswer_log',alt_log_server_ip='$alt_log_server_ip',alt_log_dbname='$alt_log_dbname',alt_log_login='$alt_log_login',alt_log_pass='$alt_log_pass',tables_use_alt_log_db='$tables_use_alt_log_db',did_agent_log='$did_agent_log',campaign_cid_areacodes_enabled='$campaign_cid_areacodes_enabled',pllb_grouping_limit='$pllb_grouping_limit',did_ra_extensions_enabled='$did_ra_extensions_enabled',expanded_list_stats='$expanded_list_stats',contacts_enabled='$contacts_enabled',call_menu_qualify_enabled='$call_menu_qualify_enabled';"; + $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',default_webphone='$default_webphone',default_external_server_ip='$default_external_server_ip',webphone_url='" . mysql_real_escape_string($webphone_url) . "',enable_agc_dispo_log='$enable_agc_dispo_log',custom_dialplan_entry='$custom_dialplan_entry',queuemetrics_loginout='$queuemetrics_loginout',callcard_enabled='$callcard_enabled',queuemetrics_callstatus='$queuemetrics_callstatus',default_codecs='$default_codecs',admin_web_directory='$admin_web_directory',label_title='$label_title',label_first_name='$label_first_name',label_middle_initial='$label_middle_initial',label_last_name='$label_last_name',label_address1='$label_address1',label_address2='$label_address2',label_address3='$label_address3',label_city='$label_city',label_state='$label_state',label_province='$label_province',label_postal_code='$label_postal_code',label_vendor_lead_code='$label_vendor_lead_code',label_gender='$label_gender',label_phone_number='$label_phone_number',label_phone_code='$label_phone_code',label_alt_phone='$label_alt_phone',label_security_phrase='$label_security_phrase',label_email='$label_email',label_comments='$label_comments',custom_fields_enabled='$custom_fields_enabled',slave_db_server='$slave_db_server',reports_use_slave_db='$reports_use_slave_db',webphone_systemkey='$webphone_systemkey',first_login_trigger='$first_login_trigger',default_phone_registration_password='$default_phone_registration_password',default_phone_login_password='$default_phone_login_password',default_server_password='$default_server_password',admin_modify_refresh='$admin_modify_refresh',nocache_admin='$nocache_admin',generate_cross_server_exten='$generate_cross_server_exten',queuemetrics_addmember_enabled='$queuemetrics_addmember_enabled',queuemetrics_dispo_pause='$queuemetrics_dispo_pause',label_hide_field_logs='$label_hide_field_logs',queuemetrics_pe_phone_append='$queuemetrics_pe_phone_append',test_campaign_calls='$test_campaign_calls',agents_calls_reset='$agents_calls_reset',default_voicemail_timezone='$default_voicemail_timezone',default_local_gmt='$default_local_gmt',noanswer_log='$noanswer_log',alt_log_server_ip='$alt_log_server_ip',alt_log_dbname='$alt_log_dbname',alt_log_login='$alt_log_login',alt_log_pass='$alt_log_pass',tables_use_alt_log_db='$tables_use_alt_log_db',did_agent_log='$did_agent_log',campaign_cid_areacodes_enabled='$campaign_cid_areacodes_enabled',pllb_grouping_limit='$pllb_grouping_limit',did_ra_extensions_enabled='$did_ra_extensions_enabled',expanded_list_stats='$expanded_list_stats',contacts_enabled='$contacts_enabled',call_menu_qualify_enabled='$call_menu_qualify_enabled',admin_list_counts='$admin_list_counts';"; $rslt=mysql_query($stmt, $link); if ($reload_dialplan_on_servers > 0) @@ -21825,6 +21835,8 @@ if ($ADD==31) 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' $LOGallowed_campaignsSQL group by list_id $SQLorder"; + if ($SSadmin_list_counts < 1) + {$stmt="SELECT list_id,list_name,list_description,'X' as tally,active,list_lastcalldate,campaign_id from vicidial_lists where campaign_id='$campaign_id' $LOGallowed_campaignsSQL $SQLorder";} $rslt=mysql_query($stmt, $link); $lists_to_print = mysql_num_rows($rslt); @@ -23267,6 +23279,8 @@ if ($ADD==34) 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' $LOGallowed_campaignsSQL group by list_id $SQLorder"; + if ($SSadmin_list_counts < 1) + {$stmt="SELECT list_id,list_name,list_description,'X' as tally,active,list_lastcalldate,campaign_id from vicidial_lists where campaign_id='$campaign_id' $LOGallowed_campaignsSQL $SQLorder";} $rslt=mysql_query($stmt, $link); $lists_to_print = mysql_num_rows($rslt); @@ -29795,7 +29809,7 @@ if ($ADD==311111111111111) $ALLagent_count = $rowx[2]; } - $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,default_webphone,default_external_server_ip,webphone_url,enable_agc_dispo_log,custom_dialplan_entry,queuemetrics_loginout,callcard_enabled,queuemetrics_callstatus,default_codecs,admin_web_directory,label_title,label_first_name,label_middle_initial,label_last_name,label_address1,label_address2,label_address3,label_city,label_state,label_province,label_postal_code,label_vendor_lead_code,label_gender,label_phone_number,label_phone_code,label_alt_phone,label_security_phrase,label_email,label_comments,custom_fields_enabled,slave_db_server,reports_use_slave_db,webphone_systemkey,first_login_trigger,default_phone_registration_password,default_phone_login_password,default_server_password,admin_modify_refresh,nocache_admin,generate_cross_server_exten,queuemetrics_addmember_enabled,queuemetrics_dispo_pause,label_hide_field_logs,queuemetrics_pe_phone_append,test_campaign_calls,agents_calls_reset,default_voicemail_timezone,default_local_gmt,noanswer_log,alt_log_server_ip,alt_log_dbname,alt_log_login,alt_log_pass,tables_use_alt_log_db,did_agent_log,campaign_cid_areacodes_enabled,pllb_grouping_limit,did_ra_extensions_enabled,expanded_list_stats,contacts_enabled,call_menu_qualify_enabled from system_settings;"; + $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,default_webphone,default_external_server_ip,webphone_url,enable_agc_dispo_log,custom_dialplan_entry,queuemetrics_loginout,callcard_enabled,queuemetrics_callstatus,default_codecs,admin_web_directory,label_title,label_first_name,label_middle_initial,label_last_name,label_address1,label_address2,label_address3,label_city,label_state,label_province,label_postal_code,label_vendor_lead_code,label_gender,label_phone_number,label_phone_code,label_alt_phone,label_security_phrase,label_email,label_comments,custom_fields_enabled,slave_db_server,reports_use_slave_db,webphone_systemkey,first_login_trigger,default_phone_registration_password,default_phone_login_password,default_server_password,admin_modify_refresh,nocache_admin,generate_cross_server_exten,queuemetrics_addmember_enabled,queuemetrics_dispo_pause,label_hide_field_logs,queuemetrics_pe_phone_append,test_campaign_calls,agents_calls_reset,default_voicemail_timezone,default_local_gmt,noanswer_log,alt_log_server_ip,alt_log_dbname,alt_log_login,alt_log_pass,tables_use_alt_log_db,did_agent_log,campaign_cid_areacodes_enabled,pllb_grouping_limit,did_ra_extensions_enabled,expanded_list_stats,contacts_enabled,call_menu_qualify_enabled,admin_list_counts from system_settings;"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $version = $row[0]; @@ -29904,6 +29918,7 @@ if ($ADD==311111111111111) $expanded_list_stats = $row[103]; $contacts_enabled = $row[104]; $call_menu_qualify_enabled = $row[105]; + $admin_list_counts = $row[106]; echo "
MODIFY VICIDIAL SYSTEM SETTINGS
\n"; echo "\n"; @@ -30091,6 +30106,8 @@ if ($ADD==311111111111111) echo "Call Menu Qualify Enabled: $NWB#settings-call_menu_qualify_enabled$NWE\n"; + echo "Admin List Counts: $NWB#settings-admin_list_counts$NWE\n"; + echo "First Login Trigger: $first_login_trigger   $NWB#settings-first_login_trigger$NWE\n"; echo "Default Phone Registration Password: $NWB#settings-default_phone_registration_password$NWE     Strength: \n"; @@ -31008,6 +31025,8 @@ if ($ADD==100) 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,reset_time from vicidial_lists vls,vicidial_list vl where vls.list_id=vl.list_id $LOGallowed_campaignsSQL group by list_id $SQLorder"; + if ($SSadmin_list_counts < 1) + {$stmt="SELECT list_id,list_name,list_description,'X' as tally,active,list_lastcalldate,campaign_id,reset_time from vicidial_lists $whereLOGallowed_campaignsSQL $SQLorder";} $rslt=mysql_query($stmt, $link); $lists_to_print = mysql_num_rows($rslt); diff --git a/agc_2-X/trunk/www/vicidial/non_agent_api.php b/agc_2-X/trunk/www/vicidial/non_agent_api.php index b4b0981b..587f7091 100644 --- a/agc_2-X/trunk/www/vicidial/non_agent_api.php +++ b/agc_2-X/trunk/www/vicidial/non_agent_api.php @@ -65,10 +65,11 @@ # 120213-1613 - Added optional logging of all non-admin.php requests, enabled in options.php # 120315-1537 - Added filter for single-quotes and backslashes on custom field data # 120326-1317 - Added agent_stats_export function +# 120810-0859 - Added add_group_alias function, altered agent_stats_export function # -$version = '2.4-43'; -$build = '120326-1317'; +$version = '2.6-44'; +$build = '120810-0859'; $api_url_log = 0; $startMS = microtime(); @@ -298,6 +299,14 @@ if (isset($_GET["datetime_end"])) {$datetime_end=$_GET["datetime_end"];} elseif (isset($_POST["datetime_end"])) {$datetime_end=$_POST["datetime_end"];} if (isset($_GET["time_format"])) {$time_format=$_GET["time_format"];} elseif (isset($_POST["time_format"])) {$time_format=$_POST["time_format"];} +if (isset($_GET["group_alias_id"])) {$group_alias_id=$_GET["group_alias_id"];} + elseif (isset($_POST["group_alias_id"])) {$group_alias_id=$_POST["group_alias_id"];} +if (isset($_GET["group_alias_name"])) {$group_alias_name=$_GET["group_alias_name"];} + elseif (isset($_POST["group_alias_name"])) {$group_alias_name=$_POST["group_alias_name"];} +if (isset($_GET["caller_id_number"])) {$caller_id_number=$_GET["caller_id_number"];} + elseif (isset($_POST["caller_id_number"])) {$caller_id_number=$_POST["caller_id_number"];} +if (isset($_GET["caller_id_name"])) {$caller_id_name=$_GET["caller_id_name"];} + elseif (isset($_POST["caller_id_name"])) {$caller_id_name=$_POST["caller_id_name"];} header ("Content-type: text/html; charset=utf-8"); @@ -442,6 +451,10 @@ if ($non_latin < 1) $datetime_start = ereg_replace("[^- \+\:\_0-9]","",$datetime_start); $datetime_end = ereg_replace("[^- \+\:\_0-9]","",$datetime_end); $time_format = ereg_replace("[^A-Z]","",$time_format); + $group_alias_id = ereg_replace("[^\_0-9a-zA-Z]","",$group_alias_id); + $group_alias_name = ereg_replace("[^- \+\_0-9a-zA-Z]","",$group_alias_name); + $caller_id_number = ereg_replace("[^0-9]","",$caller_id_number); + $caller_id_name = ereg_replace("[^- \+\_0-9a-zA-Z]","",$caller_id_name); } else { @@ -1664,6 +1677,97 @@ if ($function == 'add_user') +################################################################################ +### add_group_alias - adds group alias to the system +################################################################################ +if ($function == 'add_group_alias') + { + 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 ast_admin_access='1' and user_level >= 8;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ($allowed_user < 1) + { + $result = 'ERROR'; + $result_reason = "add_group_alias USER DOES NOT HAVE PERMISSION TO ADD GROUP ALIASES"; + $data = "$allowed_user"; + echo "$result: $result_reason: |$user|$data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + if (strlen($caller_id_number)<6) + { + $result = 'ERROR'; + $result_reason = "add_group_alias YOU MUST USE ALL REQUIRED FIELDS"; + $data = "$group_alias_id|$group_alias_name|$caller_id_number"; + echo "$result: $result_reason: |$user|$data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + if (strlen($group_alias_id)<2) {$group_alias_id = $caller_id_number;} + if (strlen($group_alias_name)<2) {$group_alias_name = $caller_id_number;} + if (strlen($active)<1) {$active = 'Y';} + if (strlen($admin_user_group)<1) {$admin_user_group = '---ALL---';} + $group_alias_name = preg_replace("/\+/",' ',$group_alias_name); + $caller_id_name = preg_replace("/\+/",' ',$caller_id_name); + + $stmt="SELECT count(*) from groups_alias where group_alias_id='$group_alias_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $alias_exists=$row[0]; + if ($alias_exists > 0) + { + $result = 'ERROR'; + $result_reason = "add_group_alias GROUP ALIAS ALREADY EXISTS"; + $data = "$group_alias_id|$caller_id_number"; + echo "$result: $result_reason: |$user|$data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $stmt="INSERT INTO groups_alias (group_alias_id,group_alias_name,caller_id_number,caller_id_name,active,user_group) values('$group_alias_id','$group_alias_name','$caller_id_number','$caller_id_name','$active','$admin_user_group');"; + $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='$NOW_TIME', user='$user', ip_address='$ip', event_section='GROUPALIASES', event_type='ADD', record_id='$group_alias_id', event_code='ADMIN API ADD GROUP ALIAS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + $result = 'SUCCESS'; + $result_reason = "add_group_alias GROUP ALIAS HAS BEEN ADDED"; + $data = "$group_alias_id|$group_alias_name|$caller_id_number"; + echo "$result: $result_reason - $user|$data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + } + } + exit; + } +################################################################################ +### END add_group_alias +################################################################################ + + ################################################################################ ### add_phone - adds phone to the phones table @@ -2214,8 +2318,6 @@ if ($function == 'update_phone') - - ################################################################################ ### add_phone_alias - adds phone alias to the system ################################################################################ @@ -3600,6 +3702,7 @@ if ($function == 'agent_stats_export') if ($AScalls[$k] < 1) { $cust_sec = 0; + $wait_sec = 0; $avg_cust_sec = 0; $avg_wait_sec = 0; $pct_of_queue = 0; @@ -3607,6 +3710,7 @@ if ($function == 'agent_stats_export') else { $cust_sec = ($AStalk_sec[$k] - $ASdead_sec[$k]); + $wait_sec = $ASwait_sec[$k]; $avg_cust_sec = ($cust_sec / $AScalls[$k]); $avg_wait_sec = ($ASwait_sec[$k] / $AScalls[$k]); $pct_of_queue = ( ($AScalls[$k] / $total_calls) * 100); @@ -3622,10 +3726,11 @@ if ($function == 'agent_stats_export') $avg_session_sec = sec_convert($avg_session_sec,$time_format); $avg_pause_sec = sec_convert($avg_pause_sec,$time_format); $cust_sec = sec_convert($cust_sec,$time_format); + $wait_sec = sec_convert($wait_sec,$time_format); $avg_cust_sec = sec_convert($avg_cust_sec,$time_format); $avg_wait_sec = sec_convert($avg_wait_sec,$time_format); - $output .= "$ASuser[$k]$DL$ASfull_name[$k]$DL$ASuser_group[$k]$DL$AScalls[$k]$DL$login_sec$DL$cust_sec$DL$avg_cust_sec$DL$avg_wait_sec$DL$pct_of_queue%$DL$ASpause_sec[$k]$DL$ASsessions[$k]$DL$avg_session_sec$DL$ASpauses[$k]$DL$avg_pause_sec$DL$pct_pause%$DL$avg_pause_session\n"; + $output .= "$ASuser[$k]$DL$ASfull_name[$k]$DL$ASuser_group[$k]$DL$AScalls[$k]$DL$login_sec$DL$cust_sec$DL$avg_cust_sec$DL$avg_wait_sec$DL$pct_of_queue%$DL$ASpause_sec[$k]$DL$ASsessions[$k]$DL$avg_session_sec$DL$ASpauses[$k]$DL$avg_pause_sec$DL$pct_pause%$DL$avg_pause_session$DL$wait_sec\n"; $k++; }