From 3c6bb1ac3e2a75b1447d3208040c8b6e6d3c9166 Mon Sep 17 00:00:00 2001 From: mattf Date: Fri, 27 Aug 2010 21:08:04 +0000 Subject: [PATCH] Added webphone options for System Key and Dialpad, may not be compatible with all webphones Added optional dialplan entries to block 555 number calls git-svn-id: svn://192.168.202.10@1508 3d104415-ff17-0410-8863-d5cf3c621b8a --- UPGRADE | 3 + docs/conf_examples/extensions.conf.sample | 4 ++ docs/conf_examples/extensions.conf.sample-1.4 | 4 ++ extras/MySQL_AST_CREATE_tables.sql | 10 ++- extras/upgrade_2.4.sql | 9 +++ .../TO_BE_TRANSLATED_2.4.txt | 8 +++ www/agc/conf_exten_check.php | 2 + www/agc/vicidial.php | 35 +++++++-- www/agc/webphone/loader.gif | Bin 0 -> 53898 bytes www/agc/webphone/zoiperweb.php | 38 +++++++++- www/agc/webphone/zoiperweb_redirect.php | 45 ++++++++++++ www/vicidial/admin.php | 68 ++++++++++++++---- 12 files changed, 204 insertions(+), 22 deletions(-) create mode 100644 www/agc/webphone/loader.gif create mode 100644 www/agc/webphone/zoiperweb_redirect.php diff --git a/UPGRADE b/UPGRADE index 8a269094..c6c75d31 100644 --- a/UPGRADE +++ b/UPGRADE @@ -299,6 +299,9 @@ OTHER CHANGES: 64. Added did_id, did_extension, did_pattern and did_description as webform and script variables in the agent screen. +65. Added webphone options for System Key and Dialpad, may not be compatible + with all webphones. + diff --git a/docs/conf_examples/extensions.conf.sample b/docs/conf_examples/extensions.conf.sample index ae25e15d..4af943dd 100644 --- a/docs/conf_examples/extensions.conf.sample +++ b/docs/conf_examples/extensions.conf.sample @@ -202,6 +202,10 @@ exten => _9119XXXXXXXX,1,Dial(${TRUNKblind}/9998819112,55,to) ; exten => _91XXXXXXXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) ; exten => _91XXXXXXXXXXXXX,n,Dial(${TRUNKloop}/8889990011112,,to) ; exten => _91XXXXXXXXXXXXX,n,Hangup +; block calls to 555 numbers +; exten => _91NXX555NXXX,1,AGI(agi://127.0.0.1:4577/call_log) +; exten => _91NXX555NXXX,n,Dial(${TRUNKloop}/8889990011112,,to) +; exten => _91NXX555NXXX,n,Hangup ; dial a USA long distance outbound number through the loopback-no-log context ; exten => _91NXXNXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) ; exten => _91NXXNXXXXXX,2,Dial(${TRUNKloop}/888${EXTEN:2},55,o) diff --git a/docs/conf_examples/extensions.conf.sample-1.4 b/docs/conf_examples/extensions.conf.sample-1.4 index e04b7d50..ef84a5d4 100644 --- a/docs/conf_examples/extensions.conf.sample-1.4 +++ b/docs/conf_examples/extensions.conf.sample-1.4 @@ -207,6 +207,10 @@ exten => _9119XXXXXXXX,1,Dial(${TRUNKblind}/9998819112,55,to) ; exten => _91XXXXXXXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) ; exten => _91XXXXXXXXXXXXX,n,Dial(${TRUNKloop}/8889990011112,,to) ; exten => _91XXXXXXXXXXXXX,n,Hangup +; block calls to 555 numbers +; exten => _91NXX555NXXX,1,AGI(agi://127.0.0.1:4577/call_log) +; exten => _91NXX555NXXX,n,Dial(${TRUNKloop}/8889990011112,,to) +; exten => _91NXX555NXXX,n,Hangup ; dial a USA long distance outbound number through the loopback-no-log context ; exten => _91NXXNXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) ; exten => _91NXXNXXXXXX,2,Dial(${TRUNKloop}/888${EXTEN:2},55,o) diff --git a/extras/MySQL_AST_CREATE_tables.sql b/extras/MySQL_AST_CREATE_tables.sql index 89c969a7..bdada7f9 100644 --- a/extras/MySQL_AST_CREATE_tables.sql +++ b/extras/MySQL_AST_CREATE_tables.sql @@ -77,6 +77,7 @@ is_webphone ENUM('Y','N') default 'N', use_external_server_ip ENUM('Y','N') default 'N', codecs_list VARCHAR(100) default '', codecs_with_template ENUM('0','1') default '0', +webphone_dialpad ENUM('Y','N','TOGGLE') default 'Y', index (server_ip), unique index extenserver (extension, server_ip) ); @@ -599,7 +600,9 @@ agent_xfer_dial_with_customer ENUM('Y','N') default 'Y', agent_xfer_park_customer_dial ENUM('Y','N') default 'Y', agent_fullscreen ENUM('Y','N') default 'N', allowed_reports VARCHAR(2000) default 'ALL REPORTS', -webphone_url_override VARCHAR(255) default '' +webphone_url_override VARCHAR(255) default '', +webphone_systemkey_override VARCHAR(100) default '', +webphone_dialpad_override ENUM('DISABLED','Y','N','TOGGLE') default 'DISABLED' ); CREATE TABLE vicidial_campaigns ( @@ -1319,7 +1322,8 @@ label_security_phrase VARCHAR(40) default '', label_email VARCHAR(40) default '', label_comments VARCHAR(40) default '', slave_db_server VARCHAR(50) default '', -reports_use_slave_db VARCHAR(2000) default '' +reports_use_slave_db VARCHAR(2000) default '', +webphone_systemkey VARCHAR(100) default '' ); CREATE TABLE vicidial_campaigns_list_mix ( @@ -2352,7 +2356,7 @@ ALTER TABLE vicidial_agent_log_archive MODIFY agent_log_id INT(9) UNSIGNED NOT N CREATE TABLE vicidial_carrier_log_archive LIKE vicidial_carrier_log; -UPDATE system_settings SET db_schema_version='1242',db_schema_update_date=NOW(); +UPDATE system_settings SET db_schema_version='1243',db_schema_update_date=NOW(); GRANT RELOAD ON *.* TO cron@'%'; GRANT RELOAD ON *.* TO cron@localhost; diff --git a/extras/upgrade_2.4.sql b/extras/upgrade_2.4.sql index 65430b4f..ab9c5a40 100644 --- a/extras/upgrade_2.4.sql +++ b/extras/upgrade_2.4.sql @@ -522,3 +522,12 @@ UPDATE system_settings SET db_schema_version='1241',db_schema_update_date=NOW(); ALTER TABLE vicidial_campaigns ADD manual_dial_prefix VARCHAR(20) default ''; UPDATE system_settings SET db_schema_version='1242',db_schema_update_date=NOW(); + +ALTER TABLE system_settings ADD webphone_systemkey VARCHAR(100) default ''; + +ALTER TABLE phones ADD webphone_dialpad ENUM('Y','N','TOGGLE') default 'Y'; + +ALTER TABLE vicidial_user_groups ADD webphone_systemkey_override VARCHAR(100) default ''; +ALTER TABLE vicidial_user_groups ADD webphone_dialpad_override ENUM('DISABLED','Y','N','TOGGLE') default 'DISABLED'; + +UPDATE system_settings SET db_schema_version='1243',db_schema_update_date=NOW(); diff --git a/translations/raw_translation_files/TO_BE_TRANSLATED_2.4.txt b/translations/raw_translation_files/TO_BE_TRANSLATED_2.4.txt index 10381291..434b247e 100644 --- a/translations/raw_translation_files/TO_BE_TRANSLATED_2.4.txt +++ b/translations/raw_translation_files/TO_BE_TRANSLATED_2.4.txt @@ -381,6 +381,14 @@ Manual Dial Prefix|| This optional field allows you to set the dial prefix to be used only when placing manual dial calls from the agent interface, such as using the MANUAL DIAL feature, or Dial Next Number when in the MANUAL dial method, or manual alt number dialing, or scheduled user-only callbacks. Default is empty for disabled, which will use the Dial Prefix defined in the field above. This option does not interfere with the 3way Dial Prefix option|| Here is a list of reserved phrases that cannot be used as menu IDs|| Call Menu ID cannot use reserved words|| +Webphone System Key Override|| +This setting allows you to set an alternate webphone System Key just for the members of one user group. Default is empty|| +Webphone Dialpad Override|| +This setting allows you to activate or deactivate the dialpad on the webphone just for the members of one user group. Default is DISABLED. TOGGLE will allow the user to view and hide the dialpad by clicking a link|| +Webphone Dialpad|| +This setting allows you to activate or deactivate the dialpad for this webphone. Default is Y for enabled. TOGGLE will allow the user to view and hide the dialpad by clicking a link. This feature is not available on all webphone versions|| +Webphone System Key|| +If your system or provider requires it, this is where the System Key for the webphone should be entered in. Default is empty|| AST_VICIDIAL_ingrouplist.php diff --git a/www/agc/conf_exten_check.php b/www/agc/conf_exten_check.php index 19319e66..1c463bbd 100644 --- a/www/agc/conf_exten_check.php +++ b/www/agc/conf_exten_check.php @@ -202,6 +202,8 @@ echo " $Aagent_log_id=''; $Acallerid=''; $DEADcustomer=0; + $Astatus=''; + $Acampaign_id=''; ### 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';"; diff --git a/www/agc/vicidial.php b/www/agc/vicidial.php index 6b78f16e..ea71dc39 100644 --- a/www/agc/vicidial.php +++ b/www/agc/vicidial.php @@ -308,10 +308,11 @@ # 100813-0554 - Added Campaign presets # 100815-1015 - Added manual_dial_prefix campaign option # 100823-1605 - Added DID variables for webform and scripting +# 100827-1436 - Added webphone dialpad options # -$version = '2.4-286'; -$build = '100823-1605'; +$version = '2.4-287'; +$build = '100827-1436'; $mel=1; # Mysql Error Log enabled = 1 $mysql_log_count=66; $one_mysql_log=0; @@ -970,7 +971,7 @@ else $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,agent_call_log_view,agent_xfer_consultative,agent_xfer_dial_override,agent_xfer_vm_transfer,agent_xfer_blind_transfer,agent_xfer_dial_with_customer,agent_xfer_park_customer_dial,agent_fullscreen,webphone_url_override 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,agent_call_log_view,agent_xfer_consultative,agent_xfer_dial_override,agent_xfer_vm_transfer,agent_xfer_blind_transfer,agent_xfer_dial_with_customer,agent_xfer_park_customer_dial,agent_fullscreen,webphone_url_override,webphone_dialpad_override,webphone_systemkey_override 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); @@ -1009,6 +1010,10 @@ else {$agent_call_log_view=0;} $agent_fullscreen = $row[12]; $webphone_url = $row[13]; + $webphone_dialpad_override = $row[14]; + $system_key = $row[15]; + if ( ($webphone_dialpad_override != 'DISABLED') and (strlen($webphone_dialpad_override) > 0) ) + {$webphone_dialpad = $webphone_dialpad_override;} ### 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) ) ) @@ -1825,7 +1830,7 @@ else 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,is_webphone,use_external_server_ip,codecs_list 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,is_webphone,use_external_server_ip,codecs_list,webphone_dialpad 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);} @@ -1896,6 +1901,7 @@ else $is_webphone=$row[73]; $use_external_server_ip=$row[74]; $codecs_list=$row[75]; + $webphone_dialpad=$row[76]; $no_empty_session_warnings=0; if ($phone_login == 'nophone') @@ -2173,6 +2179,23 @@ else $webphone_url =$row[0]; } } + if (strlen($system_key) < 1) + { + ##### find system_key in system_settings if populated ##### + $stmt="SELECT webphone_systemkey FROM system_settings LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01XXX',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $wsk_ct = mysql_num_rows($rslt); + if ($wsk_ct > 0) + { + $row=mysql_fetch_row($rslt); + $system_key =$row[0]; + } + } + $webphone_options='INITIAL_LOAD'; + if ($webphone_dialpad == 'Y') {$webphone_options .= "--DIALPAD_Y";} + if ($webphone_dialpad == 'TOGGLE') {$webphone_options .= "--DIALPAD_TOGGLE";} ### base64 encode variables $b64_phone_login = base64_encode($extension); @@ -2182,8 +2205,10 @@ else $b64_callerid = base64_encode($outbound_cid); $b64_protocol = base64_encode($protocol); $b64_codecs = base64_encode($codecs_list); + $b64_options = base64_encode($webphone_options); + $b64_system_key = base64_encode($system_key); - $WebPhonEurl = "$webphone_url?phone_login=$b64_phone_login&phone_login=$b64_phone_login&phone_pass=$b64_phone_pass&server_ip=$b64_server_ip&callerid=$b64_callerid&protocol=$b64_protocol&codecs=$b64_codecs"; + $WebPhonEurl = "$webphone_url?phone_login=$b64_phone_login&phone_login=$b64_phone_login&phone_pass=$b64_phone_pass&server_ip=$b64_server_ip&callerid=$b64_callerid&protocol=$b64_protocol&codecs=$b64_codecs&options=$b64_options&system_key=$b64_system_key"; $webphone_content = ""; } diff --git a/www/agc/webphone/loader.gif b/www/agc/webphone/loader.gif new file mode 100644 index 0000000000000000000000000000000000000000..1e32a5ffa981dac7dc1dff49827643b9306a6106 GIT binary patch literal 53898 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%0Ak(fKOTJc!E@SFO$9rPfD^@PYb}SZ(l2ji?dm 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 + } function OnZoiperCallFail(call) { @@ -192,6 +209,17 @@ function OnZoiperContactStatus(contact,status) { Status(contact.Name + " is " + status); } +function dialpad_inactive() + { + document.getElementById("Dialpad_toggle").innerHTML = "DIALPAD +\n"; + Zoiper.ShowDialPad("false"); + } +function dialpad_active() + { + document.getElementById("Dialpad_toggle").innerHTML = "DIALPAD -\n"; + Zoiper.ShowDialPad("true"); + } + @@ -220,7 +248,7 @@ function OnZoiperContactStatus(contact,status)
-
+
@@ -233,5 +261,13 @@ function OnZoiperContactStatus(contact,status)

Ready + + +DIALPAD -\n";} +?> + + diff --git a/www/agc/webphone/zoiperweb_redirect.php b/www/agc/webphone/zoiperweb_redirect.php new file mode 100644 index 00000000..d37d9671 --- /dev/null +++ b/www/agc/webphone/zoiperweb_redirect.php @@ -0,0 +1,45 @@ + LICENSE: AGPLv2 +# +# CHANGELOG +# 100827-1419 - First Build +# + +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["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["callerid"])) {$callerid=$_GET["callerid"];} + elseif (isset($_POST["callerid"])) {$callerid=$_POST["callerid"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];} + elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];} +if (isset($_GET["codecs"])) {$codecs=$_GET["codecs"];} + elseif (isset($_POST["codecs"])) {$codecs=$_POST["codecs"];} +if (isset($_GET["options"])) {$options=$_GET["options"];} + elseif (isset($_POST["options"])) {$options=$_POST["options"];} +if (isset($_GET["system_key"])) {$system_key=$_GET["system_key"];} + elseif (isset($_POST["system_key"])) {$system_key=$_POST["system_key"];} + +$query_string = "/agc/webphone/zoiperweb.php?DB=$DB&phone_login=$phone_login&phone_pass=$phone_pass&server_ip=$server_ip&callerid=$callerid&protocol=$protocol&codecs=$codecs&options=$options&system_key=$system_key"; + +$servers = array("sslagent1.server.net","sslagent2.server.net"); +$server = $servers[array_rand($servers)]; +$URL = "https://$server$query_string"; + +header("Location: $URL"); + +echo"Webphone Redirect\n"; +echo"\n"; +echo"\n"; +echo"\n"; +echo"\n"; +echo"click here to continue. . .\n"; +exit; + +?> diff --git a/www/vicidial/admin.php b/www/vicidial/admin.php index 619334fd..916fae6f 100644 --- a/www/vicidial/admin.php +++ b/www/vicidial/admin.php @@ -1435,6 +1435,14 @@ if (isset($_GET["preset_hide_number"])) {$preset_hide_number=$_GET["preset_hi elseif (isset($_POST["preset_hide_number"])) {$preset_hide_number=$_POST["preset_hide_number"];} if (isset($_GET["manual_dial_prefix"])) {$manual_dial_prefix=$_GET["manual_dial_prefix"];} elseif (isset($_POST["manual_dial_prefix"])) {$manual_dial_prefix=$_POST["manual_dial_prefix"];} +if (isset($_GET["webphone_systemkey"])) {$webphone_systemkey=$_GET["webphone_systemkey"];} + elseif (isset($_POST["webphone_systemkey"])) {$webphone_systemkey=$_POST["webphone_systemkey"];} +if (isset($_GET["webphone_dialpad"])) {$webphone_dialpad=$_GET["webphone_dialpad"];} + elseif (isset($_POST["webphone_dialpad"])) {$webphone_dialpad=$_POST["webphone_dialpad"];} +if (isset($_GET["webphone_systemkey_override"])) {$webphone_systemkey_override=$_GET["webphone_systemkey_override"];} + elseif (isset($_POST["webphone_systemkey_override"])) {$webphone_systemkey_override=$_POST["webphone_systemkey_override"];} +if (isset($_GET["webphone_dialpad_override"])) {$webphone_dialpad_override=$_GET["webphone_dialpad_override"];} + elseif (isset($_POST["webphone_dialpad_override"])) {$webphone_dialpad_override=$_POST["webphone_dialpad_override"];} if (isset($script_id)) {$script_id= strtoupper($script_id);} @@ -1981,6 +1989,10 @@ if ($non_latin < 1) $filter_call_handle_method = ereg_replace("[^-_0-9a-zA-Z]","",$filter_call_handle_method); $filter_user = ereg_replace("[^-_0-9a-zA-Z]","",$filter_user); $filter_exten_context = ereg_replace("[^-_0-9a-zA-Z]","",$filter_exten_context); + $webphone_systemkey = ereg_replace("[^-_0-9a-zA-Z]","",$webphone_systemkey); + $webphone_dialpad = ereg_replace("[^-_0-9a-zA-Z]","",$webphone_dialpad); + $webphone_systemkey_override = ereg_replace("[^-_0-9a-zA-Z]","",$webphone_systemkey_override); + $webphone_dialpad_override = ereg_replace("[^-_0-9a-zA-Z]","",$webphone_dialpad_override); ### ALPHA-NUMERIC and underscore and dash and slash and dot $menu_prompt = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$menu_prompt); @@ -2500,11 +2512,12 @@ else # 100815-0802 - Added manual_dial_prefix campaign option # 100817-1243 - Added checking for reserved menu_id on creation of Call Menus # 100823-1501 - Added CallCard search as an available User Group report option +# 100827-1535 - Added webphone options for dialpad and systemkey # # 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.4-276'; -$build = '100823-1501'; +$admin_version = '2.4-277'; +$build = '100827-1535'; $STARTtime = date("U"); $SQLdate = date("Y-m-d H:i:s"); @@ -5647,6 +5660,16 @@ if ($ADD==99999)
Webphone URL Override - This setting allows you to set an alternate webphone URL just for the members of one user group. Default is empty. +
+ +
+ Webphone System Key Override - This setting allows you to set an alternate webphone System Key just for the members of one user group. Default is empty. + +
+
+
+ Webphone Dialpad Override - This setting allows you to activate or deactivate the dialpad on the webphone just for the members of one user group. Default is DISABLED. TOGGLE will allow the user to view and hide the dialpad by clicking a link. + Set As Webphone - Setting this option to Y will attempt to load a web-based phone when the agent logs into their agent screen. Default is N. +
+
+
+ Webphone Dialpad - This setting allows you to activate or deactivate the dialpad for this webphone. Default is Y for enabled. TOGGLE will allow the user to view and hide the dialpad by clicking a link. This feature is not available on all webphone versions. +

@@ -6878,6 +6906,11 @@ if ($ADD==99999)
Default Webphone - If set to 1, this option will make all new phones created have Set As Webphone set to Y. Default is 0. +
+
+
+ Webphone System Key - If your system or provider requires it, this is where the System Key for the webphone should be entered in. Default is empty. +

@@ -6888,7 +6921,6 @@ if ($ADD==99999)
Custom Dialplan Entry - This field allows you to enter in any dialplan elements that you want for all of the asterisk servers, the lines will be added to the default context. -

@@ -14039,7 +14071,7 @@ if ($ADD==411111) } $allowed_reports = preg_replace("/,$/","",$new_field_value); - $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',agent_call_log_view='$agent_call_log_view',agent_xfer_consultative='$agent_xfer_consultative',agent_xfer_dial_override='$agent_xfer_dial_override',agent_xfer_vm_transfer='$agent_xfer_vm_transfer',agent_xfer_blind_transfer='$agent_xfer_blind_transfer',agent_xfer_dial_with_customer='$agent_xfer_dial_with_customer',agent_xfer_park_customer_dial='$agent_xfer_park_customer_dial',agent_fullscreen='$agent_fullscreen',allowed_reports='$allowed_reports',webphone_url_override='" . mysql_real_escape_string($webphone_url_override) . "' where user_group='$OLDuser_group';"; + $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',agent_call_log_view='$agent_call_log_view',agent_xfer_consultative='$agent_xfer_consultative',agent_xfer_dial_override='$agent_xfer_dial_override',agent_xfer_vm_transfer='$agent_xfer_vm_transfer',agent_xfer_blind_transfer='$agent_xfer_blind_transfer',agent_xfer_dial_with_customer='$agent_xfer_dial_with_customer',agent_xfer_park_customer_dial='$agent_xfer_park_customer_dial',agent_fullscreen='$agent_fullscreen',allowed_reports='$allowed_reports',webphone_url_override='" . mysql_real_escape_string($webphone_url_override) . "',webphone_systemkey_override='$webphone_systemkey_override',webphone_dialpad_override='$webphone_dialpad_override' where user_group='$OLDuser_group';"; $rslt=mysql_query($stmt, $link); echo "
USER GROUP MODIFIED\n"; @@ -14413,7 +14445,7 @@ if ($ADD==41111111111) { echo "
PHONE MODIFIED: $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',phone_context='$phone_context',phone_ring_timeout='$phone_ring_timeout',conf_secret='$conf_secret', delete_vm_after_email='$delete_vm_after_email',is_webphone='$is_webphone',use_external_server_ip='$use_external_server_ip',codecs_list='$codecs_list',codecs_with_template='$codecs_with_template' where extension='$old_extension' and server_ip='$old_server_ip';"; + $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',is_webphone='$is_webphone',use_external_server_ip='$use_external_server_ip',codecs_list='$codecs_list',codecs_with_template='$codecs_with_template',webphone_dialpad='$webphone_dialpad' 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';"; @@ -14992,7 +15024,7 @@ if ($ADD==411111111111111) } $reports_use_slave_db = preg_replace("/,$/","",$new_field_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';"; + $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';"; $rslt=mysql_query($stmt, $link); ### LOG INSERTION Admin Log Table ### @@ -22808,7 +22840,7 @@ if ($ADD==311111) echo "\n"; + + echo "\n"; + + echo "\n"; } else - {echo " ";} + { + echo " "; + echo " "; + echo " "; + } if ($SSqc_features_active > 0) { @@ -23670,7 +23712,7 @@ if ($ADD==31111111111) 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,agent_call_log_view,agent_xfer_consultative,agent_xfer_dial_override,agent_xfer_vm_transfer,agent_xfer_blind_transfer,agent_xfer_dial_with_customer,agent_xfer_park_customer_dial,agent_fullscreen,allowed_reports,webphone_url_override from vicidial_user_groups where user_group='$user_group';"; + $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,agent_call_log_view,agent_xfer_consultative,agent_xfer_dial_override,agent_xfer_vm_transfer,agent_xfer_blind_transfer,agent_xfer_dial_with_customer,agent_xfer_park_customer_dial,agent_fullscreen,allowed_reports,webphone_url_override,webphone_systemkey_override,webphone_dialpad_override from vicidial_user_groups where user_group='$user_group';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $user_group = $row[0]; @@ -22828,6 +22860,8 @@ if ($ADD==311111) $agent_fullscreen = $row[17]; $allowed_reports = $row[18]; $webphone_url_override = $row[19]; + $webphone_systemkey_override = $row[20]; + $webphone_dialpad_override = $row[21]; echo ""; @@ -22947,9 +22981,17 @@ if ($ADD==311111) if (strlen($SSwebphone_url) > 5) { echo "
Webphone URL Override: $NWB#vicidial_user_groups-webphone_url_override$NWE
Webphone System Key Override: $NWB#vicidial_user_groups-webphone_systemkey_override$NWE
Webphone Dialpad Override: $NWB#vicidial_user_groups-webphone_dialpad_override$NWE
\n"; echo "\n"; echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; @@ -24721,7 +24764,7 @@ if ($ADD==311111111111111) 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,is_webphone,use_external_server_ip,codecs_list,codecs_with_template from phones where extension='$extension' and server_ip='$server_ip';"; + $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,is_webphone,use_external_server_ip,codecs_list,codecs_with_template,webphone_dialpad from phones where extension='$extension' and server_ip='$server_ip';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); @@ -23697,6 +23739,7 @@ if ($ADD==31111111111) echo "
Login Password: $NWB#phones-pass$NWE
Registration Password: $NWB#phones-conf_secret$NWE
Set As Webphone: $NWB#phones-is_webphone$NWE
Webphone Dialpad: $NWB#phones-webphone_dialpad$NWE
Use External Server IP: $NWB#phones-use_external_server_ip$NWE
Status: $NWB#phones-status$NWE
Active Account: $NWB#phones-active$NWE
\n"; echo "\n"; @@ -25016,6 +25057,7 @@ if ($ADD==311111111111111) echo "\n"; echo "\n"; echo "\n"; + echo "\n"; echo "\n"; echo "\n";
\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,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 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 from system_settings;"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $version = $row[0]; @@ -24801,6 +24844,7 @@ if ($ADD==311111111111111) $custom_fields_enabled = $row[74]; $slave_db_server = $row[75]; $reports_use_slave_db = $row[76]; + $webphone_systemkey= $row[77]; echo "
MODIFY VICIDIAL SYSTEM SETTINGS
\n"; echo "\n"; @@ -24967,9 +25011,6 @@ if ($ADD==311111111111111) } - - - echo "
Label Title: $NWB#settings-default_field_labels$NWE
Label First Name: $NWB#settings-default_field_labels$NWE
Default Webphone: $NWB#settings-default_webphone$NWE
Default External Server IP: $NWB#settings-default_external_server_ip$NWE
Webphone URL: $NWB#settings-webphone_url$NWE
Webphone System Key: $NWB#settings-webphone_systemkey$NWE
Enable QueueMetrics Logging: $NWB#settings-enable_queuemetrics_logging$NWE
QueueMetrics Server IP: $NWB#settings-queuemetrics_server_ip$NWE