From c0f34617e52ff877ebcebbbacb471d95c62e2127 Mon Sep 17 00:00:00 2001 From: mattf Date: Thu, 9 Apr 2020 21:23:06 +0000 Subject: [PATCH] Reorganized the Inbound section of admin.php Fixed help and docs for SIP Event Logging git-svn-id: svn://192.168.202.10@3223 3d104415-ff17-0410-8863-d5cf3c621b8a --- docs/SIP_EVENT_LOGGING.txt | 4 +- www/vicidial/AST_SIP_event_report.php | 14 ++- www/vicidial/admin.php | 111 ++++++++++++++---- www/vicidial/admin_header.php | 45 +++---- www/vicidial/help_documentation.txt | 3 +- www/vicidial/images/icon_callmenu.png | Bin 0 -> 1665 bytes www/vicidial/images/icon_chat.png | Bin 0 -> 802 bytes www/vicidial/images/icon_filterphonegroup.png | Bin 0 -> 1013 bytes 8 files changed, 128 insertions(+), 49 deletions(-) create mode 100644 www/vicidial/images/icon_callmenu.png create mode 100644 www/vicidial/images/icon_chat.png create mode 100644 www/vicidial/images/icon_filterphonegroup.png diff --git a/docs/SIP_EVENT_LOGGING.txt b/docs/SIP_EVENT_LOGGING.txt index 58257045..997a5b72 100644 --- a/docs/SIP_EVENT_LOGGING.txt +++ b/docs/SIP_EVENT_LOGGING.txt @@ -13,7 +13,7 @@ For phase 1 of this project, the basic framework of logging the SIP messages on For phase 2 of this project, we added some basic reporting(AST_SIP_event_report.php) which can show the summary details of every Answered call on the system with pop-up displays for all of the SIP events that happened on each call as well as a link to the modify lead page where you can also see the SIP events for every call to that lead(the SIP events are only stored for 7 days). -ADDED 2019-07-24: The new campaign "SIP Event Actions" settings will allow you to define specific actions to happen depending on what is in the SIP Event Log for each call. Initially this feature will only affect manual dial agent screen calls, for example, allowing you to automatically hang up manual dial calls that take less than one seccond from the dial event to the answer. See the "Campaign SIP Event Actions" section below for more information. +ADDED 2019-07-24: The new campaign "SIP Event Actions" settings will allow you to define specific actions to happen depending on what is in the SIP Event Log for each call. Initially this feature will only affect manual dial agent screen calls, for example, allowing you to automatically hang up manual dial calls that take less than one second from the dial event to the answer. See the "Campaign SIP Event Actions" section below for more information. ADDED 2019-09-25: The ability to log to vicidial_sip_action_log table. Also added auto-dial call SIP Action execution. @@ -130,7 +130,7 @@ If you include a message, it will be displayed on the agent's screen for 4 secon If you use 'logtable', a record will be inserted into the vicidial_sip_action_log table. -For auto-dialed calls, if 'hangup' is used, then 'dispo' will be assumed, even if no tdefined +For auto-dialed calls, if 'hangup' is used, then 'dispo' will be assumed, even if not defined diff --git a/www/vicidial/AST_SIP_event_report.php b/www/vicidial/AST_SIP_event_report.php index 32a9f7fc..1286daea 100644 --- a/www/vicidial/AST_SIP_event_report.php +++ b/www/vicidial/AST_SIP_event_report.php @@ -1,12 +1,13 @@ LICENSE: AGPLv2 +# Copyright (C) 2020 Matt Florell LICENSE: AGPLv2 # # CHANGES # # 190607-1522 - First build # 191013-0824 - Fixes for PHP7 +# 200409-1634 - Fixed help popup # $startMS = microtime(); @@ -480,8 +481,8 @@ if (strlen($group) < 1) {$group = 'call_date desc';} $LINKbase = "$PHP_SELF?query_date=$query_date&query_date_D=$query_date_D&query_date_T=$query_date_T&group=$group&DB=$DB&search_archived_data=$search_archived_data&report_display_type=$report_display_type"; -$NWB = "   \"HELP\""; +$NWB = "\"HELP\""; if ($file_download < 1) { @@ -501,8 +502,13 @@ if ($file_download < 1) \n"; + echo "\n"; + + echo ""; + echo "\n"; echo "\n"; + echo "\n"; require("chart_button.php"); echo "\n"; echo "\n"; @@ -591,7 +597,7 @@ if ($file_download < 1) echo "\n"; echo "\n"; - echo ""._QXZ("$report_name")." $NWB#single_agent_daily$NWE\n"; + echo ""._QXZ("$report_name")." $NWB#sip_event_report$NWE\n"; echo "
";
 	}
 
diff --git a/www/vicidial/admin.php b/www/vicidial/admin.php
index 0ccf6e1f..e95e27c2 100644
--- a/www/vicidial/admin.php
+++ b/www/vicidial/admin.php
@@ -4659,12 +4659,13 @@ else
 # 200406-0033 - Fix for Remote Agents where user deleted
 # 200406-2319 - Small changes to entries_per_page display(w/ display all), also added it for DIDs
 # 200407-1030 - Added browser_call_alerts system setting
+# 200409-1719 - Reorganized Inbound admin section
 #
 
 # 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-749a';
-$build = '200407-1030';
+$admin_version = '2.14-750a';
+$build = '200409-1719';
 
 $STARTtime = date("U");
 $SQLdate = date("Y-m-d H:i:s");
@@ -5562,6 +5563,7 @@ if ($ADD==8111)			{$hh='usergroups';	echo _QXZ("CallBacks Within User Group");}
 if ($ADD==10)			{$hh='campaigns';	$sh='list';	echo _QXZ("Campaigns");}
 if ($ADD==100)			{$hh='lists';		$sh='list';	echo _QXZ("Lists");}
 if ($ADD==130)			{$hh='lists';		$sh='droplist';	echo _QXZ("Drop Lists");}
+if ($ADD==1001)			{$hh='ingroups';	$sh='sections';	echo _QXZ("Inbound");}
 if ($ADD==1000)			{$hh='ingroups';	$sh='listIG';	echo _QXZ("In-Groups");}
 if ($ADD==1300)			{$hh='ingroups';	$sh='listDID';	echo _QXZ("DIDs");}
 if ($ADD==1320)			{$hh='ingroups';	$sh='didRA';	echo _QXZ("Modify DID RA Extension Overrides");}
@@ -7880,7 +7882,7 @@ if ($ADD==1811)
 		echo "
\n"; echo ""; - echo "
"._QXZ("ADD A NEW EMAIL GROUP")."
\n"; + echo "\"Email "._QXZ("ADD A NEW EMAIL GROUP")."\n"; echo "\n"; echo "
\n"; if ($voi_count > 0) @@ -7960,7 +7962,7 @@ if ($ADD==18111) echo "
\n"; echo ""; - echo "
"._QXZ("ADD A NEW CHAT GROUP")."\n"; + echo "\"Chat "._QXZ("ADD A NEW CHAT GROUP")."\n"; echo "\n"; echo "
\n"; if ($voi_count > 0) @@ -8103,7 +8105,7 @@ if ($ADD==1911) echo "
\n"; echo ""; - echo "
"._QXZ("COPY EMAIL GROUP")."\n"; + echo "\"Email "._QXZ("COPY EMAIL GROUP")."\n"; echo "\n"; echo "
\n"; if ($voi_count > 0) @@ -8165,7 +8167,7 @@ if ($ADD==19111) echo "
\n"; echo ""; - echo "
"._QXZ("COPY CHAT GROUP")."\n"; + echo "\"Chat "._QXZ("COPY CHAT GROUP")."\n"; echo "\n"; echo "
\n"; if ($voi_count > 0) @@ -8214,9 +8216,9 @@ if ($ADD==1311) if ($LOGmodify_dids==1) { echo "
\n"; - echo "\"Inbound\" "; + echo ""; - echo "
"._QXZ("ADD A NEW DID")."\n"; + echo "\"DIDs\" "._QXZ("ADD A NEW DID")."\n"; echo "\n"; echo "
\n"; echo "\n"; @@ -8244,9 +8246,9 @@ if ($ADD==1411) if ($LOGmodify_dids==1) { echo "
"._QXZ("DID Extension").": ("._QXZ("no spaces or dashes").")$NWB#inbound_dids-did_pattern$NWE
\n"; - echo "\"Inbound\" "; + echo ""; - echo "
"._QXZ("COPY DID")."\n"; + echo "\"DIDs\" "._QXZ("COPY DID")."\n"; echo "\n"; echo "
\n"; echo "\n"; @@ -8299,9 +8301,9 @@ if ($ADD==1511) ##### END ID override optional section ##### echo "
"._QXZ("DID Extension").": ("._QXZ("no spaces or dashes").")$NWB#inbound_dids-did_pattern$NWE
\n"; - echo "\"Inbound\" "; + echo ""; - echo "
"._QXZ("ADD A NEW CALL MENU")."\n"; + echo "\"Call "._QXZ("ADD A NEW CALL MENU")."\n"; echo "\n"; echo "
\n"; if ($voi_count > 0) @@ -8347,9 +8349,9 @@ if ($ADD==1611) ##### END ID override optional section ##### echo "
\n"; - echo "\"Inbound\" "; + echo ""; - echo "
"._QXZ("COPY CALL MENU")."\n"; + echo "\"Call "._QXZ("COPY CALL MENU")."\n"; echo "\n"; echo "
\n"; if ($voi_count > 0) @@ -8400,7 +8402,7 @@ if ($ADD==1711) echo "
\n"; echo ""; - echo "
"._QXZ("Add Filter Phone Group")."\n"; + echo "\"Filter "._QXZ("Add Filter Phone Group")."\n"; echo "\n"; echo "
\n"; echo "\n"; @@ -40045,6 +40047,75 @@ if ($ADD==130) } +###################### +# ADD=1001 display all inbound sections +###################### +if ($ADD==1001) + { + $subhead_font = "style=\"font-family:HELVETICA;font-size:14;color:BLACK;font-weight:bold;\""; + ?> + + + Inbound
+
"._QXZ("Filter Phone Group ID").": ("._QXZ("no spaces or special characters").")$NWB#filter_phone_groups-filter_phone_group_id$NWE
+ \n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "
 \n"; + echo "\n"; + echo "\n"; + echo " 0) {echo " onclick=\"window.document.location='$PHP_SELF?ADD=1000';\"";} echo ">\n"; + echo "\n"; + echo "\n"; + echo "\n"; + if ($SSemail_enabled>0) + { + echo " 0) {echo " onclick=\"window.document.location='$PHP_SELF?ADD=1800';\"";} echo ">\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + if ($SSchat_enabled>0) + { + echo " 0) {echo " onclick=\"window.document.location='$PHP_SELF?ADD=1900';\"";} echo ">\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + echo " 0) {echo " onclick=\"window.document.location='$PHP_SELF?ADD=1300';\"";} echo ">\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo " 0) {echo " onclick=\"window.document.location='$PHP_SELF?ADD=1500';\"";} echo ">\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo " 0) {echo " onclick=\"window.document.location='$PHP_SELF?ADD=1700';\"";} echo ">\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
"._QXZ("Inbound Groups")."
"._QXZ("Email Groups")."
"._QXZ("Chat Groups")."
"._QXZ("Inbound DIDs")."
"._QXZ("Call Menus")."
"._QXZ("Filter Phone Groups")."
\n"; + echo "
\n"; + echo "\n"; + echo "
 
\n"; + echo "
\n"; + echo "\n"; + echo "
 
\n"; + echo "
\n"; + echo "\n"; + echo "
 
\n"; + echo "
  \n"; + } + + ###################### # ADD=1000 display all inbound groups ###################### @@ -40154,7 +40225,7 @@ if ( ($ADD==1800) and ($SSallow_emails>0) ) $rslt=mysql_to_mysqli($stmt, $link); $ingroups_to_print = mysqli_num_rows($rslt); - echo "
"._QXZ("EMAIL GROUP LISTINGS").":\n"; + echo "\"Email "._QXZ("EMAIL GROUP LISTINGS").":\n"; echo "
\n"; echo ""; echo ""; @@ -40221,7 +40292,7 @@ if ( ($ADD==1900) and ($SSallow_chats>0) ) $rslt=mysql_to_mysqli($stmt, $link); $ingroups_to_print = mysqli_num_rows($rslt); - echo "
"._QXZ("CHAT GROUP LISTINGS").":\n"; + echo "\"Chat "._QXZ("CHAT GROUP LISTINGS").":\n"; echo "
"._QXZ("IN-GROUP")."
\n"; echo ""; echo ""; @@ -40345,7 +40416,7 @@ if ($ADD==1300) $rslt=mysql_to_mysqli($stmt, $link); $dids_to_print = mysqli_num_rows($rslt); - echo "\"Inbound "._QXZ("INBOUND DID LISTINGS").":\n"; + echo "\"Inbound "._QXZ("INBOUND DID LISTINGS").":\n"; if (strlen($next_prev_HTML) > 10) {echo "
  $next_prev_HTML
";} echo "
"._QXZ("IN-GROUP")."
\n"; @@ -40410,7 +40481,7 @@ if ($ADD==1500) $rslt=mysql_to_mysqli($stmt, $link); $menus_to_print = mysqli_num_rows($rslt); - echo "
"._QXZ("CALL MENU LISTINGS").":\n"; + echo "\"Call "._QXZ("CALL MENU LISTINGS").":\n"; echo "
\n"; echo ""; echo ""; @@ -40476,7 +40547,7 @@ if ($ADD==1700) $rslt=mysql_to_mysqli($stmt, $link); $lists_to_print = mysqli_num_rows($rslt); - echo "
"._QXZ("FILTER PHONE GROUP LISTINGS").":\n"; + echo "\"Filter "._QXZ("FILTER PHONE GROUP LISTINGS").":\n"; echo "
"._QXZ("MENU ID")."
\n"; echo ""; echo ""; diff --git a/www/vicidial/admin_header.php b/www/vicidial/admin_header.php index 5a055b4f..74ba4c76 100644 --- a/www/vicidial/admin_header.php +++ b/www/vicidial/admin_header.php @@ -82,6 +82,7 @@ # 191028-1739 - Added VM Message Groups # 200206-2314 - Added password length indicator # 200407-1534 - Added play_browser_sound javascript function for campaigns/ingroups +# 200409-1720 - Reorganized the Inbound section # $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;"; @@ -306,7 +307,7 @@ if($short_header) - + @@ -1840,8 +1841,8 @@ if ($subcamp_font_size < 4) {$subcamp_font_size='11';} ?> - 0) {echo " onclick=\"window.document.location='$ADMIN?ADD=1000';\"";} ?>> 0) {echo " onclick=\"window.document.location='$ADMIN?ADD=1001';\"";} ?>> 25) @@ -1890,12 +1891,12 @@ if ($subcamp_font_size < 4) {$subcamp_font_size='11';} else {$FPGlink = _QXZ("Add FPG Number");} ?> 0) {echo " onclick=\"window.document.location='$ADMIN?ADD=1000';\"";} ?>> 0) {echo " onclick=\"window.document.location='$ADMIN?ADD=1111';\"";} ?>> 0) {echo " onclick=\"window.document.location='$ADMIN?ADD=1211';\"";} ?>> 0) {echo " onclick=\"window.document.location='$ADMIN?ADD=1800';\"";} ?>> 0) {echo " onclick=\"window.document.location='$ADMIN?ADD=1811';\"";} ?>> 0) {echo " onclick=\"window.document.location='$ADMIN?ADD=1911';\"";} ?>> 0) {echo " onclick=\"window.document.location='$ADMIN?ADD=1900';\"";} ?>> 0) {echo " onclick=\"window.document.location='$ADMIN?ADD=18111';\"";} ?>> 0) {echo " onclick=\"window.document.location='$ADMIN?ADD=19111';\"";} ?>> 0) {echo " onclick=\"window.document.location='$ADMIN?ADD=1300';\"";} ?>> 0) {echo " onclick=\"window.document.location='$ADMIN?ADD=1311';\"";} ?>> 0) {echo " onclick=\"window.document.location='$ADMIN?ADD=1411';\"";} ?>> 0) {echo " onclick=\"window.document.location='$ADMIN?ADD=1320';\"";} ?>> 0) {echo " onclick=\"window.document.location='$ADMIN?ADD=1500';\"";} ?>> 0) {echo " onclick=\"window.document.location='$ADMIN?ADD=1511';\"";} ?>> 0) {echo " onclick=\"window.document.location='$ADMIN?ADD=1611';\"";} ?>> 0) {echo " onclick=\"window.document.location='$ADMIN?ADD=1700';\"";} ?>> 0) {echo " onclick=\"window.document.location='$ADMIN?ADD=1711';\"";} ?>> 0) {echo " onclick=\"window.document.location='$ADMIN?ADD=171';\"";} ?>> diff --git a/www/vicidial/help_documentation.txt b/www/vicidial/help_documentation.txt index 4ea86f13..ed6abe62 100644 --- a/www/vicidial/help_documentation.txt +++ b/www/vicidial/help_documentation.txt @@ -1,4 +1,4 @@ -# version: 20200407150901 +# version: 20200409124201 users-user User ID This field is where you put the users ID number, can be up to 8 digits in length, Must be at least 2 characters in length. users-pass Password This field is where you put the users password. Must be at least 2 characters in length. 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. Default is N. @@ -1267,6 +1267,7 @@ user_group_hourly_detail User Group Hourly Report Gives hourly count of dis rt_whiteboard_report-start_date Start date/time If filled out, the starting date and time that the report will use up through the current date and time when compiling the report. rt_whiteboard_report-show_results Show results for the past X hours If filled out and the start date-time is NOT filled out, the selected report will compile data starting at the time X hours ago up through the current time, which makes it a dynamic starting time as opposed to the set date-time used in the previous parameter. api_log_report API Log report This report shows all records in the API logging table that meet the report criteria. Reports can be run by date range that the API was accessed, the user, agent user, the API function called, and the API result. The report can also be run to include the actual URL of the API that was called and the IP address the request came from.

Additionally, if this extended version of the report is run, the variables used in the API call can be listed separately if the user creates a system container in the System Containers settings by the name of API_LOG_URL_COLUMNS (name must be exact). In this container, variable names are listed individually per line, and each listed variable is given it's own column in the detailed URL report. +sip_event_report SIP Event Report This report is only useful if you have enabled SIP Event Logging on your system(see the SIP Event Logging description in the Campaigns section in this manual for more information). This report will allow you to sort the SIP-messages for calls by several criteria. This report was used during the development of the campaign SIP Actions feature to help determine what calls were False Answer Supervision, by sorting the Ring-Time UP and DOWN. nanpa-running Currently running NANPA scrubs Displays a log of the currently running scrubs, including: Start Time, Leads Count, Filter Count, Status Line, Time to Complete, Field Updated, and Field excluded nanpa-settings Inactive Lists Contains all the inactive lists, that are eligible to be scrubbed. A list can only be scrubbed if Active is set to N on the list.
Field to Update -Indicates which lead field will contain the scrub result -Cellphone, Landline, or Invalid-. If NONE is selected it will use the default field Country_Code.
Exclusion Field -In conjunction with Exclusion Value allows administrators to indicate leads that are not to be scanned. This field indicates which list field contains the scrub result.
Exclusion Value -In conjunction with Exclusion Field allows administrators to indicate leads that are not to be scanned. This field indicates which scrub result -either Cellphone, Landline, or Invalid- should be ignored.
List Conversions -Administrators can indicate a list ID in any of the fields -Cellphone, Landline, or Invalid- and the scrub will move all the corresponding stamped leads to that list.
Time until Activation -allows The administrator to set how long, in the future, the scrub will occur. nanpa-log View Past Scrubs -link at the bottom- Click to see a log of all previous scrubs, including: Start Time, Leads Count, Filter Count, Status Line, Time to Complete, Field updated, Field Excluded, and total leads in each category. diff --git a/www/vicidial/images/icon_callmenu.png b/www/vicidial/images/icon_callmenu.png new file mode 100644 index 0000000000000000000000000000000000000000..30f126bf6a79b2b26c30515d835a5640c9f775a3 GIT binary patch literal 1665 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 literal 0 HcmV?d00001
"._QXZ("FPG ID")."                                
> - +
> +
  - + \"In-Groups\"
  - + \"
  - + \"
  - + \"Email
  - + \"
  - + \"
  - + \"
  - + \"
  - + \"
  - + \"DIDs\"
  - + \"
  - + \" 0) { ?>
  - + \"
  - + \"Call
  - + \"
  - + \"
  - + \"Filter
  - + \"
  - + \"