diff --git a/agc_2-X/trunk/extras/ConfBridge/ConfBridge Documentation.txt b/agc_2-X/trunk/extras/ConfBridge/ConfBridge Documentation.txt index e53d2d2a..bdeb1cb8 100644 --- a/agc_2-X/trunk/extras/ConfBridge/ConfBridge Documentation.txt +++ b/agc_2-X/trunk/extras/ConfBridge/ConfBridge Documentation.txt @@ -6,6 +6,9 @@ VICIdial ConfBridge Support: STARTED: 2022-06-22 UPDATED: 2022-08-27 !!! NOTE: VICIdial ConfBridge support requires Asterisk 16 or higher to be installed on your dialers. Code development and testing was done with VICIbox 10 and the optional Asterisk 16 package available through VICIbox 10 !!! +BETA support for ConfBridge is included in the VICIdial svn/trunk codebase as of revision 3624. + + - Background For the past 19 years, the core of Vicidial has been based around the MeetMe conferencing engine built into Asterisk. When an agent logs into Vicidial their phone gets called by Vicidial. When that call connects the agent gets placed into a MeetMe conference. For the most part they stay within that conference the entire time they are logged into Vicidial. It is only when they leave a consultative transfer that they get moved to a different MeetMe conference. When an agent places a Manual dial phone call, the outbound call gets connected to their MeetMe phone conference. When an auto dial phone call answers it goes through the outbound routing agi and ultimately gets routed into an agent's MeetMe phone conference. When an inbound call gets past to the inbound routing AGI script it ultimately gets routed to an agent's MeetMe phone conference. Vicidial initiates call recordings by attaching a monitoring extension to an agents MeetMe phone conference. As such Vicidial at its most basic level is designed to place channels into and remove them from MeetMe phone conferences. @@ -556,3 +559,11 @@ Webservers: - vicidial.php.diff - vdc_db_query.php.diff - manager_send.php.diff + + + +- Web Admin changes: + +The admin web screens had been modified to show ConfBridges on servers and management of ConfBridges in the database. + +Also, the "Server Modify" page now has settings for the Conferencing Engine and the Conf Update Interval. diff --git a/agc_2-X/trunk/www/vicidial/admin.php b/agc_2-X/trunk/www/vicidial/admin.php index 523b0ce5..7824dafd 100644 --- a/agc_2-X/trunk/www/vicidial/admin.php +++ b/agc_2-X/trunk/www/vicidial/admin.php @@ -16,7 +16,7 @@ require("functions.php"); ###################################################################################################### ###################################################################################################### -$page_width='770'; +$page_width='870'; $section_width='750'; $header_font_size='12'; $subheader_font_size='11'; @@ -2718,6 +2718,10 @@ if (isset($_GET["max_logged_in_agents"])) {$max_logged_in_agents=$_GET["max_l elseif (isset($_POST["max_logged_in_agents"])) {$max_logged_in_agents=$_POST["max_logged_in_agents"];} if (isset($_GET["user_codes_admin"])) {$user_codes_admin=$_GET["user_codes_admin"];} elseif (isset($_POST["user_codes_admin"])) {$user_codes_admin=$_POST["user_codes_admin"];} +if (isset($_GET["conf_engine"])) {$conf_engine=$_GET["conf_engine"];} + elseif (isset($_POST["conf_engine"])) {$conf_engine=$_POST["conf_engine"];} +if (isset($_GET["conf_update_interval"])) {$conf_update_interval=$_GET["conf_update_interval"];} + elseif (isset($_POST["conf_update_interval"])) {$conf_update_interval=$_POST["conf_update_interval"];} $DB=preg_replace("/[^0-9a-zA-Z]/","",$DB); @@ -3219,6 +3223,7 @@ $allow_web_debug = preg_replace('/[^0-9]/','',$allow_web_debug); $force_logout = preg_replace('/[^0-9]/','',$force_logout); $log_recording_access = preg_replace('/[^0-9]/','',$log_recording_access); $dial_level_override = preg_replace('/[^0-9]/','',$dial_level_override); +$conf_update_interval = preg_replace('/[^0-9]/','',$conf_update_interval); $user_new_lead_limit = preg_replace('/[^-0-9]/','',$user_new_lead_limit); $drop_call_seconds = preg_replace('/[^-0-9]/','',$drop_call_seconds); @@ -3432,12 +3437,12 @@ $ig_xfer_list_sort = preg_replace('/[^-_0-9a-zA-Z]/','',$ig_xfer_list_sort); $script_tab_frame_size = preg_replace('/[^-_0-9a-zA-Z]/','',$script_tab_frame_size); $max_logged_in_agents = preg_replace('/[^-_0-9a-zA-Z]/','',$max_logged_in_agents); $user_codes_admin = preg_replace('/[^-_0-9a-zA-Z]/','',$user_codes_admin); +$conf_engine = preg_replace('/[^-_0-9a-zA-Z]/','',$conf_engine); if ($non_latin < 1) { ### ALPHA-NUMERIC ONLY ### $is_webphone = preg_replace('/[^-_0-9a-zA-Z]/','',$is_webphone); - $agent_script_override = preg_replace('/[^-_0-9a-zA-Z]/','',$agent_script_override); $campaign_script = preg_replace('/[^0-9a-zA-Z]/','',$campaign_script); $submit = preg_replace('/[^0-9a-zA-Z]/','',$submit); $campaign_cid = preg_replace('/[^0-9a-zA-Z]/','',$campaign_cid); @@ -3519,7 +3524,6 @@ if ($non_latin < 1) $dead_to_dispo = preg_replace('/[^0-9a-zA-Z]/','',$dead_to_dispo); $routing_prefix = preg_replace('/[^0-9a-zA-Z]/','',$routing_prefix); $inbound_survey = preg_replace('/[^0-9a-zA-Z]/','',$inbound_survey); - $inbound_list_script_override = preg_replace('/[^-_0-9a-zA-Z]/','',$inbound_list_script_override); $pause_max_dispo = preg_replace('/[^0-9a-zA-Z]/','',$pause_max_dispo); $areacode = preg_replace('/[^0-9a-zA-Z]/','',$areacode); $require_mgr_approval = preg_replace('/[^0-9a-zA-Z]/','',$require_mgr_approval); @@ -3858,6 +3862,8 @@ if ($non_latin < 1) $pre_filter_recent_call = preg_replace('/[^-_0-9a-zA-Z]/','',$pre_filter_recent_call); $pre_filter_recent_extension = preg_replace('/[^-_0-9a-zA-Z]/','',$pre_filter_recent_extension); $user_group_two = preg_replace('/[^-_0-9a-zA-Z]/','',$user_group_two); + $agent_script_override = preg_replace('/[^-_0-9a-zA-Z]/','',$agent_script_override); + $inbound_list_script_override = preg_replace('/[^-_0-9a-zA-Z]/','',$inbound_list_script_override); ### ALPHA-NUMERIC and underscore $qc_statuses_id = preg_replace('/[^_0-9a-zA-Z]/','',$qc_statuses_id); @@ -4156,7 +4162,6 @@ else { ### ALPHA-NUMERIC ONLY ### $is_webphone = preg_replace('/[^-_0-9\p{L}]/u','',$is_webphone); - $agent_script_override = preg_replace('/[^-_0-9\p{L}]/u','',$agent_script_override); $campaign_script = preg_replace('/[^0-9\p{L}]/u','',$campaign_script); $submit = preg_replace('/[^0-9\p{L}]/u','',$submit); $campaign_cid = preg_replace('/[^0-9\p{L}]/u','',$campaign_cid); @@ -4238,7 +4243,6 @@ else $dead_to_dispo = preg_replace('/[^0-9\p{L}]/u','',$dead_to_dispo); $routing_prefix = preg_replace('/[^0-9\p{L}]/u','',$routing_prefix); $inbound_survey = preg_replace('/[^0-9\p{L}]/u','',$inbound_survey); - $inbound_list_script_override = preg_replace('/[^-_0-9\p{L}]/u','',$inbound_list_script_override); $pause_max_dispo = preg_replace('/[^0-9\p{L}]/u','',$pause_max_dispo); $areacode = preg_replace('/[^0-9\p{L}]/u','',$areacode); $require_mgr_approval = preg_replace('/[^0-9\p{L}]/u','',$require_mgr_approval); @@ -4576,6 +4580,8 @@ else $queue_group = preg_replace('/[^-_0-9\p{L}]/u','',$queue_group); $pre_filter_recent_call = preg_replace('/[^-_0-9\p{L}]/u','',$pre_filter_recent_call); $pre_filter_recent_extension = preg_replace('/[^-_0-9\p{L}]/u','',$pre_filter_recent_extension); + $agent_script_override = preg_replace('/[^-_0-9\p{L}]/u','',$agent_script_override); + $inbound_list_script_override = preg_replace('/[^-_0-9\p{L}]/u','',$inbound_list_script_override); $user_group_two = preg_replace('/[^-_0-9\p{L}]/u','',$user_group_two); ### ALPHA-NUMERIC and underscore and dash and slash and dot @@ -5921,12 +5927,13 @@ if ($SSscript_remove_js > 0) # 220730-0859 - Added user_codes_admin user/system setting # 220811-0854 - Added webphone inticator"(w)" to Phone Listing page # 220824-1452 - Fix for Script override input variable filtering issues +# 220827-0855 - Added BETA support for ConfBridge in Servers and Conferences # # make sure you have added a user to the vicidial_users MySQL table with at least user_level 9 to access this page the first time -$admin_version = '2.14-862a'; -$build = '220824-1452'; +$admin_version = '2.14-863a'; +$build = '220827-0855'; $STARTtime = date("U"); $SQLdate = date("Y-m-d H:i:s"); @@ -6618,6 +6625,7 @@ if ($ADD==197111111111) {$hh='admin'; $sh='vmmg'; echo _QXZ("ADD VM MESSAGE GROU if ($ADD==198111111111) {$hh='admin'; $sh='qg'; echo _QXZ("ADD QUEUE GROUP");} if ($ADD==1111111111111) {$hh='admin'; $sh='conference'; echo _QXZ("ADD NEW CONFERENCE");} if ($ADD==11111111111111) {$hh='admin'; $sh='conference'; echo _QXZ("ADD NEW AGENT CONFERENCE");} +if ($ADD==12111111111111) {$hh='admin'; $sh='conference'; echo _QXZ("ADD NEW AGENT CONFBRIDGE");} if ($ADD=='2') {$hh='users'; $sh='new'; echo _QXZ("New User Addition");} if ($ADD=='2A') {$hh='users'; $sh='copy'; echo _QXZ("New Copied User Addition");} if ($ADD==20) {$hh='campaigns'; $sh='basic'; echo _QXZ("New Copied Campaign Addition");} @@ -6676,6 +6684,7 @@ if ($ADD==297111111111) {$hh='admin'; $sh='vmmg'; echo _QXZ("ADDING NEW VM MESSA if ($ADD==298111111111) {$hh='admin'; $sh='qg'; echo _QXZ("ADDING NEW QUEUE GROUP");} if ($ADD==2111111111111) {$hh='admin'; $sh='conference'; echo _QXZ("ADDING NEW CONFERENCE");} if ($ADD==21111111111111) {$hh='admin'; $sh='conference'; echo _QXZ("ADDING NEW AGENT CONFERENCE");} +if ($ADD==22111111111111) {$hh='admin'; $sh='conference'; echo _QXZ("ADDING NEW AGENT CONFBRIDGE");} if ($ADD==221111111111111) {$hh='admin'; $sh='status'; echo _QXZ("ADDING SYSTEM STATUSES");} if ($ADD==231111111111111) {$hh='admin'; $sh='status'; echo _QXZ("ADDING STATUS CATEGORY");} if ($ADD==241111111111111) {$hh='admin'; $sh='status'; echo _QXZ("ADDING QC STATUS CODE");} @@ -6761,6 +6770,7 @@ if ($ADD==397111111111) {$hh='admin'; $sh='vmmg'; echo _QXZ("MODIFY VM MESSAGE G if ($ADD==398111111111) {$hh='admin'; $sh='qg'; echo _QXZ("MODIFY QUEUE GROUP");} if ($ADD==3111111111111) {$hh='admin'; $sh='conference'; echo _QXZ("MODIFY CONFERENCE");} if ($ADD==31111111111111) {$hh='admin'; $sh='conference'; echo _QXZ("MODIFY AGENT CONFERENCE");} +if ($ADD==32111111111111) {$hh='admin'; $sh='conference'; echo _QXZ("MODIFY AGENT CONFBRIDGE");} if ($ADD==311111111111111) {$hh='admin'; $sh='settings'; echo _QXZ("MODIFY SYSTEM SETTINGS");} if ($ADD==321111111111111) {$hh='admin'; $sh='status'; echo _QXZ("MODIFY SYSTEM STATUSES");} if ($ADD==331111111111111) {$hh='admin'; $sh='status'; echo _QXZ("MODIFY STATUS CATEGORY");} @@ -6816,6 +6826,7 @@ if ($ADD==497111111111) {$hh='admin'; $sh='vmmg'; echo _QXZ("MODIFY VM MESSAGE G if ($ADD==498111111111) {$hh='admin'; $sh='qg'; echo _QXZ("MODIFY QUEUE GROUP");} if ($ADD==4111111111111) {$hh='admin'; $sh='conference'; echo _QXZ("MODIFY CONFERENCE");} if ($ADD==41111111111111) {$hh='admin'; $sh='conference'; echo _QXZ("MODIFY CONFERENCE");} +if ($ADD==42111111111111) {$hh='admin'; $sh='conference'; echo _QXZ("MODIFY CONFBRIDGE");} if ($ADD==411111111111111) {$hh='admin'; $sh='settings'; echo _QXZ("MODIFY SYSTEM SETTINGS");} if ($ADD==421111111111111) {$hh='admin'; $sh='status'; echo _QXZ("MODIFY SYSTEM STATUSES");} if ($ADD==431111111111111) {$hh='admin'; $sh='status'; echo _QXZ("MODIFY STATUS CATEGORIES");} @@ -6862,6 +6873,7 @@ if ($ADD==597111111111) {$hh='admin'; $sh='vmmg'; echo _QXZ("DELETE VM MESSAGE G if ($ADD==598111111111) {$hh='admin'; $sh='qg'; echo _QXZ("DELETE QUEUE GROUP");} if ($ADD==5111111111111) {$hh='admin'; $sh='conference'; echo _QXZ("DELETE CONFERENCE");} if ($ADD==51111111111111) {$hh='admin'; $sh='conference'; echo _QXZ("DELETE AGENT CONFERENCE");} +if ($ADD==52111111111111) {$hh='admin'; $sh='conference'; echo _QXZ("DELETE AGENT CONFBRIDGE");} if ($ADD==6) {$hh='users'; $sh='list'; echo _QXZ("Delete User");} if ($ADD==61) {$hh='campaigns'; $sh='detail'; echo _QXZ("Delete Campaign");} if ($ADD==62) {$hh='campaigns'; $sh='detail'; echo _QXZ("Logout Agents");} @@ -6911,6 +6923,7 @@ if ($ADD==697111111111) {$hh='admin'; $sh='vmmg'; echo _QXZ("DELETE VM MESSAGE G if ($ADD==698111111111) {$hh='admin'; $sh='qg'; echo _QXZ("DELETE QUEUE GROUP");} if ($ADD==6111111111111) {$hh='admin'; $sh='conference'; echo _QXZ("DELETE CONFERENCE");} if ($ADD==61111111111111) {$hh='admin'; $sh='conference'; echo _QXZ("DELETE AGENT CONFERENCE");} +if ($ADD==62111111111111) {$hh='admin'; $sh='conference'; echo _QXZ("DELETE AGENT CONFBRIDGE");} if ($ADD==73) {$hh='campaigns'; echo _QXZ("Dialable Lead Count");} if ($ADD==7111111) {$hh='scripts'; $sh='list'; echo _QXZ("Preview Script");} if ($ADD==700000000000000) {$hh='reports'; echo _QXZ("ADMIN CHANGE LOG");} @@ -6966,6 +6979,7 @@ if ($ADD==197000000000) {$hh='admin'; $sh='vmmg'; echo _QXZ("VM MESSAGE GROUPS L if ($ADD==198000000000) {$hh='admin'; $sh='qg'; echo _QXZ("QUEUE GROUPS LIST");} if ($ADD==1000000000000) {$hh='admin'; $sh='conference'; echo _QXZ("CONFERENCE LIST");} if ($ADD==10000000000000) {$hh='admin'; $sh='conference'; echo _QXZ("AGENT CONFERENCE LIST");} +if ($ADD==12000000000000) {$hh='admin'; $sh='conference'; echo _QXZ("AGENT CONFBRIDGE LIST");} if ($ADD==100000000000000) {$hh='qc'; $sh='campaign'; echo _QXZ("Quality Control");} if ($ADD==881) {$hh='qc'; $sh='enter'; echo _QXZ("Quality Control Campaign")," $campaign_id";} if ($ADD==550) {$hh='users'; $sh='search'; echo _QXZ("Search Form");} @@ -11476,6 +11490,34 @@ if ($ADD==11111111111111) } +###################### +# ADD=12111111111111 display the ADD NEW VICIDIAL CONFBRIDGE SCREEN +###################### +if ($ADD==12111111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo "\"ConfBridges\" "; + + echo "
"._QXZ("ADD A NEW AGENT CONFBRIDGE")."
\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
"._QXZ("ConfBridge Number").": ("._QXZ("digits only").")$NWB#conferences-conf_exten$NWE
"._QXZ("Server IP").": $NWB#conferences-server_ip$NWE
\n"; + } + else + { + echo _QXZ("You do not have permission to view this page")."\n"; + exit; + } + } + + @@ -14904,7 +14946,7 @@ if ($ADD==240111111111) { echo "
"._QXZ("COPIED 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,carrier_description,user_group) SELECT \"$carrier_id\",\"$carrier_name\",registration_string,template_id,account_entry,protocol,globals_string,dialplan_entry,\"$server_ip\",\"N\",carrier_description,user_group from vicidial_server_carriers where carrier_id=\"$source_carrier\";"; + $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,user_group,conf_engine,conf_update_interval) SELECT \"$carrier_id\",\"$carrier_name\",registration_string,template_id,account_entry,protocol,globals_string,dialplan_entry,\"$server_ip\",\"N\",carrier_description,user_group,conf_engine,conf_update_interval from vicidial_server_carriers where carrier_id=\"$source_carrier\";"; $rslt=mysql_to_mysqli($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';"; @@ -15601,6 +15643,48 @@ if ($ADD==21111111111111) } +###################### +# ADD=22111111111111 adds new vicidial confbridge to the system +###################### +if ($ADD==22111111111111) + { + if ($add_copy_disabled > 0) + { + echo "
"._QXZ("You do not have permission to add records on this system")." -system_settings-\n"; + } + else + { + echo ""; + $stmt="SELECT count(*) from vicidial_confbridges where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_to_mysqli($stmt, $link); + $row=mysqli_fetch_row($rslt); + if ($row[0] > 0) + {echo "
"._QXZ("AGENT CONFBRIDGE NOT ADDED - there is already an agent conference in the system with this ID and server")."\n";} + else + { + if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) + {echo "
"._QXZ("AGENT CONFBRIDGE NOT ADDED - Please go back and look at the data you entered")."\n";} + else + { + echo "
"._QXZ("AGENT CONFBRIDGE ADDED")."\n"; + + $stmt="INSERT INTO vicidial_confbridges (conf_exten,server_ip) values('$conf_exten','$server_ip');"; + $rslt=mysql_to_mysqli($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = preg_replace('/;/', '', $SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='VICICONF', event_type='ADD', record_id='$conf_exten', event_code='ADMIN ADD VICIDIAL CONFBRIDGE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_to_mysqli($stmt, $link); + } + } + } + $ADD=32111111111111; + } + + ###################### # ADD=221111111111111 adds the new system status to the system ###################### @@ -19289,7 +19373,7 @@ if ($ADD==411111111111) $custom_dialplanSQL=''; if ($LOGmodify_custom_dialplans > 0) {$custom_dialplanSQL = ",custom_dialplan_entry='$custom_dialplan_entry'";} - $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',external_server_ip='$external_server_ip',active_twin_server_ip='$active_twin_server_ip',user_group='$user_group',auto_restart_asterisk='$auto_restart_asterisk',asterisk_temp_no_restart='$asterisk_temp_no_restart',voicemail_dump_exten_no_inst='$voicemail_dump_exten_no_inst',gather_asterisk_output='$gather_asterisk_output',conf_qualify='$conf_qualify',web_socket_url='" . mysqli_real_escape_string($link, $web_socket_url) . "',routing_prefix='$routing_prefix',external_web_socket_url='" . mysqli_real_escape_string($link, $external_web_socket_url) . "'$custom_dialplanSQL where server_id='$old_server_id';"; + $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',external_server_ip='$external_server_ip',active_twin_server_ip='$active_twin_server_ip',user_group='$user_group',auto_restart_asterisk='$auto_restart_asterisk',asterisk_temp_no_restart='$asterisk_temp_no_restart',voicemail_dump_exten_no_inst='$voicemail_dump_exten_no_inst',gather_asterisk_output='$gather_asterisk_output',conf_qualify='$conf_qualify',web_socket_url='" . mysqli_real_escape_string($link, $web_socket_url) . "',routing_prefix='$routing_prefix',external_web_socket_url='" . mysqli_real_escape_string($link, $external_web_socket_url) . "',conf_engine='$conf_engine',conf_update_interval='$conf_update_interval'$custom_dialplanSQL where server_id='$old_server_id';"; $rslt=mysql_to_mysqli($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';"; @@ -20490,6 +20574,50 @@ if ($ADD==41111111111111) } +###################### +# ADD=42111111111111 modify vicidial confbridge record in the system +###################### +if ($ADD==42111111111111) + { + if ($LOGast_admin_access==1) + { + echo ""; + + $stmt="SELECT count(*) from vicidial_confbridges where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_to_mysqli($stmt, $link); + $row=mysqli_fetch_row($rslt); + if ( ($row[0] > 0) and ( ($conf_exten != $old_conf_exten) or ($server_ip != $old_server_ip) ) ) + {echo "
"._QXZ("AGENT CONFBRIDGE NOT MODIFIED - there is already a Conference in the system with this extension-server")."\n";} + else + { + if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) + {echo "
"._QXZ("AGENT CONFBRIDGE NOT MODIFIED - Please go back and look at the data you entered")."\n";} + else + { + echo "
"._QXZ("AGENT CONFBRIDGE MODIFIED").": $conf_exten\n"; + + $stmt="UPDATE vicidial_confbridges set conf_exten='$conf_exten',extension='$extension' where conf_exten='$old_conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_to_mysqli($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = preg_replace('/;/', '', $SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='VICICONF', event_type='MODIFY', record_id='$conf_exten', event_code='ADMIN MODIFY VICIDIAL CONFBRIDGE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_to_mysqli($stmt, $link); + } + } + } + else + { + echo _QXZ("You do not have permission to view this page")."\n"; + exit; + } + $ADD=32111111111111; # go to vicidial confbridge modification form below + } + + ###################### # ADD=411111111111111 modify vicidial system settings ###################### @@ -21739,12 +21867,34 @@ if ($ADD==51111111111111) else { echo "
"._QXZ("AGENT CONFERENCE DELETION CONFIRMATION").": $conf_exten - $server_ip\n"; - echo "

"._QXZ("Click here to delete phone")." $conf_exten - $server_ip


\n"; + echo "

"._QXZ("Click here to delete Conference")." $conf_exten - $server_ip


\n"; } $ADD='31111111111111'; # go to vicidial conference modification below } +###################### +# ADD=52111111111111 confirmation before deletion of vicidial confbridge record +###################### +if ($ADD==52111111111111) + { + echo ""; + + if ( (strlen($conf_exten) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) + { + echo "
"._QXZ("AGENT CONFBRIDGE NOT DELETED - Please go back and look at the data you entered")."\n"; + echo "
"._QXZ("ConfBridge must be at least 2 characters in length")."\n"; + echo "
"._QXZ("Server IP be at least 7 characters in length")."\n"; + } + else + { + echo "
"._QXZ("AGENT CONFBRIDGE DELETION CONFIRMATION").": $conf_exten - $server_ip\n"; + echo "

"._QXZ("Click here to delete ConfBridge")." $conf_exten - $server_ip


\n"; + } + $ADD='32111111111111'; # go to vicidial confbridge modification below + } + + @@ -24332,6 +24482,39 @@ if ($ADD==61111111111111) } +###################### +# ADD=62111111111111 delete vicidial confbridge record +###################### +if ($ADD==62111111111111) + { + echo ""; + + if ( (strlen($conf_exten) < 2) or (strlen($server_ip) < 7) or ($CoNfIrM != 'YES') or ($LOGast_delete_phones < 1) ) + { + echo "
"._QXZ("AGENT CONFBRIDGE NOT DELETED - Please go back and look at the data you entered")."\n"; + echo "
"._QXZ("ConfBridge must be at least 2 characters in length")."\n"; + echo "
"._QXZ("Server IP must be at least 7 characters in length")."\n"; + } + else + { + $stmt="DELETE from vicidial_confbridges where conf_exten='$conf_exten' and server_ip='$server_ip' limit 1;"; + $rslt=mysql_to_mysqli($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = preg_replace('/;/', '', $SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CONFERENCES', event_type='DELETE', record_id='$conf_exten', event_code='ADMIN DELETE CONFBRIDGE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_to_mysqli($stmt, $link); + + echo "
"._QXZ("AGENT CONFBRIDGE DELETION COMPLETED").": $conf_exten - $server_ip\n"; + echo "

\n"; + } + $ADD='12000000000000'; # go to vicidial confbridge list + } + + @@ -39530,7 +39713,7 @@ if ($ADD==311111111111) echo "\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; @@ -39855,6 +40042,37 @@ if ($ADD==311111111111) 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,sounds_update,vicidial_recording_limit,carrier_logging_active,vicidial_balance_rank,rebuild_music_on_hold,active_agent_login_server,conf_secret,external_server_ip,custom_dialplan_entry,active_twin_server_ip,user_group,system_uptime,auto_restart_asterisk,asterisk_temp_no_restart,voicemail_dump_exten_no_inst,gather_asterisk_output,web_socket_url,conf_qualify,routing_prefix,external_web_socket_url from servers where ( (server_id='$server_id') or (server_ip='$server_ip') ) $LOGadmin_viewable_groupsSQL;"; + $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,external_server_ip,custom_dialplan_entry,active_twin_server_ip,user_group,system_uptime,auto_restart_asterisk,asterisk_temp_no_restart,voicemail_dump_exten_no_inst,gather_asterisk_output,web_socket_url,conf_qualify,routing_prefix,external_web_socket_url,conf_engine,conf_update_interval from servers where ( (server_id='$server_id') or (server_ip='$server_ip') ) $LOGadmin_viewable_groupsSQL;"; $rslt=mysql_to_mysqli($stmt, $link); $row=mysqli_fetch_row($rslt); $server_id = $row[0]; @@ -39585,6 +39768,8 @@ if ($ADD==311111111111) $conf_qualify = $row[49]; $routing_prefix = $row[50]; $external_web_socket_url = $row[51]; + $conf_engine = $row[52]; + $conf_update_interval = $row[53]; $stmt="SELECT count(*) from vicidial_live_agents where server_ip='$server_ip';"; $rslt=mysql_to_mysqli($stmt, $link); @@ -39658,6 +39843,8 @@ if ($ADD==311111111111) echo "
"._QXZ("Web Socket URL").": $NWB#servers-web_socket_url$NWE
"._QXZ("External Web Socket URL").": $NWB#servers-external_web_socket_url$NWE
"._QXZ("Active Twin Server IP").": $NWB#servers-active_twin_server_ip$NWE
"._QXZ("Conferencing Engine").": $NWB#servers-conf_engine$NWE
"._QXZ("Conf Update Interval").": $NWB#servers-conf_update_interval$NWE
"._QXZ("Active Asterisk Server").": $NWB#servers-active_asterisk_server$NWE
"._QXZ("Auto-Restart Asterisk").":     $NWB#servers-auto_restart_asterisk$NWE
"._QXZ("Temp No-Restart Asterisk").":     $NWB#servers-asterisk_temp_no_restart$NWE

\n"; + ### list of vicidial confbridges on this server + echo "
\n"; + echo "
"._QXZ("AGENT CONFBRIDGES WITHIN THIS SERVER").":
\n"; + echo "\n"; + echo "\n"; + + $active_vdconfs = 0; + $stmt="SELECT conf_exten,extension from vicidial_confbridges where server_ip='$server_ip'"; + $rsltx=mysql_to_mysqli($stmt, $link); + $lists_to_print = mysqli_num_rows($rsltx); + if ($DB > 0) {echo "|$lists_to_print|$stmt|\n";} + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysqli_fetch_row($rsltx); + $o++; + $active_vdconfs++; + + if (preg_match('/1$|3$|5$|7$|9$/i', $o)) + {$bgcolor='bgcolor="#'. $SSstd_row2_background .'"';} + else + {$bgcolor='bgcolor="#'. $SSstd_row1_background .'"';} + + echo "\n"; + } + + echo "
"._QXZ("VD CONFBRIDGE").""._QXZ("EXTENSION")."
$rowx[0]$rowx[1]

\n"; + + echo "
\n"; $camp_lists = preg_replace('/.$/i','',$camp_lists); @@ -42004,6 +42222,56 @@ if ($ADD==31111111111111) } +###################### +# ADD=32111111111111 modify vicidial ConfBridge record in the system +###################### +if ($ADD==32111111111111) + { + if ($LOGast_admin_access==1) + { + if ( ($SSadmin_modify_refresh > 1) and ($modify_refresh_set < 1) ) + { + $modify_url = "$PHP_SELF?ADD=32111111111111&conf_exten=$conf_exten&server_ip=$server_ip"; + $modify_footer_refresh=1; + } + echo "
\n"; + echo ""; + + $stmt="SELECT conf_exten,server_ip,extension,leave_3way,leave_3way_datetime from vicidial_confbridges where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_to_mysqli($stmt, $link); + $row=mysqli_fetch_row($rslt); + $conf_exten = $row[0]; + $server_ip = $row[1]; + + echo "
"._QXZ("MODIFY AN AGENT CONFBRIDGE RECORD").": $row[0]\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
"._QXZ("ConfBridge").": $NWB#conferences-conf_exten$NWE
"._QXZ("Server IP").": $NWB#conferences-server_ip$NWE
"._QXZ("Current Extension").":
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

"._QXZ("DELETE THIS AGENT CONFBRIDGE")."\n"; + } + } + else + { + echo _QXZ("You do not have permission to view this page")."\n"; + exit; + } + } + + ###################### # ADD=311111111111111 modify vicidial system settings ###################### @@ -46448,6 +46716,45 @@ if ($ADD==10000000000000) } +###################### +# ADD=12000000000000 display all vicidial confbridges +###################### +if ($ADD==12000000000000) + { + echo "> + > 25) and (strlen($admin_hh) > 25) ) { ?> diff --git a/agc_2-X/trunk/www/vicidial/help_documentation.txt b/agc_2-X/trunk/www/vicidial/help_documentation.txt index 614fc2da..478d9c77 100644 --- a/agc_2-X/trunk/www/vicidial/help_documentation.txt +++ b/agc_2-X/trunk/www/vicidial/help_documentation.txt @@ -1,4 +1,4 @@ -# version: 20220730085701 +# version: 20220827090301 users-user User ID This field is where you put the users ID number, can be up to 20 digits in length, Must be at least 2 characters in length. We strongly recommend not reusing user accounts for different users, for reporting accuracy. To disable a user account, set the Active option to -N-. users-pass Password This field is where you put the users password. Must be at least 2 characters in length. Only letters and numbers are allowed in user passwords. A medium strength user password will be at least 10 characters in length, and a strong user password will be at least 20 characters in length and have letters as well as at least one number. It is recommended that you use a longer password if possible, stringing together several unrelated words with no spaces, and a number somewhere in the string. The maximum size of a password is 100 characters. users-force_change_password Force Change Password If this option is set to Y then the user will be prompted to change their password the next time they log in to the administration webpage or the agent screen. Default is N. @@ -998,6 +998,8 @@ servers-voicemail_dump_exten VMail Dump Exten The extension prefix used on servers-voicemail_dump_exten_no_inst VMAIL Dump Exten NI This is the dial plan prefix used to send calls directly to a user voicemail from a live call in the astGUIclient app. This is the No Instructions setting. servers-answer_transfer_agent auto dial extension The default extension if none is present in the campaign to send calls to for auto dialing. Default is 8365 servers-routing_prefix Routing Prefix If populated, this value will be added in front of the auto dial extension when an auto-dial call is placced on a dialer server that is running Asterisk verison 13 or higher. Default is 13. +servers-conf_engine Conferencing Engine The conferencing engine used by Asterisk for agent sessions. Default is MEETME. CONFBRIDGE is only supported by patched Asterisk 16 and higher servers. +servers-conf_update_interval Conf Update Interval The interval of the conferences updating process. Default is 60 seconds. servers-ext_context Default Context The default dial plan context used for scripts that operate for this server. Default is default servers-sys_perf_log System Performance Setting this option to Y will enable logging of system performance stats for the server machine including system load, system processes and Asterisk channels in use. Default is N. servers-vd_server_logs Server Logs Setting this option to Y will enable logging of all system related scripts to their text log files. Setting this to N will stop writing logs to files for these processes, also the screen logging of asterisk will be disabled if this is set to N when Asterisk is started. Default is Y.
\n"; + echo " "; + + $stmt="SELECT conf_exten,server_ip,extension from vicidial_confbridges order by conf_exten"; + $rslt=mysql_to_mysqli($stmt, $link); + $vicidialconf_to_print = mysqli_num_rows($rslt); + + echo "
"._QXZ("AGENT CONFBRIDGE LISTINGS").":\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($vicidialconf_to_print > $o) + { + $row=mysqli_fetch_row($rslt); + if (preg_match('/1$|3$|5$|7$|9$/i', $o)) + {$bgcolor='class="records_list_x"';} + else + {$bgcolor='class="records_list_y"';} + echo " 0) {echo " onclick=\"window.document.location='$PHP_SELF?ADD=32111111111111&conf_exten=$row[0]&server_ip=$row[1]'\"";} echo ">"; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
"._QXZ("CONFBRIDGE").""._QXZ("SERVER IP").""._QXZ("EXTENSION").""._QXZ("MODIFY")."
$row[0] $row[1] $row[2]"._QXZ("MODIFY")."
\n"; + } + + ###################### # ADD=100000000000000 display all qc campaigns ###################### diff --git a/agc_2-X/trunk/www/vicidial/admin_header.php b/agc_2-X/trunk/www/vicidial/admin_header.php index a7f6c326..dbcbfbe3 100644 --- a/agc_2-X/trunk/www/vicidial/admin_header.php +++ b/agc_2-X/trunk/www/vicidial/admin_header.php @@ -1,7 +1,7 @@ LICENSE: AGPLv2 +# Copyright (C) 2022 Matt Florell LICENSE: AGPLv2 # # CHANGES @@ -91,6 +91,7 @@ # 210907-1904 - Added new OWNERCUSTOMx handle methods for menu options # 211208-1920 - Added Queue Groups to admin sidebar and sub-menu # 211215-2225 - Added User Group options for altered header display +# 220827-0941 - Added ConfBridge top menu options # $stmt="SELECT admin_home_url,enable_tts_integration,callcard_enabled,custom_fields_enabled,allow_emails,level_8_disable_add,allow_chats,enable_languages,admin_row_click,admin_screen_colors,user_new_lead_limit,user_territories_active,qc_features_active,agent_soundboards,enable_drop_lists,allow_ip_lists from system_settings;"; @@ -2619,7 +2620,7 @@ if ($SSenable_languages == '1') 25) { ?> -
    |     |     |  
    |     |     |   |     |