Remove dead code from features.c; refactor pickup code into pickup.c
[asterisk/asterisk.git] / UPGRADE.txt
1 ===========================================================
2 ===
3 === Information for upgrading between Asterisk versions
4 ===
5 === These files document all the changes that MUST be taken
6 === into account when upgrading between the Asterisk
7 === versions listed below. These changes may require that
8 === you modify your configuration files, dialplan or (in
9 === some cases) source code if you have your own Asterisk
10 === modules or patches. These files also include advance
11 === notice of any functionality that has been marked as
12 === 'deprecated' and may be removed in a future release,
13 === along with the suggested replacement functionality.
14 ===
15 === UPGRADE-1.2.txt -- Upgrade info for 1.0 to 1.2
16 === UPGRADE-1.4.txt -- Upgrade info for 1.2 to 1.4
17 === UPGRADE-1.6.txt -- Upgrade info for 1.4 to 1.6
18 === UPGRADE-1.8.txt -- Upgrade info for 1.6 to 1.8
19 === UPGRADE-10.txt -- Upgrade info for 1.8 to 10
20 === UPGRADE-11.txt -- Upgrade info for 10 to 11
21 ===
22 ===========================================================
23
24 AgentMonitorOutgoing
25  - Application removed.  It was a holdover from when AgentCallbackLogin was
26    removed.
27
28 NoCDR:
29  - This application is deprecated. Please use the CDR_PROP function instead.
30
31 ResetCDR:
32  - The 'w' and 'a' options have been removed. Dispatching CDRs to registered
33    backends occurs on an as-needed basis in order to preserve linkedid
34    propagation and other needed behavior.
35  - The 'e' option is deprecated. Please use the CDR_PROP function to enable
36    CDRs on a channel that they were previously disabled on.
37  - The ResetCDR application is no longer a part of core Asterisk, and instead
38    is now delivered as part of app_cdr.
39
40 ForkCDR:
41  - ForkCDR no longer automatically resets the forked CDR. See the 'r' option
42    for more information.
43  - Variables are no longer purged from the original CDR. See the 'v' option for
44    more information.
45  - The 'A' option has been removed. The Answer time on a CDR is never updated
46    once set.
47  - The 'd' option has been removed. The disposition on a CDR is a function of
48    the state of the channel and cannot be altered.
49  - The 'D' option has been removed. Who the Party B is on a CDR is a function
50    of the state of the respective channels, and cannot be altered.
51  - The 'r' option has been changed. Previously, ForkCDR always reset the CDR
52    such that the start time and, if applicable, the answer time was updated.
53    Now, by default, ForkCDR simply forks the CDR, maintaining any times. The
54    'r' option now triggers the Reset, setting the start time (and answer time
55    if applicable) to the current time.
56  - The 's' option has been removed. A variable can be set on the original CDR
57    if desired using the CDR function, and removed from a forked CDR using the
58    same function.
59  - The 'T' option has been removed. The concept of DONT_TOUCH and LOCKED no
60    longer applies in the CDR engine.
61  - The 'v' option now prevents the copy of the variables from the original CDR
62    to the forked CDR. Previously the variables were always copied but were
63    removed from the original. Removing variables from a CDR can have unintended
64    side effects - this option allows the user to prevent propagation of
65    variables from the original to the forked without modifying the original.
66
67 AMI:
68  - The SIP SIPqualifypeer action now sends a response indicating it will qualify
69    a peer once a peer has been found to qualify.  Once the qualify has been
70    completed it will now issue a SIPqualifypeerdone event.
71  - Version 1.4 - The details of what happens to a channel when a masquerade
72    happens (transfers, parking, etc) have changed.
73    - The Masquerade event now includes the Uniqueid's of the clone and original
74      channels.
75    - Channels no longer swap Uniqueid's as a result of the masquerade.
76    - Instead of a shell game of renames, there's now a single rename, appending
77      <ZOMBIE> to the name of the original channel.
78  - The AMI events 'ParkedCall', 'ParkedCallTimeOut', 'ParkedCallGiveUp', and
79    'UnParkedCall' have changed significantly in the new res_parking module.
80    - The 'Channel' and 'From' headers are gone. For the channel that was parked
81      or is coming out of parking, a 'Parkee' channel snapshot is issued and it
82      has a number of fields associated with it. The old 'Channel' header relayed
83      the same data as the new 'ParkeeChannel' header.
84    - The 'From' field was ambiguous and changed meaning depending on the event.
85      for most of these, it was the name of the channel that parked the call
86      (the 'Parker'). There is no longer a header that provides this channel name,
87      however the 'ParkerDialString' will contain a dialstring to redial the
88      device that parked the call.
89    - On UnParkedCall events, the 'From' header would instead represent the
90      channel responsible for retrieving the parkee. It receives a channel
91      snapshot labeled 'Retriever'. The 'from' field is is replaced with
92      'RetrieverChannel'.
93    - Lastly, the 'Exten' field has been replaced with 'ParkingSpace'.
94
95 CEL:
96  - The Uniqueid field for a channel is now a stable identifier, and will not
97    change due to transfers, parking, etc.
98
99 Build System:
100  - Asterisk now optionally uses libxslt to improve XML documentation generation
101    and maintainability. If libxslt is not available on the system, some XML
102    documentation will be incomplete.
103
104 Core:
105  - The following channel variables have changed behavior which is described in
106    the CHANGES file: TRANSFER_CONTEXT, BRIDGEPEER, BRIDGEPVTCALLID,
107    ATTENDED_TRANSFER_COMPLETE_SOUND, DYNAMIC_FEATURENAME, and DYNAMIC_PEERNAME.
108
109 Queues:
110  - Queue logging for PAUSEALL/UNPAUSEALL now only occurs if the interface this is
111    performed on is a member of at least one queue.
112  - Queue strategy rrmemory now has a predictable order similar to strategy
113    rrordered. Members will be called in the order that they are added to the
114    queue.
115  - CDR behavior in app_queue has been modified slightly.  The CDR record will
116    now only record a disposition of BUSY if all Queue members were actually
117    busy on a call or some Queue members were busy or paused.  Previously, any
118    Queue member being paused would result in a disposition of BUSY.
119  - Removed the queues.conf check_state_unknown option.  It is no longer
120    necessary.
121  - It is now possible to play the Queue prompts to the first user waiting in a
122    call queue. Note that this may impact the ability for agents to talk with
123    users, as a prompt may still be playing when an agent connects to the user.
124    This ability is disabled by default but can be enabled on an individual
125    queue using the 'announce-to-first-user' option.
126
127 Dial:
128  - Now recognizes 'W' to pause sending DTMF for one second in addition to
129    the previously existing 'w' that paused sending DTMF for half a second.
130
131 ExternalIVR:
132  - Now recognizes 'W' to pause sending DTMF for one second in addition to
133    the previously existing 'w' that paused sending DTMF for half a second.
134
135 SendDTMF:
136  - Now recognizes 'W' to pause sending DTMF for one second in addition to
137    the previously existing 'w' that paused sending DTMF for half a second.
138
139 SetAMAFlags
140  - This application is deprecated in favor of the CHANNEL function.
141
142 chan_agent:
143  - The updatecdr option has been removed. Altering the names of channels on a
144    CDR is not supported - the name of the channel is the name of the channel,
145    and pretending otherwise helps no one.
146  - The AGENTUPDATECDR channel variable has also been removed, for the same
147    reason as the updatecdr option.
148  - chan_agent is removed and replaced with AgentLogin and AgentRequest dialplan
149    applications.  Agents are connected with callers using the new AgentRequest
150    dialplan application.  The Agents:<agent-id> device state is available to
151    monitor the status of an agent.  See agents.conf.sample for valid
152    configuration options.
153
154 chan_bridge
155  - chan_bridge is removed and its functionality is incorporated into ConfBridge
156    itself.
157
158 chan_dahdi:
159  - Analog port dialing and deferred DTMF dialing for PRI now distinguishes
160    between 'w' and 'W'.  The 'w' pauses dialing for half a second.  The 'W'
161    pauses dialing for one second.
162  - The default for inband_on_proceeding has changed to no.
163
164 chan_local:
165  - The /b option has been removed.
166
167 Dialplan:
168  - All channel and global variable names are evaluated in a case-sensitive manner.
169    In previous versions of Asterisk, variables created and evaluated in the
170    dialplan were evaluated case-insensitively, but built-in variables and variable
171    evaluation done internally within Asterisk was done case-sensitively.
172  - Asterisk has always had code to ignore dash '-' characters that are not
173    part of a character set in the dialplan extensions.  The code now
174    consistently ignores these characters when matching dialplan extensions.
175  - BRIDGE_FEATURES channel variable is now casesensitive for feature letter codes.
176    Uppercase variants apply them to the calling party while lowercase variants
177    apply them to the called party.
178
179 Features:
180  - The features.conf [applicationmap] <FeatureName>  ActivatedBy option is
181    no longer honored.  The feature is always activated by the channel that has
182    DYNAMIC_FEATURES defined on it when it enters the bridge.  Use predial to set
183    different values of DYNAMIC_FEATURES on the channels
184
185  - Executing a dynamic feature on the bridge peer in a multi-party bridge will
186    execute it on all peers of the activating channel.
187
188  - There is no longer an explicit 'features reload' CLI command. Features can still be
189    reloaded using 'module reload features'.
190
191
192 Parking:
193  - The arguments for the Park, ParkedCall, and ParkAndAnnounce applications have
194    been modified significantly. See the application documents for specific details.
195    Also parking lot configuration is now done in res_parking.conf instead of
196    features.conf
197
198 From 10 to 11:
199
200 Voicemail:
201  - All voicemails now have a "msg_id" which uniquely identifies a message. For
202    users of filesystem and IMAP storage of voicemail, this should be transparent.
203    For users of ODBC, you will need to add a "msg_id" column to your voice mail
204    messages table. This should be a string capable of holding at least 32 characters.
205    All messages created in old Asterisk installations will have a msg_id added to
206    them when required. This operation should be transparent as well.
207
208 Parking:
209  - The comebacktoorigin setting must now be set per parking lot. The setting in
210    the general section will not be applied automatically to each parking lot.
211  - The BLINDTRANSFER channel variable is deleted from a channel when it is
212    bridged to prevent subtle bugs in the parking feature.  The channel
213    variable is used by Asterisk internally for the Park application to work
214    properly.  If you were using it for your own purposes, copy it to your
215    own channel variable before the channel is bridged.
216
217 res_ais:
218  - Users of res_ais in versions of Asterisk prior to Asterisk 11 must change
219    to use the res_corosync module, instead.  OpenAIS is deprecated, but
220    Corosync is still actively developed and maintained.  Corosync came out of
221    the OpenAIS project.
222
223 Dialplan Functions:
224  - MAILBOX_EXISTS has been deprecated. Use VM_INFO with the 'exists' parameter
225    instead.
226  - Macro has been deprecated in favor of GoSub.  For redirecting and connected
227    line purposes use the following variables instead of their macro equivalents:
228    REDIRECTING_SEND_SUB, REDIRECTING_SEND_SUB_ARGS,
229    CONNECTED_LINE_SEND_SUB, CONNECTED_LINE_SEND_SUB_ARGS.
230  - The REDIRECTING function now supports the redirecting original party id
231    and reason.
232  - The HANGUPCAUSE and HANGUPCAUSE_KEYS functions have been introduced to
233    provide a replacement for the SIP_CAUSE hash. The HangupCauseClear
234    application has also been introduced to remove this data from the channel
235    when necessary.
236
237
238 func_enum:
239  - ENUM query functions now return a count of -1 on lookup error to
240    differentiate between a failed query and a successful query with 0 results
241    matching the specified type.
242
243 CDR:
244  - cdr_adaptive_odbc now supports specifying a schema so that Asterisk can
245    connect to databases that use schemas.
246
247 Configuration Files:
248  - Files listed below have been updated to be more consistent with how Asterisk
249    parses configuration files.  This makes configuration files more consistent
250    with what is expected across modules.
251
252    - cdr.conf: [general] and [csv] sections
253    - dnsmgr.conf
254    - dsp.conf
255
256  - The 'verbose' setting in logger.conf now takes an optional argument,
257    specifying the verbosity level for each logging destination.  The default,
258    if not otherwise specified, is a verbosity of 3.
259
260 AMI:
261   - DBDelTree now correctly returns an error when 0 rows are deleted just as
262     the DBDel action does.
263   - The IAX2 PeerStatus event now sends a 'Port' header.  In Asterisk 10, this was
264     erroneously being sent as a 'Post' header.
265
266 CCSS:
267  - Macro is deprecated. Use cc_callback_sub instead of cc_callback_macro
268    in channel configurations.
269
270 app_meetme:
271   - The 'c' option (announce user count) will now work even if the 'q' (quiet)
272     option is enabled.
273
274 app_followme:
275  - Answered outgoing calls no longer get cut off when the next step is started.
276    You now have until the last step times out to decide if you want to accept
277    the call or not before being disconnected.
278
279 chan_gtalk:
280  - chan_gtalk has been deprecated in favor of the chan_motif channel driver. It is recommended
281    that users switch to using it as it is a core supported module.
282
283 chan_jingle:
284  - chan_jingle has been deprecated in favor of the chan_motif channel driver. It is recommended
285    that users switch to using it as it is a core supported module.
286
287 SIP
288 ===
289  - A new option "tonezone" for setting default tonezone for the channel driver
290    or individual devices
291  - A new manager event, "SessionTimeout" has been added and is triggered when
292    a call is terminated due to RTP stream inactivity or SIP session timer
293    expiration.
294  - SIP_CAUSE is now deprecated.  It has been modified to use the same
295    mechanism as the HANGUPCAUSE function.  Behavior should not change, but
296    performance should be vastly improved.  The HANGUPCAUSE function should now
297    be used instead of SIP_CAUSE. Because of this, the storesipcause option in
298    sip.conf is also deprecated.
299  - The sip paramater for Originating Line Information (oli, isup-oli, and
300    ss7-oli) is now parsed out of the From header and copied into the channel's
301    ANI2 information field.  This is readable from the CALLERID(ani2) dialplan
302    function.
303  - ICE support has been added and is enabled by default. Some endpoints may have
304    problems with the ICE candidates within the SDP. If this is the case ICE support
305    can be disabled globally or on a per-endpoint basis using the icesupport
306    configuration option. Symptoms of this include one way media or no media flow.
307
308 chan_unistim
309  - Due to massive update in chan_unistim phone keys functions and on-screen
310    information changed.
311
312 users.conf:
313  - A defined user with hasvoicemail=yes now finally uses a Gosub to stdexten
314    as documented in extensions.conf.sample since v1.6.0 instead of a Macro as
315    documented in v1.4.  Set the asterisk.conf stdexten=macro parameter to
316    invoke the stdexten the old way.
317
318 res_jabber
319  - This module has been deprecated in favor of the res_xmpp module. The res_xmpp
320    module is backwards compatible with the res_jabber configuration file, dialplan
321    functions, and AMI actions. The old CLI commands can also be made available using
322    the res_clialiases template for Asterisk 11.
323
324 From 1.8 to 10:
325
326 cel_pgsql:
327  - This module now expects an 'extra' column in the database for data added
328    using the CELGenUserEvent() application.
329
330 ConfBridge
331  - ConfBridge's dialplan arguments have changed and are not
332    backwards compatible.
333
334 File Interpreters
335  - The format interpreter formats/format_sln16.c for the file extension
336    '.sln16' has been removed. The '.sln16' file interpreter now exists
337    in the formats/format_sln.c module along with new support for sln12,
338    sln24, sln32, sln44, sln48, sln96, and sln192 file extensions.
339
340 HTTP:
341  - A bindaddr must be specified in order for the HTTP server
342    to run. Previous versions would default to 0.0.0.0 if no
343    bindaddr was specified.
344
345 Gtalk:
346  - The default value for 'context' and 'parkinglots' in gtalk.conf has
347    been changed to 'default', previously they were empty.
348
349 chan_dahdi:
350  - The mohinterpret=passthrough setting is deprecated in favor of
351    moh_signaling=notify.
352
353 pbx_lua:
354  - Execution no longer continues after applications that do dialplan jumps
355    (such as app.goto).  Now when an application such as app.goto() is called,
356    control is returned back to the pbx engine and the current extension
357    function stops executing.
358  - the autoservice now defaults to being on by default
359  - autoservice_start() and autoservice_start() no longer return a value.
360
361 Queue:
362  - Mark QUEUE_MEMBER_PENALTY Deprecated it never worked for realtime members
363  - QUEUE_MEMBER is now R/W supporting setting paused, ignorebusy and penalty.
364
365 Asterisk Database:
366  - The internal Asterisk database has been switched from Berkeley DB 1.86 to
367    SQLite 3. An existing Berkeley astdb file can be converted with the astdb2sqlite3
368    utility in the UTILS section of menuselect. If an existing astdb is found and no
369    astdb.sqlite3 exists, astdb2sqlite3 will be compiled automatically. Asterisk will
370    convert an existing astdb to the SQLite3 version automatically at runtime. If
371    moving back from Asterisk 10 to Asterisk 1.8, the astdb2bdb utility can be used
372    to create a Berkeley DB copy of the SQLite3 astdb that Asterisk 10 uses.
373
374 Manager:
375  - The AMI protocol version was incremented to 1.2 as a result of changing two
376    instances of the Unlink event to Bridge events. This change was documented
377    as part of the AMI 1.1 update, but two Unlink events were inadvertently left
378    unchanged.
379
380 Module Support Level
381  - All modules in the addons, apps, bridge, cdr, cel, channels, codecs,
382    formats, funcs, pbx, and res have been updated to include MODULEINFO data
383    that includes <support_level> tags with a value of core, extended, or deprecated.
384    More information is available on the Asterisk wiki at
385    https://wiki.asterisk.org/wiki/display/AST/Asterisk+Module+Support+States
386
387    Deprecated modules are now marked to not build by default and must be explicitly
388    enabled in menuselect.
389
390 chan_sip:
391  - Setting of HASH(SIP_CAUSE,<slave-channel-name>) on channels is now disabled
392    by default. It can be enabled using the 'storesipcause' option. This feature
393    has a significant performance penalty.
394  - In order to improve compliance with RFC 3261, SIP usernames are now properly
395    escaped when encoding reserved characters. Prior to this change, the use of
396    these characters in certain SIP settings affecting usernames could cause
397    injections of these characters in their raw form into SIP headers which could
398    in turn cause all sorts of nasty behaviors. All characters that are not
399    alphanumeric or are not contained in the the following lists specified by
400    RFC 3261 section 25.1 will be escaped as %XX when encoding a SIP username:
401     * mark: "-" / "_" / "." / "!" / "~" / "*" / "'" / "(" / ")"
402     * user-unreserved: "&" / "=" / "+" / "$" / "," / ";" / "?" / "/"
403
404 UDPTL:
405  - The default UDPTL port range in udptl.conf.sample differed from the defaults
406    in the source. If you didn't have a config file, you got 4500 to 4599. Now the
407    default is 4000 to 4999.
408
409 ===========================================================
410 ===========================================================