Merge "app_queue: Fix extension state subscriptions removed on dialplan reload"
[asterisk/asterisk.git] / UPGRADE-1.6.txt
1 =========================================================
2 ===
3 === Information for upgrading from Asterisk 1.4 to 1.6
4 ===
5 === These files document all the changes that MUST be taken
6 === into account when upgrading between the Asterisk
7 === versions listed below. These changes may require that
8 === you modify your configuration files, dialplan or (in
9 === some cases) source code if you have your own Asterisk
10 === modules or patches. These files also includes advance
11 === notice of any functionality that has been marked as
12 === 'deprecated' and may be removed in a future release,
13 === along with the suggested replacement functionality.
14 ===
15 === UPGRADE-1.2.txt -- Upgrade info for 1.0 to 1.2
16 === UPGRADE-1.4.txt -- Upgrade info for 1.2 to 1.4
17 ===
18 =========================================================
19
20 AEL:
21
22 * Macros are now implemented underneath with the Gosub() application.
23   Heaven Help You if you wrote code depending on any aspect of this!
24   Previous to 1.6, macros were implemented with the Macro() app, which
25   provided a nice feature of auto-returning. The compiler will do its
26   best to insert a Return() app call at the end of your macro if you did
27   not include it, but really, you should make sure that all execution
28   paths within your macros end in "return;".
29
30 * The conf2ael program is 'introduced' in this release; it is in a rather
31   crude state, but deemed useful for making a first pass at converting
32   extensions.conf code into AEL. More intelligence will come with time.
33
34 Core:
35
36 * The 'languageprefix' option in asterisk.conf is now deprecated, and
37   the default sound file layout for non-English sounds is the 'new
38   style' layout introduced in Asterisk 1.4 (and used by the automatic
39   sound file installer in the Makefile).
40
41 * The ast_expr2 stuff has been modified to handle floating-point numbers.
42   Numbers of the format D.D are now acceptable input for the expr parser, 
43   Where D is a string of base-10 digits. All math is now done in "long double",
44   if it is available on your compiler/architecture. This was half-way between
45   a bug-fix (because the MATH func returns fp by default), and an enhancement.
46   Also, for those counting on, or needing, integer operations, a series of
47   'functions' were also added to the expr language, to allow several styles
48   of rounding/truncation, along with a set of common floating point operations,
49   like sin, cos, tan, log, pow, etc. The ability to call external functions
50   like CDR(), etc. was also added, without having to use the ${...} notation.
51  
52 * The delimiter passed to applications has been changed to the comma (','), as
53   that is what people are used to using within extensions.conf.  If you are
54   using realtime extensions, you will need to translate your existing dialplan
55   to use this separator.  To use a literal comma, you need merely to escape it
56   with a backslash ('\').  Another possible side effect is that you may need to
57   remove the obscene level of backslashing that was necessary for the dialplan
58   to work correctly in 1.4 and previous versions.  This should make writing
59   dialplans less painful in the future, albeit with the pain of a one-time
60   conversion.  If you would like to avoid this conversion immediately, set
61   pbx_realtime=1.4 in the [compat] section of asterisk.conf.  After
62   transitioning, set pbx_realtime=1.6 in the same section.
63
64 * For the same purpose as above, you may set res_agi=1.4 in the [compat]
65   section of asterisk.conf to continue to use the '|' delimiter in the EXEC
66   arguments of AGI applications.  After converting to use the ',' delimiter,
67   change this option to res_agi=1.6.
68
69 * As a side effect of the application delimiter change, many places that used
70   to need quotes in order to get the proper meaning are no longer required.
71   You now only need to quote strings in configuration files if you literally
72   want quotation marks within a string.
73
74 * Any applications run that contain the pipe symbol but not a comma symbol will
75   get a warning printed to the effect that the application delimiter has changed.
76   However, there are legitimate reasons why this might be useful in certain
77   situations, so this warning can be turned off with the dontwarn option in
78   asterisk.conf.
79
80 * The logger.conf option 'rotatetimestamp' has been deprecated in favor of
81   'rotatestrategy'.  This new option supports a 'rotate' strategy that more
82   closely mimics the system logger in terms of file rotation.
83
84 * The concise versions of various CLI commands are now deprecated. We recommend
85   using the manager interface (AMI) for application integration with Asterisk.
86
87 Voicemail:
88
89 * The voicemail configuration values 'maxmessage' and 'minmessage' have
90   been changed to 'maxsecs' and 'minsecs' to clarify their purpose and
91   to make them more distinguishable from 'maxmsgs', which sets folder
92   size.  The old variables will continue to work in this version, albeit
93   with a deprecation warning.
94
95 * If you use any interface for modifying voicemail aside from the built in
96   dialplan applications, then the option "pollmailboxes" *must* be set in
97   voicemail.conf for message waiting indication (MWI) to work properly.  This
98   is because Voicemail notification is now event based instead of polling
99   based.  The channel drivers are no longer responsible for constantly manually
100   checking mailboxes for changes so that they can send MWI information to users.
101   Examples of situations that would require this option are web interfaces to
102   voicemail or an email client in the case of using IMAP storage.
103
104 Applications:
105
106
107 * ChanIsAvail() now has a 't' option, which allows the specified device
108   to be queried for state without consulting the channel drivers. This
109   performs mostly a 'ChanExists' sort of function.
110
111 * ChannelRedirect() will not terminate the channel that fails to do a
112   channelredirect as it has done previously. Instead CHANNELREDIRECT_STATUS
113   will reflect if the attempt was successful of not.
114
115 * SetCallerPres() has been replaced with the CALLERPRES() dialplan function
116   and is now deprecated.
117
118 * DISA()'s fifth argument is now an options argument.  If you have previously
119   used 'NOANSWER' in this argument, you'll need to convert that to the new
120   option 'n'.
121
122 * Macro() is now deprecated.  If you need subroutines, you should use the
123   Gosub()/Return() applications.  To replace MacroExclusive(), we have
124   introduced dialplan functions LOCK(), TRYLOCK(), and UNLOCK().  You may use
125   these functions in any location where you desire to ensure that only one
126   channel is executing that path at any one time.  The Macro() applications
127   are deprecated for performance reasons.  However, since Macro() has been
128   around for a long time and so many dialplans depend heavily on it, for the
129   sake of backwards compatibility it will not be removed .  It is also worth
130   noting that using both Macro() and GoSub() at the same time is _heavily_
131   discouraged.
132
133 * Read() now sets a READSTATUS variable on exit.  It does NOT automatically
134   return -1 (and hangup) anymore on error.  If you want to hangup on error,
135   you need to do so explicitly in your dialplan.
136
137 * Privacy() no longer uses privacy.conf, so any options must be specified
138   directly in the application arguments.
139
140 * MusicOnHold application now has duration parameter which allows specifying
141   timeout in seconds.
142
143 * WaitMusicOnHold application is now deprecated in favor of extended MusicOnHold.
144
145 * SetMusicOnHold is now deprecated. You should use Set(CHANNEL(musicclass)=...)
146   instead.
147
148 * The arguments in ExecIf changed a bit, to be more like other applications.
149   The syntax is now ExecIf(<cond>?appiftrue(args):appiffalse(args)).
150
151 * The behavior of the Set application now depends upon a compatibility option,
152   set in asterisk.conf.  To use the old 1.4 behavior, which allowed Set to take
153   multiple key/value pairs, set app_set=1.4 in [compat] in asterisk.conf.  To
154   use the new behavior, which permits variables to be set with embedded commas,
155   set app_set=1.6 in [compat] in asterisk.conf.  Note that you can have both
156   behaviors at the same time, if you switch to using MSet if you want the old
157   behavior.
158
159 Dialplan Functions:
160
161 * QUEUE_MEMBER_COUNT() has been deprecated in favor of the QUEUE_MEMBER() function. For
162   more information, issue a "show function QUEUE_MEMBER" from the CLI.
163
164 CDR:
165
166 * The cdr_sqlite module has been marked as deprecated in favor of
167   cdr_sqlite3_custom.  It will potentially be removed from the tree
168   after Asterisk 1.6 is released.
169
170 * The cdr_odbc module now uses res_odbc to manage its connections.  The
171   username and password parameters in cdr_odbc.conf, therefore, are no
172   longer used.  The dsn parameter now points to an entry in res_odbc.conf.
173
174 * The uniqueid field in the core Asterisk structure has been changed from a
175   maximum 31 character field to a 149 character field, to account for all
176   possible values the systemname prefix could be.  In the past, if the
177   systemname was too long, the uniqueid would have been truncated.
178
179 * The cdr_tds module now supports all versions of FreeTDS that contain
180   the db-lib frontend.  It will also now log the userfield variable if
181   the target database table contains a column for it.
182
183 Formats:
184
185 * format_wav: The GAIN preprocessor definition and source code that used it
186   is removed.  This change was made in response to user complaints of
187   choppiness or the clipping of loud signal peaks.  To increase the volume
188   of voicemail messages, use the 'volgain' option in voicemail.conf
189
190 Channel Drivers:
191
192 * SIP: a small upgrade to support the "Record" button on the SNOM360,
193   which sends a sip INFO message with a "Record: on" or "Record: off" 
194   header. If Asterisk is set up (via features.conf) to accept "One Touch Monitor"
195   requests (by default, via '*1'), then the user-configured dialpad sequence
196   is generated, and recording can be started and stopped via this button. The
197   file names and formats are all controlled via the normal mechanisms. If the
198   user has not configured the automon feature, the normal "415 Unsupported media type"
199   is returned, and nothing is done.
200
201 * SIP: The "call-limit" option is marked as deprecated. It still works in this version of
202   Asterisk, but will be removed in the following version. Please use the groupcount functions
203   in the dialplan to enforce call limits. The "limitonpeer" configuration option is
204   now renamed to "counteronpeer".
205
206 * SIP: The "username" option is now renamed to "defaultuser" to match "defaultip".
207   These are used only before registration to call a peer with the uri 
208         sip:defaultuser@defaultip
209   The "username" setting still work, but is deprecated and will not work in 
210   the next version of Asterisk.
211
212 * SIP: The old "insecure" options, deprecated in 1.4, have been removed.
213   "insecure=very" should be changed to "insecure=port,invite"
214   "insecure=yes" should be changed to "insecure=port"
215   Be aware that some telephony providers show the invalid syntax in their
216   sample configurations.
217
218 * chan_local.c: the comma delimiter inside the channel name has been changed to a
219   semicolon, in order to make the Local channel driver compatible with the comma
220   delimiter change in applications.
221
222 * H323: The "tos" setting has changed name to "tos_audio" and "cos" to "cos_audio"
223   to be compatible with settings in sip.conf. The "tos" and "cos" configuration
224   is deprecated and will stop working in the next release of Asterisk.
225
226 * Console: A new console channel driver, chan_console, has been added to Asterisk.
227   This new module can not be loaded at the same time as chan_alsa or chan_oss.  The
228   default modules.conf only loads one of them (chan_oss by default).  So, unless you
229   have modified your modules.conf to not use the autoload option, then you will need
230   to modify modules.conf to add another "noload" line to ensure that only one of
231   these three modules gets loaded.
232
233 * DAHDI: The chan_zap module that supported PSTN interfaces using
234   Zaptel has been renamed to chan_dahdi, and only supports the DAHDI
235   telephony driver package for PSTN interfaces. See the
236   Zaptel-to-DAHDI.txt file for more details on this transition.
237
238 * DAHDI: The "msdstrip" option has been deprecated, as it provides no value over
239   the method of stripping digits in the dialplan using variable substring syntax.
240
241 Configuration:
242
243 * pbx_dundi.c: tos parameter changed to use new values. Old values like lowdelay,
244   lowcost and other is not acceptable now. Look into qos.tex for description of 
245   this parameter.
246
247 * queues.conf: the queue-lessthan sound file option is no longer available, and the
248   queue-round-seconds option no longer takes '1' as a valid parameter.
249
250 Manager:
251
252 * Manager has been upgraded to version 1.1 with a lot of changes. 
253   Please check doc/manager_1_1.txt for information
254
255 * The IAXpeers command output has been changed to more closely resemble the
256   output of the SIPpeers command.
257
258 * cdr_manager now reports at the "cdr" level, not at "call"  You may need to
259    change your manager.conf to add the level to existing AMI users, if they
260    want to see the CDR events generated.
261
262 * The Originate command now requires the Originate write permission.  For
263    Originate with the Application parameter, you need the additional System
264    privilege if you want to do anything that calls out to a subshell.
265
266 iLBC Codec:
267
268 * Previously, the Asterisk source code distribution included the iLBC
269   encoder/decoder source code, from Global IP Solutions
270   (http://www.gipscorp.com). This code is not licensed for
271   distribution, and thus has been removed from the Asterisk source
272   code distribution. If you wish to use codec_ilbc to support iLBC
273   channels in Asterisk, you can run the contrib/scripts/get_ilbc_source.sh
274   script to download the source and put it in the proper place in
275   the Asterisk build tree. Once that is done you can follow your normal
276   steps of building Asterisk. You will need to run 'menuselect' and enable
277   the iLBC codec in the 'Codec  Translators' category.