Fix autofill behavior in app_queue and document it's functionality in queues.conf...
[asterisk/asterisk.git] / UPGRADE.txt
1 Information for Upgrading From Previous Asterisk Releases
2 =========================================================
3
4 Build Process (configure script):
5
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:
8
9 $ ./configure --help
10
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
14 be present, etc.
15
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 users,
18 that will result in a similar build to what they would have had before the
19 configure script was added to the build process (except for having to run 'make'
20 again after the configure script is run). Note that the configure script does NOT
21 need to be re-run just to rebuild Asterisk; you only need to re-run it when your
22 system configuration changes or you wish to build Asterisk with different options.
23
24 Build Process (module selection):
25
26 The Asterisk source tree now includes a basic module selection and build option
27 selection tool called 'menuselect'. Run 'make menuselect' to make your choices.
28 In this tool, you can disable building of modules that you don't care about,
29 turn on/off global options for the build and see which modules will not (and cannot)
30 be built because your system does not have the required external dependencies
31 installed.
32
33 (TODO: document where 'global' and 'per-user' menuselect input files should go
34 and what they need to contain)
35
36 PBX Core:
37
38 * The (very old and undocumented) ability to use BYEXTENSION for dialing
39   instead of ${EXTEN} has been removed.
40
41 Command Line Interface:
42
43 * 'show channels concise', designed to be used by applications that will parse
44   its output, previously used ':' characters to separate fields. However, some
45   of those fields can easily contain that character, making the output not
46   parseable. The delimiter has been changed to '!'.
47
48 Applications:
49
50 * In previous Asterisk releases, many applications would jump to priority n+101
51   to indicate some kind of status or error condition.  This functionality was
52   marked deprecated in Asterisk 1.2.  An option to disable it was provided with
53   the default value set to 'on'.  The default value for the global priority
54   jumping option is now 'off'.
55
56 * The applications Cut, Sort, DBGet, DBPut, SetCIDNum, SetCIDName, SetRDNIS,
57   AbsoluteTimeout, DigitTimeout, ResponseTimeout, SetLanguage, GetGroupCount,
58   and GetGroupMatchCount were all deprecated in version 1.2, and therefore have
59   been removed in this version.  You should use the equivalent dialplan
60   function in places where you have previously used one of these applications.
61
62 * The application SetVar has been renamed to Set.  The syntax SetVar was marked
63   deprecated in version 1.2 and is no longer recognized in this version.
64
65 * app_read has been updated to use the newer options codes, using "skip" or
66   "noanswer" will not work.  Use s or n.  Also there is a new feature i, for
67   using indication tones, so typing in skip would give you unexpected results.
68
69 * OSPAuth is added to authenticate OSP tokens in in_bound call setup messages.
70
71 * The CONNECT event in the queue_log from app_queue now has a second field 
72   in addition to the holdtime field. It contains the unique ID of the 
73   queue member channel that is taking the call. This is useful when trying 
74   to link recording filenames back to a particular call from the queue.  
75
76 * The old/current behavior of app_queue has a serial type behavior
77   in that the queue will make all waiting callers wait in the queue
78   even if there is more than one available member ready to take
79   calls until the head caller is connected with the member they
80   were trying to get to. The next waiting caller in line then
81   becomes the head caller, and they are then connected with the
82   next available member and all available members and waiting callers
83   waits while this happens. This cycle continues until there are
84   no more available members or waiting callers, whichever comes first.
85   The new behavior, enabled by setting autofill=yes in queues.conf
86   either at the [general] level to default for all queues or 
87   to set on a per-queue level, makes sure that when the waiting 
88   callers are connecting with available members in a parallel fashion 
89   until there are no more available members or no more waiting callers,
90   whichever comes first. This is probably more along the lines of how
91   one would expect a queue should work and in most cases, you will want 
92   to enable this new behavior. If you do not specify or comment out this 
93   option, it will default to "no" to keep backward compatability with the old 
94   behavior.
95
96 Manager:
97
98 * After executing the 'status' manager action, the "Status" manager events
99   included the header "CallerID:" which was actually only the CallerID number,
100   and not the full CallerID string.  This header has been renamed to
101   "CallerIDNum".  For compatibility purposes, the CallerID parameter will remain
102   until after the release of 1.4, when it will be removed.  Please use the time
103   during the 1.4 release to make this transition.
104
105 * The AgentConnect event now has an additional field called "BridgedChannel" 
106   which contains the unique ID of the queue member channel that is taking the 
107   call. This is useful when trying to link recording filenames back to 
108   a particular call from the queue.
109
110 Variables:
111
112 * The builtin variables ${CALLERID}, ${CALLERIDNAME}, ${CALLERIDNUM},
113   ${CALLERANI}, ${DNID}, ${RDNIS}, ${DATETIME}, ${TIMESTAMP}, ${ACCOUNTCODE},
114   and ${LANGUAGE} have all been deprecated in favor of their related dialplan
115   functions.  You are encouraged to move towards the associated dialplan
116   function, as these variables will be removed in a future release.
117
118 * The CDR-CSV variables uniqueid, userfield, and basing time on GMT are now 
119   adjustable from cdr.conf, instead of recompiling.
120
121 * OSP applications exports several new variables, ${OSPINHANDLE},
122   ${OSPOUTHANDLE}, ${OSPINTOKEN}, ${OSPOUTTOKEN}, ${OSPCALLING},
123   ${OSPINTIMELIMIT}, and ${OSPOUTTIMELIMIT}
124
125 Functions:
126
127 * The function ${CHECK_MD5()} has been deprecated in favor of using an
128   expression: $[${MD5(<string>)} = ${saved_md5}].
129
130 * The 'builtin' functions that used to be combined in pbx_functions.so are
131   now built as separate modules. If you are not using 'autoload=yes' in your
132   modules.conf file then you will need to explicitly load the modules that
133   contain the functions you want to use.
134
135 * The ENUMLOOKUP() function with the 'c' option (for counting the number of records),
136   but the lookup fails to match any records, the returned value will now be "0" instead of blank.
137
138 * The REALTIME() function is now available in version 1.4 and app_realtime has
139   been deprecated in favor of the new function. app_realtime will be removed
140   completely with the version 1.6 release so please take the time between
141   releases to make any necessary changes
142
143 The IAX2 channel:
144
145 * The "mailboxdetail" option has been deprecated.  Previously, if this option
146   was not enabled, the 2 byte MSGCOUNT information element would be set to all
147   1's to indicate there there is some number of messages waiting.  With this
148   option enabled, the number of new messages were placed in one byte and the
149   number of old messages are placed in the other.  This is now the default
150   (and the only) behavior.
151
152 The SIP channel:
153
154 * The "incominglimit" setting is replaced by the "call-limit" setting in sip.conf.
155
156 * OSP support code is removed from SIP channel to OSP applications. ospauth 
157   option in sip.conf is removed to osp.conf as authpolicy. allowguest option
158   in sip.conf cannot be set as osp anymore. 
159
160 The Zap channel:
161
162 * Support for MFC/R2 has been removed, as it has not been functional for some time
163   and it has no maintainer.
164
165 Installation:
166
167 * On BSD systems, the installation directories have changed to more "FreeBSDish" directories. On startup, Asterisk will look for the main configuration in /usr/local/etc/asterisk/asterisk.conf
168 If you have an old installation, you might want to remove the binaries and move the configuration files to the new locations. The following directories are now default:
169         ASTLIBDIR       /usr/local/lib/asterisk
170         ASTVARLIBDIR    /usr/local/share/asterisk
171         ASTETCDIR       /usr/local/etc/asterisk
172         ASTBINDIR       /usr/local/bin/asterisk
173         ASTSBINDIR      /usr/local/sbin/asterisk
174
175 Sounds:
176
177 * The phonetic sounds directory has been removed from the asterisk-sounds package
178   because they are now included directly in Asterisk.  However, it is important to
179   note that the phonetic sounds that existed in asterisk-sounds used a different
180   naming convention than the sounds in Asterisk.  For example, instead of alpha.gsm
181   and bravo.gsm, Asterisk has a_p.gsm and b_p.gsm.