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