1 =========================================================
2 === Information for upgrading from Asterisk 1.0 to 1.2
5 === UPGRADE-1.2.txt -- Upgrade info for 1.0 to 1.2
6 === UPGRADE.txt -- Upgrade info for 1.2 to 1.4
7 =========================================================
11 * The Asterisk 1.2 source code now uses C language features
12 supported only by 'modern' C compilers. Generally, this means GCC
13 version 3.0 or higher, although some GCC 2.96 releases will also
14 work. Some non-GCC compilers that support C99 and the common GCC
15 extensions (including anonymous structures and unions) will also
16 work. All releases of GCC 2.95 do _not_ have the requisite feature
17 support; systems using that compiler will need to be upgraded to
18 a more recent compiler release.
22 * The dialplan expression parser (which handles $[ ... ] constructs)
23 has gone through a major upgrade, but has one incompatible change:
24 spaces are no longer required around expression operators, including
25 string comparisons. However, you can now use quoting to keep strings
26 together for comparison. For more details, please read the
27 doc/README.variables file, and check over your dialplan for possible
32 * The default for ackcall has been changed to "no" instead of "yes"
33 because of a bug which caused the "yes" behavior to generally act like
34 "no". You may need to adjust the value if your agents behave
35 differently than you expect with respect to acknowledgement.
37 * The AgentCallBackLogin application now requires a second '|' before
38 specifying an extension@context. This is to distinguish the options
39 string from the extension, so that they do not conflict. See
40 'show application AgentCallbackLogin' for more details.
44 * Parking behavior has changed slightly; when a parked call times out,
45 Asterisk will attempt to deliver the call back to the extension that
46 parked it, rather than the 's' extension. If that extension is busy
47 or unavailable, the parked call will be lost.
51 * The Caller*ID of the outbound leg is now the extension that was
52 called, rather than the Caller*ID of the inbound leg of the call. The
53 "o" flag for Dial can be used to restore the original behavior if
54 desired. Note that if you are looking for the originating callerid
55 from the manager event, there is a new manager event "Dial" which
56 provides the source and destination channels and callerid.
60 * The naming convention for IAX channels has changed in two ways:
61 1. The call number follows a "-" rather than a "/" character.
62 2. The name of the channel has been simplified to IAX2/peer-callno,
63 rather than IAX2/peer@peer-callno or even IAX2/peer@peer/callno.
67 * The global option "port" in 1.0.X that is used to set which port to
68 bind to has been changed to "bindport" to be more consistent with
69 the other channel drivers and to avoid confusion with the "port"
70 option for users/peers.
72 * The "Registry" event now uses "Username" rather than "User" for
77 * With the addition of dialplan functions (which operate similarly
78 to variables), the SetVar application has been renamed to Set.
80 * The CallerPres application has been removed. Use SetCallerPres
81 instead. It accepts both numeric and symbolic names.
83 * The applications GetGroupCount, GetGroupMatchCount, SetGroup, and
84 CheckGroup have been deprecated in favor of functions. Here is a
85 table of their replacements:
87 GetGroupCount([groupname][@category] GROUP_COUNT([groupname][@category]) Set(GROUPCOUNT=${GROUP_COUNT()})
88 GroupMatchCount(groupmatch[@category]) GROUP_MATCH_COUNT(groupmatch[@category]) Set(GROUPCOUNT=${GROUP_MATCH_COUNT(SIP/.*)})
89 SetGroup(groupname[@category]) GROUP([category])=groupname Set(GROUP()=test)
90 CheckGroup(max[@category]) N/A GotoIf($[ ${GROUP_COUNT()} > 5 ]?103)
92 Note that CheckGroup does not have a direct replacement. There is
93 also a new function called GROUP_LIST() which will return a space
94 separated list of all of the groups set on a channel. The GROUP()
95 function can also return the name of the group set on a channel when
96 used in a read environment.
98 * The applications DBGet and DBPut have been deprecated in favor of
99 functions. Here is a table of their replacements:
101 DBGet(foo=family/key) Set(foo=${DB(family/key)})
102 DBPut(family/key=${foo}) Set(DB(family/key)=${foo})
104 * The application SetLanguage has been deprecated in favor of the
107 SetLanguage(fr) Set(LANGUAGE()=fr)
109 The LANGUAGE function can also return the currently set language:
111 Set(MYLANG=${LANGUAGE()})
113 * The applications AbsoluteTimeout, DigitTimeout, and ResponseTimeout
114 have been deprecated in favor of the function TIMEOUT(timeouttype):
116 AbsoluteTimeout(300) Set(TIMEOUT(absolute)=300)
117 DigitTimeout(15) Set(TIMEOUT(digit)=15)
118 ResponseTimeout(15) Set(TIMEOUT(response)=15)
120 The TIMEOUT() function can also return the currently set timeouts:
122 Set(DTIMEOUT=${TIMEOUT(digit)})
124 * The applications SetCIDName, SetCIDNum, and SetRDNIS have been
125 deprecated in favor of the CALLERID(datatype) function:
127 SetCIDName(Joe Cool) Set(CALLERID(name)=Joe Cool)
128 SetCIDNum(2025551212) Set(CALLERID(number)=2025551212)
129 SetRDNIS(2024561414) Set(CALLERID(RDNIS)=2024561414)
131 * The application Record now uses the period to separate the filename
132 from the format, rather than the colon.
134 * The application VoiceMail now supports a 'temporary' greeting for each
135 mailbox. This greeting can be recorded by using option 4 in the
136 'mailbox options' menu, and 'change your password' option has been
139 * The application VoiceMailMain now only matches the 'default' context if
140 none is specified in the arguments. (This was the previously
141 documented behavior, however, we didn't follow that behavior.) The old
142 behavior can be restored by setting searchcontexts=yes in voicemail.conf.
146 * A queue is now considered empty not only if there are no members but if
147 none of the members are available (e.g. agents not logged on). To
148 restore the original behavior, use "leavewhenempty=strict" or
149 "joinwhenempty=strict" instead of "=yes" for those options.
151 * It is now possible to use multi-digit extensions in the exit context
152 for a queue (although you should not have overlapping extensions,
153 as there is no digit timeout). This means that the EXITWITHKEY event
154 in queue_log can now contain a key field with more than a single
159 * By default, there is a new option called "autofallthrough" in
160 extensions.conf that is set to yes. Asterisk 1.0 (and earlier)
161 behavior was to wait for an extension to be dialed after there were no
162 more extensions to execute. "autofallthrough" changes this behavior
163 so that the call will immediately be terminated with BUSY,
164 CONGESTION, or HANGUP based on Asterisk's best guess. If you are
165 writing an extension for IVR, you must use the WaitExten application
166 if "autofallthrough" is set to yes.
170 * AGI scripts did not always get SIGHUP at the end, previously. That
171 behavior has been fixed. If you do not want your script to terminate
172 at the end of AGI being called (e.g. on a hangup) then set SIGHUP to
173 be ignored within your application.
175 * CallerID is reported with agi_callerid and agi_calleridname instead
176 of a single parameter holding both.
180 * The preferred format for musiconhold.conf has changed; please see the
181 sample configuration file for the new format. The existing format
182 is still supported but will generate warnings when the module is loaded.
186 * All the chan_modem channel drivers (aopen, bestdata and i4l) are deprecated
187 in this release, and will be removed in the next major Asterisk release.
188 Please migrate to chan_misdn for ISDN interfaces; there is no upgrade
189 path for aopen and bestdata modem users.
193 * The conference application now allows users to increase/decrease their
194 speaking volume and listening volume (independently of each other and
195 other users); the 'admin' and 'user' menus have changed, and new sound
196 files are included with this release. However, if a user calling in
197 over a Zaptel channel that does NOT have hardware DTMF detection
198 increases their speaking volume, it is likely they will no longer be
199 able to enter/exit the menu or make any further adjustments, as the
200 software DTMF detector will not be able to recognize the DTMF coming
203 GetVar Manager Action:
205 * Previously, the behavior of the GetVar manager action reported the value
206 of a variable in the following manner:
208 This has been changed to a manner similar to the SetVar action and is now