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