1 Information for Upgrading From Previous Asterisk Releases
2 =========================================================
4 Build Process (configure script):
6 Asterisk now uses an autoconf-generated configuration script to learn how it
7 should build itself for your system. As it is a standard script, running:
11 will show you all the options available. This script can be used to tell the
12 build process what libraries you have on your system (if it cannot find them
13 automatically), which libraries you wish to have ignored even though they may
16 You must run the configure script before Asterisk will build, although it will
17 attempt to automatically run it for you with no options specified; for most
18 users, that will result in a similar build to what they would have had before
19 the configure script was added to the build process (except for having to run
20 'make' again after the configure script is run). Note that the configure script
21 does NOT need to be re-run just to rebuild Asterisk; you only need to re-run it
22 when your system configuration changes or you wish to build Asterisk with
25 Build Process (module selection):
27 The Asterisk source tree now includes a basic module selection and build option
28 selection tool called 'menuselect'. Run 'make menuselect' to make your choices.
29 In this tool, you can disable building of modules that you don't care about,
30 turn on/off global options for the build and see which modules will not
31 (and cannot) be built because your system does not have the required external
32 dependencies installed.
34 The resulting file from menuselect is called 'menuselect.makeopts'. Note that
35 the resulting menuselect.makeopts file generally contains which modules *not*
36 to build. The modules listed in this file indicate which modules have unmet
37 dependencies, a present conflict, or have been disabled by the user in the
38 menuselect interface. Compiler Flags can also be set in the menuselect
39 interface. In this case, the resulting file contains which CFLAGS are in use,
40 not which ones are not in use.
42 If you would like to save your choices and have them applied against all
43 builds, the file can be copied to '~/.asterisk.makeopts' or
44 '/etc/asterisk.makeopts'.
46 Sound (prompt) and Music On Hold files:
48 Beginning with Asterisk 1.4, the sound files and music on hold files supplied for
49 use with Asterisk have been replaced with new versions produced from high quality
50 master recordings, and are available in three languages (English, French and
51 Spanish) and in five formats (WAV (uncompressed), mu-Law, a-Law, GSM and G.729).
52 In addition, the music on hold files provided by FreePlay Music are now available
53 in the same five formats, but no longer available in MP3 format.
55 The Asterisk 1.4 tarball packages will only include English prompts in GSM format,
56 (as were supplied with previous releases) and the FreePlay MOH files in WAV format.
57 All of the other variations can be installed by running 'make menuselect' and
58 selecting the packages you wish to install; when you run 'make install', those
59 packages will be downloaded and installed along with the standard files included
62 If for some reason you expect to not have Internet access at the time you will be
63 running 'make install', you can make your package selections using menuselect and
64 then run 'make sounds' to download (only) the sound packages; this will leave the
65 sound packages in the 'sounds' subdirectory to be used later during installation.
67 WARNING: Asterisk 1.4 supports a new layout for sound files in multiple languages;
68 instead of the alternate-language files being stored in subdirectories underneath
69 the existing files (for French, that would be digits/fr, letters/fr, phonetic/fr,
70 etc.) the new layout creates one directory under /var/lib/asterisk/sounds for the
71 language itself, then places all the sound files for that language under that
72 directory and its subdirectories. This is the layout that will be created if you
73 select non-English languages to be installed via menuselect, HOWEVER Asterisk does
74 not default to this layout and will not find the files in the places it expects them
75 to be. If you wish to use this layout, make sure you put 'languageprefix=yes' in your
76 /etc/asterisk/asterisk.conf file, so that Asterisk will know how the files were
81 * The (very old and undocumented) ability to use BYEXTENSION for dialing
82 instead of ${EXTEN} has been removed.
84 * Builtin (res_features) transfer functionality attempts to use the context
85 defined in TRANSFER_CONTEXT variable of the transferer channel first. If
86 not set, it uses the transferee variable. If not set in any channel, it will
87 attempt to use the last non macro context. If not possible, it will default
88 to the current context.
90 Command Line Interface:
92 * 'show channels concise', designed to be used by applications that will parse
93 its output, previously used ':' characters to separate fields. However, some
94 of those fields can easily contain that character, making the output not
95 parseable. The delimiter has been changed to '!'.
99 * In previous Asterisk releases, many applications would jump to priority n+101
100 to indicate some kind of status or error condition. This functionality was
101 marked deprecated in Asterisk 1.2. An option to disable it was provided with
102 the default value set to 'on'. The default value for the global priority
103 jumping option is now 'off'.
105 * The applications Cut, Sort, DBGet, DBPut, SetCIDNum, SetCIDName, SetRDNIS,
106 AbsoluteTimeout, DigitTimeout, ResponseTimeout, SetLanguage, GetGroupCount,
107 and GetGroupMatchCount were all deprecated in version 1.2, and therefore have
108 been removed in this version. You should use the equivalent dialplan
109 function in places where you have previously used one of these applications.
111 * The application SetGlobalVar has been deprecated. You should replace uses
112 of this application with the following combination of Set and GLOBAL():
113 Set(GLOBAL(name)=value). You may also access global variables exclusively by
114 using the GLOBAL() dialplan function, instead of relying on variable
115 interpolation falling back to globals when no channel variable is set.
117 * The application SetVar has been renamed to Set. The syntax SetVar was marked
118 deprecated in version 1.2 and is no longer recognized in this version.
120 * app_read has been updated to use the newer options codes, using "skip" or
121 "noanswer" will not work. Use s or n. Also there is a new feature i, for
122 using indication tones, so typing in skip would give you unexpected results.
124 * OSPAuth is added to authenticate OSP tokens in in_bound call setup messages.
126 * The CONNECT event in the queue_log from app_queue now has a second field
127 in addition to the holdtime field. It contains the unique ID of the
128 queue member channel that is taking the call. This is useful when trying
129 to link recording filenames back to a particular call from the queue.
131 * The old/current behavior of app_queue has a serial type behavior
132 in that the queue will make all waiting callers wait in the queue
133 even if there is more than one available member ready to take
134 calls until the head caller is connected with the member they
135 were trying to get to. The next waiting caller in line then
136 becomes the head caller, and they are then connected with the
137 next available member and all available members and waiting callers
138 waits while this happens. This cycle continues until there are
139 no more available members or waiting callers, whichever comes first.
140 The new behavior, enabled by setting autofill=yes in queues.conf
141 either at the [general] level to default for all queues or
142 to set on a per-queue level, makes sure that when the waiting
143 callers are connecting with available members in a parallel fashion
144 until there are no more available members or no more waiting callers,
145 whichever comes first. This is probably more along the lines of how
146 one would expect a queue should work and in most cases, you will want
147 to enable this new behavior. If you do not specify or comment out this
148 option, it will default to "no" to keep backward compatability with the old
151 * The app_queue application now has the ability to use MixMonitor to
152 record conversations queue members are having with queue callers. Please
153 see configs/queues.conf.sample for more information on this option.
155 * The app_queue application strategy called 'roundrobin' has been deprecated
156 for this release. Users are encouraged to use 'rrmemory' instead, since it
157 provides more 'true' round-robin call delivery. For the Asterisk 1.6 release,
158 'rrmemory' will be renamed 'roundrobin'.
160 * app_meetme: The 'm' option (monitor) is renamed to 'l' (listen only), and
161 the 'm' option now provides the functionality of "initially muted".
162 In practice, most existing dialplans using the 'm' flag should not notice
163 any difference, unless the keypad menu is enabled, allowing the user
164 to unmute themsleves.
166 * ast_play_and_record would attempt to cancel the recording if a DTMF
167 '0' was received. This behavior was not documented in most of the
168 applications that used ast_play_and_record and the return codes from
169 ast_play_and_record weren't checked for properly.
170 ast_play_and_record has been changed so that '0' no longer cancels a
171 recording. If you want to allow DTMF digits to cancel an
172 in-progress recording use ast_play_and_record_full which allows you
173 to specify which DTMF digits can be used to accept a recording and
174 which digits can be used to cancel a recording.
176 * ast_app_messagecount has been renamed to ast_app_inboxcount. There is now a
177 new ast_app_messagecount function which takes a single context/mailbox/folder
178 mailbox specification and returns the message count for that folder only.
179 This addresses the deficiency of not being able to count the number of
180 messages in folders other than INBOX and Old.
182 * The exit behavior of the AGI applications has changed. Previously, when
183 a connection to an AGI server failed, the application would cause the channel
184 to immediately stop dialplan execution and hangup. Now, the only time that
185 the AGI applications will cause the channel to stop dialplan execution is
186 when the channel itself requests hangup. The AGI applications now set an
187 AGISTATUS variable which will allow you to find out whether running the AGI
188 was successful or not.
190 Previously, there was no way to handle the case where Asterisk was unable to
191 locally execute an AGI script for some reason. In this case, dialplan
192 execution will continue as it did before, but the AGISTATUS variable will be
195 A locally executed AGI script can now exit with a non-zero exit code and this
196 failure will be detected by Asterisk. If an AGI script exits with a non-zero
197 exit code, the AGISTATUS variable will be set to "FAILURE" as opposed to
202 * After executing the 'status' manager action, the "Status" manager events
203 included the header "CallerID:" which was actually only the CallerID number,
204 and not the full CallerID string. This header has been renamed to
205 "CallerIDNum". For compatibility purposes, the CallerID parameter will remain
206 until after the release of 1.4, when it will be removed. Please use the time
207 during the 1.4 release to make this transition.
209 * The AgentConnect event now has an additional field called "BridgedChannel"
210 which contains the unique ID of the queue member channel that is taking the
211 call. This is useful when trying to link recording filenames back to
212 a particular call from the queue.
214 * app_userevent has been modified to always send Event: UserEvent with the
215 additional header UserEvent: <userspec>. Also, the Channel and UniqueID
216 headers are not automatically sent, unless you specify them as separate
217 arguments. Please see the application help for the new syntax.
219 * app_meetme: Mute and Unmute events are now reported via the Manager API.
220 Native Manager API commands MeetMeMute and MeetMeUnmute are provided, which
221 are easier to use than "Action Command:". The MeetMeStopTalking event has
222 also been deprecated in favor of the already existing MeetmeTalking event
223 with a "Status" of "on" or "off" added.
227 * The builtin variables ${CALLERID}, ${CALLERIDNAME}, ${CALLERIDNUM},
228 ${CALLERANI}, ${DNID}, ${RDNIS}, ${DATETIME}, ${TIMESTAMP}, ${ACCOUNTCODE},
229 and ${LANGUAGE} have all been deprecated in favor of their related dialplan
230 functions. You are encouraged to move towards the associated dialplan
231 function, as these variables will be removed in a future release.
233 * The CDR-CSV variables uniqueid, userfield, and basing time on GMT are now
234 adjustable from cdr.conf, instead of recompiling.
236 * OSP applications exports several new variables, ${OSPINHANDLE},
237 ${OSPOUTHANDLE}, ${OSPINTOKEN}, ${OSPOUTTOKEN}, ${OSPCALLING},
238 ${OSPINTIMELIMIT}, and ${OSPOUTTIMELIMIT}
240 * Builtin transfer functionality sets the variable ${TRANSFERERNAME} in the new
241 created channel. This variables holds the channel name of the transferer.
245 * The function ${CHECK_MD5()} has been deprecated in favor of using an
246 expression: $[${MD5(<string>)} = ${saved_md5}].
248 * The 'builtin' functions that used to be combined in pbx_functions.so are
249 now built as separate modules. If you are not using 'autoload=yes' in your
250 modules.conf file then you will need to explicitly load the modules that
251 contain the functions you want to use.
253 * The ENUMLOOKUP() function with the 'c' option (for counting the number of
254 records), but the lookup fails to match any records, the returned value will
255 now be "0" instead of blank.
257 * The REALTIME() function is now available in version 1.4 and app_realtime has
258 been deprecated in favor of the new function. app_realtime will be removed
259 completely with the version 1.6 release so please take the time between
260 releases to make any necessary changes
262 * The QUEUEAGENTCOUNT() function has been deprecated in favor of
263 QUEUE_MEMBER_COUNT().
267 * The "mailboxdetail" option has been deprecated. Previously, if this option
268 was not enabled, the 2 byte MSGCOUNT information element would be set to all
269 1's to indicate there there is some number of messages waiting. With this
270 option enabled, the number of new messages were placed in one byte and the
271 number of old messages are placed in the other. This is now the default
272 (and the only) behavior.
276 * The "incominglimit" setting is replaced by the "call-limit" setting in
279 * OSP support code is removed from SIP channel to OSP applications. ospauth
280 option in sip.conf is removed to osp.conf as authpolicy. allowguest option
281 in sip.conf cannot be set as osp anymore.
285 * Support for MFC/R2 has been removed, as it has not been functional for some
286 time and it has no maintainer.
290 * It has been determined that previous versions of Asterisk used the wrong codeword
291 packing order for G726-32 data. This version supports both available packing orders,
292 and can transcode between them. It also now selects the proper order when
293 negotiating with a SIP peer based on the codec name supplied in the SDP. However,
294 there are existing devices that improperly request one order and then use another;
295 Sipura and Grandstream ATAs are known to do this, and there may be others. To
296 be able to continue to use these devices with this version of Asterisk and the
297 G726-32 codec, a configuration parameter called 'g726nonstandard' has been added
298 to sip.conf, so that Asterisk can use the packing order expected by the device (even
299 though it requested a different order). In addition, the internal format number for
300 G726-32 has been changed, and the old number is now assigned to AAL2-G726-32. The
301 result of this is that this version of Asterisk will be able to interoperate over
302 IAX2 with older versions of Asterisk, as long as this version is told to allow
303 'g726aal2' instead of 'g726' as the codec for the call.
307 * On BSD systems, the installation directories have changed to more "FreeBSDish"
308 directories. On startup, Asterisk will look for the main configuration in
309 /usr/local/etc/asterisk/asterisk.conf
310 If you have an old installation, you might want to remove the binaries and
311 move the configuration files to the new locations. The following directories
313 ASTLIBDIR /usr/local/lib/asterisk
314 ASTVARLIBDIR /usr/local/share/asterisk
315 ASTETCDIR /usr/local/etc/asterisk
316 ASTBINDIR /usr/local/bin/asterisk
317 ASTSBINDIR /usr/local/sbin/asterisk