support new format for musiconhold.conf (issue #4908)
[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 Agents:
16
17 * The default for ackcall has been changed to "no" instead of "yes" 
18   because of a bug which caused the "yes" behavior to generally act like
19   "no".  You may need to adjust the value if your agents behave 
20   differently than you expect with respect to acknowledgement.
21
22 Dialing:
23
24 * The Caller*ID of the outbound leg is now the extension that was 
25   called, rather than the Caller*ID of the inbound leg of the call.  The 
26   "o" flag for Dial can be used to restore the original behavior if 
27   desired.  Note that if you are looking for the originating callerid
28   from the manager event, there is a new manager event "Dial" which 
29   provides the source and destination channels and callerid.
30
31 IAX: 
32
33 * The naming convention for IAX channels has changed in a minor way such 
34   that the call number follows a "-" rather than a "/" character.
35
36 SIP:
37
38 * The global option "port" in 1.0.X that is used to set which port to
39   bind to has been changed to "bindport" to be more consistent with
40   the other channel drivers and to avoid confusion with the "port"
41   option for users/peers.
42
43 * The "Registry" event now uses "Username" rather than "User" for 
44   consistency with IAX.
45
46 Applications:
47
48 * With the addition of dialplan functions (which operate similarly
49   to variables), the SetVar application has been renamed to Set.
50
51 * The CallerPres application has been removed.  Use SetCallerPres 
52   instead.  It accepts both numeric and symbolic names.
53
54 * The applications GetGroupCount, GetGroupMatchCount, SetGroup, and
55   CheckGroup have been deprecated in favor of functions.  Here is a
56   table of their replacements:
57
58   GetGroupCount([groupname][@category]         GROUP_COUNT([groupname][@category])      Set(GROUPCOUNT=${GROUP_COUNT()})
59   GroupMatchCount(groupmatch[@category])       GROUP_MATCH_COUNT(groupmatch[@category]) Set(GROUPCOUNT=${GROUP_MATCH_COUNT(SIP/.*)})
60   SetGroup(groupname[@category])               GROUP([category])=groupname              Set(GROUP()=test)
61   CheckGroup(max[@category])                   N/A                                      GotoIf($[ ${GROUP_COUNT()} > 5 ]?103)
62
63   Note that CheckGroup does not have a direct replacement.  There is
64   also a new function called GROUP_LIST() which will return a space
65   separated list of all of the groups set on a channel.  The GROUP()
66   function can also return the name of the group set on a channel when
67   used in a read environment.
68
69 * The applications DBGet and DBPut have been deprecated in favor of
70   functions.  Here is a table of their replacements:
71
72   DBGet(foo=family/key)        Set(foo=${DB(family/key)})
73   DBPut(family/key=${foo})     Set(DB(family/key)=${foo})
74
75 * The application SetLanguage has been deprecated in favor of the
76   function LANGUAGE().
77
78   SetLanguage(fr)               Set(LANGUAGE()=fr)
79
80   The LANGUAGE function can also return the currently set language:
81
82   Set(MYLANG=${LANGUAGE()})
83
84 * The applications AbsoluteTimeout, DigitTimeout, and ResponseTimeout
85   have been deprecated in favor of the function TIMEOUT(timeouttype):
86
87   AbsoluteTimeout(300)          Set(TIMEOUT(absolute)=300)
88   DigitTimeout(15)              Set(TIMEOUT(digit)=15)
89   ResponseTimeout(15)           Set(TIMEOUT(response)=15)
90
91   The TIMEOUT() function can also return the currently set timeouts:
92
93   Set(DTIMEOUT=${TIMEOUT(digit)})
94
95 * The applications SetCIDName, SetCIDNum, and SetRDNIS have been
96   deprecated in favor of the CALLERID(datatype) function:
97
98   SetCIDName(Joe Cool)          Set(CALLERID(name)=Joe Cool)
99   SetCIDNum(2025551212)         Set(CALLERID(number)=2025551212)
100   SetRDNIS(2024561414)          Set(CALLERID(RDNIS)=2024561414)
101
102 * The application Record now uses the period to separate the filename
103   from the format, rather than the colon.
104
105 * The application VoiceMail now supports a 'temporary' greeting for each
106   mailbox. This greeting can be recorded by using option 4 in the
107   'mailbox options' menu, and 'change your password' option has been
108   moved to option 5.
109
110 Queues:
111
112 * A queue is now considered empty not only if there are no members but if
113   none of the members are available (e.g. agents not logged on).  To
114   restore the original behavior, use "leavewhenempty=strict" or 
115   "joinwhenempty=strict" instead of "=yes" for those options.
116
117 * It is now possible to use multi-digit extensions in the exit context
118   for a queue (although you should not have overlapping extensions,
119   as there is no digit timeout). This means that the EXITWITHKEY event
120   in queue_log can now contain a key field with more than a single
121   character in it.
122
123 Extensions:
124
125 * By default, there is a new option called "autofallthrough" in
126   extensions.conf that is set to yes.  Asterisk 1.0 (and earlier) 
127   behavior was to wait for an extension to be dialed after there were no 
128   more extensions to execute.  "autofallthrough" changes this behavior
129   so that the call will immediately be terminated with BUSY,
130   CONGESTION, or HANGUP based on Asterisk's best guess.  If you are
131   writing an extension for IVR, you must use the WaitExten application
132   if "autofallthrough" is set to yes.
133
134 AGI:
135
136 * AGI scripts did not always get SIGHUP at the end, previously.  That 
137   behavior has been fixed.  If you do not want your script to terminate 
138   at the end of AGI being called (e.g. on a hangup) then set SIGHUP to 
139   be ignored within your application.
140
141 Music On Hold:
142
143 * The preferred format for musiconhold.conf has changed; please see the
144   sample configuration file for the new format. The existing format
145   is still supported but will generate warnings when the module is loaded.