################ UPGRADE

NOTE: Upgrading from 2.11 to 2.13 is below the first section
NOTE: Upgrading from 2.9 to 2.11 is below the first section
NOTE: Upgrading from 2.7 to 2.9 is below the first section
NOTE: Upgrading from 2.4 to 2.7 is below the first section
NOTE: Upgrading from 2.2.1 to 2.4 is below the first section
NOTE: Upgrading from 2.0.5 to 2.2.0 is below the second section
NOTE: Upgrading from 2.0.4 to 2.0.5 is below the third section
NOTE: Upgrading from 2.0.3 to 2.0.4 is below the fourth section
NOTE: Upgrading from 2.0.2 to 2.0.3 is below the fifth section
NOTE: Upgrading from 2.0.1 to 2.0.2 is in the next section
NOTE: Upgrading from 1.1.12-3 to 2.0.1 is at the bottom

########## UPGRADING FROM 2.13 TO 2.14 ##########

OPTIONAL STEPS(But highly recommended) - Backup existing system:

1.  Run this for a 1-server system or server with database on it:  
  (this may take hours on large system)
   /usr/share/astguiclient/ADMIN_backup.pl --debugX

2. Run this on dialer/Asterisk-only servers:
  (do not run this if you only have one server):
   /usr/share/astguiclient/ADMIN_backup.pl --debugX --without-db --without-web


REQUIRED STEPS!!!

1. Check system_settings, make sure you are at DB Schema Version 1478 or higher
	If not, run the instructions for 2.11 to 2.13 before this section.

2. upgrade the MySQL asterisk database(you have two options):
    A. Running the upgrade file directly from Linux:
	mysql -f --database=asterisk < /path/from/root/extras/upgrade_2.14.sql

    B. Going into mysql and executing the upgrade sql file:
	mysql
	use asterisk
	\. /path/from/root/extras/upgrade_2.14.sql
	quit

3. install new files:
	perl ./install.pl
	NOTES: If you have customized any scripts in the bin or agi folders, 
	then make sure you back them up before running the install.pl script. 
	This script will replace existing files in the astguiclient installation.

4. For each of your ViciDial servers, go the Admin -> Servers -> Modify Server
	page and set each one to "Rebuild conf files = Y" and click submit.
	This will rebuild the conf files to ensure any changes are updated.

5. On one server only, update your phone codes data:
       /usr/share/astguiclient/ADMIN_area_code_populate.pl --purge-table --debug


OTHER CHANGES:

1. Added AST_inbound_export.pl script for in-group call data exports

2. Added cm_sc_areacode.agi script that allows you to use a Settings Container
	with the script in a Call Menu to define different destinations for 
	customers from each state to go to: DID, CALLMENU, EXTEN

3. Added Agent DID Report

4. Added the ability for internal chats to have more than one agent participant

5. Added cm_phonesearch.agi script that can search for a phone number within the
	system and redirect a call to an in-group that is defined as the Default
	Transfer Group in a campaign that the lead belongs to. This must be 
	configured in a Call Menu

6. Added In-Group option to populate new leads with a DID descriptive value in 
	the province field of the new lead.

7. Added cm_sc_send_url.agi script for Call Menus on calls tied to a lead_id to
	send a URL defined in a Settings Container.

8. Added phone_number_log Non-Agent API export function

9. Added api_only_user User option to prevent access to admin and agent screens
	by an API-only user account.

10. Added logging of API request URLs

11. Added campaign setting for Dead Call to Dispo Only, to allow the Dead Call
	Max Seconds setting to send the agent to the dispo screen

12. Added web lead loader duplicate check options to check for leads loaded only
	within the last 90-days. Also added to Non-Agent API add_lead function.

13. Added Agent API function switch_lead to switch the active call lead_id while
	the agent is on a live inbound phone call.

14. Added In-group areacode_filter feature, allowing you to drop calls after a 
	set number of seconds in queue that either match or do not match a list
	of areacodes defined per in-group.

15. Added new DNC options to Manual Dial Filter campaign feature that are not
	tied to the campaign DNC settings.

16. Changed Emergency Logout processes to hangup all agent session calls, and
	added better logging

17. Changed Custom Fields of SCRIPT type to allow URLs and urlencoded variables
	when using --U-- and --V-- to declare variables

18. Added option for custom list fields to be required for all calls or only 
	inbound calls. Will prevent agent hanging up call if field is not filled
	in. Must also have campaign option enabled for it to work. Will work for
	the following custom field types: 
		TEXT, AREA, DATE, SELECT, MULTI, RADIO, CHECKBOX

19. Added admin Automated Reports section, allowing easier web configuration of 
	scheduled reports being sent by Email or FTP.

20. Added campaign option to validate transfer agent list based upon which
	AGENTDIRECT in-groups those agents had selected.

21. Added In-Group option to look up the state based upon the areacode of the
	caller ID phone number of the person calling in.

22. Added CHAT option to Inbound Queue No Dial campaign setting to prevent
	outbound auto-dialing if a chat is waiting for an agent

23. Added qualify option to phones for IAX type phones

24. Added Pause Code Time Limits to allow you to set a time limit on the number
	of seconds an agent can be in a specific pause code before the real-time
	report will show them in a different color.

25. Added Drop Lists feature, allowing you to add new leads to a list built from
	DROPped calls from inbound groups on a scheduled basis.

26. Added USER_CUSTOM_ options to campaign custom callerID setting to allow for
	custom caller IDs to be used per agent in MANUAL and INBOUND_MAN modes

27. Added IP Lists feature, allowing creating of lists of IP Addresses that can
	be used as whitelists on a User Group basis for Agent, Admin and API
	web resources.

28. Added campaign option(with user override) Ready Max Seconds Logout to log an
	agent out of the agent screen if they have been in a ready state for 
	more than X seconds.

29. Added cm_fpg.agi script to allow callers to place their phone numbers into a
	Filter Phone Group. Works from a Call Menu.

30. Added Inbound and Advanced Forecasting Reports. Both use the Erlang formulas
	and past data to forecast agent and call metrics.

31. Added campaign option for Callbacks Display Days which can limit the 
	scheduled callbacks displayed to an agent by a number of days from now

32. Added campaign options to stop recording when a 3-way call is started and 
	start recording when the hangup xfer line button is clicked

33. Added start call URL feature support for manual dial calls

34. Added logging of Real-Time report monitoring, and report in Admin Utilities

35. Added Agent Push Events, allowing for HTTP Push events to be sent on agent
	screen events. See the AGENT_EVENTS.txt doc for more details.

36. Added Add-to-hopper options to update_lead function in the Non-Agent API

37. Added basic one-way Cross-Cluster-Communication feature. Allowing for lead
	information to pass from one VICIdial system to another with a call. 
	See the CROSS_CLUSTER_COMMUNICATION.txt document for more information.

38. Added Real-Time agent status of "DIAL" for agent manual dial calls after
	they have been placed but before they have been answered.

39. Changed password fields to allow up to 100 character passwords. Also changed
	password recommendations to emphasize length over complexity.

40. Added logging and notification of 3-way call hung up in agent screen.

41. Added URL logging of Agent Screen Webform button clicks and URLs

42. Added AST_agent_wait_check.pl script to send out emails if there are agents
	waiting more than X seconds.

43. Added In-Group option to ask callers if they would take a survey after
	agent has handled their call. Overrides agent HANGUP CUSTOMER button
	to send call to survey instead.

44. Added system setting to allow Lead Management admin utilities to handle
	active lists. Also changed Advanced Lead Management tool to allow
	you to select multiple lists.

45. Added Inbound DID Summary Report

46. Added Agent Inbound Status Summary Report

47. Added experimental support for Asterisk 13. See the ASTERISK_13.txt doc 
	for notes on changes needed to get it to work.

48. Added System Settings option to set lists to inactive once they pass their
	expiration date

49. NEW REQUIREMENT!!! Perl CPAN Net::Telnet version 3.0.4(April 21, 2013)
	If you are using an older Net::Telnet version, you will need to upgrade!
	this should take just two commands: "cpan" and "install Net::Telnet"

50. Added DID System-wide filter option to System Settings

51. Added DNC.COM inbound number filtering with DNCcom_inbound_filter.php

52. Added cm_cid_change.agi script to alter the CID of calls in the Call Menu
	Prompt. Also, added ability for cm_dnc.agi to recognize Vicidial-tagged
	calls and update lead records without lookups from a phone number

53. Added Webphone Layout option in Phones and override in User Groups

54. Added campaigns-scheduled_callbacks_email_alert option to send email alerts
	to agents when scheduled callbacks are triggered while they are logged
	in to the agent screen. Read the HELP for instructions to set up.

55. Added new Real-Time Whiteboard multi-report

56. Added the ability to include duplicate custom text fields in a custom fields
	form in the agent screen.

57. Added Max Inbound Calls Outcome to allow for different behaviors when an 
	agent reaches their maximum inbound calls for the day

58. Added campaign option to allow agents to pause the Manual Dial Auto Next 
	feature

59. Added ability to display inbound email messages in Script tab scripts.

60. Added dispo_change_status.php script to allow changing of a lead's status
	to a different status after it has been dispositioned as a specified 
	status a set number of times.

61. Added Agent Screen Time Report campaign option, to display agent time
	statistics in the agent screen for the current day.

62. Added List Override setting for Default Transfer Group

63. Added lead_status_search Non-Agent API function

64. Added "Next-Dial My Callbacks" campaign setting that will automatically dial
	USERONLY Scheduled Callbacks for agents in MANUAL or INBOUND_MAN 
	no-hopper campaigns when they click DIAL NEXT NUMBER in the agent screen

65. Added "Anyone Callback Inactive Lists" System Setting option to determine
	how ANYONE scheduled callbacks from inactive lists should be handled.

66. Added "Inbound No-Agents No-Dial" Campaign setting, checks if any agents are
	ready and waiting for phone calls from listed In-Groups before allowing 
	outbound auto-dialing. 

67. Added new PRESS_CALLBACK_QUEUE option to Hold Time and Wait Time In-Group 
	settings, allowing for a customer to retain their place in line in the
	queue and be called back when their turn is reached.

68. Added new Closed Time features to In-Groups that allow all calls in queue
	to be presented with an option when the in-group closing time for the
	day has been reached. Also, an option was added to manually force the 
	end of all queueing of calls for an in-group for the day.

69. Added dial_ingroup option to Agent API external_dial function.

70. Added In-Group option to look up timezone of customer when a new lead is 
	added during the routing of the call.

71. Added the Outbound Lead Source Report

72. Added basic GDPR features for lead activity download and delete. Must enable
	System setting and user permission to use.

73. Added CID Groups, allowing for groups of caller IDs to be defined by state
	or areacode, and allowing a single CID Group to be set across multiple
	campaigns.

74. Added NO_READY option for no_agent_no_queue in-group feature.

75. Added campaign option "Script on top of Dispo" to allow the agent screen
	script tab to cover the dispo screen after hanging up the customer to
	allow for Agent-API-enabled IFRAMEs to control the agent dispo process.

77. Added feature to allow for bulk change of campaign and in-group ranks and
	grades in the User Modify page.

76. Added "Admin Lead Source ID Display" System Settings option to allow Modify
	Lead page modification of Source ID field, and display in hopper list.

77. Added LOCALFQDN trigger for webforms and script Iframes to allow for use of 
	absolute URLs on multi-home networks. See CALL_URL_FEATURES.txt doc.

78. Added update_did Non-Agent API function

79. Added pause code manager approval option, requires a manager to approve a
	specific flagged pause code before the agent is allowed to use it in 
	their agent screen. Manager approves by entering their login credentials
	into a window on the agent's screen.

80. Added DISPO_FILTER Settings Container option allowing for match-and-replace
	function in Dispo Call URLs. See CALL_URL_FEATURES.txt doc for details.

81. Added populate_lead_vendor and populate_lead_source options for In-Groups.

82. Added In-Group option to override the Park Music-on-Hold.

83. Added SWITCH custom field type to put buttons on the agent FORM to allow for
	the form to be switched while on an active call.

84. Rewrote HELP display in web admin screens to function as database-driven
	javascript popup.

85. Added per-user options for maximum number of outbound manual dial hopper 
	calls per-hour and per-day.

86. Added In-Group option for Waiting Call On/Off URL, which we added to allow
	a client to control a web-power-switch to turn lights on and off if 
	there are any calls waiting in an In-Group.

87. Added In-Group option for Enter In-Group URL, which can send a URL request
	when a caller enters an In-Group right before the system looks for an 
	agent to send the call to.

88. Added Manual Dial Routing Initiated Recording, must enable setting at the
	campaign level and have a 0 recording delay.

89. Added campaign features for Dead Call Trigger. Allowing an audio alert to be
	sent to an agent and/or a back-end URL to be submitted when an agent has
	been in a dead call for X number of seconds.

90. Added the ability for customers to be able to enter a new phone number to be
	called back on for the CallerID CallBack Queue feature.

91. Added the new Callmenu Survey Report(linked as "Callmenu Agent" in Reports).

92. Added "Agent Screen Logout Link Credentials" System Setting to change the 
	agent screen logout page login link to not include user credentials.
	
93. Added new campaign feature to force agents to call back their triggered 
	USERONLY Scheduled Callbacks.

94. Added new campaign feature to automatically reschedule ANYONE callbacks when
	they are dispositioned as a non-Human-Answered status flag status.

95. Added new campaign feature to allow agents to select a specific timezone to
	use when scheduling callbacks. For this to work, the Phone Codes must be
	updated on your system using the following command:
    /usr/share/astguiclient/ADMIN_area_code_populate.pl --purge-table --debug

96. Added new 'force_fronter_leave_3way' Agent API function, allowing an API
	command to be sent to the fronter of a call to leave-3way their call.

97. Added List Daily Reset Limit option, only editable by level 9 users.

98. Added 3-Way Volume Buttons campaign setting to allow disabling of volume
	and mute buttons in the LIVE CALLS IN YOUR SESSION panel during a 3-way
	call.

99. Added campaign setting to filter ANYONE Scheduled Callbacks by the DNC 
	settings set in the campaign

100. Added _wait_time options to Next Agent Call settings for Campaigns and
	Inbound Groups.

101. Added External Web Socket URL option so a WebRTC phone can be used outside
	a network if the Phone is set to Use External Server IP = Y

102. Added SYSTEM options to the campaign detail Manual Dial Filter feature

103. Added lead_callback_info Non-Agent API function, it outputs scheduled 
	callback data for a specific lead

104. Added Manual Dial Validation campaign and system settings, forces agent to
	manually enter in the phone number before a call is placed. Does not 
	affect 3way calls or transfers.

105. Added alphabet letters translation to phone DTMF digits feature in Agent
	Screen. For example, Putting "SMITH" in the SendDTMF field would result
	in "76484" being sent over DTMF.

106. Added "force_fronter_audio_stop" Agent API function, allowing an API
	command to be sent to the fronter session of a closer call to stop
	playing of an audio_playback pre-recorded audio stream

107. Added options to define the static prompts to use for the Inbound Group 
	"Play Place in Line" feature

108. Added new web pages for mobile application

109. Added feature allowing agents to mute recordings of calls from the agent
	screen. Must be enabled in System Settings to be able to use it in
	campaigns. There is also a User Override option.

110. Added more options to the Campaign "Hide Call Log Info" feature to be able
	to show only the last X number of calls in the Lead Info screen. Also 
	added a User Override setting for this feature.

111. Released VICIdial Manager Manual version 2.14-704a:
	http://www.vicidial.org/store.php#MANAGER

112. Added more logging for Asterisk AMD as well as beta AMD patch for logging
	of NOAUDIODATA answered calls and more AMD stats gathering. Also added
	an AMD Log Report to the Admin Utilities page.

113. Added Admin User Redirect URL settings, which allows you to define a web 
	address that a user is to be sent to when they log in to the admin web 
	screen. This is usually used for level 7 report only users to send them 
	to one specific report when they log in without seeing the admin web 
	screen at all. Must be enabled in System Settings.

114. Added experimental SIP event logging. Requires patched Asteirsk 13 and 
	newer version of MySQL/MariaDB. Must be enabled in System Settings and
	each dialer's astguiclient.conf/extensions.conf/manager.conf files
	Read SIP_EVENT_LOGGING.txt doc for more details

115. Added new Non-Agent API function 'update_cid_group_entry' which allows you
	to add/update/delete/info CID Group entries and AC-CID entries

116. Added new Non-Agent API 'custom_fields_copy' option to the 'add_list' 
	function

117. Added new Call Quota Lead Ranking recycling feature-set. A new and 
	completely different way to do lead recycling for outbound campaigns.
	See the CALL_QUOTA_LEAD_RANKING.txt document for more info

118. Added bench_agent_assign.php script to allow managers to move 
	'owner-assigned' to another agent.

119. Added User Inbound Max Calls filtering options. Allowing selective counting
	of inbound calls excluding calls involving set in-groups, statuses and 
	with a minimum time threshold. Also, new in-group routing options based
	on last non-filtered call times

120. Added System Settings option for second agent screen script tab

121. Added a Campaign option for VoiceMail Message Groups, allowing agents to be
	able to select a message to transfer a customer answering machine to
	from a list of pre-recorded messages that can be defined by time-of-day.

122. Added a Campaign option to not send an agent immediately to the disposition
	screen after transferring a customer call to a VoiceMail Message.

123. Added Campaign option for Dial Timeout Lead overrides, allowing you to set
	up a Settings Container with values for manual-dial and/or auto-dial
	lead fields and associated values that will tie to different 
	Dial Timeouts.

124. Added LTMGAD and XAMMAD Campaign Hotkey options that will transfer to the 
	Leave-Voicemail option as well as dispositioning the call.

125. Added a per-User option to define an additional Status Group of call 
	statuses that agents can use to disposition all calls they handle.

126. Added System Setting to hide the first web form button on the agent screen.

127. Added System Setting options for alternate agent screen recording buttons.
	This includes different wording, different sizes and removing the blank
	space below the recording buttons.

128. Added ability to play multiple audio prompts for outbound survey campaigns
	and to use DYN for lead field wildcards defined as audio prompts.

129. Added ability to limit the number of voicemail messages played to a single 
	lead per day, as a campaign setting.

130. Added CID Group Type of NONE to allow for a group of outbound CIDs to be 
	used for all outbound phone calls no matter where they are. 

131. Added Auto-Rotating CID Group numbers, allowing for timed automatic cycling
	of CID numbers, one-at-a-time, within a CID Group.

132. Added optional OpenSIPs CallerID Name settings, for use only with systems
	that use an OpenSIPs server to route outbound calls where this feature
	has been enabled.

133. Added system settings option to require passwords of a set minimum length.
	This setting affects User passwords, Phone and Server registration 
	passwords and the System Settings default passwords.

134. Added support for KHOMP Answering Machine Detection. This is a 3rd-party
	commercial(paid-for) solution. The code and documentation can be found
	in the "extras/KHOMP" directory of the codebase.

135. Added AMD Agent Route Options as a campaign option allowing you to set
	the specific AMD responses for calls that should be routed to agents

136. Added the "list_custom_fields" Non-Agent API function, to show all list 
	custom data fields in a list/all-lists.

137. Added an optional "send this user a login link email" link to the User
	Modify page to send a shortcut URL link for the agent to more easily
	log into the agent screen. Must be enabled in System Settings.

138. Added new System Settings option to allow sending of any CallerID through
	the Agent API for external_dial outbound calls.

139. Added system setting to allow you to restrict Admin Phones display to a 
	set number of records per page.

140. Added options at the campaign and in-group levels to allow you to play 
	alert sounds when a call arrives in the agent's session, in the agents'
	web browser that they are logged into the agent screen with. Must be
	enabled in system settings.

141. Added "3-Way Recording Stop Exception" campaign option to override the 
	"3-Way Recording Stop" setting based upon the 3way phone number dialed.

142. Added the ability to use Automated Reports with standard SFTP and FTPSSL
	remote servers.

143. Added the ability to configure when the Answer signal is sent to inbound 
	calls at the DID, In-Group and Call Menu level. For this to work, you 
	must set the conf files to be rebuilt after upgrading your systems.

144. Added options for HTML formatting and UTF-8 charset in emails through the
	dispo_send_email.php script.

145. Added tools for International DNC phone number scrubbing. See the
	INTERNATIONAL_DNC_SCRUB.txt doc for more information.

146. Added option '2' to the User Modify "Modify Leads" setting allowing admin
	users to modify all lead fields except for phone number and alt phone.

147. Added campaigns_list & hopper_list functions to the Non-Agent API

148. Added code and instructions for multi-campaign outbound agents, see the
	AGENT_MULTI-CAMPAIGN_DIALING.txt doc

149. Added Screen Colors option to set the submit button color on the admin
	screens and reports.

150. Added the ability to modify the status of any call or agent log in the
	Admin Modify Lead page. Must use new 'Modify Leads' options to enable
	for a user.

151. Added system settings allowing you to remove digits from the beginning of
	a phone number when it is manual dialed or through the web lead loader.

152. Added Pause Max Exceptions campaign setting, allowing for exceptions to the
	Agent Pause Max feature for specified Pause Codes.

153. Added optional display of parked call stats and SLA 1&2 percentages to the
	Real-Time Report

154. Added Campaign setting for Hopper Drop-Run triggering. Forcing the one-time
	hopper insertion of DROP status leads instead of standard hopper loading

155. Added Agent API function 'vm_message' allowing you to set the VM message to
	be played to a customer when the agent clicks on the VM button in the
	agent screen.

156. Added Daily Called Count Limits as a campaign setting, with options to
	count and/or restrict for manual dial calls or not.

157. Added Transfer-Conf Button Launch campaign setting, allowing you to set a
	webform window to open when an agent clicks on the Transfer-Conf button.

158. Added SHARED_... campaign dial method auto-dial options, for more efficient
	agent multi-campaign dialing. Read the AGENT_MULTI-CAMPAIGN_DIALING.txt
	document for more information.

159. Added Agent Search Method override options for campaigns and in-groups.

160. Added 'copy_user' function to the Non-Agent API.

161. Added 'add_did' function to the Non-Agent API.

162. Added new SOURCESELECT Custom Field Type, it is a single-selection pull-
	down menu where there are multiple sets of options available depending 
	on the value of another field for the lead. Also added the ability to
	perform basic Math functions within a SCRIPT Custom Field using values
	from other fields in the equations. For more information on how both of
	these new features work, see the Field Options help in the admin web
	screen.

163. Added Phone Defaults system setting, allowing you to set many default
	values when adding new phones through admin.php. Also added a Copy New
	Phone admin web function.

164. Redesign of QC module, with new QC scorecards, the ability to do QC by 
	Campaign/List/In-Group, new reporting and more. See the
	docs/QC_PROCCES.txt document for more information.

165. Added the BUTTON Field Type option to Custom List Fields. Allows you to add
	a button to the form that will commit any changes made in the form and 
	automatically reload the form.

166. Added Two-Factor Authentication(2FA) as an option for the admin web screens
	This adds a required second step to the admin web screen login process 
	through a method other than a password, such as: an Email, Phone Call or
	Text-Message(SMS). This 2FA auth also lasts only a set amount of time
	(defined in System Settings[number of hours, from 1-9999 hours]), or 
	until the user logs out. For more information, read the
	2FA_TWO_FACTOR_AUTHENTICATION.txt document.

167. Added a page to allow Editing existing Lead Loader Templates.

168. Added System Settings for "Agent Hidden Browser Sound" to repeatedly play
	a selected sound at a set interval to an agent when their Agent Screen 
	is hidden from view. Can be used to disable web browser javascript 
	throttling if set to an	audible sound at a 20 second interval. Tested 
	with the 'click_quiet' sound file at a volume of '25'.

169. Added WAV audio file validation for Audio Store, and display of badly
	formatted WAV files in the audio chooser in admin.php

170. Added "Leave 3-Way Start Recording" campaign feature that will start a new
	recording after the agent clicks on the LEAVE 3WAY button and leaves the
	call. Also includes an "Exception" option to disable/enable only for 
	specific 3-way call numbers.

171. Added "Populate Lead Comments" In-Group option, allowing configuration of
	how the 'comments' lead field is filled-in when a new lead is inserted
	because of an inbound phone call.

172. Added options to add/update/delete custom fields within the 'update_list'
	function of the Non-Agent API.

173. Added Settings Compare Utility page to Admin Utilities to allow you to 
	compare the settings from two records in your system and see what
	settings are different between the two.

174. Added campaign options to add extra lead-field columns to the "Calls In
	Queue" panel in the agent screen.

175. Added Calls In Queue Count Display campaign options, allowing for two 
	separate Calls Waiting counters at the top of the agent screen, each
	with separate configurable labels and in-group/campaign parameters.
	Also, this can be used with the alt_display.php script.

176. Added new "Music on Hold Suggest" Phones setting for SIP and IAX phones.
	It will define the Hold music played to a customer when the phone user
	puts them on hold through the phone.

177. Added compatibility with TILTX STIR/SHAKEN Call Shaper pre-carrier call
	filtering service. Read the TILTX_SHAKEN_API.txt doc for more info.

178. Added In-Group Drop Seconds Override Container, allowing for overriding of
	the Drop Seconds setting based upon the day of the week and time of day.

179. Added Inbound Manual Dial Agent Forced Ready features allowing for forcing
	agents in INBOUND_MAN dial method campaigns to be in the READY state
	(able to take inbound calls) for a set amount of time before they are 
	able to click on the DIAL NEXT NUMBER button each time. Also allows for 
	an override setting based upon the day of the week and time of day.

180. Added CORS(Cross-Origin Resource Sharing) support for the VICIdial agent
	PHP scripts and select admin PHP scripts. see the CORS_SUPPORT.txt doc
	for more information.

181. Added Transfer No Dispo campaign setting, allowing for transferred calls
	to not immediately show the disposition panel on the agent screen.

182. Added User override setting for campaign Manual Dial Filter option.

183. Added display of active Call Time Holidays in the agent screen Scheduled 
	Callbacks calendar panel.

184. SECURITY NOTE: For agent screen Webform buttons, we have changed the 
	default behavior to not include user credentials in non-custom URL
	strings unless you set the new agc/options.php settings to do so:
	"$user_pass_webform and "$phone_login_webform"
	See the "agc/options-example.php" file for more information.
	*This will not affect custom webform query strings that start with "VAR"

185. Added display of the Phone Codes and Postal Codes that are loaded into the
	system. Linked from the System Settings page.

186. Added 24-Hour Called Count Limit campaign feature, allows you to limit the
	number of calls to be placed to a phone number or lead in a 24-hour time
	period. Also allows for state-based override settings. For more 
	information, read the CALL_COUNT_LIMITS.txt doc.

187. Added CID Group Failover setting for campaigns, to allow for backup CID
	Group to use if no AREACODE or STATE match found from first CID Group.

188. Added agc/dispo_list_quota.php script to deactivate lists once a limit of
	the number of leads matching set statuses is reached. See the comments
	in the code for more details.

189. Changed agc/dispo_send_email.php to only allow attachments in the new 
	"agc/attachments" web directory.

190. Added Asterisk 16 "PJSIP" compatibility

191. Added 'batch_update_lead' Non-Agent API function

192. Added 'Agent In-Call Tally Seconds Threshold' campaign setting, to better
	handle dialing volume on campaigns with long agent talk time.

193. Added 'In-Queue No Agents Check' in-group setting, to allow for checking of
	logged-in or available agents for the in-group while calls are in-queue,
	and if there are no agents available, sending the customers to the
	No-Agent-No-Queue Action. With configurable pause code exceptions.

194. Added MIN LENGTH to the Dispo Call URL ALT admin screen, allowing for a
	minimum call time threshold before a Dispo Call URL will trigger.

195. Added User Location to the Modify User page. Also added Queue Groups Admin
	pages, allowing you to define multiple campaigns and/or in-groups in a 
	single Queue Group to be used in some reports.

196. Added Campaign and List options for "Auto Alt-Number Dialing Threshold"
	allowing you to stop auto-dialing alternate phone numbers for a lead 
	after a set number of call attempts, and thereafter only dialing the 
	main phone number for the lead.

197. Added 'update_alt_url' Non-Agent API function

198. Added "Pause Max URL" Campaign feature

199. Added "Allow Web DB Debug" System Settings feature, to allow use of the $DB
	variable on the web screens for troubleshooting issues. 
	It is disabled by default.

200. Added List CID Group Override to the List Modification admin screen.

201. Added "Pre-Filter Recent Call" DID feature, to be able to filter out 
	inbound calls based on the caller phone number and whether it had been 
	called(or had called in) within the last X number of days.

202. Added the "Inbound DID Detail Report" to the Admin Utilities page.

203. Added Beta support for ConfBridge Asterisk Conferencing engine. See the
	"/extras/ConfBridge" directory for more information.

204. Added Beta support for VERM(the VICIdial Enhanced Reporting Module),
	accessible from the "Reports -> Admin Utilities" page.

205. Added User Group "Script Override" option, with per-campaign activation.

206. Added "Webphone Settings" option to Phones, allows for more WebRTC config
	options to be set through a Settings Container.

207. Added "Agent Call Hangup Route" campaign settings, allowing you to send 
	calls that an agent is finished with to a Call Menu, In-Group or a 
	pre-recorded message before hanging up the call.

	NOTE: After upgrading your system, be sure to set each dialer to 
	"Rebuild conf files" = 'Y' for this feature to work properly.

208. Added instructions and scripts for creating a Gateway Recording server
	See the GATEWAY_RECORDING_SERVER.txt doc for more info.

209. Added the ability to have multiple "No Agent Call URL" entries for a 
	single Campaign/In-Group/List, by putting "ALT" in the No Agent Call URL
	field on the Campaign, In-Group, List modify screen. Just like how it 
	works with Dispo Call URL currently.

210. Added new User Group “Script Tab Frame Location” allowing the script tab 
	to extend to the far left side of the screen.

211. Added new campaign setting “Max Logged-In Agents”, allowing you to set a 
	maximum number of agents that can be logged into this campaign at any 
	time.

212. Added list option for “Dial Prefix Override”.

213. Added a “color chooser” for the In-Group Color and Screen Colors fields. 
	Also added color hex code validation to those fields.

214. Added “Invalid Phone Number Replacement” option to the Web Lead Loader, 
	allowing you to replace an invalid phone_number lead value with either 
	the alt_phone or address3 value in the same lead.

215. Added optional “Agent Login Kick-all” system setting which hangs up any 
	channels that were already in the agent session before the agent is 
	placed into the session.

216. Added “User Codes Admin Pulldown” allowing only User Level 9 users to 
	modify the User Code field on the User Modify page, and it will change 
	the User Code field to a pulldown menu.

217. Added "Show Confetti" campaign setting, allowing for confetti to be shown
	to agents when they disposition a call as a SALE and/or a CALLBACK
	flagged status.

218. Added "Abandon Check Queue" feature, to catch dropped Call Menu calls that
	are tagged with a Lead ID. For more information, see the bottom of the
	INBOUND_CALLBACK_QUEUE.txt document.

219. Added "Asterisk Restart URL" to the Modify Servers page, this can send a 
	URL request any time Asterisk is auto-restarted on that server.

220. Added Agent API "send_notification" function, allowing you to send 
	notifications to agents by User, User Group or Campaign.

221. Added "AMD Agent Route Options" flag to allow immediately hangup and dispo
	of calls with no audio data. This is a campaign feature.

222. Added agent screen latency logging, viewable in the Real-Time Report and
	the new Agent Latency Report and Latency Gaps Report.

223. Added Demographic Quotas, allowing for setting of quota goals for leads 
	based upon lead field values for demographic parameters like: gender,
	age-group, political-party, etc... For more information on this set of
	features, read the DEMOGRAPHIC_QUOTAS.txt document.

224. Added Inbound Calls Credits, allowing per-User setting of a number of 
	inbound calls that can be handled, until reset by a manager.

225. Added List Weekday Resets, allowing for automatic list resets scheduled by
	day-of-the-week on a per-list basis.

226. Added Second and Third Agent Alert Trigger In-Group settings, allowing for
	a second and/or third audio alert to be played to the agent on repeat 
	calls.

227. Added VIDPROMPTSPECIAL Call Menu Handle Methods when sending calls to 
	In-Groups. Allows for list-based In-Group routing based on settings in
	a Settings Container. Also allows for separate routing of not-found
	leads.

228. Added Dead Call Stop Recording campaign feature.

229. Manual VM Message Status Updates campaign option.

230. Added Per Call Notes Required campaign option.

231. Added Agent Search In-Group List Restrict options, allowing for Lead 
	Search restrictions on inbound group calls to a single list ID.

232. Added option to use Two-Factor Authentication with Agent Screen logins

233. Added the "lead_dearchive" Non-Agent API function, to move archived leads 
	back to the active list table.

234. Added the ability for agents to place 3way calls and require that the 
	called-party press 1 before the call is bridged to the agent and 
	customer. For more information, see the AGENT_3WAY_PRESS-1_CALLS.txt 
	document.

235. Added HCI Screen and Hopper Hold Inserts to allow for required Human 
	Intervention on phone calls placed out of a campaign. See the 
	HCI_Human_Call_Indicator_screen.txt document for more info.

236. Added the Daily Phone Number Call Limit System-wide campaign option

237. Added "refresh_panel" Agent API function

238. Added "LAGGED Agent Log Summary Report".

239. Added a Multi-call option to the agent 3-way press-1 calls feature.

240. Added DUPPHONEALT... duplicate_check options within the add_lead 
	Non-Agent API function. Checks for duplicate phone against both the 
	phone_number and alt_phone fields.

241. Added State Descriptions Banner campaign and in-group settings, allowing
	for a custom description and color banner to appear on the agent screen
	on a per-campaign and per-in-group basis.

242. Added Per-User Per-In-Group daily call limits.

243. Added 'delete_dnc_phone' Non-Agent API function.

244. Added "Script Tab Height Override" campaign setting, to allow for longer
	Script tab contents.

245. Added "Call Log View Days" campaign setting, to allow restrictions to the
	number of days an agent can go back to look at their call logs.

246. Added ALT option for "Start Call URL" to allow for multiple URLs to be
	requested at the agent-start of a call.

247. Added archived-log cold-storage options and scripts.
	See LOG_ARCHIVING_AND_COLD_STORAGE.txt document for more infomation.

248. Added "API New Lead URL" feature to System Settings, with per List override
	setting. This can send a URL request when new leads are added to the
	system through the "add_lead" Non-Agent API function.

249. Added agc/dispo_move_listSC.php script, allowing for multiple more complex
	Dispo Move List functions after an agent dispositions a call.

250. Added "hopper_bulk_insert" Non-Agent API function.

251. Added Stereo Call Recording, allowing for additional call recordings with 
	the customer on one side(the Right channel) and the agent on the other 
	side(the Left channel), as well as optional parallel stereo call 
	recordings. For more information, read the doc:
	STEREO_CALL_RECORDINGS.txt

252. Added "Talk Seconds URLs" Campaign and In-Group features. Allows for URLs 
	to be sent out from the Agent Screen while the agent is talking to the
	customer, based on the number of seconds they have been talking.





########## UPGRADING FROM 2.11 TO 2.13 ##########

OPTIONAL STEPS(But highly recommended) - Backup existing system:

1.  Run this for a 1-server system or server with database on it:  
  (this may take hours on large system)
   /usr/share/astguiclient/ADMIN_backup.pl --debugX

2. Run this on dialer/Asterisk-only servers:
  (do not run this if you only have one server):
   /usr/share/astguiclient/ADMIN_backup.pl --debugX --without-db --without-web


REQUIRED STEPS!!!

1. Check system_settings, make sure you are at DB Schema Version 1403 or higher
	If not, run the instructions for 2.9 to 2.11 before this section.

2. upgrade the MySQL asterisk database(you have two options):
    A. Running the upgrade file directly from Linux:
	mysql -f --database=asterisk < /path/from/root/extras/upgrade_2.12.sql

    B. Going into mysql and executing the upgrade sql file:
	mysql
	use asterisk
	\. /path/from/root/extras/upgrade_2.12.sql
	quit

3. install new files:
	perl ./install.pl
	NOTES: If you have customized any scripts in the bin or agi folders, 
	then make sure you back them up before running the install.pl script. 
	This script will replace existing files in the astguiclient installation.

4. For each of your ViciDial servers, go the Admin -> Servers -> Modify Server
	page and set each one to "Rebuild conf files = Y" and click submit.
	This will rebuild the conf files to ensure any changes are updated.

5. On one server only, update your phone codes data:
       /usr/share/astguiclient/ADMIN_area_code_populate.pl --purge-table --debug


OTHER CHANGES:

1. Added System Settings to allow custom prompts on agent login and when an
	agent leaves a 3way call in the agent screen. Must Have Asterisk 1.8+
	for it to work.

2. Added ability to use single-quotes in vicidial_list fields. Through the 
	agent screen and all lead import methods

3. Added option to populate the entry_list_id from the DID when routing to an
	In-Group

4. Added agent screen webform 3 feature

5. Added user API restrictions for allowed lists and allowed API functions

6. Added web administration for chat features

7. Added new campaign settings for Manual Dial Search and Manual Dial Filter to
	allow for Alt phone and Address3 phone numbers to be allowed

8. Added campaign option to disable the Manual Dial Override field

9. Added option to change the background color for agent scripts

10. Added option to hide the In-Group ID in the agent screen for inbound calls

11. Added option to not populate the In-Group Name in the security_phrase field
	(the "Show" field) of the vicidial_list table on new inbound leads.

12. Added list_description as a webform and script variable

13. Added campaign option to allow you to set the number of seconds after a 
	customer hangs up before the warning shows on the agent screen

14. Added ability to use No Agent Call URL with the dispo_move_list.php script
	see script comments for instructions.

15. Added DID options to check for a Maximum number of calls in queue in a set
	In-Group and route the call to an extension if over the set number.

16. Added the ability to define multiple Dispo Call URLs as well as define
	specific statuses that they will be triggered for.

17. Added compatibility in the Vicidial code for Asterisk 11.

18. Added database and logfile logging of DTMF events. Works with Asterisk 
	versions 1.8 and higher. If upgrading, you will need to add "dtmf" to
	the listencron user in manager.conf and reload asterisk.

19. Added agent screen debug logging, which will log almost all mouse clicks
	and AJAX calls on the agent screen. Can be enabled for all agents or
	only one agent. Also added report to display logs by date/time. These 
	agent debug logs are deleted after 7 days.

20. Added agc/dispo_add_FPG.php script to be able to insert a phone number into
	an inbound Filter Phone Group when set to a certain specific disposition
	using the Dispo Call URL.

21. Added campaign option to display some lead fields as read-only in the agent 
	screen. Those fields are: entry_date,source_id,date_of_birth,rank,owner

22. Added option in the web-based lead loader to convert state names to their
	two-letter abbreviations.

23. Added option to Secondary Lead Sort by vendor lead code

24. Added option to User Stats report to only show call logs with a specified
	call status.

25. Added experimental Agent Whisper Monitoring from the Real-time Report. 
	Must be enabled in System Settings.

26. Added the ability in in-groups to set reset a lead's called status when a
	call is ended by being abandoned, dropped, hung up or sent to voicemail

27. Added Admin -> Settings Containers to admin web interface to allow more easy
	configuration of back end scripts and Dispo Email sending

28. Added agc/dispo_send_email.php script to be used with the Dispo Call URL
	option in campaigns and in-groups. See DISPO_SEND_EMAIL.txt doc for
	more information on this feature.

29. Added code to support proprietary encryption framework for custom fields.

30. Added new User Group options for Allowed Reports to control the Report Page 
	Servers Summary and the Admin Utilities Page

31. Added optional GPG audio recording encryption.

32. Added option to use RECID as a recording filename variable. 
	NOTE: Cannot be	used as the ONLY variable for recording filename

33. Added functionality to adjust the input field lengths in the agent screen
	and the admin modify lead pages to follow the database schema field
	lengths for the default lead fields.

34. Added DID custom fields as webform and script variables
	(did_custom_one, did_custom_two,..., did_custom_five)

35. Added option to hide users from appearing on real-time report. Must be 
	enabled in System Settings, then for each user to be hidden.

36. Added did_carrier_description, sorting by columns in DID list page, integer
	sort for user list page.

37. Added logging of DNC list insertion and deletion to vicidial_dnc_log table

38. Added AST_DB_DNC_filter.pl script to allow filtering of existing DNC entries

39. Changed AC-CID to be able to use areacodes from 2 to 5 digits in length

40. Added admin web interface to allow for easy linking and display of custom
	reports that are not included in Vicidial

41. Added Status Groups and the ability to override Campaign Statuses on a 
	per-In-Group or per-List basis

42. Added Minimum and Maximum Seconds options for all status settings. This 
	allows you to prevent the use of a status by an agent if they have
	talked to a customer less than X seconds or more than Y seconds.

43. Added the system setting USA-Canada Phone Number Dialcode Fix which will
	trigger a process that will run at the Timeclock End of Day that will 
	check all phone numbers to populate the dial code, or phone code, field
	with a 1 if it is missing as well as remove a leading 1 from the phone
	number field if it is present.

44. Added --lstn-buffer option to keepalive script to run special enhanced 
	buffer version of the Listen process. Requires newer Net::Telnet perl
	module version.

45. Added Answering Machine Message Wildcards features for campaigns. Allows for
	calls sent to a message to play a different message depending on whether
	a wildcard text string is present in a selected lead data field.

46. Added Cached Realtime Carrier Stats option to System Settings to have the
	Carrier Log Stats generated once per minute system-wide instead of every 
	time the realtime report refreshes on every screen.

47. Added option to several reports to search the archived logs.

48. Added AST_DNCcom_filter.pl script which allows for direct batch filtering of
	lists within vicidial with the DNC.COM dnc filtering service. For more 
	info, see the DNC-dot-COM_integration.txt document.

49. Added phone options to have call go to dialplan extension instead of 
	voicemail if phone not answered.

50. Added option in NVA agi script to search for a lead by phone number, log the
	lead_id of the phone call and send a per-phone URL at the start of the
	phone call.

51. Added Chat Messaging to agent screen, with manager chat utlitity. For more
	information, read the CHAT_MESSAGING.txt doc.

52. Added example code for a CRM Iframe agent screen skin(extras/crm_iframe)
	See the CRM_EXAMPLE_SKIN.txt doc for more information

53. Added utility to gather and display Asterisk debug information. Includes
	a server setting and Admin Utilities report.

54. Added campaign setting for manual_dial_timeout for manual dial agent screen
	calls only.

55. Added Agent Allowed Chat Groups to User Groups to allow restriction of only
	agent to agent chatting by itself.

56. Added options in In-Groups and Campaigns to allow for the agent recordings
	to be initiated by the routing process instead of at the agent screen.
	This only works for inbound and auto-dial outbound calls for in-groups
	and campaigns that are set to ALLCALLS or ALLFORCE recording.

57. Added option to Inbound DID Group Filtering to filter by areacode.

58. Added in-group option for On-Hook CID Number.

59. Added available_agents and status_link button options as well as validation
	of active in-group to the chat_customer screen.

60. Added campaign setting Manual Dial Hopper Check that will check for a lead 
	in the hopper with the same phone number as any manual call being 
	placed from the agent screen, and if one exists it will be deleted 
	before the manual dial call is placed.

61. Added recording access logging per user(must be enabled in System Settings)

62. Added ability to transfer customer chats to another chat group or agent

63. Added API Log Report to Admin Utilities page

64. Added Alternate IVR(Call Menu) Logging options

65. Added option to define a carrier across all active asterisk servers

66. Added campaign option to move USERONLY scheduled callbacks to ANYONE
	callbacks after X minutes being LIVE without the agent calling them
	back.

67. Made several changes to the admin web screen and real-time report designs

68. Added options to define color scheme and logo for admin web screens

69. Added new options to enable the recent changes to the UK OFCOM Drop Rate
	calculations. There is a new System Setting to enable on the system, 
	and then each affected campaign must also have the new option enabled 
	for it as well. Affects the predictive algorithm and the Real-time and
	Outbound Calling reports.

70. Added phone outbound alt caller ID to allow for phone-dialed calls to use
	a separate CID number when dialing through a specific context

71. Added display of admin change differences to last change on the change
	detail page

72. Added the ability to copy audio store files with a new name

73. Started process to redesign the Agent Screen, added Screen Colors 
	definitions, removed san-serif fonts, changed loading/login/logout 
	screens, logging of browser width/height.

74. Changed HTML Reports to use dynamic charting Javascript elements

75. Added campaign option to automatically manual dial next number in agent
	screen after X seconds. Must be enabled in System Settings.

76. Added recording filename option to update filename post-call with select
	variable values, uses options in AST_CRON_audio_1_move_VDonly.pl script

77. Added ALT Multi Dispo URL option to restrict URL sending by list ID.

78. Added Admin Bulk Tools page, linked from Admin Utilities page

79. Added customer chat options for logo/colors and a survey link after chat is
	completed.

80. Added the User Group Hourly Report

81. Added User List NEW Lead Limits, with User overrides. Allows you to set a
	limit on the number of NEW status leads that an agent can call on a per
	list basis per day. Also allows overall NEW limits across all lists for
	a user per day

82. Added List Merge admin utility

83. Added Fronter - Closer Detail Report

84. Added option to allow agents to park 3way calls in the agent screen

85. Added option to web lead loader to restrict leads to only those with a 
	phone number of a specified length. Options for forced system-wide and
	per-list-load

86. Added more options to the Callback moving utilites in Admin Utilities page

87. Added Agent Audio Soundboards





########## UPGRADING FROM 2.9 TO 2.11 ##########

OPTIONAL STEPS(But highly recommended) - Backup existing system:

1.  Run this for a 1-server system or server with database on it:  
  (this may take hours on large system)
   /usr/share/astguiclient/ADMIN_backup.pl --debugX

2. Run this on dialer/Asterisk-only servers:
  (do not run this if you only have one server):
   /usr/share/astguiclient/ADMIN_backup.pl --debugX --without-db --without-web


REQUIRED STEPS!!!

1. Check system_settings, make sure you are at DB Schema Version 1378 or higher
	If not, run the instructions for 2.7 to 2.9 before this section.

2. upgrade the MySQL asterisk database(you have two options):
    A. Running the upgrade file directly from Linux:
	mysql -f --database=asterisk < /path/from/root/extras/upgrade_2.10.sql

    B. Going into mysql and executing the upgrade sql file:
	mysql
	use asterisk
	\. /path/from/root/extras/upgrade_2.10.sql
	quit

3. install new files:
	perl ./install.pl
	NOTES: If you have customized any scripts in the bin or agi folders, 
	then make sure you back them up before running the install.pl script. 
	This script will replace existing files in the astguiclient installation.

4. For each of your ViciDial servers, go the Admin -> Servers -> Modify Server
	page and set each one to "Rebuild conf files = Y" and click submit.
	This will rebuild the conf files to ensure any changes are updated.

5. On one server only, update your phone codes data:
       /usr/share/astguiclient/ADMIN_area_code_populate.pl --purge-table --debug


OTHER CHANGES:

1. Added User setting for Wrapup Seconds Override

2. Added new Agent API function audio_playback to play audio files from the audio
	store in an active agent session. See AGENT_API.txt doc for more info.

3. Added option to DIDs to allow routing of calls to a redirect extension if
	there are no agents available in a specific in-group

4. Added option to DIDs to allow pre-filtering by a specific filter phone group
	before the standard filtering process. The call can be redirected to a
	specific DID entry if there is a match.

5. Added Wrapup Bypass option to allow or disallow agents to skip the wrapup
	screen before the timer is finished. Also added the option to use a 
	system Script as the Wrap Up Message

6. Added $RS_droppedOFtotal options.php option for the realtime report to allow
	the drops to be calculated out of Total calls instead of just Answers

7. Added ability to use Wrap-Up messages with calls terminated through Hotkeys

8. Integrated all QC code into standard admin code, removing includes as well

9. Added System Setting option to use 24-hour time for callback setting in agent
	screen.

10. Added User Group viewable report entry for Front Page System Summary

11. Added archive log search and display in modify lead page

12. Added campaign options to limit number of active callbacks

13. Changed all Agent and Administrative interface text output to use a function
	instead of echo.(for dynamic other-language interfaces)

14. Added Admin Utility to split lead lists into smaller lists

15. Added campaign options to minimize QC audited comments without closing the 
	frame, allow for the comments field to appear under all agent screen 
	tabs and the dispo screen and the callback date select screen, allow
	for the audited comments to be displayed with managers in red and with 
	a date/time stamp. Also, a campaign option to not display the Previous 
	Callback panel in the agent screen.

16. Added campaign option to clear the script after call disposition.

17. Added administrative web interface for managing Languages. The language
	features are now active in the admin interface as well as in the agent 
	screen. Language files are available in the "translations" directory
	in the source code, as well as on this website:
		http://vicidial.org/translations/

18. Added No Agent URL option override for Lists

19. Added CPD Unknown Action option to Campaigns

20. Added new user option to allow administrative users to search for leads
	systemwide even in lists belonging to campaigns that the user's User
	Group settings don't allow them to view

21. Added Local Call Time option for Lists to further restrict call times
	already set in the campaign.

22. Added Manual Dial Lead Search Filter option to limit the search of manual
	dials to within one campaign's lists.

23. Added NAME as an agent screen Status Display variable

24. The PAUSE and RESUME buttons in the agent screen have been turned into a 
	single button named "You are paused" or "You are active" depending on
	your status. Issue #814

25. Added new LOCK options to Manual Dial Search Checkbox to prevent the agent
	from checking or unchecking the search checkbox.

26. Added case-sensitive user ID validation on agent login.

27. Added option in phones and voicemail to display message counts on the 
	Admin Summary screen.

28. Added Callbacks Bulk Move admin utility. Also changed behavior of the 
	removal links for callbacks from the callback hold displays for Users,
	User Groups, Lists and Campaigns.

29. Added DYN filename prefix for non-TTS dynamic files to be used for answering
	machine message. For instance using DYN--A--user--B-- for agent 1234 
	would look for a file named 1234.wav in your audio store to play.





########## UPGRADING FROM 2.7 TO 2.8 (2.9 release branch) ##########

OPTIONAL STEPS(But highly recommended) - Backup existing system:

1.  Run this for a 1-server system or server with database on it:  
  (this may take hours on large system)
   /usr/share/astguiclient/ADMIN_backup.pl --debugX

2. Run this on dialer/Asterisk-only servers:
  (do not run this if you only have one server):
   /usr/share/astguiclient/ADMIN_backup.pl --debugX --without-db --without-web


REQUIRED STEPS!!!

1. Check system_settings, make sure you are at DB Schema Version 1347 or higher
	If not, run the instructions for 2.4 to 2.7 before this section.

2. upgrade the MySQL asterisk database(you have two options):
    A. Running the upgrade file directly from Linux:
	mysql -f --database=asterisk < /path/from/root/extras/upgrade_2.8.sql

    B. Going into mysql and executing the upgrade sql file:
	mysql
	use asterisk
	\. /path/from/root/extras/upgrade_2.8.sql
	quit

3. install new files:
	perl ./install.pl
	NOTES: If you have customized any scripts in the bin or agi folders, 
	then make sure you back them up before running the install.pl script. 
	This script will replace existing files in the astguiclient installation.

4. For each of your ViciDial servers, go the Admin -> Servers -> Modify Server
	page and set each one to "Rebuild conf files = Y" and click submit.
	This will rebuild the conf files to ensure any changes are updated.

5. On one server only, update your phone codes data:
       /usr/share/astguiclient/ADMIN_area_code_populate.pl --purge-table --debug


OTHER CHANGES:

1. Added outbound state call time holidays functionality. Only works if the 
	"state" field is populated properly in your leads.

2. Added several security changes to the agent interface, including freezing a
	user's account for 15 minutes after 10 failed login attempts.

3. Changing all of the admin scripts from using the PHP ereg functions to preg.
	This is a requirement for moving to PHP6 where ereg functions are 
	depricated. This will also have the benefit of speeding up those scripts
	because preg is supposed to be more efficient and faster than ereg.

4. Added several security changes to the admin interface, including freezing a
	user's account for 15 minutes after 10 failed login attempts.

5. Added 4 new reports to the admin interface: url log, lagged log, user group
	login and dial log reports

6. Added new AST_phone_update.pl --agent-lookup flag to allow for logging of the
	IP address of the agent's SIP or IAX phone connection. Can be enabled as
	a crontab entry to perform the lookups on each asterisk server.

7. Added optional encrypted passwords capability within the system. If enabled,
	all user passwords must be converted to encrypted passwords. To use this
	you need to have this CPAN module installed on your web servers:

	cpan> install Crypt::Eksblowfish::Bcrypt
	
	To enable, first go to the Admin -> System Settings page and manually 
	confirm that Password Encryption is DISABLED (fifth item from the top)
	
	Then, just run the following CLI script: (run in test mode first!)
	   /usr/share/astguiclient/ADMIN_bcrypt_convert.pl --debugX --test
	
	For more information on Encrypted Passwords, read the 
	ENCRYPTED_PASSWORDS.txt document in the docs directory

8. If you are using the agi-phone_monitor script for agent monitoring, then 
	the following dialplan lines need to be added to the same place where
	you put the original dialplan additions necessary for this feature
	to work: (it is shown in context in the 2.6 upgrade instructions below)

		; quiet entry, listen-only, exit-on-dtmf conferences for VICIDIAL (listen)
		exten => _588600XXX,1,Dial(${TRUNKblind}/56${EXTEN:2},55)
		exten => _588600XXX,n,Hangup()

		; barge, exit-on-dtmf conferences for VICIDIAL (barge)
		exten => _598600XXX,1,Dial(${TRUNKblind}/57${EXTEN:2},55)
		exten => _598600XXX,n,Hangup()

9. Added Reset Lead-Called-Status for Campaigns page to Admin Utilities

10. Added System Summary screen as default admin.php screen instead of User List

11. Added new agent_monitor.agi script to replace the  agi-phone_monitor script
	for agent monitoring. Please read the AGENT_MONITOR.txt document for 
	more information on the dialplan changes necessary to use this script.

12. Added the ability to deduplicate leads based upon statuses in the web based
	lead loader using templates and the basic web lead loader.

13. Added dialplan variable CAMPCUST for manual dial and auto dial outbound 
	calls that is set to the campaign_id of the phone call. This allows for
	the ability to put the following in your dialplan for outbound calls 
	so that you can send out the campaign_id as a SIP header.
	NOTE: if you want to use this it must be placed immediately below the 
	AGI call_log line of the dialplan and before the Dial line:
		exten => _91NXXNXXXXXX,n,SipAddHeader(X-campaignid: ${CAMPCUST})

14. Changed all PHP code to use PHP mysqli functions. This does not require 
	any action or changes to enable since it is a change to the code.
	We are working on converting the administrative PHP scripts as well.
	These require MySQL 5.0 minimum to be used, but for several years that 
	has been the minimum for Vicidial anyway, so that requirement shouldn't 
	be a problem for existing systems running the newest code. The existing 
	older mysql PHP functions are set to be marked as depricated in PHP for 
	future versions. For more information on mysqli you can visit the below 
	webpages:
	http://news.php.net/php.internals/53799
	http://www.php.net/manual/en/mysqli.overview.php

15. Added AST_CRON_audio_4_ftp2_FTPSSL.pl script to allow for transmission of 
	second archival of recordings to an FTP SSL server.

16. Added settings to the agc/options.php file to allow for forced launching of
	the agent screen from a script like the new launch.php script. The agent
	is not allowed to login by going to the vicidial.php page directly, and
	the launch.php page will open the agent screen with a read-only address
	bar and several other browser options disabled. To enable this feature,
	just set the $window_validation variable to '1' in options.php

17. Added phone number type field/list_id updating scripts. Compatible with 
	DNC.COM's daily update file services. Read the 
	CELLPHONE_USA_TCPA_FCC_COMPLAINCE.txt file for more detailed information 
	on this feature.

18. Added lead search of archived leads table if present.

19. Added QueueMetrics 13.04 support with call hold records

20. Added system setting to view country code breakdown in list modify screen.

21. Added campaign option to allow agents to be able to place manual dial calls
	by Lead ID.

22. Added Advanced lead tools management, access from the Admin Utilities page

23. Admin HELP text moved to separate help.php script

24. Added option.php option to allow user ID click to pause code report from the
	Agent Time Detail report

25. Added campaign options to limit time on Dead Calls, Disposition Screen 
	and Pause.

26. Added Servers option to have Asterisk automatically restarted if it crashes

27. Added called_count logging to vicidial_log table

28. Added logging of webserver and url used for all API calls, agent logins
	and reports

29. Added Lists Pass Report

30. Added Agent API pause_code function

31. Added VMAIL_NO_INST options to send calls to voicemail with no instructions
	playing after the voicemail greeting. Also phone option has been added
	to allow no instructions to be played on direct extension calls that go
	to voicemail.

32. Added Non-Agent API function update_user to allow updating of the major
	user fields

33. Added Non-Agent API functions for check_phone_number and server_refresh

34. Added Agent API functions for preview_dial_action while previewing or 
	manual alt dialing a lead

35. Added Called Counts List IDs Report

36. Added MathZDC function to prevent division math with zero as one of the 
	numbers.

37. Added DID Filter options to allow for filtering by the INTERNAL DNC list or
	a Campaign DNC list. Also added a method to allow for URL filtering to
	direct a call to a specific system DID instead of only going to the
	Filter Action.

38. Added Performance Comparison Report

39. Added Max Inbound Calls options to Campaigns and Users to enforce a maximum
	number of inbound calls received per day per agent.

40. Added campaign option to default the search existing leads checkbox on the
	manual dial screen of the agent interface, as well as reset it after
	every call

41. Added campaign option to hide call log and call count data on the agent 
	screen when viewing lead information

42. Added User permission option for editing Custom Dialplan Entries

43. Added logging of pause type(ADMIN, AGENT, SYSTEM, API,...)

44. Added frozen call clearing system setting, used in admin.php(Reports page)
	and optional AST_timecheck.pl script

45. Added campaign options to auto-select the ALT DIAL checkbox, and to 
	automatically dial the Alt Phone or Address3 field after a set number
	of seconds

46. Overhauled Spanish Agent and Admin translations and Dutch agent translation
	Added Dutch button images to Dutch translation





########## UPGRADING FROM 2.4 TO 2.6 (2.7 release branch) ##########

OPTIONAL STEPS(But highly recommended) - Backup existing system:

1.  Run this for a 1-server system or server with database on it:  
  (this may take hours on large system)
   /usr/share/astguiclient/ADMIN_backup.pl --debugX

2. Run this on dialer/Asterisk-only servers:
  (do not run this if you only have one server):
   /usr/share/astguiclient/ADMIN_backup.pl --debugX --without-db --without-web


REQUIRED STEPS!!!

1. Check system_settings, make sure you are at DB Schema Version 1316 or higher
	If not, run the instructions for 2.2.0 to 2.4 before this section.

2. upgrade the MySQL asterisk database(you have two options):
    A. Running the upgrade file directly from Linux:
	mysql -f --database=asterisk < /path/from/root/extras/upgrade_2.6.sql

    B. Going into mysql and executing the upgrade sql file:
	mysql
	use asterisk
	\. /path/from/root/extras/upgrade_2.6.sql
	quit

3. install new files:
	perl ./install.pl
	NOTES: If you have customized any scripts in the bin or agi folders, 
	then make sure you back them up before running the install.pl script. 
	This script will replace existing files in the astguiclient installation.

4. For each of your ViciDial servers, go the Admin -> Servers -> Modify Server
	page and set each one to "Rebuild conf files = Y" and click submit.
	This will rebuild the conf files to ensure any changes are updated.

5. On one server only, update your phone codes data:
       /usr/share/astguiclient/ADMIN_area_code_populate.pl --purge-table --debug


OTHER CHANGES:

1. Added the ability for an agent to place manual dial calls out as if they were
	in-group inbound calls. Also allows for no-dial calls that are not 
	actually placed out the telco, but are logged as calls. For more
	information see the "In-Group Manual Dial" options in Campaign Detail

2. Added Dial In-Group CallerID override to In-Groups Modify screen, allowing
	for the callerid to automatically be set per in-group on agent manual
	dial in-group calls

3. Added transfer call to answering machine message with hotkey option,
	currently hard-coded to these two statuses: (LTMG or XFTAMM)

4. Added User Group Login Report

5. Added Safe Harbor Audio Field to campaign options which allows for a lead
	field to be used as an override safe harbor audio on a per-lead basis

6. Added Japanese agent web interface translation

7. Added ability to qualify callers before they go through a Call Menu by using
	a SQL fragment(like in Filters) that you define in a Call Menu. Must be
	enabled in System Settings. Calls must be passed from an outbound
	campaign or an in-group.

8. Added ability to download the Max System Stats and display by date range.

9. Added 'recording' and 'webserver' functions to the agent API

10. Added add_group_alias non-agent API function

11. Added System Settings option to disable list counts in admin web screens

12. Added callback user transfer page, linked from Admin Utilities in Reports

13. Added non-loading webphone options and API agent call and webphone url 
	functions

14. Added outbound call logging in vicidial_dial_log table

15. Added user_group_status and in_group_status functions to the non-agent API.

16. Added update_log_entry function to the non-agent API, which allows the 
	updating of the status of an inbound or outbound call log entry.

17. Added ability to set an audio store file for the voicemail greeting message

18. Added ability to delete audio files from the audio store

19. Added logging of svn version info in the database at server install/update

20. Added more validation of agent sessions to prevent double-logins

21. Added campaign option to show a "Pause After Next Call" link to the agent
	screen below the Pause/Resume buttons

22. Added campaign option to set owner field to user if the owner field is empty

23. Added Lead Tools web page from Admin Utilities. Allows for some basic lead 
	management through the web interface.

24. Added recording filename variable INGROUP for the In-Group ID of a call

25. Added QC functionality contributed by PoundTeam and Affinity On-Call.
	To enable, go to Admin -> System Settings and set "QC Features Active"
	to "1", then submit.

26. Added QM Socket-Send functionality for custom queue_log record sending.

27. Added inbound call time holiday functions.

28. Added list expiration date feature

29. Added Other Campaign DNC List campaign option

30. Added Enhanced Disconnect logging for outside the USA, disabled by default

31. Added a campaign feature to allow an agent to search for a lead while on an
	inbound call and have their active lead change to a search result lead
	that they select.

32. Added inbound email to queue to agent features. To enable, you must add an
	"E" keepalive to ONLY ONE of your servers. You will also need to enable
	email in System Settings. You also need the following perl cpan modules
	installed:
		install LWP::UserAgent
		install HTML::Entities
		install HTML::Strip
		install HTML::FormatText
		install HTML::TreeBuilder
		install Switch
		install Time::Local
		install MIME::Decoder
		install Mail::POP3Client
		install Mail::IMAPClient
		install Mail::Message
		install IO::Socket::SSL
		install MIME::Base64
		install MIME::QuotedPrint
	Also, the inbound email parser must be added to the crontab of ONLY ONE
	server:
		### inbound email parser
		* * * * * /usr/share/astguiclient/AST_inbound_email_parser.pl

33. Added Asterisk 1.8 support. This is in the BETA testing phase currently,
	and is not recommended for use in production at this time. If you are 
	upgrading an existing system, please make note of the many conf file
	changes(extensions.conf and manager.conf) that will need to be made for 
	Vicidial to function properly while interfacing with Asterisk 1.8. Also,
	make sure that the Admin -> Servers -> modify server "Asterisk Version"
	setting is set properly for the version you have installed on that
	server.

34. Added campaign options to send answering machine detected calls to a 
	Call Menu or In-Group.

35. Added System Settings option to disable Add/Copy admin functions for level
	8 users.

36. Added ability to use .agi scripts in Call Menu prompt. Also added 
	cm_date.agi script to say date with options

37. Converted ereg to preg in the agc agent interface PHP scripts

38. Added agi-phone_monitor.agi script to allow monitoring of agents using only
	their user IDs or phone extensions and no web browser needed.
	You can add as an AGI to a Call Menu, or just an extension transfer:
	call menu AGI with options:
		agi-phone_monitor.agi,USER---N---LISTEN
	or as extension transfer to "up_monitor_exit" context and "s" extension
	
	settings for this script:
	 1. USER or PHONE, lookup by user id or phone extension (default is USER)
	 2. Y or N, log in api log (default is N)
	 3. BARGE or LISTEN, (default is LISTEN)

	For this to work you need to add these lines to your extensions.conf: 
	(which can be added to the "System Settings -> Custom Dialplan" instead)

		; quiet entry, listen-only, exit-on-dtmf conferences for VICIDIAL (listen)
		exten => _568600XXX,1,Set(MEETME_EXIT_CONTEXT=up_monitor_exit)
		exten => _568600XXX,n,Meetme(${EXTEN:2},mqX)
		exten => _568600XXX,n,Hangup()

		; barge, exit-on-dtmf conferences for VICIDIAL (barge)
		exten => _578600XXX,1,Set(MEETME_EXIT_CONTEXT=up_monitor_exit)
		exten => _578600XXX,n,Meetme(${EXTEN:2},X)
		exten => _578600XXX,n,Hangup()

		; quiet entry, listen-only, exit-on-dtmf conferences for VICIDIAL (listen)
		exten => _588600XXX,1,Dial(${TRUNKblind}/56${EXTEN:2},55)
		exten => _588600XXX,n,Hangup()

		; barge, exit-on-dtmf conferences for VICIDIAL (barge)
		exten => _598600XXX,1,Dial(${TRUNKblind}/57${EXTEN:2},55)
		exten => _598600XXX,n,Hangup()

		[up_monitor]
		exten => h,1,AGI(agi://127.0.0.1:4577/call_log--HVcauses--PRI-----NODEBUG-----${HANGUPCAUSE}-----${DIALSTATUS}-----${DIALEDTIME}-----${ANSWEREDTIME})

		exten => _X.,1,Set(MEETME_EXIT_CONTEXT=up_monitor_exit)
		exten => _X.,n,AGI(agi-phone_monitor.agi,USER---N---LISTEN---${EXTEN})
		exten => _X.,n,Hangup()

		exten => s,1,Set(MEETME_EXIT_CONTEXT=up_monitor_exit)
		exten => s,n,AGI(agi-phone_monitor.agi,USER---N---LISTEN)
		exten => s,n,Hangup()

		exten => i,1,Goto(up_monitor_exit,s,1)
		exten => i,n,Hangup()
		exten => #,1,Goto(up_monitor_exit,s,1)
		exten => #,n,Hangup()
		exten => t,1,Goto(up_monitor_exit,s,1)
		exten => t,n,Hangup()

		[up_monitor_exit]
		exten => h,1,AGI(agi://127.0.0.1:4577/call_log--HVcauses--PRI-----NODEBUG-----${HANGUPCAUSE}-----${DIALSTATUS}-----${DIALEDTIME}-----${ANSWEREDTIME})

		exten => _X,1,Goto(up_monitor,s,1)
		exten => _X,n,Hangup()

		exten => i,1,Goto(up_monitor,s,1)
		exten => i,n,Hangup()
		exten => #,1,Goto(up_monitor,s,1)
		exten => #,n,Hangup()
		exten => t,1,Goto(up_monitor,s,1)
		exten => t,n,Hangup()

39. Added user_group as a script, form, webform, start_call_url and 
	dispo_call_url variable.

40. Added agent_status function to the non-agent API

41. Added method for logging SIP error codes, also display of those codes in the
	agent screen. The logging goes to the vicidial_carrier_log and 
	vicidial_dial_log tables and includes both the SIP code and the reason 
	(i.e. 503 "Service Unavailable"). To get this to work, you need to patch
	Asterisk with the extras/sipcausecodelog_1.4.39.1.patch file for 
	Asterisk 1.4, and for Asterisk 1.8 the patch is pending.

	cd /usr/src/asterisk/asterisk-1.4.39.1-vici
	patch -p1 < ./sipcausecodelog_1.4.39.1.patch
	   (file to patch: channels/chan_sip.c)
	make clean
	./configure
	make
	make install
	   (then stop and restart asterisk)

42. Added admin report logging to all reports on the system, and added the 
	"Admin Report Log Viewer" linked from the "Admin Utilities" page which 
	allows you to see the reports that have been run on the system.

43. Added option to the AST_DB_dead_cb_purge.pl script to remove duplicate 
	callback entries for a single lead, keeping the newest one only.

44. Added NANPA areacode and prefix phone number validation and timezone setting
	options to the admin web lead loader, the Non-Agent API and the CLI lead
	loader. The NANPA prefix list will give you more accurate time zone 
	encoding of your USA and Canadian lead files within ViciDial. The NANPA 
	list is available for purchase at the vicidial.org web store: 
	http://www.vicidial.org/store.php#NANPA

45. Added a NOINT flag option to the Call Menu Prompt so the playback cannot be 
	interrupted with a key press by the caller, the NOINT should be put 
	directly in front of the prompt filename, but should not be a part of 
	the filename, it is a special flag for the system.

45. Added Survey No Response DROP option to send no-response calls to the
	campaign drop method and added Survey Wait Seconds to allow you to set
	the amount of time the person called will have to respond after the 
	survey message is played.

46. Added AST_timecheck.pl script to check for Asterisk update sync issues. Also
	added red indicator on Reports page servers table if server falls out of 
	sync.

47. Updated and cleaned up other language builds for agent and admin.





########## UPGRADING FROM 2.2.0 TO 2.4 ##########

OPTIONAL STEPS(But highly recommended) - Backup existing system:

1.  Run this for a 1-server system or server with database on it:  
  (this may take hours on large system)
   /usr/share/astguiclient/ADMIN_backup.pl --debugX

2. Run this on dialer/Asterisk-only servers:
  (do not run this if you only have one server):
   /usr/share/astguiclient/ADMIN_backup.pl --debugX --without-db --without-web


REQUIRED STEPS!!!

1. upgrade the MySQL asterisk database(you have two options):
    A. Running the upgrade file directly from Linux:
	mysql -f --database=asterisk < /path/from/root/extras/upgrade_2.4.sql

    B. Going into mysql and executing the upgrade sql file:
	mysql
	use asterisk
	\. /path/from/root/extras/upgrade_2.4.sql
	quit

2. install new files:
	perl ./install.pl
	NOTES: If you have customized any scripts in the bin or agi folders, 
	then make sure you back them up before running the install.pl script. 
	This script will replace existing files in the astguiclient installation.

3. For each of your ViciDial servers, go the Admin -> Servers -> Modify Server
	page and set each one to "Rebuild conf files = Y" and click submit.
	This will rebuild the conf files to ensure any changes are updated.

4. On one server only, update your phone codes data:
       /usr/share/astguiclient/ADMIN_area_code_populate.pl --purge-table --debug


OTHER CHANGES:

1. Changed "After hours", "No agent no queue" and "drop timeout reached" DROPs
	to use AFTHRS/NANQUE/TIMEOT statuses respectively

2. Added an option to record calls that enter through a DID until they end or
	enter an in-group queue. MUST ENABLE --MIX CRONTAB ENTRY!!!

3. Added ability to have AGENTDIRECT calls that drop go to user's defined
	voicemail box

4. Added ability to use a webphone added in an IFRAME in the agent screen.
	Tested with Zoiper webphone and sample code included

5. Added vdc_script_notes.php for call notes and appointment taking, read 
	comments for more information.

6. Added Call Log View options to the Agent screen, can be enabled in the 
	User Group screen or the User screen in Administration

7. Added custom dialplan entries fields for System Settings and Servers

8. Added ability to use security_phrase field in the vicidial_list table as a 
	Custom CallerID, must enable in Campaign settings

9. Changed voicemail auto-config to use voicemail.conf directly because include
	files are not fully supported in voicemail.conf. If you have any custom
	voicemail boxes that are NOT defined in ViciDial then you need to put
	them in a custom context above the [default] context in voicemail.conf
	in order to keep them. This change will update the ViciDial database if 
	the user changes their voicemail password through their phone. If that
	user also uses that phone entry to login to vicidial.php that password
	will be changed as well

10. Changed AGENTDIRECT selection to be triggered by clicking on AGENTS link
	instead of number-to-dial field

11. Reformatted lead search page and added first and last name search options

12. Added 3-WAY status to the Real-time report to show when agents are in 
	consultative transfer sessions

13. Added AGENTONLY Scheduled Callbacks display options to allow the Callbacks
	link line in the agent interface to show as red and/or blink. Also, 
	added option to have callbacks count display only triggered callbacks

14. Added carrier log display option to Real-time report to show the hangup
	causes for the last 24/6/1 hours and 15/5/1 minutes of outbound calls

15. Added agc/deactivate_lead.php script that can change the status of a lead in
	another campaign with the same vendor_lead_code, source_id or other 
	field match. See the file comments for more information

16. Added options.php for vicidial.php to give you the ability to change the 
	interface options in a separate file so that they can be preserved
	through an upgrade. See options-example.php for more information

17. Added CallCard featureset to allow for pin-number entry before entering an
	In-Group by a customer with minute balances and a basic admin interface.
	See the CALLCARD.txt doc for more information.

18. Added display options for agent screen Transfer-conf buttons in the User
	Group modification screen.

19. Added ra_call_control function to agent API to allow for hangup and transfer
	of calls sent to a Remote Agent also allows for setting of a disposition
	for more information read the AGENT_API.txt doc.

20. Added Extension Groups feature to Remote Agents section allowing calls to be
	sent to different numbers in a round-robin method when enabled on 
	multi-line remote agent accounts. To enable, you must create Extension
	Group entries and enable Extension Group in the Remote Agent entry.

21. Added agi-AGENT_route.agi script to more easily allow for agentdirect calls
	from call menus without having to create a DID entry for every agent.
	Simply put this line in the custom dialplan section of the call menu
	that you want to allow agentdirect dialing for:
	   "exten => _XXXX,1,AGI(agi-AGENT_route.agi,default---AGENTDIRECT)"
	That example will only work for agents that have 4-digit IDs.
	This works well even after hours and when the agent is not available
	because you can set the call to go to a voicemail box in the selected
	in-group by using AGENTVMAIL in the voicemail field of the in-group.

22. Add the following lines to the extensions.conf to fix bug with manual dial
	leave answering machine message(put in the default context):
		exten => _8320*.,1,AGI(VD_amd.agi,${EXTEN}-----YES)
		exten => _8320*.,2,Hangup

23. Added ability to search logs from admin search lead page

24. Added more login information to the User Stats page including session,
	server, phone and computer IP

25. Added Manual Dial override option to campaigns to allow overriding of 
	user options for manual dial permissions

26. Added campaign option for alerting the agent when they are being blind
	monitored. Options include an alert, a notice and an audio alert

27. Added inbound custom call ID display and logging feature, also added 
	vicidial_log_extended which stores more useful call log info

28. Added optional phone codecs definitions as well as system-wide defaults
	for codec definition. Default for both is blank which will keep 
	whatever is set at the top of the iax.conf or sip.conf files

29. Added option to allow user information to be blocked form the real-time
	report by user login(the user viewing the report)

30. Added Hold Time Option Minimum option to in-groups which will prevent the
	hold time option from running until a minimum number of hold seconds.

31. Added headers to the list export and calls export reports

32. Added several PRESS-1 options to the Hold Time Option settings for In-Groups

33. Added Call Time after-hours filename override option used by inbound groups

34. Added Campaign setting for inbound queue no dial that will prohibit outbound
	auto-dialing if there are any allowed in-group calls in queue if enabled

35. Added In-group options for setting the length of the on hold message and the
	hold time option press message as well as offering the option to have
	those two prompts be non-blocking and allow existing newer calls through
	to agents while the prompts are playing

36. Added utility in CallCard section to generate new card IDs and view by Run.

37. Added Agent API functions for Send DTMF, Park Customer and the Transfer 
	Conference functions as well

38. Added prompt options for in-group VIDPROMPT methods when initiated from Call
	Menus

39. Added web-configurable TTS voice option. Please make sure the Cepstral voice 
	is installed before entering one.

40. Added function for start_call_url to work with remote agents

41. Added custom default field names for fields in the agent interface. Defined
	in the Admin System Settings

42. Added new code to help deal with agents on poor network connections. New
	vicidial.php option is $conf_check_attempts

43. Added Custom List Fields functions to the Admin and Agent web interfaces.
	To activate you need to enable custom fields in system settings, then
	you can go to the Lists section to add custom fields to a list. The
	fields are tied to a list, not a campaign, and they can be displayed
	in a new tab in the agent interface, and there is a new option to have
	the Get Call Launch open this custom fields tab upon a call being sent
	to the agent. Also, the Calls Export Report and the List Download 
	feature include the custom fields values for the leads exported. You 
	can import custom field data through the web-based lead loader in TXT
	and CSV format(you must set a list ID override and you must select
	Custom Format). You can also use the non-agent API add_lead function,
	(see the NON-AGENT_API.txt doc for more info). You can also use the 
	third gen lead loader to import leads with custom files in several 
	other formats.

44. Added more options to agi-AGENT_route.agi to allow it to prompt for user IDs
	as well as set the number of digits to collect and check whether a user
	is logged into ViciDial. The script can also now be run as an AGI route
	option in CallMenus as well as in the custom dialplan.
	Look at the comments in the code for more info.

45. Added third generation web-based lead loader capable of loading more data 
	file types and optionally loading all of them with custom list fields. 
	You must install the following perl modules on your web server for this
	new lead loader to work:
		cpan> install Spreadsheet::XLSX
		cpan> install Spreadsheet::Read
	To get to the new lead loader, click to:
		Lists -> Load New Leads
	Here is a list of the file formats(by file extension) that are now
	supported by the third generation web lead loader:
		TXT  - tab or pipe delimited
		CSV  - comma separated values
		XLS  - MS Excel 2000/XP
		XLSX - MS Excel 2007+
		SXC  - OpenOffice.org First Generation Spreadsheet
		ODS  - OpenOffice.org OpenDocument Spreadsheet

46. Added the ability to run selected reports from a MySQL slave server. This is
	definable in the System Settings in the admin.php interface. You must
	already have MySQL Master/Slave replication set up for this to work.

47. Added options to include recording ID, Filename and/or Location with Call 
	Export Report results

48. Added Non-Agent API function for updating leads: update_lead
	Allows for searching by lead_id, vendor_lead_code and phone_number
	as well as the ability to insert a new lead if no results found.
	Works with custom fields as well.
	For more information, look in the docs/NON-AGENT_API.txt doc

49. Added Wait Time options to in-groups. This is different from the Estimated
	Hold Time options because this is based only on the customer wait time.
	Also, second and third options were added for both allow the offering of
	a press 1, 2 and 3 option in the wait/hold time option features.

50. Added timer action methods HANGUP, EXTENSION, CALLMENU and IN_GROUP. These
	allow you to hangup or transfer the call at a set number of seconds
	from start time or triggered from an outside process.

51. Added Allowable Reports option in User Groups for user_level 7 and higher 
	users to restrict viewable reports. Also enforced the Allowed
	Campaigns option in User Group across admin.php and reports

52. Changed the "Admin" link in admin.php to go to a links page instead of a 
	listing of Phones, also forced level 7 users to the reports links page
	if they try going anywhere in admin.php

53. Renamed "In-Groups" header in admin.php to "Inbound" to reflect that it is
	not just for In-groups, but includes DIDs and Call Menus as well

54. Added Filter Phone Groups to allow calls coming into DIDs to be filtered
	and sent to a different route if the caller ID number matches one in
	the selected Filter Phone Group, or the search can be done by a web GET
	to a URL that you define.

55. Added method to clean caller ID number when calls come into DIDs, either by
	stripping specific digits from the front of a number if they are there
	or taking only the right X numbers, i.e. R10 will take only the 10 
	digits on the right of a number, and L1 will remove only a 1 from the
	left side of the number.

56. Added ability to download DNC numbers from the internal and campaign-
	specific DNC lists, as well as the Filter Phone Groups

57. Added validation for Remote Agents to ensure that the User Start is a valid
	User in the system, also added validation that Remote Agents do not
	overlap their number of lines into another Remote Agent

58. Added ability to override the System Settings webphone URL per User Group

59. Added Calculate Estimated Hold Seconds setting which can delay the 
	Calculation and optionally the announcement of Estimated Hold Time
	for X seconds.

60. Added new beta script for faster checking of leave-3way conferences,
	AST_conf_update_3way.pl, read the comments before using.

61. Added Transfer Presets to Campaigns allowing for unlimited dial presets for
	agents to use in the transfer-conf frame of the agent interface. Also,
	real-time and outbound report reporting have been added to show call
	counts for these presets. Presets can optionally have their numbers
	hidden from agents allowing agents only to select a preset name to
	transfer or conference a call to. You must Enable Transfer Presets in a
	campaign before you can define them in the Presets sub-menu.

62. Added ability to hide the "Number to dial" field in the Transfer-conf frame
	of the agent interface. This is a Campaign-level setting.

63. Added Manual Dial Prefix to allow for a different dial path for manual dial
	calls placed through the agent interface.

64. Added did_id, did_extension, did_pattern, did_description, closecallid, 
	xfercallid and agent_log_id 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.

66. Allow the changing of the queue priority of an inbound call while the call
	is in queue.

67. Changed the example iax.conf and sip.conf to default to context=trunkinbound
	to prevent unauthenticated calls on insecure phone accounts

68. Added password strength grading for users, phones and servers. Added ability
	to force a user password change on the next admin login. Added password 
	default settings to System Settings and added a first login setup screen

69. Changed application limit for lead_id from 9 digits to 10 digits. This does 
	not affect the database limit of lead_id: 4294967295

70. Added customer 3way hangup logging options to campaigns which will log if 
	and how far into the 3-way call a customer has hung-up, as well as if
	the agent initiated the call after the customer hung up. There is also
	an option to end the 3-way call and send the agent to the disposition
	screen if the customer hangs up during the 3-way call.

71. Added ability to view Inbound Report by selected DIDs instead of by 
	in-groups. Link added to Reports page.

72. Added dispo_move_list.php script which can be used in the Dispo Call URL
	option for a campaign or in-group. This script can be used to move a
	lead into a different list_id after the agent disposition depending on
	the disposition that is selected. Optionally, the lead can also be reset
	so that it can be dialed back immediately. See the code comments for 
	more information.

73. Added the Lists Campaign Statuses Report which is a list inventory report, 
	not a calling report. This report will show statistics for all of the 
	lists in the selected campaigns.

74. Added ability to use Custom List Fields in Web Forms, Scripts and Dispo 
	Call URL entries used by the agent interface.

75. Added "Add Lead URL" feature to in-groups. Works like Dispo Call URL except
	it will send a web get out as soon as a lead is created by the inbound
	process. There is a more limited set of variables available for use with
	this option, see the admin.php help for more details

76. Changed the PARK CUSTOMER option in campaigns to use a Music-on-Hold context
	instead of a difficult-to-configure filename and extension as before

77. Added new IVR PARK CUSTOMER feature to campaigns allowing an agent to park
	a customer to an AGI script as an IVR and have the customer enter in
	digits unassisted and then be redirected back to the agent who parked
	them when they are finished. Optional in-group redirect if customer 
	does not enter valid input. See example park_call_IVR_example.agi script

78. Added In-Group options for Estimated Hold Time Minimum, which can replace
	the "15 seconds" minimum accouncement with an announcement of your 
	choosing

79. Added a campaign option for Manual Preview Dial, to enable or disable that
	manual dial option, as well as allowing or disallowing for the SKIP
	lead option.

80. Added two new recording filename variable options: VENDORLEADCODE, LEADID

81. Added the ViciDial Web Dial Firefox web browser plugin, that allows right-
	click selection dialing of phone numbers on web pages to a logged-in
	ViciDial Agent session. See "extras/firefox_plugin" for more info.

82. Added ability to change users' in-group settings from the in-group 
	modification screen in bulk.

83. Added Agent Average time stats option to the real-time screen. Must enable
	realtime_agent_time_stats option in campaign screen.

84. Added customer park time counter to the agent screen when customer is on
	park. Also, added logging of parked calls to park_log table

85. Added ADDMEMBER queue_log logging option to System Settings, and added 
	CALLERONHOLD entries to queue_log when customer is on park.

86. Added admin no-cache and auto-refresh of modify screens to admin interface.
	These are configurable in the System Settings

87. Added option for cross-server phone dialplan extensions in System Settings.

88. Added campaign feature to automatically adjust the hopper level to the 
	dialing rate and the number of active agents, also added a trim feature
	to make sure the hopper is not filled too much

89. Added the ability to filter manual dial calls to adhere to the call time
	scheme selected for the campaign. Does not work with State Call Times.
	Must be enabled in the Campaign Detail settings.

90. Added the ability to queue multiple manual dial calls for a specific logged-
	in agent using the Agent API. Feature must be enabled in the Campaign 
	Detail settings.

91. Added ability to modify scheduled callback dates and comments in the Admin 
	Modify Lead screen.

92. Added List override options for webform fields

93. Added script to purge all vicidial_callbacks records that are inactive or
	are tied to deleted leads, AST_DB_dead_cb_purge.pl
	add to the crontab like this:
	# cleanup of the scheduled callback records
	25 0 * * * /usr/share/astguiclient/AST_DB_dead_cb_purge.pl --purge-non-cb -q

94. Added did_log_export and recording_lookup functions to the non-agent API

95. Added option to display statuses within the active lists of a campaign in
	the campaign modification screen. Also includes called and not called
	counts.

96. Added rewritten AJAX/Javascript driven real-time report, able to support
	webphones.

97. Added the ability to hide fields in the agent interface by entering 
	---HIDE--- into the System Settings label option for the field

98. Added preprocess leads in script to filter leads and generate standard
	format lead files before being imported

99. Added the ability to have call times go beyond midnight for inbound calls.

100. Added capability for agent interface to have webphone as a thin top bar

101. Added hopper loader randomization option in Campaign Detail screen, which
	allows for the results to be randomized inside of the sorted results as
	sorted by the List Order option

102. Added add_user and add_phone non-agent API functions

103. Changed vicidial.php HTML formatting to be XHTML compliant

104. Added vdc_script_dispo_example.php script which can be customized to
	require specific fields be filled in before submitting, as well as 
	limiting this restriction to only specific dispositions. You can also
	specify dispositions to be selectable that are set to non-selectable.
	You use this script in an IFRAME for the campaign. It must be 
	customized for your specific business rules.

105. Added the ability to use custom statuses for scheduled callbacks. These
	are configurable with the Scheduled Callbacks flag in the System
	Statuses and Campaign Statuses administrative screens.

106. Added Secondary List Order which allows for further sorting of leads to be
	dialed by a secondary sorting method

107. Added Default Campaign setting for the My Callback agent interface option
	so that the checkbox can be pre-selected or not on every call

108. Added the campaign option for per-call call notes in the agent interface.
	If the User Group also has Call Log enabled, the agent can also see 
	the call notes from previous calls.

109. Added the add-a-new-lead link to the admin interface

110. Added ability for an agent to search for a lead in the agent interface 
	while paused. This feature can be enabled per campaign and per user. 
	Searches can optionally be restricted to campaign lists or only one 
	list. All search queries are logged.

111. Added options to restrict agent lead search to the owner field equal to
	the user, user group or selected territories for the agent.

112. Added option for phone load balanced logins server twin checking on 
	systems that have servers installed in pairs

113. Changed scheduled callbacks display in the agent interface to show all
	callback and lead information, including call history and call notes,
	without having to dial the lead.

114. Added on-hook agent phone feature. This feature allows inbound calls from
	customers to ring on an on-hook agent phone, but not be transferred to 
	that agent until the agent's phone is answered. If the call times out 
	then the call will go on to the next agent. This is defined in the 
	Phones record and allows the agent using the vicidial.php agent screen 
	to not have to stay on the phone at all times when they are logged in. 
	You will need to add the following lines to the default context in your 
	extensions.conf file:
		; these are used for the ring_all function in VICIDIAL
		exten => _8331*.,1,Playback(sip-silence)
		exten => _8331*.,n,AGI(agi-VDAD_RINGALL.agi,${EXTEN})
		exten => _8331*.,n,AGI(agi-VDAD_RINGALL.agi,${EXTEN})
		exten => _8331*.,n,AGI(agi-VDAD_RINGALL.agi,${EXTEN})
		exten => _8331*.,n,Hangup

115. Added ring_all Next Agent Call option for in-groups. This works with on-
	hook agent phones to allow all available agents to have their phones
	ring at the same time, with the first agent to pick up their phone 
	receiving the call. It is not recommended to use this on high-volume 
	systems or systems with many agents available.

116. Added DEFER options to the Scheduled Callbacks Alert campaign feature. 
	These allow you to stop the blinking of the alert in the agent screen
	after you have viewed the callbacks, but if the number of callbacks 
	changes the red and/or blink will start again.

117. Added add_list and update_list functions to the Non-Agent API, allowing
	you to add, modify and delete lists, as well as reset leads in a list,
	change a list to active or inactive, change the campaign of a list and
	delete the leads inside of a list.

118. Added Campaign option to auto-pause agents when they go into several 
	pre-call functions like Manual Dial, Lead Search, Callbacks Check, etc.
	Also added an option to auto-resume the agent when leaving those 
	funtions.

119. Changed almost all of the browser alerts to HTML alerts. These are the 
	messages that tell you for example that you cannot do this when paused.
	The reason for the change is that browser alerts are blocking and will
	halt executiong of javascript on the agent workstation. This change
	should require no alterations to any configurations.

120. Added recording of Remote Agents calls per recording settings in campaigns.
	If recording is set to ALLCALLS or ALLFORCE then a recording will be 
	initiated for the call upon routing to the Remote Agent and will be tied
	to the R/ user and the lead_id. Also works with on-hook enabled. User-
	level recording settings for the start user of the remote agent will 
	also be followed.

121. Added MULTI_LEAD option for Auto-Alt-Dialing. Using MULTI_LEAD allows you 
	to use a separate lead for each number on a customer account that all 
	share a common vendor_lead_code, and the type of phone number for each 
	is defined with a label in the Owner field. This option will disable 
	some options on the Modify Campaign screen and show a link to the 
	Multi-Alt Settings page which allows you to set which phone number types
	, defined by the label of each lead, will be dialed and in what order. 
	This will create a special lead filter and will alter the Rank field of 
	all of the leads inside the lists set to this campaign in order to call 
	them in the order you have specified.

122. Added option to use the owner field to define a time zone abbreviation code
	Works across web/api/cli lead loading methods. There is also an option
	in the time zone updating script to use this method.

123. Added ability to use external_dial Agent API function with a defined 
	lead_id and optional alt_dial setting

124. Added feature to give an alert on manual dial campaigns if the phone number
	area code and the postal code are in different time zones, or if either
	of them are outside of the local call time for the campaign. Viewable in
	preview mode as well as lead info viewing from the callbacks list, the 
	call log and search results in the agent interface.

125. Added utility to synchronize users, remote agents, dids, call menus, 
	in-groups and campaigns with entries in QM: ADMIN_qm_sync.pl

126. Added Custom 3-Way Button Transfer feature which allows for 3-way calls to
	be placed using one of several lead fields or campaign presets, as well 
	as the customer optionally being put on park, and the transfer - conf
	frame being brought up, all at the click of one button on the main agent
	screen.

127. Added the agc/phone_only.php script, a web-based web-phone-only client 
	application that allows full phone usage without needing to login as an
	agent

128. Added option to Lists to allow you to choose in the List Modification 
	screen the method of time zone adjustment that happens nightly on a per
	list basis. COUNTRY_AND_AREA_CODE is the default, and will use the 
	country code and area code of the phone number to determine the time 
	zone of the lead. POSTAL_CODE will use the postal code if available to 
	determine the time zone of the lead. NANPA_PREFIX works only in the USA 
	and will use the area code and prefix of the phone number to determine 
	the time zone of the lead, but this is not enabled by default in the 
	system, so please be sure you have the NANPA prefix data loaded onto 
	your system before selecting this option. OWNER_TIME_ZONE_CODE will use 
	a standard time zone abbreviation loaded into the owner field of the 
	lead to determine the time zone, in the USA examples are AST, EST, CST, 
	MST, PST, AKST, HST. This feature does NOT affect the time zone used at
	the moment leads are loaded, that needs to be selected when you are 
	loading leads. This feature must be enabled in the crontab for the GMT 
	adjust script:
	/usr/share/astguiclient/ADMIN_adjust_GMTnow_on_leads.pl --list-settings

129. Added Available Only Tally Threshold campaign option which allows you to 
	set the number of agents below which Available Only Tally will be 
	temporarily enabled

130. Added Auto Dial Level Threshold campaign option which allows you to set a 
	minimum number agents that the predictive algorithm will work at. If the 
	number of agents falls below the number that you have set, then the 
	dial level will go to 1.0 until more agents log in or go into the 
	selected state

131. Change Dial Level Difference Target to work properly with all RATIO and
	ADAPT dial method outbound campaigns. Added a Method option to restrict
	this feature to only calculation of dial level or to affect the calls 
	dialed on each dialing engine.

132. Added ability to have outbound auto-dial campaigns drop to an audio prompt
	or a call menu. Outbound IVR Report added. Added optional logging of 
	call menu caller key presses. Lead ID can now be preserved on calls 
	coming from auto-dial or in-groups that go through call menus and back
	into an in-group. Call Menu transfer also works from an Outbound Survey.

133. Added new agent interface alert where manual dial calls will not be allowed
	if the disposition process has not completed. Usually a rare problem on 
	systems with networking issues.

134. Added Callback Days Limit campaign option to allow scheduled callbacks to 
	be scheduled only a set number of days from today.

135. Added ability to disable the Disposition screen on the agent interface.

136. Added install.pl options to define conf file and copy web language
	translation files.

137. Added Export Leads Report similar to Export Calls Report, but a lead is 
	only exported once and with the current status.

138. Added Agent Screen Labels sub-section of the Admin functions. Allows for
	each campaign to use a different set of labels for the fields on the 
	default agent screen.

139. Added ability to define the agent screen status fields shown to the agent:
	Call ID, Lead ID and List ID

140. Added HIDDEN and READONLY field types for custom list fields.

141. Added Outbound Campaign Test Call feature to allow you to place a call from
	the Campaign Detail screen that will go out as if it were an auto-dial 
	call. Must be enabled in System Settings.

142. Added ability to check for USA and Canada valid prefix and areacodes when
	loading leads into the web/cli/api lead loaders

143. Added ability to use AGENTEXT in AGENTDIRECT in-groups as a way to send 
	dropped, no-agent-no-queue and other transferred calls to a specific
	dialplan number per-user defined in the User Custom Five field.

144. Added last_inbound_call_time and last_inbound_call_finish Next Agent Call 
	routing options to in-groups.

145. Added CSV download option to almost all reports.

146. Added manual dial agent skip lead logging to the user stats page

147. Added HIDEBLOB field type for custom list fields

148. Added options to set the voicemail zone and extra voicemail options for 
	each voicemail box in phones and extra voicemail boxes. Also added 
	default voicemail zone and timezone settings in the system settings.
	**	**** NOTE **** You might want to add the new zones in the new 
	**	voicemail.conf.sample file to your voicemail.conf file
   You must delete the BUILD voicemail file for this feature to work:
	rm -f /etc/asterisk/BUILDvoicemail-vicidial.conf

149. Added ability to chose the type of callerid sent for inbound ring-agent
	calls in the in-group: GENERIC, INGROUP, CUSTOMER PHONE and a couple
	of combinations of those.

150. Added NA Call URL feature to campaigns and in-groups. This works like
	dispo call url, but it works only for non-agent handled calls, like
	dropped calls, No Answers, Busy, etc... 

151. Changed MULTI_LEAD Auto-Alt-Dial to use the Auto-Alt-Dial Statuses as set
	in the campaign automatically. If you are using MULTI_LEAD you may need
	to add statuses like DROP, PDROP and others to your campaign's auto-alt
	dial statuses so that the other leads tied by vendor_lead_code in the 
	campaign's lists are not deactivated.

152. Added noanswer logging feature to System Settings, will log only auto-dial
	calls that are not answered to a separate table

153. Added new Team Performance Detail report to the Reports page. This is a 
	fairly detailed and database-intensive report that summarizes several
	user-grouped statistics

154. Added ability to use static audio from dynamic fields in Survey and
	Answering machine messages when using Cepstral TTS

155. Added the Campaign Status List Report which shows calls broken down by
	status within each list_id for a campaign.

156. Added update_phone, add_phone_alias, update_phone_alias functions to the
	Non-Agent API.

157. Added optional DID Agent logging as System Settings option. This logs calls
	that come into DIDs in a separate table that includes the in-group and
	user that the call was sent to, if applicable

158. Added options in Call Menus to allow for invalid action on second or third
	invalid selection by the caller instead of just the first.

159. Added ability to set custom callerID numbers per campaign for outbound 
	calls by areacode. You can even set multiple callerIDs per areacode.

160. Added Agent API function logout to log an agent out of their session

161. Added Phone Login Load Balancing Grouping campaign settings to allow 
	smaller campaigns to have their agents on the same server to allow for
	more efficient dialing on outbound campaigns. Must have more than one
	agent server and phone aliases enabled for this feature to work.

162. Added DID remote agent extension override entries allowing for inbound
	calls that are routed to remote agents being able to have DID-specific
	extensions that a call would be routed to instead of the remote agent
	extension. Multiple entries allowed per DID/Remote-Agent as well as 
	per DID for all agents(---ALL---). Must be enabled in System Settings.

163. Added 9 new User permissions to allow access to specific Admin sections
	like Vociemail Music-on-hold and 7 others individually.

164. Added ability to define a callerid to use for action transfers from 
	in-groups(Drop, After-Hours, No-Agent-No-Queue) when transferring out
	to voicemail, extension, callmenu, etc... You can also select that the
	customer phone number is used.

165. Added ability to drop or after-hours to a call menu in in-groups.

166. Added ability to set scheduled callbacks through the non-agent-api in the
	add_lead and update_lead functions.

167. Added new cm_lookup.agi script to allow for account lookups within a 
	Call Menu without having to go into an in-group. Also new Call Menu
	option added to allow for vicidial_list field logging of responses
	inside of a call menu.

166. Added new Call Count Limit option to the campaign screen. This allows you 
	to limit the number of attempts for any lead being dialed by a campaign.
	Previously you had to use a filter to achieve this functionality.

167. Added new Complete flag for statuses and campaign statuses. Used by the 
	new columns mentioned below as well as for future reports.

168. Added Dialable and Penetration columns to the Statuses Within This List/
	Campaign tables on the list and campaign screens, showing the DIALABLE
	count for each status as well as the complete-flag and call-count-limit
	percentage as PENETRATION.

169. Added Admin -> Contacts section(must be enabled in System Settings) which
	allows for system-wide transfer contacts to be used in conjunction with
	Custom Transfer being set to VIEW_CONTACTS and Enable Transfer Presets
	set to CONTACTS. Able to be disabled per user. Also can be accessed from
	a separate database by using the Alt Log settings in System Settings.
	The purpose of this feature is to be used for a receptionist or operator
	that needs to transfer calls to non-agents.

170. Added Scheduled Callback Hours Block feature to block USERONLY callbacks
	from being displayed to an agent within a set number of hours since the
	callback was set. Also, added Calltime Block feature which will remove 
	DIAL links from callback list if the lead is outside of the campaign
	selected call time.

171. Added "Admin User Group" setting to just about every section of the admin
	web interface and reports, allowing for more complete administrative 
	access segmentation for different divisions within the same company.

172. Added Max Calls settings to in-groups, allowing for a cap on concurrent 
	calls being handled by each in-group, either in total or in queue.

173. Added ability to block customer information and hide portions of customer
	phone numbers within the admin interface on a per admin-user basis.

174. Added ability to set scheduled callbacks with Agent API.

175. Added alt_phone and address3 field searches to DID and Call Menu in-group
	call routing, to allow searching first by phone number, then optionally
	by alt_phone and address3.

176. Added new Inbound Daily Report.

177. Added new Grade-Random Next-Agent-Call methods that allow for agents to 
	have a higher or lower probability of receiving the next call depending
	on their grade for a specific in-group or campaign.

178. Added ability to update phone number on a lead when call is looked up
	through the cm_lookup.agi script from a Call Menu

179. Added Daily Max Stats used for measuring the total calls for the day for
	in-groups and campaigns as well as the maximum number of concurrent
	calls handled by each at any time during the day. Small graphs added to
	the in-group and campaign screens as well as larger graphs with more 
	details on a new report screen. These stats are summary stats that are
	generated from the logs in real-time on the back end, they are not
	recalculated every time the screen loads as with most other reports.

180. Added Timer Action for Dx_DIAL_QUIET options and timer_rebeep.agi script to
	allow for periodic beep in agent session required by some organizations
	to make customers aware of a recorded line.

181. Added Dialer Inventory Report, requires a process to be added to the 
	crontab after-hours to gather the statistics (this example is 7:01am):
	1 7 * * * /usr/share/astguiclient/AST_dialer_inventory_snapshot.pl -q --override-24hours

182. Separated the auto-generated dialplan into different contexts to allow for
	easier segmentation of dialing permissions using the Phone Context and
	custom Call Menus. Here is a list of the new contexts that are now below
	the vicidial-auto context:
		vicidial-auto-system-setting-custom
		vicidial-auto-server-custom
		vicidial-auto-external
		vicidial-auto-internal
		vicidial-auto-phones

183. Added Remote-Agent daily stats to the remote agent modification screen that
	shows total calls and maximum number of concurrent calls per day.

184. Added 'Hopper VLC Dup Check' campaign option that will check for duplicates
	by vendor_lead_code before inserting leads into the hopper to be dialed.
	This option is only recommended for some campaigns that are using the
	MULTI_LEAD option of Auto-Alt-Dial.
	  *It is recommended that if you want to enable this feature you should
	   index the vendor_lead_code field in the vicidial_list table:
	      CREATE INDEX vendor_lead_code on vicidial_list (vendor_lead_code);

185. Added Dialer Inventory Report options for excluding lists and ranking 
	shifts display order.

186. Added User Group multi-selection option to the real-time report.

187. Added HTML bar chart display options to most of the reports.

188. Added SCRIPT_multirecording.php script that allows triggering of starting
	and stopping of recordings on demand within a script in a IFRAME

189. Added compatibility for DAHDI channelbank phones for agents in vicidial.php

190. Added Carrier Log and Hangup Reason reports to Admin Utilities screen

191. Added Lead Loading File Templates

192. Added "--daily" option to the ADMIN_archive_log_tables.pl script allowing
	for the call_log and vicidial_log_extended tables to be archived every
	night and only keep the last 24-hours of logs in the active table.

193. Changed the AST_flush_DBqueue.pl script to only need to run on one server
	NOTE: IMPORTANT !!!!! disable this script on the crontab of all but one
	server on your cluster.

194. Added Danish agent web interface translation





########## UPGRADING FROM 2.0.5 TO 2.2.0 ##########

1. install new files:
	perl ./install.pl
	NOTES: If you have customized any scripts in the bin or agi folders, 
	then make sure you back them up before running the install.pl script. 
	This script will replace existing files in the astguiclient installation.

2. upgrade the MySQL asterisk database:
	mysql
	use asterisk
	\. /path/from/root/extras/upgrade_2.2.0.sql
	quit

3. Added new method for monitoring from the Real-time screen using a phone entry

4. Outbound Survey option for using Cepstral Text-to-speech. Requires Cepstral 
	to be installed and configured with proper licenses in place to use.
	You must enable TTS in the System Settings screen, then you can access 
	the TTS section of the web administration.

5. Added RANDOM and LAST CALL TIME lead order options to campaigns

6. Changed List Mix to be active by default, depricated the 
	AST_VDhopper_MIXtest.pl script, if you use it change it to the
	AST_VDhopper.pl in your crontab entries

7. Added Call Menus Feature(aka IVR) in the In-groups section. This allows you
	to create call menus with DTMF options using the Admin web interface.

8. Changed all PHP scripts to use long tags, short tags are depricated in PHP6

9. Added audio upload ability from web interface, choose audio prompts from a
	list in the call menu and in-group admin screens, and back-end audio 
	synchronization utilities have been added for multi-server setups.
	to seed all Asterisk audio files, run the following command from your
	Asterisk server with ViciDial installed:
	/usr/share/astguiclient/ADMIN_audio_store_sync.pl --force-upload --debug
	NOTE: Make sure the web audio store folder exists and is writable

10. Added Active Voicemail Server setting to System Settings. Now the voicemail
	and prompt recording extensions are auto-generated so that they all
	direct to the same server and they should be removed from the 
	extensions.conf file:
	8168, 8167, 85026666666666, 8500, 8501

11. Added auto dial limit setting to System Settings to allow setting of the 
	top limit for Campaign Auto Dial Level pull-down menu in the Modify
	Campaign screens

12. Added Agent Time Detail report showing the timeclock time, agent activity
	time and pause codes time by agent across selected campaigns and/or 
	user groups. Also reformatted Reports screen in Administration

13. Removed the ViciDial recording extensions from the general dialplan since
	they are now auto-generated and placed in the extensions-vicidial.conf
	file(8309 and 8310). Also, phone dial-out contexts are definable now 
	allowing you to lock out agent phone in a call center from dialing out.

14. Added option to login as an agent with no phone. Must create a phones entry
	called 'nophone' with dialplan number of 8300.

15. Added live monitoring of calls and retrieval of recorded calls through the
	QueueMetrics interface

16. Added up to 40 records to one List Mix going down to 1% mix, as well as the
	option to populate all records with a set of statuses

17. Added ability to force auto-incremented ID values for Users, Campaigns,
	Lists, Scripts, In-groups, etc... using the vicidial_override_ids table

18. Added the HIDE option for Disable Alter Customer Phone field to hide the 
	customer phone number from the agent interface

19. Added dynamic route options to Call Menus and links to Call Menus and DIDs

20. Added DID traffic stats report: AST_DIDstats.php

21. Added User Time-Clock Detail report to show agent login and logout times
	along with totals, sortable and downloadable

22. Added DAHDI channel compatibility and carrier logging for outbound list calls

23. Changed Auto-Detected Busy and Disconnected statuses to AB and ADC to better
	separate them from agent-defined statuses

24. Added option to lock out DROP calls from being called again for a period of 
	time, as a campaign option. This is useful to be able to comply with the
	UK telemarketing regulations that state you may not auto-dial a customer
	back within 72 hours of an abandon.

25. Changed In-Group and Call Menu prompts to allow for multiple audio files per
	prompt by separating them by pipes |. Also, changed the Agent Alert 
	Extention to a Filename in In-Groups

26. Added a conf_secret field to phones table to be used as sip.conf/iax.conf
	password instead of the pass field. Please check that this is set 
	properly if you are having phone registration issues

27. Added no-agent-no-queueing options to In-Groups to send a call somewhere 
	else when there is no agent logged in(or active) to the in-group

28. Changed the agent alert extension to a filename in in-groups

29. Added process for updating statuses on leads in the vicidial_list table
	through a batch process(VICIDIAL_UPDATE_leads_status_file.pl) as well
	as a web-based report to show the stats for these transactions

30. Added the option for a Quick Transfer from the agent screen. This option
	allows the blind transfer of a call to the default transfer group or one
	of the presets with a single button click. Also added a preset populate
	feature to pre-populate the Number to Call field with one of the presets
	for the campaign.

31. Added Multiple Campaign Drop Rate Groups to allow campaigns to share a drop
	percentage. This allows you to to run multiple smaller campaigns at one
	time and more easily control your drop rate.

32. Added pre-Answer statuses and processing for the Sangoma CPD(Call Progress
	Detection) proxy as well as a new netborder sip patch:
	netborder-cpd-1.4.patch

33. Added Agents Status View sidebar to agent interface, and available transfer
	agent frame to AGENTDIRECT transfers when clicking on the NUMBER TO CALL
	field in the transfer conference frame

34. Added Calls in Queue display to Agent screen, along with click to grab a 
	call from this listing. 

35. Added a Re-Queue Call button to send the current call back to an AGENTDIRECT
	in-group for the agent to take later

36. Added rank and owner to the vicidial_list table. the CLI lead loader has
	a new stdrankowner format to add these fields in lead files. Also, added
	these fields to the web-based lead loader formats and field chooser.
	Related to this, RANK and OWNER are now lead order options in the 
	campaign screen.

37. Added automatic list reset option to List Modification screen. You can enter
	multiple times, and the leads in the list will be reset at those times.

38. Added no-hopper dialing option for MANUAL and INBOUND_MAN campaigns. If This
	is enabled, the hopper will not run for this campaign. This option is 
	only available when the dial method is set to MANUAL or INBOUND_MAN. It 
	is recommended that you do not enable this option if you have a very 
	large lead database, over 100,000 leads. With No Hopper Dialing, the 
	following features do not work: lead recycling, auto-alt-dialing, list 
	mix, list ordering with Xth NEW. If you want to use Owner Only Dialing 
	you must have No Hopper Dialing enabled. Default is N for disabled.

39. Added lead owner option to restrict dialing within a list to the owner of a
	lead only. If This is enabled, the agent will only receive leads that 
	they are within the ownership parameters for. If this is set to USER 
	then the agent must be the user defined in the database as the owner of 
	this lead. If this is set to TERRITORY then the owner of the lead must 
	match the territory listed in the User Modification screen for this 
	agent. If this is set to USER_GROUP then the owner of the lead must 
	match the user group that the agent is a member of. For this feature to 
	work the dial method must be set to MANUAL or INBOUND_MAN and No Hopper 
	Dialing must be enabled. Default is NONE for disabled.

40. Agent screen Alert option is now disabled by default.

41. Added --GSW option for audio processing scripts 2 and 3 for GSM codec files
	with an RIFF header and named with .wav file extension

42. Added agent screen display dialable leads option for campaigns

43. Added ViciDial Balance Rank for servers to allow prioritizing the servers
	that will dial the FILL calls in a multi-server cluster

44. Added optional twoday_ log tables which give you a safer place to be pulling
	slightly less than real-time information from log tables without locking
	the live log tables. there are 6 twoday_ log tables: recording_log, 
	call_log, vicidial_log, vicidial_closer_log, vicidial_xfer_log and
	vicidial_agent_log

45. Added new Inbound Summary Hourly Report to show stats by in-group and broken
	down per in-group in hourly increments. This report also allows
	filtering of the stats by call time scheme.

46. Added option to the Outbound(VDAD) report to calculate stats including the
	overflow drop in-group stats with the outbound campaign stats.

47. Added longest_wait_time option for Next Agent Call in Campaigns and 
	In-Groups. 

48. Changed Real-time Report screen agent time display to be based upon a change
	in "state"(INCALL, READY, PAUSED, etc...) instead of being based upon
	the time of the last call they handled.

49. Changed the ViciDial agent screen to not delete session reservations by
	default at agent logout. Instead, the ADMIN_keepalive process will clear
	out unused session reservations once a day at the timeclock reset time 
	as set in system_settings.

50. Changed voicemail config to use phone password as voicemail password instead
	of just the voicemail ID as the password

51. Rewrote how scripts are displayed in the ViciDial agent interface

52. Added List agent script override setting allowing different scripts to be 
	used for each list ID even within the same campaign

53. Added web-configurable Music-On-Hold and conferences to the admin interface.
	Make sure you add the following lines to your meetme.conf and 
	musiconhold.conf files, or just use the samples included:
	#include musiconhold-vicidial.conf
	#include meetme-vicidial.conf

54. Changed the reloading of Asterisk modules to only reload the ones that have
	had changes made to them.

55. Added "Active Agent Server" option to servers to allow disabling of agent
	phone logins through ViciDial Agent Screen to a specific server

56. Added TIMEZONE UP and DOWN lead orders options for campaigns

57. Added DEAD call time logging and agent notification of call hangup

58. Added second web form button with different URLs possible per campaign and
	in-group. Must be enabled in System Settings

59. Changed Answering Machine Message campaign option to an audio select with an
	option for TTS prompt to be used. You must change any custom values you 
	have set in this field to an audio prompt or it will not function 
	properly. Also added WaitForSilence Options setting to the campaign 
	screen. If you want to use this it must be populated in each campaign.

	You must change 8320 to the following in your extensions.conf:
		exten => 8320,1,AGI(VD_amd.agi,${EXTEN}-----YES)
		exten => 8320,2,Hangup
	# the VD_amd_post.agi script is now depricated

60. Added additional Voicemail configuration through admin.php. Voicemail boxes
	can now be created without being tied to a phone. These voicemail boxes
	are added to the active voicemail server and there must be an active
	voicemail server defined in the system settings for these to work.

61. Added List override options for callerID, answering machine message and
	drop inbound group to override campaign settings for leads within a
	specific list

62. Added Agent-selectable territories list upon login to select what list
	territories they want to place calls in. 
	REQUIREMENTS:
	- Must have System Setting "User Territories Active" enabled
	- Must have Campaign "No Hopper Dialing" enabled
	- Must have Campaign "Owner Only Dialing" set to TERRITORY
	- Must have Campaign "Agent Select Territories" enabled
	- Must have User "Agent Choose Territories" enabled
	- Leads must have the owner field set to desired territory

63. Added ability to use Remote Agents with all inbound next-agent-call settings

64. Added ability to use DNCC and DNCL as Auto-Alt-Dial statuses

65. Added ability to DNC filter by North American AREACODE using 201XXXXXXX as
	a DNC list entry. Enabled by using the AREACODE option in Campaign
	Detail settings

66. Added agi-NVA_recording.agi script to allow for recording of non-agent calls
	as well as the ability to log them. If audio recording using this script
	make sure you use the STEP 1 audio mixing script in your crontab with
	the "--MIX" option so that these recordings are stored properly

67. Added queue_log DID and IVR logging entries for QueueMetrics

68. Added secondary FTP audio recording file transfer script to send recordings
	to a second FTP server after finishing transfer to the primary server.

69. Added Conf File Secret to Servers section to allow for a custom password
	on internal ASTloop, ASTblind and server-to-server IAX connections
	This requires some lines to be removed from the iax.conf file:
	- remove the register entries for ASTloop and ASTblind
	- remove the account entries for [ASTloop] and [ASTblind]
	This requires some lines to be removed from the extensions.conf file:
	- remove the TRUNKloop and TRUNKblind entries near the top

70. Added Outbound Summary Interval Report which will show various statistics
	for a range of campaigns, filtering results by call time and displaying
	them broken down by 15/30/60 minute periods by campaign. Also has an 
	option to included the drop overflow calls in the statistics.

71. Added option for links to the reports page by including a file in vicidial
	web directory named 'custom_report_links.html'. This allows you to 
	maintain custom links even after upgrading your system. There is a
	'EXAMPLEcustom_report_links.html' file included in that directory that
	can just be copied and customized for your needs.

72. Replaced all "SELECT *" MySQL queries with proper field lists. This makes
	database table field order less important, allowing for more 
	customizations by the user without causing problems.

73. Added an API function(change_ingroups) which allows the selected in-groups
	for an agent to be changed while they are active in the ViciDial Agent
	screen. Once changed in this way, the agent would need to log out and 
	back in to be able to select in-groups themselves. Blended can also be
	changed using this function. For more information see the AGENT_API.txt
	document in the docs directory.

74. Added a non-agent-API function and a new feature to the Real-Time screen
	that allows a manager to change the in-groups selected by an agent in
	real time while an agent is logged in. Simply click on the INFO + link
	for the agent you want to modify, select the in-groups, select blended
	and select if you want to override the agent default settings then 
	click submit. Manager must have the ability to Change Agent Campaign in
	their user settings.

75. Added Recording Filename and Recording ID as Script variables. If you use
	either or both of these the script content will load twice if you have
	auto-launch set to SCRIPT. Only works with recording set to ALLCALLS or
	ALLFORCE for script on auto-launch. Also, added a refresh link for the
	script tab to reload content at will.

76. Redesigned the Transfer-Conference frame in the agent interface and added
	a CONSULTATIVE checkbox to allow for easier consultative 3-way calls
	with other ViciDial agents with customer information. This also allows
	for AGENTDIRECT consultative transfers. CXFER is no longer needed to do
	consultative transfers

77. Added "Delete Voicemail After Email" options to delete messages on the
	server after they have been emailed

78. Added CRM Login Popup to campaign settings to allow for a custom window to
	be opened on agent login, optionally using agent and campaign variables

79. Added 5 custom fields to the user settings

80. Added Initial Queue Position logging on inbound calls and a summary of this
	to the Inbound report

81. Added six duplication check methods to the non-agent API add_lead function

82. Added VIDPROMPT options for in-group call handling to prompt caller for an
	ID number that will be populated in the vendor ID(vendor_lead_code) 
	field.

83. Added an agent API function to update vicidial_list fields and the field
	values in the agent screen on-the-fly for the agent's current call

84. Added timer action options to campaigns and in-groups allowing a message,
	webform or D1/D2-dial to happen at a specified number of seconds after
	the customer connects to the agent. Also, an API callw as added for this

85. Added three more transfer-conference number-to-dial presets as well as List
	ID override options for all five number presets

86. Added Dispo Call URL that allows a back-end call to a web page or URL, that
	will not display to the agent, which can send information like the 
	selected disposition, talk time, phone number or most of the other 
	fields available in the web form into a formatted URL to post to a 
	remote web server. Available in Campaigns and In-Groups.

87. Added log rolling archive script to automatically move logs into archive 
	tables monthly. The ADMIN_archive_log_tables.pl script needs to be added
	to your crontab to run monthly(example: "30 1 1 * *")

88. Added Traditional Chinese (zt_tw) language translation of the agent screen
	which can be found in the LANG_www/agc_tw directory

89. Added popup calendars to many of the reports for easier date selection





########## UPGRADING FROM 2.0.4 TO 2.0.5 ##########

1. Note the license change from GPLv2 to AGPLv2. This change was made to close
	the ASP loophole for code distribution that was present in the GPLv2 
	license. Please read the docs/LICENSE.txt file for more information

2. install new files:
	perl ./install.pl
	NOTES: If you have customized any scripts in the bin or agi folders, 
	then make sure you back them up before running the install.pl script. 
	This script will replace existing files in the astguiclient installation.

3. upgrade the MySQL asterisk database:
	mysql
	use asterisk
	\. /path/from/root/extras/upgrade_2.0.5.sql
	quit

4. Several of the MySQL tables have been changed to a HEAP type to reside in
	memory to improve performance.

5. Added the ability for inbound and blended agents to choose their selected
	in-groups without logging out. The new GROUPS link at the top of the 
	agent screen(vicidial.php) can be used when an agent is Paused to
	change their selected groups and whether they are set to do Blended
	calling or not. There is also a new log with the details of what
	groups an agent has selected each time in the user stats page.

6. Queue Priority has been added allowing for the prioritization of one in-group
	over another in-group or outbound campaign(when in blended mode)

7. Drop call action has been added to both inbound and outbound calling. You
	can now send a call that would drop into an inbound group. The call will
	still be recorded as a DROP in it's original in-group or campaign, but 
	the lead information will move on to the drop in-group.

8. Audio recording mixing/compression/ftping scripts have been completely
	rewritten and separated into different scripts for better fault
	tolerance. Also, you have the option of compression in to the following
	formats: WAV, GSM, MP3 and OGG
	- AST_CRON_audio_1_move_mix.pl
	- AST_CRON_audio_1_move_VDonly.pl
	- AST_CRON_audio_2_compress.pl
	- AST_CRON_audio_3_ftp.pl

9. Created a new script to backup a VICIDIAL setup, including the Asterisk conf
	files, prompt recordings, bin, agi and web files:
	ADMIN_backup.pl

10. Added ability to override recording options of a campaign for individual
	inbound-groups

11. The 8 outbound agi-VDADtransfer scripts are in process of being consolidated
	into a single AGI script: agi-VDAD_ALL_outbound.agi
	All older outbound scripts are depricated and do not function any more

12. The start of a new QC (Quality Control) feature [non functional right now]

13. Install the Switch perl module from CPAN
	perl -MCPAN -e shell
	- install Switch

14. Recording to RAM now uses tmpfs it is usually included in all kernels if you want 
	to check in in menuconfig you will find it under
	File Systems --> Pseudo filesystems --> [*] Virtual memory file system support.
	It does not hurt to enable 
	[*] Tmpfs POSIX Access Control Lists  
	as well.
	The following line should be added to /etc/fstab:
	tmpfs                /var/spool/asterisk/monitor  tmpfs  rw                    0 0
	Mounting the ramdisk in rc.local should be remove:
	# mke2fs -m 0 /dev/ram0
	# mount /dev/ram0 /var/spool/asterisk/monitor
	This allows for a more efficient use of memory and recording to RAM with less RAM 
	available.

15. The following should be added to the [featuremap] section of /etc/asterisk/features.conf
	to prevent agents and called parties from being able to "transfer" a call to any 
	number possible in your Asterisk dialplan.
	[featuremap]
	blindxfer => D

16. Added ip_relay to allow for loopback IAX trunks that make true blind 
	monitoring possible for all agents no matter their phone type 0860XXXX.

17. Added the ability to load balance the logins to vicidial.php for phones 
	that are registered to multiple servers on a multi-server system. 
	Simply put multiple phone_login values in the phone login field at 
	login separated by a comma and the vicidial.php script will pick the 
	server that has the fewest agents logged into it at the moment of login.

18. Added ability for vicidial.php to populate the phones.computer_ip field upon
	agent login. Options set in the vicidial.php file to allow for overwrite
	every login or only if field is empty.

19. Several code changes for better UTF8 compatibility with the database as well
	as special character leads in the agent screen, lead loading

20. Added after hours redirect of calls to an in-group to another in-group

21. Added collection of hangup reasons for inbound and outbound calls in the
	vicidial_log and vicidial_closer_log tables

22. Added a new timeclock feature w/ audit and log, including the addition
	of shifts to VICIDIAL user groups and the ability to auto-generate 
	user IDs as you are adding users to the system. timeclock.php user login
	page created and linked to from admin/agent/welcome screens

23. Added a new inbound/closer(queues) report for showing service levels

24. Added Calls in Queue counter to agent vicidial.php screen

25. Added ability to use calltime scheme for calls not yet in an in-group(queue)
	as well as display in real-time stats. See Inbound_VDAC_IVR.txt doc for
	more information

26. Auto-dial survey broadcast campaigns can now be fully configured within the 
	admin.php interface and they have new options shown in the Survey sub-
	section

27. Changed add-to-DNC list to allow for multiple phone numbers per submission

28. Date/time and phone formats that appear in the VICIDIAL agent screen are now
	customizable as defined in the Admin -> System Settings screen.

29. Added manual dial and inbound queue_log logging capability for better
	QueueMetrics compatibility

30. Added some basic agent interface API functions and an agc/api.php script

31. A field has been added to vicidial_list(last_local_call_time) to sort by
	the last time a lead was called as well as for lead recycling changes.

32. IMPORTANT FOR RECORDINGS!!!
   The recording extensions have been changed within VICIDIAL so you need to
   add the following lines to your extensions.conf
     ; quiet monitor-only entry and leaving conferences for VICIDIAL (recording)
     exten => _58600XXX,1,Meetme,${EXTEN:1}|Fmq

33. Added option (for Internet Explorer users only) to copy a field to the
   clipboard of the agent computer upon a call being sent to the agent.

34. Added new alternate number dialing method which allows for over 65,000 alt
   phone numbers per lead. Currently these extra numbers are only available for 
   auto dialing, not manual dial. These extra alternate number leads must be 
   imported either with the CLI lead loader(VICIDIAL_IN_new_leads_file.pl) or
   the non-agent API script.

35. Added campaign-specific DNC filtering lists to the system

36. Added optional dialplan entries to sample extensions.conf to play a not-in-
    service message for invalid phone numbers that cannot be dialing in North
    America

37. Rewrote Leave-3way function for conference calling to work more reliably on
    high load systems.
	Need to add more vicidial_conferences entries and meetme.conf entries
	for this, see the meetme.conf.sample file and the 
	first_server_install.sql file for more information

38. Added several new features to inbound call handling including:
	- announce place in line
	- announce estimated hold time
	- welcome message options
	- options for call routing when estimated hold time is too high
	- press 1 to leave a voicemail for customers if wait time too high

39. Added DID call routing to allow for basic routing of calls to phones, 
   extensions, voicemail and VICIDIAL inbound groups without editing the 
   extensions.conf dialplan. 
   *requires initial adding one line to dialplan of inbound context:
      exten => _X.,1,AGI(agi-DID_route.agi)
   *as well as a few more lines in your VICIDIAL default context:
      ; DID forwarded calls
      exten => _99909*.,1,Answer
      exten => _99909*.,2,AGI(agi-VDAD_ALL_inbound.agi)
      exten => _99909*.,3,Hangup

40. Added ability to set callerID number on outgoing conference calls to
   CAMPAIGN, CUSTOMER or AGENT_PHONE callerID settings.

41. New Slovak translation for the agent screen, as well as new German agent
   screen translation and new German buttons for the agent screen

42. New Welcome demo and languages screens with links to all translations of 
   agent and admin screens

43. Added INBOUND_MAN dial method to allow for inbound call handling by agents
   that are also placing manual dial list calls through their campaign lists

44. Added option to see the inbound group call stats in the Real-time screen

45. Added ability for agents to dial in to an AGI script(agi-AGENT_dial_in.agi)
   to log their phone into the session instead of having VICIDIAL call them.
   The user ID and password for the agent must be digits only for this to work!
   This requires the following to be added to the dialplan on the dial-in DID
   or extension that you want to use:
	exten => 2345,1,Answer		; Answer the line
	exten => 2345,2,AGI(agi-AGENT_dial_in.agi)
	exten => 2345,3,Hangup

46. Added pause codes display to the Real-time report as well as pause code
   statistics to the agent performance detail report. Also added an option to
   force agents to enter a pause code(this is a campaign option)

47. Added full MySQL error logging to vicidial agent web interface. Logs are 
   written to the webserver.

48. Added new inbound-only reporting to Real-time report as well as many new
   features to existing inbound report. Created IVR stats report to show stats
   on Asterisk IVRs

49. Updated Vtiger integration to version 5.0.4 and allow searching by 
   leads/accounts/vendors. Also added user synchronization with vicidial_users. 
   Also added click-to-dial from Vtiger sending call to vicidial agent screen.
   Also added batch synchronization of Accounts between Vtiger and VICIDIAL.

50. Added notification of time synchronization problems in the vicidial.php page

51. Added AGENTDIRECT queueing to be able to send calls to only one agent 
   without having to create a new in-group for each agent. You can configure
   DIDs to use AGENTDIRECT, and you can have VICIDIAL agents send calls to 
   specific agents using the AGENTDIRECT transfer group with LOCAL CLOSER button
   and putting the agent to send the call to in the Number To Dial field.

52. Added agent alert option to agent screen. sends browser alert prompt when
   a call is send to the agent screen.

53. Added option for using North American NANPA prefix timezone encoding for
   more accurate time zone encoding. The data is NOT included but can be 
   purchased from the VICIDIAL Group.

54. Added System Settings option to disable auto-dialing(list dialing) from the
   system to simplify administration for inbound-only call centers

55. Added patch and configuration options to allow VICIDIAL to work with Sangoma
   ParaXip CPD(Call Progress Detection) for Answering Maching and Fax detection

56. Added list_download.php that allows you to download the entire contents of
   vicidial lists from the admin.php interface. You must set the download_lists
   permission in vicidial_users to 1 for this to work.

57. Small redesign of the agent interface to use grey backgrounds and new tabs

58. Added Asterisk version prompt to the install.pl script to allow for the
   copying of the proper conf files for the installed Asterisk version

59. Added auto-generation of SIP and IAX phones and carriers into the Asterisk 
   conf files so that you can fully configure them using only the admin.php
   web interface. See the ASTERISK_CONF-GEN.txt file for more information

60. Added group alias option for selecting callerID on manual and 3rd-party
   calls

61. Added options for custom web variables for each agent per in-group and
   camaign. This is definable in the user modification page

62. Added Agent Shift enforcement options to restrict logins and vicidial 
   agent activity 

63. Added Server vital statistics(load/CPU/disk) to the reports screen and the
   server modification screen

64. Removed the admin_changes flat text log file and now put all administrative 
   actions into the vicidial_admin_log table in MySQL. These logs are displayed
   to user_level 9 users in admin.php through a link on the REPORTS screen, and 
   at the bottom of the other screens (USERS, CAMPAIGNS, LISTS, etc...)you can 
   click on the "Click here to see Admin chages to this record" link to find out
   the most recent changes to that record.

65. Added uniform admin headers to all administrative pages and reports

66. Added Calls Export Utility allowing exporting of call and lead data by 
   defining the following parameters: date range, campaigns, in-groups, statuses,
   lists and user groups. A flat tab-delimited text file is exported.

67. Added new monitoring functionality to allow monitoring from one agent to
   another without hanging up

68. Added Russian version of the Agent screen

69. Added Dutch version of the Agent screen

70. Many changes have been made to the extensions.conf dialplan. It is usually
   better to take the default docs/conf_examples/extensions.conf.sample file and
   take the customizations from your old extensions.conf file and move them into
   the new file.





########## UPGRADING FROM 2.0.3 TO 2.0.4 ##########

1. install new files:
	perl ./install.pl
	NOTES: If you have customized any scripts in the bin or agi folders, 
	then make sure you back them up before running the install.pl script. 
	This script will replace existing files in the astguiclient installation.

2. upgrade the MySQL asterisk database:
	mysql
	use asterisk
	\. /path/from/root/extras/upgrade_2.0.4.sql
	quit
	NOTE: If you do not use the standard "cron" database login, you will
	need to add "LOCK TABLES" to the permissions to your db login

3. add the "server_reports" directory to your Web Path:
	mkdir $PATHweb/vicidial/server_reports/
	chmod 0777 $PATHweb/vicidial/server_reports/

4. A new set of changes have been made to the statuses sections in the admin.php
	pages allowing for categorizing statues and modifying them without delete.
	Also, the gathering of a tally of the statuses in these categories is 
	now available on the timeonVDADall scripts.

5. The admin.php interface has had more sections broken into sub-sections for
	easier management and rapid modifications.

6. Added option for shorter enter and leave sounds(done during Asterisk build)
	BASE/SCRATCH_INSTALL or extras/Changed_meetme_sounds for more details

7. Added optional patch to meetme in Asterisk 1.2.X that will allow for better 
	DTMF passthru. Need to use the "F" flag to enable on Meetme in 
	extensiosn.conf. Feature is backported from Asterisk 1.4.X

8. REQUIRED! Changed the FastAGI_log process to consolidate the "h" exten hangup 
	process into one executed function instead of two. Because of this, the 
	h exten needs to be changed to only the following:
	exten => h,1,DeadAGI(agi://127.0.0.1:4577/call_log--HVcauses--PRI-----NODEBUG-----${HANGUPCAUSE}-----${DIALSTATUS}-----${DIALEDTIME}-----${ANSWEREDTIME}))

9. Moved the audio transfer script and report generating scripts settings to 
	/etc/astguiclient.conf settings file. FTP and reports login info.

10. Added agent alert, music-on-hold and several other parameters to inbound 
	groups. Make sure you have musiconhold working properly before using 
	in production.

11. REQUIRED CHANGE! in your dialplan you must now add lines for load balancing
	even if you only have one server, and you must also have lines with the
	7 prefix for silent insertion into the meetme conference:
		exten => _010*010*010*015*8600XXX,...
		exten => _010*010*010*015*8600XXX*.,...
		exten => _010*010*010*015*78600XXX,...
		exten => _010*010*010*015*78600XXX*.,...
		exten => _78600XXX*.,1,AGI(agi-VDADfixCXFER.agi)
	See LOAD_BALANCING.txt and extensions.conf.sample for more information

12. Inbound, Blended and Closer-type campaigns are no longer required to have
	campaign_id incude specific words or characters to be treated as such.
	There is now a new campaign_allow_inbound field where this is set.

13. Call distribution by agent ranking per in-group and total calls to in-group

14. Added ability to copy the settings campaigns, users and in-groups to new records

15. REQUIRED CHANGE! Old inbound and Closer AGI scripts have all been consolidated
	into a single script: agi-VDAD_ALL_inbound.agi
	Please look at the script header or the SCRATCH_INSTALL doc for more
	info on how to alter your extenions.conf to use the new script.
	The old agi-VDAD_closer... scripts have all been depricated and moved
	to the extras/old_agi/ directory.

16. AST_agent_performance_detail.php report script has been completely rewritten

17. REQUIRED CHANGE! If you use Fronter/Closer campaigns where an agent is sending
	calls to a closer, you will need to define the new "Default Transfer Group"
	field with the inbound group that you want to take the calls. Transfers
	are now allowed from a list of definable in-groups that you have to set
	in the campaign detail screen.

18. In the vicidial.php code, you can now modify the size of the elements on the
	screen using the BROWSER_HEIGHT and BROWSER_WIDTH variables.





########## UPGRADING FROM 2.0.2 TO 2.0.3 ##########

1. install new files:
	perl ./install.pl
	NOTES: If you have customized any scripts in the bin or agi folders, 
	then make sure you back them up before running the install.pl script. 
	This script will replace existing files in the astguiclient installation.

2. upgrade the MySQL asterisk database:
	mysql
	use asterisk
	\. /path/from/root/extras/upgrade_2.0.3.sql
	quit

3. The server_stats.php has been merged into the vicidial/admin.php page

4. Width of the admin.php screen, and the color and size of the headers are all
	now definable by variables at top of the admin.php script.

5. Dial Override checkbox added to the campaign modification screen of admin.php
	to force manual dial_level changes in ADAPT dialing modes.

6. Behaviour of HotKeys in manual dial mode has changed to automatically go on 
	to the next lead when a HotKey is pressed.

7. It is now possible for agents to dial alternate phone numbers using only
	HotKeys if ALTPH2 and/or ADDR3 are added to a campaign's hotkeys.

8. You can now use BLEND/INBND/*_C/*_B/*_I to define a campaign a a CLOSER 
	campaign capable of taking inbound calls.

9. In Auto-dialing campaigns(RATIO and ADAPT) you can now configure the dialer 
	to dial up to two alternate numbers per lead automatically, as well as 
	defining the statuses that you want to do this for. More info about
	this feature in the ALTERNATE_NUMBER_DIALING.txt doc.

10. Added ability to send multiple concurrent transfers at once to agents in 
	outbound campaigns. This will greatly benefit larger VICIDIAL 
	installations by decreasing the time it takes for a call to get	to an 
	agent once answered after a large queue backup. This is defaulted to 
	AUTO, but can be forced to a set number. This is the Concurrent 
	Transfers option in the Campaign Modification page.

11. New optimized code for AST_manager_send.pl and AST_send_action_child.pl. 
	Thanks to Lott Caskey for the code contribution

12. The field user_group has been added to several log tables to allow for 
	better tracking of stats by user groups. Several reports now offer 
	user group display options.

13. VERY IMPORTANT!!! Make sure the php.ini setting for memory_limit is set to 
	a minimum of 12M, we recommend 48M:
		memory_limit = 48M
	Some of the scripts have grown in size and need more memory to run
	properly on some systems.

14. Added ability to control access to each admin section by vicidial_users.
	This includes a view_reports settings to restrict access to all of the
	reports scripts.

15. Added Agent Pause Codes that are definable per campaign and allows the
	agent to select what they are doing when they are in pause time.

16. Added optional Asterisk-compatible queue_log logging for QueueMetrics
	compatibility. See the QUEUEMETRICS.txt doc for more information

17. RECOMMENDATION - If you are calling in the USA, you should add the 
	"--postal-code-gmt" flag to your adjust GMT script in the crontab to
	more accurately assign timezones to your leads.

18. Changed dial statuses to use dynamic number of dial statuses instead of
	static dial_status_x fields.

19. Added Mute/UnMute ability to vicidial.php agent screen. To use, you must
	have the _X18600XXX and _X28600XXX entries in your extensions.conf

20. Added basic sipsak display on compatible SIP devices for VICIDIAL activity.

21. Tested with Asterisk 1.2.16 and 1.2.17, new patch for meetme volume controls
	for those two versions, see SCRATCH_INSTALL for more info.

22. Added HOME link to the admin web page that goes to a configurable web address.






########## UPGRADING FROM 2.0.1 TO 2.0.2 ##########

1. install new files:
	perl ./install.pl
	NOTES: If you have customized any scripts in the bin or agi folders, 
	then make sure you back them up before running the install.pl script. 
	This script will replace existing files in the astguiclient installation.

	/etc/astguiclient.conf has new variables for new functionality including:
	- new ADMIN_keepalive_ALL process settings
	- FastAGI_log server settings
	and comments are added to the astguiclient.conf file

2. upgrade the MySQL asterisk database:
	mysql
	use asterisk
	\. /path/from/root/extras/upgrade_2.0.2.sql
	quit
	/usr/share/astguiclient/ADMIN_area_code_populate.pl
		The Daylight Savings Time scheme for the USA and Canada has been
		updated for the 2007 changes. Also, Brazil DST has been added.
		Another addition on this topic is the addition of USA zipcode
		GMT offset list that allows for more accurate timezone lookups.

3. The astguiclient web directory has been removed and the 
	astguiclient/admin.php functions have been merged into the 
	vicidial/admin.php page

4. You can now define trunks for use only by specific campaigns. See the help
	in the vicidial/admin.php server modification page under the 
	VICIDIAL SERVER TRUNKS section.

5. Agents now have the ability to control volume levels for any call in their 
	meetme room directly from the vicidial.php page. This only works on 
	Asterisk 1.2.7.1, 1.2.12.1, 1.2.13 or SVN_1.2 and the meetmeadmin_volume_control.patch
	patch must be applied as described in the SCRATCH_INSTALL. Also, a few 
	lines must be added to the extensions.conf for this to work:
	(_X48600XXX, _X38600XXX, 8300 [see docs/conf_examples/extensions.conf.sample])

6. Multiple ADMIN_keepalive scripts have been replaced with a single script
	ADMIN_keepalive_ALL.pl
	Remove all other ADMIN keepalive entries in your crontab and replace
	with this one:
	### keepalive script for astguiclient processes
	* * * * * /usr/share/astguiclient/ADMIN_keepalive_ALL.pl

	NOTE: the scripts to be kept alive are to be defined in the astguiclient.conf file

7. FastAGI replacement for call_log and VD_hangup AGI scripts:
	FastAGI_log.pl - requires cpan module Net::Server to run
	If you want to use it, read the comments at the top of the script
	Look at the docs/conf_examples/extensions.conf.sample file for examples
	of how to use this new feature in your dialplan
	- cpan
	- install Net::Server

8. Fix for unregistered SIP trunks (thanks to Chris Doyle):
	look at the bottom of the docs/conf_examples/extensions.conf.sample
	file for examples of what to put in your extensions.conf file to get
	VICIDIAL auto dialing to work with non-registered SIP trunks. remember 
	to put sip-silence.gsm in your /var/lib/asterisk/sounds/ directory.

9. Added new campaign summary screen and reformatted the timeonVDADall report:
	A summary screen with all of the call information for every active 
	campaign for the day. reformatted campaign Realtime report with new
	colors and other display options.

10. Added new script to change the server_ip entries when a machine changes IPs
	The ADMIN_update_server_ip.pl script can be used to update your server's
	IP address within all vicidial database tables and config files from
	this one script. This can even be run in the crontab if you are on
	a DHCP service and need to modify your IP address often

11. Added new script to allow for dial-out-only(no agents on the server) 
	VICIDIAL servers as well as balance dialing where a server with 
	available trunk lines can dial lines for another server that does not
	have enough lines to dial for it's dial_level. AST_VDauto_dial_FILL.pl
	script is only for multi-server systems and is started from new 
	ADMIN_keepalive_ALL.pl script with option 7 in astguiclient.conf

12. Added the ability to restrict agent logins by user group to a specific set
	of campaigns. This is definable in the USER GROUPS section of admin.php.
	You must make sure that your admin login is in a user group and that
	the selected user group has the allowable campaigns set to ALL
	CAMPAIGNS to be able to view and modify all campaigns in the system.

13. Added lead_id and user fields to the recording_log, along with cross-
	reference links in several admin web pages for these.

14. Changed Drop percentage to be out of Answered calls for FTC compliance.

15. Tested new asterisk-perl module (0.09) and found that it is NOT compatible.
	Please make sure you use asterisk-perl-0.08 ONLY.

16. Added email support, it needs to be enabled in your System Settings. Also,
	the following perl modules need to be installed on your voicemail server
		install LWP::UserAgent
		install HTML::Entities
		install HTML::Strip
		install HTML::FormatText
		install HTML::TreeBuilder
		install Switch
		install Time::Local
		install MIME::Decoder
		install Mail::POP3Client
		install Mail::IMAPClient
		install Mail::Message





########## UPGRADING FROM 1.1.12-3 TO 2.0.1 ##########

If you are upgrading to the 2.0 code tree from the 1.1.12-3 release there have 
been several changes made to the code base and to where some files are stored in
the release as well as on your machine.

1. upgrade the MySQL Asterisk database:
	mysql
	use asterisk
	\. /path/from/root/extras/upgrade_2.0.1.sql
	quit


2. use the new installer for astguiclient-VICIDIAL files:
	NOTE: this new script is interactive with prompts. this script will
	create the new /etc/astguiclient.conf settings file that replaces the
	old AST_SERVER_conf.pl file that has been removed. Also, this settings
	file is used by dbconnect.php scripts so no need to manually edit them

	perl install.pl


3. Make sure you have MySQL clientlibs installed:
Because all perl script now use DBI instead of Net::MySQL you need to make sure 
that you have at least the MySQL client installed on all VICIDIAL servers even 
if the MySQL server is installed on another machine. You can skip this step if 
MySQL server is already on your VICIDIAL server:
  Go to http://www.mysql.com/ and download the mysql package
   - to install this directly on the command line type:
	- cd /usr/local
	- wget http://mirror.trouble-free.net/mysql_mirror/Downloads/MySQL-4.0/mysql-4.0.27.tar.gz
	- gunzip mysql-4.0.27.tar.gz
	- tar xvf mysql-4.0.27.tar
	- cd mysql-4.0.27
	- groupadd mysql
	- useradd -g mysql mysql
	- "./configure --prefix=/usr/local/mysql --without-server --enable-shared=yes --with-readline"
	- make
	- make install
   - you are done


4. New MySQL perl modules:
You will need to make sure that you have installed the following perl modules:
DBI (top-level Database interface module "install DBI")
DBD::mysql (MySQL-specific interface through DBI "force install DBD::mysql")


5. new predictive dialing crontab entry:
If you will be using the new predictive dialing functions you need to make sure 
you have the keepalive for this function loaded in your crontab:
NOTE: this only needs to be on a single server if you are in a multiple 
VICIDIAL server setup.
### keepalive script for VICIDIAL predictive script
* * * * * /usr/share/astguiclient/ADMIN_keepalive_AST_VDadapt.pl


6. all old crontab entries and /home/cron files 
All of your old crontab entries need to be changed from /home/cron to
/usr/share/astguiclient if you choose the default installation path. You can
manually set the path to /home/cron if you like though since the home path is
now dynamic in all vicidial perl(.pl) scripts. If you do choose to use the new
default path, you can delete everything in the /home/cron directory if you like


7. old /etc/rc.d/rc.local entries
Be sure to change your /etc/rc.d/rc.local entries(the commands that are run at
system boot to start asterisk and other scripts like log rolling) and change the
/home/cron path to the new /usr/share/astguiclient path.


8. other notes:
- there is a new DIAL METHOD field and several other new dial-control fields 
in campaign modification page, please take a minute to read the help 
documentation for these new features.


