res_pjsip_session: Fix stream name memory leak.
[asterisk/asterisk.git] / UPGRADE.txt
1 ===========================================================
2 ===
3 === THIS FILE IS AUTOMATICALLY GENERATED DURING THE RELEASE
4 === PROCESS. DO NOT MAKE CHANGES HERE. INSTEAD, REFER TO
5 === doc/UPGRADE-staging/README.md FOR MORE DETAILS.
6 ===
7 === Information for upgrading between Asterisk versions
8 ===
9 === This file documents all the changes that MUST be taken
10 === into account when upgrading between certain Asterisk
11 === versions. These changes may require that you modify
12 === your configuration files, dialplan or (in some cases)
13 === source code if you have your own Asterisk modules or
14 === patches. This file also includes advance notice of any
15 === functionality that has been marked as 'deprecated' and
16 === may be removed in a future release, along with the
17 === suggested replacement functionality.
18 ===
19 ===========================================================
20
21 ------------------------------------------------------------------------------
22 --- New functionality introduced in Asterisk 18.0.0 --------------------------
23 ------------------------------------------------------------------------------
24
25 Core
26 ------------------
27  * The ast_format_cap_from_stream_topology() function has been renamed
28    to ast_stream_topology_get_formats().
29
30 app_bridgeaddchan
31 ------------------
32  * The BridgeAdd application now behaves more like the Bridge application.
33    The application now sets the BRIDGERESULT channel variable to indicate
34    what happened when the channel resumes in dialplan.  This is instead of
35    hanging up the channel on failure conditions.
36
37 app_mixmonitor
38 ------------------
39  * In Asterisk 13.29, a new option flag was added to MixMonitor (the 'S'
40    option) that when combined with the r() or t() options would inject
41    silence into these files if audio was going to be written to one and
42    not that other. This allowed the files specified by r() and t() to
43    subsequently be mixed outside of Asterisk and be appropriately
44    synchronized. This behavior is now the default, and a new option has
45    been added to disable this behavior if desired (the 'n' option).
46
47 app_queue
48 ------------------
49  * The 'Reason' header in the QueueMemberPause AMI Event has been
50    removed. The 'PausedReason' header should be used instead.
51
52  * If they are not specified in [general], "shared_lastcall" and "autofill"
53    now always default to OFF.  Before this version, they would be off ('no') if
54    queues.conf did not have a [general] section, but on ('yes') if it did.
55
56 app_voicemail
57 ------------------
58  * The MessageExists dialplan application and the MESSAGE_EXISTS dialplan
59    function were removed. The were deprecated in Asterisk 1.6.0 and
60    Asterisk 11.0.0 respectively. The VM_INFO() dialplan function is the
61    supported mechanism to query the status of a given mailbox.
62
63 ------------------------------------------------------------------------------
64 --- Functionality changes from Asterisk 17.0.0 to Asterisk 18.0.0 ------------
65 ------------------------------------------------------------------------------
66
67 AMI
68 ------------------
69  * The AMI Originate action, which optionally takes a dialplan application as
70    an argument, no longer accepts "Originate" as the application due to
71    security concerns.
72
73 ARI
74 ------------------
75  * The "TextMessageReceived" event used to include a list of "TextMessageVariable"
76    objects as part of its output. Due to a couple of bugs in Asterisk a list of
77    received variables was never included even if ones were available. However,
78    variables set to send would be (which they should have not been), but would
79    fail validation due to the bad formatting.
80
81    So basically there was no way to get a "TextMessageReceived" event with
82    variables. Due to this the API has changed. The "TextMessageVariable" object
83    no longer exists. "TextMessageReceived" now returns a JSON object of key/value
84    pairs. So for instance instead of a list of "TextMessageVariable" objects:
85
86    [ TextMessageVariable, TextMessageVariable, TextMessageVariable]
87
88    where a TextMessageVariable was supposed to be:
89
90    { "key": "<var name>", "value":, "<var value>" }
91
92    The output is now just:
93
94    { "<var name>": "<var value>" }
95
96    This aligns more with how variables are specified when sending a message, as
97    well as other variable lists in ARI.
98
99 Core
100 ------------------
101  * The streams API function ast_stream_get_formats is
102    now defined as returning the format capabilities const.
103    This has always been the case but was never enforced
104    through the API itself. Any consumer of this API that
105    is not treating the formats as immutable should update
106    their code to create a new format capabilities and set
107    it on the stream instead.
108
109 res_stasis
110 ------------------
111  * The "TextMessageReceived" event used to include a list of "TextMessageVariable"
112    objects as part of its output. Due to a couple of bugs in Asterisk a list of
113    received variables was never included even if ones were available. However,
114    variables set to send would be (which they should have not been), but would
115    fail validation due to the bad formatting.
116
117    So basically there was no way to get a "TextMessageReceived" event with
118    variables. Due to this the API has changed. The "TextMessageVariable" object
119    no longer exists. "TextMessageReceived" now returns a JSON object of key/value
120    pairs. So for instance instead of a list of "TextMessageVariable" objects:
121
122    [ TextMessageVariable, TextMessageVariable, TextMessageVariable]
123
124    where a TextMessageVariable was supposed to be:
125
126    { "key": "<var name>", "value":, "<var value>" }
127
128    The output is now just:
129
130    { "<var name>": "<var value>" }
131
132    This aligns more with how variables are specified when sending a message, as
133    well as other variable lists in ARI.
134
135 res_stir_shaken
136 ------------------
137  * A new directory has been added under the default (e.g., /var/lib/asterisk) -
138    inside the 'keys' directory - named 'stir_shaken'. This directory will
139    hold public keys that have been downloaded for STIR/SHAKEN verification.
140
141 ------------------------------------------------------------------------------
142 --- New functionality introduced in Asterisk 17.0.0 --------------------------
143 ------------------------------------------------------------------------------
144
145 Applications
146 ------------------
147  * The JabberStatus application, deprecated in Asterisk 12, has been removed.
148
149 Bridging
150 ------------------
151  * The bridging core no longer uses the stasis cache for bridge
152    snapshots.  The latest bridge snapshot is now stored on the
153    ast_bridge structure itself.
154
155    The following APIs are no longer available since the stasis cache
156    is no longer used:
157      ast_bridge_topic_cached()
158      ast_bridge_topic_all_cached()
159
160    A topic pool is now used for individual bridge topics.
161
162    The ast_bridge_cache() function was removed since there's no
163    longer a separate container of snapshots.
164
165    A new function "ast_bridges()" was created to retrieve the
166    container of all bridges.  Users formerly calling
167    ast_bridge_cache() can use the new function to iterate over
168    bridges and retrieve the latest snapshot directly from the
169    bridge.
170
171    The ast_bridge_snapshot_get_latest() function was renamed to
172    ast_bridge_get_snapshot_by_uniqueid().
173
174    A new function "ast_bridge_get_snapshot()" was created to retrieve
175    the bridge snapshot directly from the bridge structure.
176
177    The ast_bridge_topic_all() function now returns a normal topic
178    not a cached one so you can't use stasis cache functions on it
179    either.
180
181    The ast_bridge_snapshot_type() stasis message now has the
182    ast_bridge_snapshot_update structure as it's data.  It contains
183    the last snapshot and the new one.
184
185 Build
186 ------------------
187  * Asterisk headers are no longer installed and uninstalled automatically when
188    performing a "make install" or a "make uninstall".  To install/uninstall the
189    headers, use "make install-headers" and "make uninstall-headers".  The headers
190    also continue to be uninstalled when performing a "make uninstall-all".
191
192 Channels
193 ------------------
194  * The core no longer uses the stasis cache for channels snapshots.
195    The following APIs are no longer available:
196        ast_channel_topic_cached()
197        ast_channel_topic_all_cached()
198    The ast_channel_cache_all() and ast_channel_cache_by_name() functions
199    now returns an ao2_container of ast_channel_snapshots rather than a
200    container of stasis_messages therefore you can't call stasis_cache
201    functions on it.
202    The ast_channel_topic_all() function now returns a normal topic,
203    not a cached one so you can't use stasis cache functions on it either.
204    The ast_channel_snapshot_type() stasis message now has the
205    ast_channel_snapshot_update structure as it's data.
206    ast_channel_snapshot_get_latest() still returns the latest snapshot.
207
208 chan_sip
209 ------------------
210  * The chan_sip module is now deprecated, users should migrate to the
211    replacement module chan_pjsip.  See guides at the Asterisk Wiki:
212      https://wiki.asterisk.org/wiki/x/tAHOAQ
213      https://wiki.asterisk.org/wiki/x/hYCLAQ
214
215 func_callerid
216 ------------------
217  * The CALLERPRES() dialplan function, deprecated in Asterisk 1.8, has been
218    removed.
219
220 res_parking
221 ------------------
222  * The PARKINGSLOT channel variable, deprecated in Asterisk 12 in favor of the
223    PARKING_SPACE channel variable, will no longer be set.
224
225 res_xmpp
226 ------------------
227  * The JabberStatus application, deprecated in Asterisk 12, has been removed.
228
229 ------------------------------------------------------------------------------
230 --- Functionality changes from Asterisk 16.0.0 to Asterisk 17.0.0 ------------
231 ------------------------------------------------------------------------------
232
233 Core
234 ------------------
235  * res_pjsip_pubsub is now required so call transfer progress can be monitored
236    and reported in the channel variable TRANSFERSTATUS.
237
238 app_voicemail.c
239 ------------------
240  * The "Voicemail Build Options" section of menuselect has been removed along with
241    the FILE_STORAGE, ODBC_STORAGE and IMAP_STORAGE menuselect options.  All 3 variants
242    of the voicemail app can now be built at the same by enabling app_voicemail,
243    app_voicemail_imap, and app_voicemail_odbc under the "Applications" section.
244    By default, only app_voicemail is enabled.  Also, the modules.conf sample has
245    been updated to "noload" app_voicemail_imap and app_voicemail_odbc should they
246    all be built.  Packagers must update their build scripts appropriately.
247
248 chan_pjsip
249 ------------------
250  * res_pjsip_pubsub is now required so call transfer progress can be monitored
251    and reported in the channel variable TRANSFERSTATUS.
252
253 New in 16.0.0:
254
255 app_fax:
256  - The app_fax module is now deprecated, users should migrate to the
257    replacement module res_fax.
258
259 app_macro:
260  - The app_macro module is now deprecated and by default it is no longer
261    built.  Users should migrate to app_stack (Gosub).  A warning is logged
262    the first time any Macro is used.
263
264 AMI:
265  - The ContactStatus and Status fields for the manager events ContactStatus
266    and ContactStatusDetail are now set to "NonQualified" when a contact exists
267    but has not been qualified.
268  - The ContactStatus event will no longer be sent by PJSIP when a device
269    refreshes its registration.
270  - The "Newexten" event is now part of the "dialplan" class. The documentation
271    for Asterisk 15 already specified this, but the implementation was actually
272    using the "call" class instead.
273
274 ARI:
275  - The ContactInfo event's contact_status field is now set to "NonQualified"
276    when a contact exists but has not been qualified.
277
278 Build System:
279  - MALLOC_DEBUG no longer has an effect on Asterisk's ABI.  Asterisk built
280    with MALLOC_DEBUG can now successfully load binary modules built without
281    MALLOC_DEBUG and vice versa.  Third-party pre-compiled modules no longer
282    need to have a special build with it enabled.
283
284  - Asterisk now depends on libjansson >= 2.11.  If this version is not
285    available on your distro you can use `./configure --with-jansson-bundled`.
286
287 chan_dahdi:
288  - Timeouts for reading digits from analog phones are now configurable in
289    chan_dahdi.conf: firstdigit_timeout, interdigit_timeout, matchdigit_timeout.
290
291 cdr_syslog:
292  - The cdr_syslog module is now deprecated and by default it is no longer
293    built.
294
295 res_config_sqlite:
296  - The res_config_sqlite module is now deprecated, users should migrate to the
297    replacement module res_config_sqlite3.
298
299 res_monitor:
300  - The res_monitor module is now deprecated, users should migrate to the
301    replacement module app_mixmonitor.
302
303 Core:
304  - libedit is no longer available as an embedded library and must be provided
305    by the system.
306  - The module loader now enforces inter-module dependencies.  This ensures that
307    a module is not started before another it depends on, even if preload is used.
308    If a dependency is not available or fails to startup this will block any
309    dependants from startup.
310  - Parts of the Asterisk core which can load configuration from realtime are now
311    built-in modules.  It is no longer necessary to preload realtime drivers as
312    they are always initialized before the built-in modules.
313
314 From 15.2.0 to 15.3.0:
315
316 res_pjsip
317 ------------------
318  * Users who are matching endpoints by SIP header need to reevaluate their
319    global "endpoint_identifier_order" option in light of the "ip" endpoint
320    identifier method split into the "ip" and "header" endpoint identifier
321    methods.
322
323 res_pjsip_endpoint_identifier_ip
324 ------------------
325  * The endpoint identifier "ip" method previously recognized endpoints either
326    by IP address or a matching SIP header.  The "ip" endpoint identifier method
327    is now split into the "ip" and "header" endpoint identifier methods.  The
328    "ip" endpoint identifier method only matches by IP address and the "header"
329    endpoint identifier method only matches by SIP header.  The split allows the
330    user to control the relative priority of the IP address and the SIP header
331    identification methods in the global "endpoint_identifier_order" option.
332    e.g., If you have two type=identify sections where one matches by IP address
333    for endpoint alice and the other matches by SIP header for endpoint bob then
334    you can now predict which endpoint is matched when a request comes in that
335    matches both.
336
337 New in 15.0.0:
338
339 Build System:
340  - '--with-pjproject-bundled' is now the default when running ./configure
341    It can be disabled with '--without-pjproject-bundled'.
342
343 Core:
344  - Multi-stream support has been added so a channel can have multiple
345    streams of the same type such as audio and video.
346
347  - The 'Data Retrieval API' has been removed. This API was not actively
348    maintained, was not added to new modules (such as res_pjsip), and there
349    exist better alternatives to acquire the same information, such as the
350    ARI. As a result, the 'DataGet' AMI action as well as the 'data get'
351    CLI command have been removed.
352
353 From 14.6.0 to 14.7.0:
354
355 Core:
356  - ast_app_parse_timelen now returns an error if it encounters extra characters
357    at the end of the string to be parsed.
358
359 From 14.4.0 to 14.5.0:
360
361 Core:
362  - Support for embedded modules has been removed.  This has not worked in
363    many years.  LOADABLE_MODULES menuselect option is also removed as
364    loadable module support is now always enabled.
365
366 From 14.3.0 to 14.4.0:
367
368 res_rtp_asterisk:
369  - The RTP layer of Asterisk now has support for RFC 5761: "Multiplexing RTP
370    Data and Control Packets on a Single Port." For the PJSIP channel driver,
371    chan_pjsip, you can set "rtcp_mux = yes" on a PJSIP endpoint in pjsip.conf
372    to enable the feature. For chan_sip you can set "rtcp_mux = yes" either
373    globally or on a per-peer basis in sip.conf.
374
375 New in 14.0.0
376
377 ARI:
378  - The policy for when to send "Dial" events has changed. Previously, "Dial"
379    events were sent on the calling channel's topic. However, starting in Asterisk
380    14, if there is no calling channel on which to send the event, the event is
381    instead sent on the called channel's topic. Note that for the ARI channels
382    resource's dial operation, this means that the "Dial" events will always be
383    sent on the called channel's topic.
384
385 Channel Drivers:
386
387 chan_dahdi:
388  - For users using the FXO port (FXS signaling) distinctive ring detection
389    feature, you will need to adjust the dringX count values.  The count
390    values now only record ring end events instead of any DAHDI event.  A
391    ring-ring-ring pattern would exceed the pattern limits and stop
392    Caller-ID detection.
393
394 chan_sip:
395  - The SIP dial string has been extended past the [!dnid] option by another
396    exclamation mark: [!dnid[!fromuri].  An exclamation mark in the To-URI
397    will now mean changes to the From-URI.
398
399 Core:
400  - The REF_DEBUG compiler flag is now used to enable refdebug by default.
401    The setting can be overridden in asterisk.conf by setting refdebug in
402    the options category.  No recompile is required to enable/disable it.
403
404  - Modified processing of command-line options to first parse only what
405    is necessary to read asterisk.conf. Once asterisk.conf is fully loaded,
406    the remaining options are processed.  The -X option now applies to
407    asterisk.conf only.  To enable #exec for other config files you must
408    set execincludes=yes in asterisk.conf.  Any other option set on the
409    command-line will now override the equivalent setting from asterisk.conf.
410
411 AMI:
412  - The 'ModuleCheck' Action's Version key will no longer show the module
413    version. The value will always be blank.
414
415 CLI:
416  - The 'core show file version' command has been removed. When Asterisk
417    moved to Git, the source control version support was removed. As a
418    result, the CLi command was no longer useful and was removed as well.
419
420 Logging:
421  - The first callid created is now 1 instead of 0.  The value 0
422    is now reserved to represent a lack of callid.
423
424 AMI:
425  - The Command action now sends the output from the CLI command as a series
426    of Output headers for each line instead of as a block of text with the
427    --END COMMAND-- delimiter to match the output from other actions.
428
429    Commands that fail to execute (no such command, invalid syntax etc.) now
430    return an Error response instead of Success.
431
432 app_amd:
433  - The 'maximum_number_of_words' configuration option and parameter to the AMD
434    application previously did not match the documented functionality + variable
435    name.  In Asterisk 13, a value of '3' would mean that if '3' words were detected,
436    the result would be detection as a 'MACHINE'.  As of this version, the value
437    reflects the maximum words that if EXCEEDED (rather than reached), would
438    result in detection as a machine.  This means that you should update this
439    value to be one higher than your previos value, if your previous value
440    was working well for you.
441
442 From 12 to 13:
443
444 General Asterisk Changes:
445  - The asterisk command line -I option and the asterisk.conf internal_timing
446    option are removed and always enabled if any timing module is loaded.
447
448  - The per console verbose level feature as previously implemented caused a
449    large performance penalty.  The fix required some minor incompatibilities
450    if the new rasterisk is used to connect to an earlier version.  If the new
451    rasterisk connects to an older Asterisk version then the root console verbose
452    level is always affected by the "core set verbose" command of the remote
453    console even though it may appear to only affect the current console.  If
454    an older version of rasterisk connects to the new version then the
455    "core set verbose" command will have no effect.
456
457  - The asterisk compatibility options in asterisk.conf have been removed.
458    These options enabled certain backwards compatibility features for
459    pbx_realtime, res_agi, and app_set that made their behaviour similar to
460    Asterisk 1.4. Users who used these backwards compatibility settings should
461    update their dialplans to use ',' instead of '|' as a delimiter, and should
462    use the Set dialplan application instead of the MSet dialplan application.
463
464 Build System:
465  - Sample config files have been moved from configs/ to a subfolder of that
466    directory, 'samples'.
467
468  - The menuselect utility has been pulled into the Asterisk repository. As a
469    result, the libxml2 development library is now a required dependency for
470    Asterisk.
471
472  - Added a new Compiler Flag, REF_DEBUG. When enabled, reference counted
473    objects will emit additional debug information to the refs log file located
474    in the standard Asterisk log file directory. This log file is useful in
475    tracking down object leaks and other reference counting issues. Prior to
476    this version, this option was only available by modifying the source code
477    directly. This change also includes a new script, refcounter.py, in the
478    contrib folder that will process the refs log file.
479
480 Applications:
481
482 ConfBridge:
483  - The sound_place_into_conference sound used in Confbridge is now deprecated
484    and is no longer functional since it has been broken since its inception
485    and the fix involved using a different method to achieve the same goal. The
486    new method to achieve this functionality is by using sound_begin to play
487    a sound to the conference when waitmarked users are moved into the conference.
488
489  - Added 'Admin' header to ConfbridgeJoin, ConfbridgeLeave, ConfbridgeMute,
490    ConfbridgeUnmute, and ConfbridgeTalking AMI events.
491
492 ControlPlayback:
493  - The ControlPlayback and 'control stream file' AGI command will no longer
494    implicitly answer the channel. If you do not answer the channel prior to
495    using either this application or AGI command, you must send Progress
496    first.
497
498 Queue:
499  - Queue rules provided in queuerules.conf can no longer be named "general".
500
501 SetMusicOnHold:
502  - The SetMusicOnHold dialplan application was deprecated and has been removed.
503    Users of the application should use the CHANNEL function's musicclass
504    setting instead.
505
506 WaitMusicOnHold:
507  - The WaitMusicOnHold dialplan application was deprecated and has been
508    removed. Users of the application should use MusicOnHold with a duration
509    parameter instead.
510
511 CDR Backends:
512  - The cdr_sqlite module was deprecated and has been removed. Users of this
513    module should use the cdr_sqlite3_custom module instead.
514
515 Channel Drivers:
516
517 chan_dahdi:
518  - SS7 support now requires libss7 v2.0 or later.
519
520  - Added the inband_on_setup_ack compatibility option to chan_dahdi.conf to
521    deal with switches that don't send an inband progress indication in the
522    SETUP ACKNOWLEDGE message.
523    Default is now no.
524
525 chan_gtalk
526  - This module was deprecated and has been removed. Users of chan_gtalk
527    should use chan_motif.
528
529 chan_h323
530  - This module was deprecated and has been removed. Users of chan_h323
531    should use chan_ooh323.
532
533 chan_jingle
534  - This module was deprecated and has been removed. Users of chan_jingle
535    should use chan_motif.
536
537 chan_pjsip:
538  - Added a 'force_avp' option to chan_pjsip which will force the usage of
539    'RTP/AVP', 'RTP/AVPF', 'RTP/SAVP', or 'RTP/SAVPF' as the media transport type
540    in SDP offers depending on settings, even when DTLS is used for media
541    encryption.
542
543  - Added a 'media_use_received_transport' option to chan_pjsip which will
544    cause the SDP answer to use the media transport as received in the SDP
545    offer.
546
547 chan_sip:
548  - Made set SIPREFERREDBYHDR as inheritable for better chan_pjsip
549    interoperability.
550
551  - The SIPPEER dialplan function no longer supports using a colon as a
552    delimiter for parameters. The parameters for the function should be
553    delimited using a comma.
554
555  - The SIPCHANINFO dialplan function was deprecated and has been removed. Users
556    of the function should use the CHANNEL function instead.
557
558  - Added a 'force_avp' option for chan_sip. When enabled this option will
559    cause the media transport in the offer or answer SDP to be 'RTP/AVP',
560    'RTP/AVPF', 'RTP/SAVP', or 'RTP/SAVPF' even if a DTLS stream has been
561    configured. This option can be set to improve interoperability with WebRTC
562    clients that don't use the RFC defined transport for DTLS.
563
564  - The 'dtlsverify' option in chan_sip now has additional values besides
565    'yes' and 'no'. If 'yes' is specified both the certificate and fingerprint
566    will be verified. If 'no' is specified then neither the certificate or
567    fingerprint is verified. If 'certificate' is specified then only the
568    certificate is verified. If 'fingerprint' is specified then only the
569    fingerprint is verified.
570
571  - A 'dtlsfingerprint' option has been added to chan_sip which allows the
572    hash to be specified for the DTLS fingerprint placed in SDP. Supported
573    values are 'sha-1' and 'sha-256' with 'sha-256' being the default.
574
575  - The 'progressinband=never' option is now more zealous in the persecution of
576    progress messages coming from Asterisk. Channels bridged with a SIP channel
577    that has 'progressinband=never' set will not be able to forward their
578    progress indications through to the SIP device. chan_sip will now turn such
579    progress indications into a 180 Ringing (if a 180 has not yet been
580    transmitted) if 'progressinband=never'.
581
582   - The codec preference order in an SDP during an offer is slightly different
583     than previous releases. Prior to Asterisk 13, the preference order of
584     codecs used to be:
585     (1) Our preferred codec
586     (2) Our configured codecs
587     (3) Any non-audio joint codecs
588
589     One of the ways the new media format architecture in Asterisk 13 improves
590     performance is by reference counting formats, such that they can be reused
591     in many places without additional allocation. To not require a large
592     amount of locking, an instance of a format is immutable by convention.
593     This works well except for formats with attributes. Since a media format
594     with an attribute is a different object than the same format without an
595     attribute, we have to carry over the formats with attributes from an
596     inbound offer so that the correct attributes are offered in an outgoing
597     INVITE request. This requires some subtle tweaks to the preference order
598     to ensure that the media format with attributes is offered to a remote
599     peer, as opposed to the same media format (but without attributes) that
600     may be stored in the peer object.
601
602     All of this means that our offer offer list will now be:
603     (1) Our preferred codec
604     (2) Any joint codecs offered by the inbound offer
605     (3) All other codecs that are not the preferred codec and not a joint
606         codec offered by the inbound offer
607
608 chan_unistim:
609  - The unistim.conf 'dateformat' has changed meaning of options values to conform
610    values used inside Unistim protocol
611
612  - Added 'dtmf_duration' option with changing default operation to disable
613    receivied dtmf playback on unistim phone
614
615 Core:
616
617 Account Codes:
618  - accountcode behavior changed somewhat to add functional peeraccount
619    support.  The main change is that local channels now cross accountcode
620    and peeraccount across the special bridge between the ;1 and ;2 channels
621    just like channels between normal bridges.  See the CHANGES file for
622    more information.
623
624 ARI:
625  - The ARI version has been changed to 1.5.0. This is to reflect backwards
626    compatible changes made since 12.0.0 was released.
627
628  - Added a new ARI resource 'mailboxes' which allows the creation and
629    modification of mailboxes managed by external MWI. Modules res_mwi_external
630    and res_stasis_mailbox must be enabled to use this resource.
631
632  - Added new events for externally initiated transfers. The event
633    BridgeBlindTransfer is now raised when a channel initiates a blind transfer
634    of a bridge in the ARI controlled application to the dialplan; the
635    BridgeAttendedTransfer event is raised when a channel initiates an
636    attended transfer of a bridge in the ARI controlled application to the
637    dialplan.
638
639  - Channel variables may now be specified as a body parameter to the
640    POST /channels operation. The 'variables' key in the JSON is interpreted
641    as a sequence of key/value pairs that will be added to the created channel
642    as channel variables. Other parameters in the JSON body are treated as
643    query parameters of the same name.
644
645  - A bug fix in bridge creation has caused a behavioural change in how
646    subscriptions are created for bridges. A bridge created through ARI, does
647    not, by itself, have a subscription created for any particular Stasis
648    application. When a channel in a Stasis application joins a bridge, an
649    implicit event subscription is created for that bridge as well. Previously,
650    when a channel left such a bridge, the subscription was leaked; this allowed
651    for later bridge events to continue to be pushed to the subscribed
652    applications. That leak has been fixed; as a result, bridge events that were
653    delivered after a channel left the bridge are no longer delivered. An
654    application must subscribe to a bridge through the applications resource if
655    it wishes to receive all events related to a bridge.
656
657 AMI:
658  - The AMI version has been changed to 2.5.0. This is to reflect backwards
659    compatible changes made since 12.0.0 was released.
660
661  - The DialStatus field in the DialEnd event can now have additional values.
662    This includes ABORT, CONTINUE, and GOTO.
663
664  - The res_mwi_external_ami module can, if loaded, provide additional AMI
665    actions and events that convey MWI state within Asterisk. This includes
666    the MWIGet, MWIUpdate, and MWIDelete actions, as well as the MWIGet and
667    MWIGetComplete events that occur in response to an MWIGet action.
668
669  - AMI now contains a new class authorization, 'security'. This is used with
670    the following new events: FailedACL, InvalidAccountID, SessionLimit,
671    MemoryLimit, LoadAverageLimit, RequestNotAllowed, AuthMethodNotAllowed,
672    RequestBadFormat, SuccessfulAuth, UnexpectedAddress, ChallengeResponseFailed,
673    InvalidPassword, ChallengeSent, and InvalidTransport.
674
675  - Bridge related events now have two additional fields: BridgeName and
676    BridgeCreator. BridgeName is a descriptive name for the bridge;
677    BridgeCreator is the name of the entity that created the bridge. This
678    affects the following events: ConfbridgeStart, ConfbridgeEnd,
679    ConfbridgeJoin, ConfbridgeLeave, ConfbridgeRecord, ConfbridgeStopRecord,
680    ConfbridgeMute, ConfbridgeUnmute, ConfbridgeTalking, BlindTransfer,
681    AttendedTransfer, BridgeCreate, BridgeDestroy, BridgeEnter, BridgeLeave
682
683  - MixMonitor AMI actions now require users to have authorization classes.
684    * MixMonitor - system
685    * MixMonitorMute - call or system
686    * StopMixMonitor - call or system
687
688  - Removed the undocumented manager.conf block-sockets option.  It interferes with
689    TCP/TLS inactivity timeouts.
690
691  - The response to the PresenceState AMI action has historically contained two
692    Message keys. The first of these is used as an informative message regarding
693    the success/failure of the action; the second contains a Presence state
694    specific message. Having two keys with the same unique name in an AMI
695    message is cumbersome for some client; hence, the Presence specific Message
696    has been deprecated. The message will now contain a PresenceMessage key
697    for the presence specific information; the Message key containing presence
698    information will be removed in the next major version of AMI.
699
700  - The manager.conf 'eventfilter' now takes an "extended" regular expression
701    instead of a "basic" one.
702
703 CDRs:
704  - The "endbeforehexten" setting now defaults to "yes", instead of "no".
705    When set to "no", yhis setting will cause a new CDR to be generated when a
706    channel enters into hangup logic (either the 'h' extension or a hangup
707    handler subroutine). In general, this is not the preferred default: this
708    causes extra CDRs to be generated for a channel in many common dialplans.
709
710 CLI commands:
711  - "core show settings" now lists the current console verbosity in addition
712    to the root console verbosity.
713
714  - "core set verbose" has not been able to support the by module verbose
715    logging levels since verbose logging levels were made per console.  That
716    syntax is now removed and a silence option added in its place.
717
718 Logging:
719  - The 'verbose' setting in logger.conf still takes an optional argument,
720    specifying the verbosity level for each logging destination.  However,
721    the default is now to once again follow the current root console level.
722    As a result, using the AMI Command action with "core set verbose" could
723    again set the root console verbose level and affect the verbose level
724    logged.
725
726 HTTP:
727  - Added http.conf session_inactivity timer option to close HTTP connections
728    that aren't doing anything.
729
730  - Added support for persistent HTTP connections.  To enable persistent
731    HTTP connections configure the keep alive time between HTTP requests.  The
732    keep alive time between HTTP requests is configured in http.conf with the
733    session_keep_alive parameter.
734
735 Realtime Configuration:
736  - WARNING: The database migration script that adds the 'extensions' table for
737    realtime had to be modified due to an error when installing for MySQL.  The
738    'extensions' table's 'id' column was changed to be a primary key.  This could
739    potentially cause a migration problem.  If so, it may be necessary to
740    manually alter the affected table/column to bring it back in line with the
741    migration scripts.
742
743  - New columns have been added to realtime tables for 'support_path' on
744    ps_registrations and ps_aors and for 'path' on ps_contacts for the new
745    SIP Path support in chan_pjsip.
746
747  - The following new tables have been added for pjsip realtime: 'ps_systems',
748    'ps_globals', 'ps_tranports', 'ps_registrations'.
749
750  - The following columns were added to the 'ps_aors' realtime table:
751    'maximum_expiration', 'outbound_proxy', and 'support_path'.
752
753  - The following columns were added to the 'ps_contacts' realtime table:
754    'outbound_proxy', 'user_agent', and 'path'.
755
756  - New columns have been added to the ps_endpoints realtime table for the
757    'media_address', 'redirect_method' and 'set_var' options.  Also the
758    'mwi_fromuser' column was renamed to 'mwi_from_user'. A new column
759    'message_context' was added to let users configure how MESSAGE requests are
760    routed to the dialplan.
761
762  - A new column was added to the 'ps_globals' realtime table for the 'debug'
763    option.
764
765  - PJSIP endpoint columns 'tos_audio' and 'tos_video' have been changed from
766    yes/no enumerators to string values. 'cos_audio' and 'cos_video' have been
767    changed from yes/no enumerators to integer values. PJSIP transport column
768    'tos' has been changed from a yes/no enumerator to a string value. 'cos' has
769    been changed from a yes/no enumerator to an integer value.
770
771  - The 'queues' and 'queue_members' realtime tables have been added to the
772    config Alembic scripts.
773
774  - A new set of Alembic scripts has been added for CDR tables. This will create
775    a 'cdr' table with the default schema that Asterisk expects.
776
777  - A new upgrade script has been added that adds a 'queue_rules' table for
778    app_queue. Users of app_queue can store queue rules in a database. It is
779    important to note that app_queue only looks for this table on module load or
780    module reload; for more information, see the CHANGES file.
781
782 Resources:
783
784 res_odbc:
785 - The compatibility setting, allow_empty_string_in_nontext, has been removed.
786   Empty column values will be stored as empty strings during realtime updates.
787
788 res_jabber:
789  - This module was deprecated and has been removed. Users of this module should
790    use res_xmpp instead.
791
792 res_http_websocket:
793  - Added a compatibility option to ari.conf, sip.conf, and pjsip.conf
794    'websocket_write_timeout'. When a websocket connection exists where Asterisk
795    writes a substantial amount of data to the connected client, and the connected
796    client is slow to process the received data, the socket may be disconnected.
797    In such cases, it may be necessary to adjust this value.
798    Default is 100 ms.
799 Scripts:
800
801 safe_asterisk:
802  - The safe_asterisk script was previously not installed on top of an existing
803    version. This caused bug-fixes in that script not to be deployed. If your
804    safe_asterisk script is customized, be sure to keep your changes. Custom
805    values for variables should be created in *.sh file(s) inside
806    ASTETCDIR/startup.d/. See ASTERISK-21965.
807
808  - Changed a log message in safe_asterisk and the $NOTIFY mail subject. If
809    you use tools to parse either of them, update your parse functions
810    accordingly. The changed strings are:
811    - "Exited on signal $EXITSIGNAL" => "Asterisk exited on signal $EXITSIGNAL."
812    - "Asterisk Died" => "Asterisk on $MACHINE died (sig $EXITSIGNAL)"
813
814 Utilities:
815  - The refcounter program has been removed in favor of the refcounter.py script
816    in contrib/scripts.
817
818 From 11 to 12:
819
820 There are many significant architectural changes in Asterisk 12. It is
821 recommended that you not only read through this document for important
822 changes that affect an upgrade, but that you also read through the CHANGES
823 document in depth to better understand the new options available to you.
824
825 Additional information on the architectural changes made in Asterisk can be
826 found on the Asterisk wiki (https://wiki.asterisk.org)
827
828 Of particular note, the following systems in Asterisk underwent significant
829 changes. Documentation for the changes and a specification for their
830 behavior in Asterisk 12 is also available on the Asterisk wiki.
831  - AMI: Many events were changed, and the semantics of channels and bridges
832         were defined. In particular, how channels and bridges behave under
833         transfer scenarios and situations involving multiple parties has
834         changed significantly. See https://wiki.asterisk.org/wiki/x/dAFRAQ
835         for more information.
836  - CDR: CDR logic was extracted from the many locations it existed in across
837         Asterisk and implemented as a consumer of Stasis message bus events.
838         As a result, consistency of records has improved significantly and the
839         behavior of CDRs in transfer scenarios has been defined in the CDR
840         specification. However, significant behavioral changes in CDRs resulted
841         from the transition. The most significant change is the addition of
842         CDR entries when a channel who is the Party A in a CDR leaves a bridge.
843         See https://wiki.asterisk.org/wiki/x/pwpRAQ for more information.
844  - CEL: Much like CDRs, CEL was removed from the many locations it existed in
845         across Asterisk and implemented as a consumer of Stasis message bus
846         events. It now closely follows the Bridging API model of channels and
847         bridges, and has a much closer consistency of conveyed events as AMI.
848         For the changes in events, see https://wiki.asterisk.org/wiki/x/4ICLAQ.
849
850 Build System:
851  - Removed the CHANNEL_TRACE development mode build option. Certain aspects of
852    the CHANNEL_TRACE build option were incompatible with the new bridging
853    architecture.
854
855  - Asterisk now depends on libjansson, libuuid and optionally (but recommended)
856    libxslt and uriparser.
857
858  - The new SIP stack and channel driver uses a particular version of PJSIP.
859    Please see https://wiki.asterisk.org/wiki/x/J4GLAQ for more information on
860    configuring and installing PJSIP for use with Asterisk.
861
862 AgentLogin and chan_agent:
863  - Along with AgentRequest, this application has been modified to be a
864    replacement for chan_agent. The chan_agent module and the Agent channel
865    driver have been removed from Asterisk, as the concept of a channel driver
866    proxying in front of another channel driver was incompatible with the new
867    architecture (and has had numerous problems through past versions of
868    Asterisk). The act of a channel calling the AgentLogin application places the
869    channel into a pool of agents that can be requested by the AgentRequest
870    application. Note that this application, as well as all other agent related
871    functionality, is now provided by the app_agent_pool module.
872
873  - This application no longer performs agent authentication. If authentication
874    is desired, the dialplan needs to perform this function using the
875    Authenticate or VMAuthenticate application or through an AGI script before
876    running AgentLogin.
877
878  - The agents.conf schema has changed. Rather than specifying agents on a
879    single line in comma delineated fashion, each agent is defined in a separate
880    context. This allows agents to use the power of context templates in their
881    definition.
882
883  - A number of parameters from agents.conf have been removed. This includes
884    maxloginretries, autologoffunavail, updatecdr, goodbye, group, recordformat,
885    urlprefix, and savecallsin. These options were obsoleted by the move from
886    a channel driver model to the bridging/application model provided by
887    app_agent_pool.
888
889  - The AGENTUPDATECDR channel variable has also been removed, for the same
890    reason as the updatecdr option.
891
892  - The endcall and enddtmf configuration options are removed.  Use the
893    dialplan function CHANNEL(dtmf_features) to set DTMF features on the agent
894    channel before calling AgentLogin.
895
896 AgentMonitorOutgoing
897  - This application has been removed. It was a holdover from when
898    AgentCallbackLogin was removed.
899
900 Answer
901  - It is no longer possible to bypass updating the CDR when answering a
902    channel. CDRs are based on the channel state and will be updated when
903    the channel is Answered.
904
905 ControlPlayback
906  - The channel variable CPLAYBACKSTATUS may now return the value
907    'REMOTESTOPPED' when playback is stopped by an external entity.
908
909 DISA
910  - This application now has a dependency on the app_cdr module. It uses this
911    module to hide the CDR created prior to execution of the DISA application.
912
913 DumpChan:
914  - The output of DumpChan no longer includes the DirectBridge or IndirectBridge
915    fields. Instead, if a channel is in a bridge, it includes a BridgeID field
916    containing the unique ID of the bridge that the channel happens to be in.
917
918 ForkCDR:
919  - Nearly every parameter in ForkCDR has been updated and changed to reflect
920    the changes in CDRs. Please see the documentation for the ForkCDR
921    application, as well as the CDR specification on the Asterisk wiki.
922
923 NoCDR:
924  - The NoCDR application has been deprecated. Please use the CDR_PROP function
925    to disable CDRs on a channel.
926
927 ParkAndAnnounce:
928  - The app_parkandannounce module has been removed. The application
929    ParkAndAnnounce is now provided by the res_parking module. See the
930    Parking changes for more information.
931
932 ResetCDR:
933  - The 'w' and 'a' options have been removed. Dispatching CDRs to registered
934    backends occurs on an as-needed basis in order to preserve linkedid
935    propagation and other needed behavior.
936  - The 'e' option is deprecated. Please use the CDR_PROP function to enable
937    CDRs on a channel that they were previously disabled on.
938  - The ResetCDR application is no longer a part of core Asterisk, and instead
939    is now delivered as part of app_cdr.
940
941 Queues:
942  - Queue strategy rrmemory now has a predictable order similar to strategy
943    rrordered. Members will be called in the order that they are added to the
944    queue.
945
946  - Removed the queues.conf check_state_unknown option.  It is no longer
947    necessary.
948
949  - It is now possible to play the Queue prompts to the first user waiting in a
950    call queue. Note that this may impact the ability for agents to talk with
951    users, as a prompt may still be playing when an agent connects to the user.
952    This ability is disabled by default but can be enabled on an individual
953    queue using the 'announce-to-first-user' option.
954
955  - The configuration options eventwhencalled and eventmemberstatus have been
956    removed.  As a result, the AMI events QueueMemberStatus, AgentCalled,
957    AgentConnect, AgentComplete, AgentDump, and AgentRingNoAnswer will always be
958    sent.  The "Variable" fields will also no longer exist on the Agent* events.
959    These events can be filtered out from a connected AMI client using the
960    eventfilter setting in manager.conf.
961
962  - The queue log now differentiates between blind and attended transfers. A
963    blind transfer will result in a BLINDTRANSFER message with the destination
964    context and extension. An attended transfer will result in an
965    ATTENDEDTRANSFER message. This message will indicate the method by which
966    the attended transfer was completed: "BRIDGE" for a bridge merge, "APP"
967    for running an application on a bridge or channel, or "LINK" for linking
968    two bridges together with local channels. The queue log will also now detect
969    externally initiated blind and attended transfers and record the transfer
970    status accordingly.
971
972  - When performing queue pause/unpause on an interface without specifying an
973    individual queue, the PAUSEALL/UNPAUSEALL event will only be logged if at
974    least one member of any queue exists for that interface.
975
976 SetAMAFlags
977  - This application is deprecated in favor of CHANNEL(amaflags).
978
979 VoiceMail:
980  - Mailboxes defined by app_voicemail MUST be referenced by the rest of the
981    system as mailbox@context.  The rest of the system cannot add @default
982    to mailbox identifiers for app_voicemail that do not specify a context
983    any longer.  It is a mailbox identifier format that should only be
984    interpreted by app_voicemail.
985
986  - The voicemail.conf configuration file now has an 'alias' configuration
987    parameter for use with the Directory application. The voicemail realtime
988    database table schema has also been updated with an 'alias' column. Systems
989    using voicemail with realtime should update their schemas accordingly.
990
991 Channel Drivers:
992  - When a channel driver is configured to enable jiterbuffers, they are now
993    applied unconditionally when a channel joins a bridge. If a jitterbuffer
994    is already set for that channel when it enters, such as by the JITTERBUFFER
995    function, then the existing jitterbuffer will be used and the one set by
996    the channel driver will not be applied.
997
998 chan_bridge
999  - chan_bridge is removed and its functionality is incorporated into ConfBridge
1000    itself.
1001
1002 chan_dahdi:
1003  - Analog port dialing and deferred DTMF dialing for PRI now distinguishes
1004    between 'w' and 'W'.  The 'w' pauses dialing for half a second.  The 'W'
1005    pauses dialing for one second.
1006
1007  - The default for inband_on_proceeding has changed to no.
1008
1009  - The CLI command 'dahdi destroy channel' is now 'dahdi destroy channels'.
1010    A range of channels can be specified to be destroyed. Note that this command
1011    should only be used if you understand the risks it entails.
1012
1013  - The script specified by the chan_dahdi.conf mwimonitornotify option now gets
1014    the exact configured mailbox name.  For app_voicemail mailboxes this is
1015    mailbox@context.
1016
1017  - Added mwi_vm_boxes that also must be configured for ISDN MWI to be enabled.
1018
1019  - ignore_failed_channels now defaults to True: the channel will continue to
1020    be configured even if configuring it has failed. This is generally a
1021    better setup for systems with not more than one DAHDI device or with DAHDI
1022    >= 2.8.0 .
1023
1024 chan_local:
1025  - The /b option has been removed.
1026
1027  - chan_local moved into the system core and is no longer a loadable module.
1028
1029 chan_sip:
1030  - The 'callevents' parameter has been removed. Hold AMI events are now raised
1031    in the core, and can be filtered out using the 'eventfilter' parameter
1032    in manager.conf.
1033
1034  - Dynamic realtime tables for SIP Users can now include a 'path' field. This
1035    will store the path information for that peer when it registers. Realtime
1036    tables can also use the 'supportpath' field to enable Path header support.
1037
1038  - LDAP realtime configurations for SIP Users now have the AstAccountPathSupport
1039    objectIdentifier. This maps to the supportpath option in sip.conf.
1040
1041 Core:
1042  - Masquerades as an operation inside Asterisk have been effectively hidden
1043    by the migration to the Bridging API. As such, many 'quirks' of Asterisk
1044    no longer occur. This includes renaming of channels, "<ZOMBIE>" channels,
1045    dropping of frame/audio hooks, and other internal implementation details
1046    that users had to deal with. This fundamental change has large implications
1047    throughout the changes documented for this version. For more information
1048    about the new core architecture of Asterisk, please see the Asterisk wiki.
1049
1050  - The following channel variables have changed behavior which is described in
1051    the CHANGES file: TRANSFER_CONTEXT, BRIDGEPEER, BRIDGEPVTCALLID,
1052    ATTENDED_TRANSFER_COMPLETE_SOUND, DYNAMIC_FEATURENAME, and DYNAMIC_PEERNAME.
1053
1054 AMI (Asterisk Manager Interface):
1055  - Version 1.4 - The details of what happens to a channel when a masquerade
1056    happens (transfers, parking, etc) have changed.
1057    - The Masquerade event now includes the Uniqueid's of the clone and original
1058      channels.
1059    - Channels no longer swap Uniqueid's as a result of the masquerade.
1060    - Instead of a shell game of renames, there's now a single rename, appending
1061      <ZOMBIE> to the name of the original channel.
1062
1063  - *Major* changes were made to both the syntax as well as the semantics of the
1064    AMI protocol. In particular, AMI events have been substantially modified
1065    and improved in this version of Asterisk. The major event changes are listed
1066    below.
1067    - NewPeerAccount has been removed. NewAccountCode is raised instead.
1068    - Reload events have been consolidated and standardized.
1069    - ModuleLoadReport has been removed.
1070    - FaxSent is now SendFAX; FaxReceived is now ReceiveFAX. This standardizes
1071      app_fax and res_fax events.
1072    - MusicOnHold has been replaced with MusicOnHoldStart and MusicOnHoldStop.
1073    - JabberEvent has been removed.
1074    - Hold is now in the core and will now raise Hold and Unhold events.
1075    - Join is now QueueCallerJoin.
1076    - Leave is now QueueCallerLeave.
1077    - Agentlogin/Agentlogoff is now AgentLogin/AgentLogoff, respectively.
1078    - ChannelUpdate has been removed.
1079    - Local channel optimization is now conveyed via LocalOptimizationBegin and
1080      LocalOptimizationEnd.
1081    - BridgeAction and BridgeExec have been removed.
1082    - BlindTransfer and AttendedTransfer events were added.
1083    - Dial is now DialBegin and DialEnd.
1084    - DTMF is now DTMFBegin and DTMFEnd.
1085    - Bridge has been replaced with BridgeCreate, BridgeEnter, BridgeLeave, and
1086      BridgeDestroy
1087    - MusicOnHold has been replaced with MusicOnHoldStart and MusicOnHoldStop
1088    - AGIExec is now AGIExecStart and AGIExecEnd
1089    - AsyncAGI is now AsyncAGIStart, AsyncAGIExec, and AsyncAGIEnd
1090
1091  - The 'MCID' AMI event now publishes a channel snapshot when available and
1092    its non-channel-snapshot parameters now use either the "MCallerID" or
1093    'MConnectedID' prefixes with Subaddr*, Name*, and Num* suffixes instead
1094    of 'CallerID' and 'ConnectedID' to avoid confusion with similarly named
1095    parameters in the channel snapshot.
1096
1097  - The 'Channel' key used in the 'AlarmClear', 'Alarm', and 'DNDState' has been
1098    renamed "DAHDIChannel" since it does not convey an Asterisk channel name.
1099
1100  - All AMI events now contain a 'SystemName' field, if available.
1101
1102  - Local channel information in events is now prefixed with 'LocalOne' and
1103    'LocalTwo'. This replaces the suffix of '1' and '2' for the two halves of
1104    the Local channel. This affects the 'LocalBridge', 'LocalOptimizationBegin',
1105    and 'LocalOptimizationEnd' events.
1106
1107  - The 'RTCPSent'/'RTCPReceived' events have been significantly modified from
1108    previous versions. They now report all SR/RR packets sent/received, and
1109    have been restructured to better reflect the data sent in a SR/RR. In
1110    particular, the event structure now supports multiple report blocks.
1111
1112  - The deprecated use of | (pipe) as a separator in the channelvars setting in
1113    manager.conf has been removed.
1114
1115  - The SIP SIPqualifypeer action now sends a response indicating it will qualify
1116    a peer once a peer has been found to qualify.  Once the qualify has been
1117    completed it will now issue a SIPqualifypeerdone event.
1118
1119  - The AMI event 'Newexten' field 'Extension' is deprecated, and may be removed
1120    in a future release. Please use the common 'Exten' field instead.
1121
1122  - The AMI events 'ParkedCall', 'ParkedCallTimeOut', 'ParkedCallGiveUp', and
1123    'UnParkedCall' have changed significantly in the new res_parking module.
1124    - The 'Channel' and 'From' headers are gone. For the channel that was parked
1125      or is coming out of parking, a 'Parkee' channel snapshot is issued and it
1126      has a number of fields associated with it. The old 'Channel' header relayed
1127      the same data as the new 'ParkeeChannel' header.
1128    - The 'From' field was ambiguous and changed meaning depending on the event.
1129      for most of these, it was the name of the channel that parked the call
1130      (the 'Parker'). There is no longer a header that provides this channel name,
1131      however the 'ParkerDialString' will contain a dialstring to redial the
1132      device that parked the call.
1133    - On UnParkedCall events, the 'From' header would instead represent the
1134      channel responsible for retrieving the parkee. It receives a channel
1135      snapshot labeled 'Retriever'. The 'from' field is is replaced with
1136      'RetrieverChannel'.
1137    - Lastly, the 'Exten' field has been replaced with 'ParkingSpace'.
1138
1139  - The AMI event 'Parkinglot' (response to 'Parkinglots' command) in a similar
1140    fashion has changed the field names 'StartExten' and 'StopExten' to
1141    'StartSpace' and 'StopSpace' respectively.
1142
1143  - The AMI 'Status' response event to the AMI Status action replaces the
1144    'BridgedChannel' and 'BridgedUniqueid' headers with the 'BridgeID' header to
1145    indicate what bridge the channel is currently in.
1146
1147 CDR (Call Detail Records)
1148  - Significant changes have been made to the behavior of CDRs. The CDR engine
1149    was effectively rewritten and built on the Stasis message bus. For a full
1150    definition of CDR behavior in Asterisk 12, please read the specification
1151    on the Asterisk wiki (wiki.asterisk.org).
1152
1153  - CDRs will now be created between all participants in a bridge. For each
1154    pair of channels in a bridge, a CDR is created to represent the path of
1155    communication between those two endpoints. This lets an end user choose who
1156    to bill for what during bridge operations with multiple parties.
1157
1158  - The duration, billsec, start, answer, and end times now reflect the times
1159    associated with the current CDR for the channel, as opposed to a cumulative
1160    measurement of all CDRs for that channel.
1161
1162 CEL:
1163  - The Uniqueid field for a channel is now a stable identifier, and will not
1164    change due to transfers, parking, etc.
1165
1166  - CEL has undergone significant rework in Asterisk 12, and is now built on the
1167    Stasis message bus. Please see the specification for CEL on the Asterisk
1168    wiki at https://wiki.asterisk.org/wiki/x/4ICLAQ for more detailed
1169    information. A summary of the affected events is below:
1170    - BRIDGE_START, BRIDGE_END, BRIDGE_UPDATE, 3WAY_START, 3WAY_END, CONF_ENTER,
1171      CONF_EXIT, CONF_START, and CONF_END events have all been removed. These
1172      events have been replaced by BRIDGE_ENTER/BRIDGE_EXIT.
1173    - BLINDTRANSFER/ATTENDEDTRANSFER events now report the peer as NULL and
1174      additional information in the extra string field.
1175
1176 Dialplan Functions:
1177
1178  - Certain dialplan functions have been marked as 'dangerous', and may only be
1179    executed from the dialplan. Execution from extenal sources (AMI's GetVar and
1180    SetVar actions; etc.) may be inhibited by setting live_dangerously in the
1181    [options] section of asterisk.conf to no. SHELL(), channel locking, and
1182    direct file read/write functions are marked as dangerous. DB_DELETE() and
1183    REALTIME_DESTROY() are marked as dangerous for reads, but can now safely
1184    accept writes (which ignore the provided value).
1185  - The default value for live_dangerously was changed from yes (in Asterisk 11
1186    and earlier) to no (in Asterisk 12 and greater).
1187
1188 Dialplan:
1189  - All channel and global variable names are evaluated in a case-sensitive
1190    manner. In previous versions of Asterisk, variables created and evaluated in
1191    the dialplan were evaluated case-insensitively, but built-in variables and
1192    variable evaluation done internally within Asterisk was done
1193    case-sensitively.
1194
1195  - Asterisk has always had code to ignore dash '-' characters that are not
1196    part of a character set in the dialplan extensions.  The code now
1197    consistently ignores these characters when matching dialplan extensions.
1198
1199  - BRIDGE_FEATURES channel variable is now casesensitive for feature letter
1200    codes. Uppercase variants apply them to the calling party while lowercase
1201    variants apply them to the called party.
1202
1203 Features:
1204  - The features.conf [applicationmap] <FeatureName>  ActivatedBy option is
1205    no longer honored.  The feature is always activated by the channel that has
1206    DYNAMIC_FEATURES defined on it when it enters the bridge. Use predial to set
1207    different values of DYNAMIC_FEATURES on the channels
1208
1209  - Executing a dynamic feature on the bridge peer in a multi-party bridge will
1210    execute it on all peers of the activating channel.
1211
1212  - There is no longer an explicit 'features reload' CLI command. Features can
1213    still be reloaded using 'module reload features'.
1214
1215  - It is no longer necessary (or possible) to define the ATXFER_NULL_TECH in
1216    features.c for atxferdropcall=no to work properly. This option now just
1217    works.
1218
1219 Parking:
1220  - Parking has been extracted from the Asterisk core as a loadable module,
1221    res_parking.
1222
1223  - Configuration is found in res_parking.conf. It is no longer supported in
1224    features.conf
1225
1226  - The arguments for the Park, ParkedCall, and ParkAndAnnounce applications
1227    have been modified significantly. See the application documents for
1228    specific details.
1229
1230  - Numerous changes to Parking related applications, AMI and CLI commands and
1231    internal inter-workings  have been made. Please read the CHANGES file for
1232    the detailed list.
1233
1234 Security Events Framework:
1235  - Security Event timestamps now use ISO 8601 formatted date/time instead of
1236    the "seconds-microseconds" format that it was using previously.
1237
1238 AGENT:
1239  - The password option has been disabled, as the AgentLogin application no
1240    longer provides authentication.
1241
1242 AUDIOHOOK_INHERIT:
1243  - Due to changes in the Asterisk core, this function is no longer needed to
1244    preserve a MixMonitor on a channel during transfer operations and dialplan
1245    execution. It is effectively obsolete.
1246
1247 CDR: (function)
1248  - The 'amaflags' and 'accountcode' attributes for the CDR function are
1249    deprecated. Use the CHANNEL function instead to access these attributes.
1250
1251  - The 'l' option has been removed. When reading a CDR attribute, the most
1252    recent record is always used. When writing a CDR attribute, all non-finalized
1253    CDRs are updated.
1254
1255  - The 'r' option has been removed, for the same reason as the 'l' option.
1256
1257  - The 's' option has been removed, as LOCKED semantics no longer exist in the
1258    CDR engine.
1259
1260 VMCOUNT:
1261  - Mailboxes defined by app_voicemail MUST be referenced by the rest of the
1262    system as mailbox@context.  The rest of the system cannot add @default
1263    to mailbox identifiers for app_voicemail that do not specify a context
1264    any longer.  It is a mailbox identifier format that should only be
1265    interpreted by app_voicemail.
1266
1267 res_rtp_asterisk:
1268  - ICE/STUN/TURN support in res_rtp_asterisk has been made optional. To enable
1269    them, an Asterisk-specific version of PJSIP needs to be installed.
1270    Tarballs are available from https://github.com/asterisk/pjproject/tags/.
1271
1272 From 11.6 to 11.7:
1273 ConfBridge
1274  - ConfBridge now has the ability to set the language of announcements to the
1275    conference.  The language can be set on a bridge profile in confbridge.conf
1276    or by the dialplan function CONFBRIDGE(bridge,language)=en.
1277 chan_sip - Clarify The "sip show peers" Forcerport Column And Add Comedia
1278  - Under the "Forcerport" column, the "N" used to mean NAT (i.e. Yes).  With
1279    the additon of auto_* NAT settings, the meaning changed and there was a
1280    certain combination of letters added to indicate the current setting. The
1281    combination of using "Y", "N", "A" or "a", can be confusing.  Therefore, we
1282    now display clearly what the current Forcerport setting is: "Yes", "No",
1283    "Auto (Yes)", "Auto (No)".
1284  - Since we are clarifying the Forcerport column, we have added a column to
1285    display the Comedia setting since this is useful information as well.  We
1286    no longer have a simple "NAT" setting like other versions before 11.
1287
1288 From 11.5 to 11.6:
1289 * res_agi will now properly indicate if there was an error in streaming an
1290   audio file.  The result code will be -1 and the result returned from the
1291   the function will be RESULT_FAILURE instead of the prior behavior of always
1292   returning RESULT_SUCCESS even if there was an error.
1293
1294 From 11.4 to 11.5:
1295 * The default settings for chan_sip are now overriden properly by the general
1296   settings in sip.conf.  Please look over your settings upon upgrading.
1297
1298 From 11.3 to 11.4:
1299 * Added the 'n' option to MeetMe to prevent application of the DENOISE function
1300   to a channel joining a conference. Some channel drivers that vary the number
1301   of audio samples in a voice frame will experience significant quality problems
1302   if a denoiser is attached to the channel; this option gives them the ability
1303   to remove the denoiser without having to unload func_speex.
1304
1305 * The Registry AMI event for SIP registrations will now always include the
1306   Username field. A previous bug fix missed an instance where it was not
1307   included; that has been corrected in this release.
1308
1309 From 11.2.0 to 11.2.1:
1310 * Asterisk would previously not output certain error messages when a remote
1311   console attempted to connect to Asterisk and no instance of Asterisk was
1312   running. This error message is displayed on stderr; as a result, some
1313   initialization scripts that used remote consoles to test for the presence
1314   of a running Asterisk instance started to display erroneous error messages.
1315   The init.d scripts and the safe_asterisk have been updated in the contrib
1316   folder to account for this.
1317
1318 From 11.2 to 11.3:
1319
1320 * Now by default, when Asterisk is installed in a path other than /usr, the
1321   Asterisk binary will search for shared libraries in ${libdir} in addition to
1322   searching system libraries. This allows Asterisk to find its shared
1323   libraries without having to specify LD_LIBRARY_PATH. This can be disabled by
1324   passing --disable-rpath to configure.
1325
1326 From 10 to 11:
1327
1328 Voicemail:
1329  - All voicemails now have a "msg_id" which uniquely identifies a message. For
1330    users of filesystem and IMAP storage of voicemail, this should be transparent.
1331    For users of ODBC, you will need to add a "msg_id" column to your voice mail
1332    messages table. This should be a string capable of holding at least 32 characters.
1333    All messages created in old Asterisk installations will have a msg_id added to
1334    them when required. This operation should be transparent as well.
1335
1336 Parking:
1337  - The comebacktoorigin setting must now be set per parking lot. The setting in
1338    the general section will not be applied automatically to each parking lot.
1339  - The BLINDTRANSFER channel variable is deleted from a channel when it is
1340    bridged to prevent subtle bugs in the parking feature.  The channel
1341    variable is used by Asterisk internally for the Park application to work
1342    properly.  If you were using it for your own purposes, copy it to your
1343    own channel variable before the channel is bridged.
1344
1345 res_ais:
1346  - Users of res_ais in versions of Asterisk prior to Asterisk 11 must change
1347    to use the res_corosync module, instead.  OpenAIS is deprecated, but
1348    Corosync is still actively developed and maintained.  Corosync came out of
1349    the OpenAIS project.
1350
1351 Dialplan Functions:
1352  - MAILBOX_EXISTS has been deprecated. Use VM_INFO with the 'exists' parameter
1353    instead.
1354  - Macro has been deprecated in favor of GoSub.  For redirecting and connected
1355    line purposes use the following variables instead of their macro equivalents:
1356    REDIRECTING_SEND_SUB, REDIRECTING_SEND_SUB_ARGS,
1357    CONNECTED_LINE_SEND_SUB, CONNECTED_LINE_SEND_SUB_ARGS.
1358  - The REDIRECTING function now supports the redirecting original party id
1359    and reason.
1360  - The HANGUPCAUSE and HANGUPCAUSE_KEYS functions have been introduced to
1361    provide a replacement for the SIP_CAUSE hash. The HangupCauseClear
1362    application has also been introduced to remove this data from the channel
1363    when necessary.
1364
1365
1366 func_enum:
1367  - ENUM query functions now return a count of -1 on lookup error to
1368    differentiate between a failed query and a successful query with 0 results
1369    matching the specified type.
1370
1371 CDR:
1372  - cdr_adaptive_odbc now supports specifying a schema so that Asterisk can
1373    connect to databases that use schemas.
1374
1375 Configuration Files:
1376  - Files listed below have been updated to be more consistent with how Asterisk
1377    parses configuration files.  This makes configuration files more consistent
1378    with what is expected across modules.
1379
1380    - cdr.conf: [general] and [csv] sections
1381    - dnsmgr.conf
1382    - dsp.conf
1383
1384  - The 'verbose' setting in logger.conf now takes an optional argument,
1385    specifying the verbosity level for each logging destination.  The default,
1386    if not otherwise specified, is a verbosity of 3.
1387
1388 AMI:
1389   - DBDelTree now correctly returns an error when 0 rows are deleted just as
1390     the DBDel action does.
1391   - The IAX2 PeerStatus event now sends a 'Port' header.  In Asterisk 10, this was
1392     erroneously being sent as a 'Post' header.
1393
1394 CCSS:
1395  - Macro is deprecated. Use cc_callback_sub instead of cc_callback_macro
1396    in channel configurations.
1397
1398 app_meetme:
1399   - The 'c' option (announce user count) will now work even if the 'q' (quiet)
1400     option is enabled.
1401
1402 app_followme:
1403  - Answered outgoing calls no longer get cut off when the next step is started.
1404    You now have until the last step times out to decide if you want to accept
1405    the call or not before being disconnected.
1406
1407 chan_gtalk:
1408  - chan_gtalk has been deprecated in favor of the chan_motif channel driver. It is recommended
1409    that users switch to using it as it is a core supported module.
1410
1411 chan_jingle:
1412  - chan_jingle has been deprecated in favor of the chan_motif channel driver. It is recommended
1413    that users switch to using it as it is a core supported module.
1414
1415 SIP
1416 ===
1417  - A new option "tonezone" for setting default tonezone for the channel driver
1418    or individual devices
1419  - A new manager event, "SessionTimeout" has been added and is triggered when
1420    a call is terminated due to RTP stream inactivity or SIP session timer
1421    expiration.
1422  - SIP_CAUSE is now deprecated.  It has been modified to use the same
1423    mechanism as the HANGUPCAUSE function.  Behavior should not change, but
1424    performance should be vastly improved.  The HANGUPCAUSE function should now
1425    be used instead of SIP_CAUSE. Because of this, the storesipcause option in
1426    sip.conf is also deprecated.
1427  - The sip paramater for Originating Line Information (oli, isup-oli, and
1428    ss7-oli) is now parsed out of the From header and copied into the channel's
1429    ANI2 information field.  This is readable from the CALLERID(ani2) dialplan
1430    function.
1431  - ICE support has been added and is enabled by default. Some endpoints may have
1432    problems with the ICE candidates within the SDP. If this is the case ICE support
1433    can be disabled globally or on a per-endpoint basis using the icesupport
1434    configuration option. Symptoms of this include one way media or no media flow.
1435
1436 chan_unistim
1437  - Due to massive update in chan_unistim phone keys functions and on-screen
1438    information changed.
1439
1440 users.conf:
1441  - A defined user with hasvoicemail=yes now finally uses a Gosub to stdexten
1442    as documented in extensions.conf.sample since v1.6.0 instead of a Macro as
1443    documented in v1.4.  Set the asterisk.conf stdexten=macro parameter to
1444    invoke the stdexten the old way.
1445
1446 res_jabber
1447  - This module has been deprecated in favor of the res_xmpp module. The res_xmpp
1448    module is backwards compatible with the res_jabber configuration file, dialplan
1449    functions, and AMI actions. The old CLI commands can also be made available using
1450    the res_clialiases template for Asterisk 11.
1451
1452 From 1.8 to 10:
1453
1454 cel_pgsql:
1455  - This module now expects an 'extra' column in the database for data added
1456    using the CELGenUserEvent() application.
1457
1458 ConfBridge
1459  - ConfBridge's dialplan arguments have changed and are not
1460    backwards compatible.
1461
1462 File Interpreters
1463  - The format interpreter formats/format_sln16.c for the file extension
1464    '.sln16' has been removed. The '.sln16' file interpreter now exists
1465    in the formats/format_sln.c module along with new support for sln12,
1466    sln24, sln32, sln44, sln48, sln96, and sln192 file extensions.
1467
1468 HTTP:
1469  - A bindaddr must be specified in order for the HTTP server
1470    to run. Previous versions would default to 0.0.0.0 if no
1471    bindaddr was specified.
1472
1473 Gtalk:
1474  - The default value for 'context' and 'parkinglots' in gtalk.conf has
1475    been changed to 'default', previously they were empty.
1476
1477 chan_dahdi:
1478  - The mohinterpret=passthrough setting is deprecated in favor of
1479    moh_signaling=notify.
1480
1481 pbx_lua:
1482  - Execution no longer continues after applications that do dialplan jumps
1483    (such as app.goto).  Now when an application such as app.goto() is called,
1484    control is returned back to the pbx engine and the current extension
1485    function stops executing.
1486  - the autoservice now defaults to being on by default
1487  - autoservice_start() and autoservice_start() no longer return a value.
1488
1489 Queue:
1490  - Mark QUEUE_MEMBER_PENALTY Deprecated it never worked for realtime members
1491  - QUEUE_MEMBER is now R/W supporting setting paused, ignorebusy and penalty.
1492
1493 Asterisk Database:
1494  - The internal Asterisk database has been switched from Berkeley DB 1.86 to
1495    SQLite 3. An existing Berkeley astdb file can be converted with the astdb2sqlite3
1496    utility in the UTILS section of menuselect. If an existing astdb is found and no
1497    astdb.sqlite3 exists, astdb2sqlite3 will be compiled automatically. Asterisk will
1498    convert an existing astdb to the SQLite3 version automatically at runtime. If
1499    moving back from Asterisk 10 to Asterisk 1.8, the astdb2bdb utility can be used
1500    to create a Berkeley DB copy of the SQLite3 astdb that Asterisk 10 uses.
1501
1502 Manager:
1503  - The AMI protocol version was incremented to 1.2 as a result of changing two
1504    instances of the Unlink event to Bridge events. This change was documented
1505    as part of the AMI 1.1 update, but two Unlink events were inadvertently left
1506    unchanged.
1507
1508 Module Support Level
1509  - All modules in the addons, apps, bridge, cdr, cel, channels, codecs,
1510    formats, funcs, pbx, and res have been updated to include MODULEINFO data
1511    that includes <support_level> tags with a value of core, extended, or deprecated.
1512    More information is available on the Asterisk wiki at
1513    https://wiki.asterisk.org/wiki/display/AST/Asterisk+Module+Support+States
1514
1515    Deprecated modules are now marked to not build by default and must be explicitly
1516    enabled in menuselect.
1517
1518 chan_sip:
1519  - Setting of HASH(SIP_CAUSE,<slave-channel-name>) on channels is now disabled
1520    by default. It can be enabled using the 'storesipcause' option. This feature
1521    has a significant performance penalty.
1522
1523 UDPTL:
1524  - The default UDPTL port range in udptl.conf.sample differed from the defaults
1525    in the source. If you didn't have a config file, you got 4500 to 4599. Now the
1526    default is 4000 to 4999.
1527
1528 From 10.4 to 10.5:
1529
1530 * The complex processor detection and optimization has been removed from
1531   the makefile in favor of using native optimization suppport when available.
1532   BUILD_NATIVE can be disabled via menuselect under "Compiler Flags".
1533
1534 From 10.2 to 10.3:
1535
1536 * If no transport is specified in sip.conf, transport will default to UDP.
1537   Also, if multiple transport= lines are used, only the last will be used.
1538
1539 From 1.8 to 10:
1540
1541 cel_pgsql:
1542  - This module now expects an 'extra' column in the database for data added
1543    using the CELGenUserEvent() application.
1544
1545 ConfBridge
1546  - ConfBridge's dialplan arguments have changed and are not
1547    backwards compatible.
1548
1549 File Interpreters
1550  - The format interpreter formats/format_sln16.c for the file extension
1551    '.sln16' has been removed. The '.sln16' file interpreter now exists
1552    in the formats/format_sln.c module along with new support for sln12,
1553    sln24, sln32, sln44, sln48, sln96, and sln192 file extensions.
1554
1555 HTTP:
1556  - A bindaddr must be specified in order for the HTTP server
1557    to run. Previous versions would default to 0.0.0.0 if no
1558    bindaddr was specified.
1559
1560 Gtalk:
1561  - The default value for 'context' and 'parkinglots' in gtalk.conf has
1562    been changed to 'default', previously they were empty.
1563
1564 chan_dahdi:
1565  - The mohinterpret=passthrough setting is deprecated in favor of
1566    moh_signaling=notify.
1567
1568 pbx_lua:
1569  - Execution no longer continues after applications that do dialplan jumps
1570    (such as app.goto).  Now when an application such as app.goto() is called,
1571    control is returned back to the pbx engine and the current extension
1572    function stops executing.
1573  - the autoservice now defaults to being on by default
1574  - autoservice_start() and autoservice_start() no longer return a value.
1575
1576 Queue:
1577  - Mark QUEUE_MEMBER_PENALTY Deprecated it never worked for realtime members
1578  - QUEUE_MEMBER is now R/W supporting setting paused, ignorebusy and penalty.
1579
1580 Asterisk Database:
1581  - The internal Asterisk database has been switched from Berkeley DB 1.86 to
1582    SQLite 3. An existing Berkeley astdb file can be converted with the astdb2sqlite3
1583    utility in the UTILS section of menuselect. If an existing astdb is found and no
1584    astdb.sqlite3 exists, astdb2sqlite3 will be compiled automatically. Asterisk will
1585    convert an existing astdb to the SQLite3 version automatically at runtime.
1586
1587 Module Support Level
1588  - All modules in the addons, apps, bridge, cdr, cel, channels, codecs,
1589    formats, funcs, pbx, and res have been updated to include MODULEINFO data
1590    that includes <support_level> tags with a value of core, extended, or deprecated.
1591    More information is available on the Asterisk wiki at
1592    https://wiki.asterisk.org/wiki/display/AST/Asterisk+Module+Support+States
1593
1594    Deprecated modules are now marked to not build by default and must be explicitly
1595    enabled in menuselect.
1596
1597 From 1.8.13 to 1.8.14:
1598 * permitdirectmedia/denydirectmedia now controls whether peers can be
1599   bridged via directmedia by comparing the ACL to the bridging peer's
1600   address rather than its own address.
1601
1602 From 1.8.12 to 1.8.13:
1603 * The complex processor detection and optimization has been removed from
1604   the makefile in favor of using native optimization suppport when available.
1605   BUILD_NATIVE can be disabled via menuselect under "Compiler Flags".
1606
1607 From 1.8.10 to 1.8.11:
1608
1609 * If no transport is specified in sip.conf, transport will default to UDP.
1610   Also, if multiple transport= lines are used, only the last will be used.
1611
1612 From 1.6.2 to 1.8:
1613
1614 * chan_sip no longer sets HASH(SIP_CAUSE,<chan name>) on channels by default.
1615   This must now be enabled by setting 'sipstorecause' to 'yes' in sip.conf.
1616   This carries a performance penalty.
1617
1618 * Asterisk now requires libpri 1.4.11+ for PRI support.
1619
1620 * A couple of CLI commands in res_ais were changed back to their original form:
1621     "ais show clm members" --> "ais clm show members"
1622     "ais show evt event channels" --> "ais evt show event channels"
1623
1624 * The default value for 'autofill' and 'shared_lastcall' in queues.conf has
1625   been changed to 'yes'.
1626
1627 * The default value for the alwaysauthreject option in sip.conf has been changed
1628   from "no" to "yes".
1629
1630 * The behavior of the 'parkedcallstimeout' has changed slightly.  The formulation
1631   of the extension name that a timed out parked call is delivered to when this
1632   option is set to 'no' was modified such that instead of converting '/' to '0',
1633   the '/' is converted to an underscore '_'.  See the updated documentation in
1634   features.conf.sample for more information on the behavior of the
1635   'parkedcallstimeout' option.
1636
1637 * Asterisk-addons no longer exists as an independent package.  Those modules
1638   now live in the addons directory of the main Asterisk source tree.  They
1639   are not enabled by default.  For more information about why modules live in
1640   addons, see README-addons.txt.
1641
1642 * The rarely used 'event_log' and LOG_EVENT channel have been removed; the few
1643   users of this channel in the tree have been converted to LOG_NOTICE or removed
1644   (in cases where the same message was already generated to another channel).
1645
1646 * The usage of RTP inside of Asterisk has now become modularized. This means
1647   the Asterisk RTP stack now exists as a loadable module, res_rtp_asterisk.
1648   If you are not using autoload=yes in modules.conf you will need to ensure
1649   it is set to load. If not, then any module which uses RTP (such as chan_sip)
1650   will not be able to send or receive calls.
1651
1652 * The app_dahdiscan.c file has been removed, but the dialplan app DAHDIScan still
1653   remains. It now exists within app_chanspy.c and retains the exact same
1654   functionality as before.
1655
1656 * The default behavior for Set, AGI, and pbx_realtime has been changed to implement
1657   1.6 behavior by default, if there is no [compat] section in asterisk.conf.  In
1658   prior versions, the behavior defaulted to 1.4 behavior, to assist in upgrades.
1659   Specifically, that means that pbx_realtime and res_agi expect you to use commas
1660   to separate arguments in applications, and Set only takes a single pair of
1661   a variable name/value.  The old 1.4 behavior may still be obtained by setting
1662   app_set, pbx_realtime, and res_agi each to 1.4 in the [compat] section of
1663   asterisk.conf.
1664
1665 * The PRI channels in chan_dahdi can no longer change the channel name if a
1666   different B channel is selected during call negotiation.  To prevent using
1667   the channel name to infer what B channel a call is using and to avoid name
1668   collisions, the channel name format is changed.
1669   The new channel naming for PRI channels is:
1670   DAHDI/i<span>/<number>[:<subaddress>]-<sequence-number>
1671
1672 * Added CHANNEL(dahdi_span), CHANNEL(dahdi_channel), and CHANNEL(dahdi_type)
1673   so the dialplan can determine the B channel currently in use by the channel.
1674   Use CHANNEL(no_media_path) to determine if the channel even has a B channel.
1675
1676 * Added AMI event DAHDIChannel to associate a DAHDI channel with an Asterisk
1677   channel so AMI applications can passively determine the B channel currently
1678   in use.  Calls with "no-media" as the DAHDIChannel do not have an associated
1679   B channel.  No-media calls are either on hold or call-waiting.
1680
1681 * The ChanIsAvail application has been changed so the AVAILSTATUS variable
1682   no longer contains both the device state and cause code. The cause code
1683   is now available in the AVAILCAUSECODE variable. If existing dialplan logic
1684   is written to expect AVAILSTATUS to contain the cause code it needs to be
1685   changed to use AVAILCAUSECODE.
1686
1687 * ExternalIVR will now send Z events for invalid or missing files, T events
1688   now include the interrupted file and bugs in argument parsing have been
1689   fixed so there may be arguments specified in incorrect ways that were
1690   working that will no longer work. Please see
1691   https://wiki.asterisk.org/wiki/display/AST/External+IVR+Interface for details.
1692
1693 * OSP lookup application changes following variable names:
1694   OSPPEERIP to OSPINPEERIP
1695   OSPTECH to OSPOUTTECH
1696   OSPDEST to OSPDESTINATION
1697   OSPCALLING to OSPOUTCALLING
1698   OSPCALLED to OSPOUTCALLED
1699   OSPRESULTS to OSPDESTREMAILS
1700
1701 * The Manager event 'iax2 show peers' output has been updated.  It now has a
1702   similar output of 'sip show peers'.
1703
1704 * VoiceMailMain and VMAuthenticate, if a '*' is entered in the first position
1705   of a Mailbox or Password, will, if it exists, jump to the 'a' extension in
1706   the current dialplan context.
1707
1708 * The CALLERPRES() dialplan function is deprecated in favor of
1709   CALLERID(num-pres) and CALLERID(name-pres).
1710
1711 * Environment variables that start with "AST_" are reserved to the system and
1712   may no longer be set from the dialplan.
1713
1714 * When a call is redirected inside of a Dial, the app and appdata fields of the
1715   CDR will now be set to "AppDial" and "(Outgoing Line)" instead of being blank.
1716
1717 * The CDR handling of billsec and duration field has changed. If your table
1718   definition specifies those fields as float,double or similar they will now
1719   be logged with microsecond accuracy instead of a whole integer.
1720
1721 * chan_sip will no longer set up a local call forward when receiving a
1722   482 Loop Detected response. The dialplan will just continue from where it
1723   left off.
1724
1725 * The 'stunaddr' option has been removed from chan_sip.  This feature did not
1726   behave as expected, had no correct use case, and was not RFC compliant. The
1727   removal of this feature will hopefully be followed by a correct RFC compliant
1728   STUN implementation in chan_sip in the future.
1729
1730 * The default value for the pedantic option in sip.conf has been changed
1731   from "no" to "yes".
1732
1733 * The ConnectedLineNum and ConnectedLineName headers were added to many AMI
1734   events/responses if the CallerIDNum/CallerIDName headers were also present.
1735   The addition of connected line support changes the behavior of the channel
1736   caller ID somewhat.  The channel caller ID value no longer time shares with
1737   the connected line ID on outgoing call legs.  The timing of some AMI
1738   events/responses output the connected line ID as caller ID.  These party ID's
1739   are now separate.
1740
1741 * The Dial application d and H options do not automatically answer the call
1742   anymore.  It broke DTMF attended transfers.  Since many SIP and ISDN phones
1743   cannot send DTMF before a call is connected, you need to answer the call
1744   leg to those phones before using Dial with these options for them to have
1745   any effect before the dialed party answers.
1746
1747 * The outgoing directory (where .call files are read) now uses inotify to
1748   detect file changes instead of polling the directory on a regular basis.
1749   If your outgoing folder is on a NFS mount or another network file system,
1750   changes to the files will not be detected.  You can revert to polling the
1751   directory by specifying --without-inotify to configure before compiling.
1752
1753 * The 'sipusers' realtime table has been removed completely. Use the 'sippeers'
1754   table with type 'user' for user type objects.
1755
1756 * The sip.conf allowoverlap option now accepts 'dtmf' as a value.  If you
1757   are using the early media DTMF overlap dialing method you now need to set
1758   allowoverlap=dtmf.
1759
1760 From 1.6.1 to 1.6.2:
1761
1762 * SIP no longer sends the 183 progress message for early media by
1763   default.  Applications requiring early media should use the
1764   progress() dialplan app to generate the progress message.
1765
1766 * The firmware for the IAXy has been removed from Asterisk.  It can be
1767   downloaded from http://downloads.digium.com/pub/iaxy/.  To have Asterisk
1768   install the firmware into its proper location, place the firmware in the
1769   contrib/firmware/iax/ directory in the Asterisk source tree before running
1770   "make install".
1771
1772 * T.38 FAX error correction mode can no longer be configured in udptl.conf;
1773   instead, it is configured on a per-peer (or global) basis in sip.conf, with
1774   the same default as was present in udptl.conf.sample.
1775
1776 * T.38 FAX maximum datagram size can no longer be configured in updtl.conf;
1777   instead, it is either supplied by the application servicing the T.38 channel
1778   (for a FAX send or receive) or calculated from the bridged endpoint's
1779   maximum datagram size (for a T.38 FAX passthrough call). In addition, sip.conf
1780   allows for overriding the value supplied by a remote endpoint, which is useful
1781   when T.38 connections are made to gateways that supply incorrectly-calculated
1782   maximum datagram sizes.
1783
1784 * There have been some changes to the IAX2 protocol to address the security
1785   concerns documented in the security advisory AST-2009-006.  Please see the
1786   IAX2 security document, doc/IAX2-security.pdf, for information regarding
1787   backwards compatibility with versions of Asterisk that do not contain these
1788   changes to IAX2.
1789
1790 * The 'canreinvite' option support by the SIP, MGCP and Skinny channel drivers
1791   has been renamed to 'directmedia', to better reflect what it actually does.
1792   In the case of SIP, there are still re-INVITEs issued for T.38 negotiation,
1793   starting and stopping music-on-hold, and other reasons, and the 'canreinvite'
1794   option never had any effect on these cases, it only affected the re-INVITEs
1795   used for direct media path setup. For MGCP and Skinny, the option was poorly
1796   named because those protocols don't even use INVITE messages at all. For
1797   backwards compatibility, the old option is still supported in both normal
1798   and Realtime configuration files, but all of the sample configuration files,
1799   Realtime/LDAP schemas, and other documentation refer to it using the new name.
1800
1801 * The default console now will use colors according to the default background
1802   color, instead of forcing the background color to black.  If you are using a
1803   light colored background for your console, you may wish to use the option
1804   flag '-W' to present better color choices for the various messages.  However,
1805   if you'd prefer the old method of forcing colors to white text on a black
1806   background, the compatibility option -B is provided for this purpose.
1807
1808 * SendImage() no longer hangs up the channel on transmission error or on
1809   any other error; in those cases, a FAILURE status is stored in
1810   SENDIMAGESTATUS and dialplan execution continues.  The possible
1811   return values stored in SENDIMAGESTATUS are: SUCCESS, FAILURE, and
1812   UNSUPPORTED. ('OK' has been replaced with 'SUCCESS', and 'NOSUPPORT'
1813   has been replaced with 'UNSUPPORTED').  This change makes the
1814   SendImage application more consistent with other applications.
1815
1816 * skinny.conf now has separate sections for lines and devices.
1817   Please have a look at configs/skinny.conf.sample and update
1818   your skinny.conf.
1819
1820 * Queue names previously were treated in a case-sensitive manner,
1821   meaning that queues with names like "sales" and "sALeS" would be
1822   seen as unique queues. The parsing logic has changed to use
1823   case-insensitive comparisons now when originally hashing based on
1824   queue names, meaning that now the two queues mentioned as examples
1825   earlier will be seen as having the same name.
1826
1827 * The SPRINTF() dialplan function has been moved into its own module,
1828   func_sprintf, and is no longer included in func_strings. If you use this
1829   function and do not use 'autoload=yes' in modules.conf, you will need
1830   to explicitly load func_sprintf for it to be available.
1831
1832 * The res_indications module has been removed.  Its functionality was important
1833   enough that most of it has been moved into the Asterisk core.
1834   Two applications previously provided by res_indications, PlayTones and
1835   StopPlayTones, have been moved into a new module, app_playtones.
1836
1837 * Support for Taiwanese was incorrectly supported with the "tw" language code.
1838   In reality, the "tw" language code is reserved for the Twi language, native
1839   to Ghana.  If you were previously using the "tw" language code, you should
1840   switch to using either "zh" (for Mandarin Chinese) or "zh_TW" for Taiwan
1841   specific localizations.  Additionally, "mx" should be changed to "es_MX",
1842   Georgian was incorrectly specified as "ge" but should be "ka", and Czech is
1843   "cs", not "cz".
1844
1845 * DAHDISendCallreroutingFacility() parameters are now comma-separated,
1846   instead of the old pipe.
1847
1848 * res_jabber: autoprune has been disabled by default, to avoid misconfiguration
1849   that would end up being interpreted as a bug once Asterisk started removing
1850   the contacts from a user list.
1851
1852 * The cdr.conf file must exist and be configured correctly in order for CDR
1853   records to be written.
1854
1855 * cdr_pgsql now assumes the encoding of strings it is handed are in LATIN9,
1856   which should cover most uses of the extended ASCII set.  If your strings
1857   use a different encoding in Asterisk, the "encoding" parameter may be set
1858   to specify the correct character set.
1859
1860 From 1.6.0.1 to 1.6.1:
1861
1862 * The ast_agi_register_multiple() and ast_agi_unregister_multiple()
1863   API calls were added in 1.6.0, so that modules that provide multiple
1864   AGI commands could register/unregister them all with a single
1865   step. However, these API calls were not implemented properly, and did
1866   not allow the caller to know whether registration or unregistration
1867   succeeded or failed. They have been redefined to now return success
1868   or failure, but this means any code using these functions will need
1869   be recompiled after upgrading to a version of Asterisk containing
1870   these changes. In addition, the source code using these functions
1871   should be reviewed to ensure it can properly react to failure
1872   of registration or unregistration of its API commands.
1873
1874 * The ast_agi_fdprintf() API call has been renamed to ast_agi_send()
1875   to better match what it really does, and the argument order has been
1876   changed to be consistent with other API calls that perform similar
1877   operations.
1878
1879 From 1.6.0.x to 1.6.1:
1880
1881 * In previous versions of Asterisk, due to the way objects were arranged in
1882   memory by chan_sip, the order of entries in sip.conf could be adjusted to
1883   control the behavior of matching against peers and users.  The way objects
1884   are managed has been significantly changed for reasons involving performance
1885   and stability.  A side effect of these changes is that the order of entries
1886   in sip.conf can no longer be relied upon to control behavior.
1887
1888 * The following core commands dealing with dialplan have been deprecated: 'core
1889   show globals', 'core set global' and 'core set chanvar'. Use the equivalent
1890   'dialplan show globals', 'dialplan set global' and 'dialplan set chanvar'
1891   instead.
1892
1893 * In the dialplan expression parser, the logical value of spaces
1894   immediately preceding a standalone 0 previously evaluated to
1895   true. It now evaluates to false.  This has confused a good many
1896   people in the past (typically because they failed to realize the
1897   space had any significance).  Since this violates the Principle of
1898   Least Surprise, it has been changed.
1899
1900 * While app_directory has always relied on having a voicemail.conf or users.conf file
1901   correctly set up, it now is dependent on app_voicemail being compiled as well.
1902
1903 * SIP: All of the functionality in SIPCHANINFO() has been implemented in CHANNEL(),
1904   and you should start using that function instead for retrieving information about
1905   the channel in a technology-agnostic way.
1906
1907 * If you have any third party modules which use a config file variable whose
1908   name ends in a '+', please note that the append capability added to this
1909   version may now conflict with that variable naming scheme.  An easy
1910   workaround is to ensure that a space occurs between the '+' and the '=',
1911   to differentiate your variable from the append operator.  This potential
1912   conflict is unlikely, but is documented here to be thorough.
1913
1914 * The "Join" event from app_queue now uses the CallerIDNum header instead of
1915   the CallerID header to indicate the CallerID number.
1916
1917 * If you use ODBC storage for voicemail, there is a new field called "flag"
1918   which should be a char(8) or larger.  This field specifies whether or not a
1919   message has been designated to be "Urgent", "PRIORITY", or not.
1920
1921 From 1.4 to 1.6:
1922
1923 AEL:
1924
1925 * Macros are now implemented underneath with the Gosub() application.
1926   Heaven Help You if you wrote code depending on any aspect of this!
1927   Previous to 1.6, macros were implemented with the Macro() app, which
1928   provided a nice feature of auto-returning. The compiler will do its
1929   best to insert a Return() app call at the end of your macro if you did
1930   not include it, but really, you should make sure that all execution
1931   paths within your macros end in "return;".
1932
1933 * The conf2ael program is 'introduced' in this release; it is in a rather
1934   crude state, but deemed useful for making a first pass at converting
1935   extensions.conf code into AEL. More intelligence will come with time.
1936
1937 Core:
1938
1939 * The 'languageprefix' option in asterisk.conf is now deprecated, and
1940   the default sound file layout for non-English sounds is the 'new
1941   style' layout introduced in Asterisk 1.4 (and used by the automatic
1942   sound file installer in the Makefile).
1943
1944 * The ast_expr2 stuff has been modified to handle floating-point numbers.
1945   Numbers of the format D.D are now acceptable input for the expr parser,
1946   Where D is a string of base-10 digits. All math is now done in "long double",
1947   if it is available on your compiler/architecture. This was half-way between
1948   a bug-fix (because the MATH func returns fp by default), and an enhancement.
1949   Also, for those counting on, or needing, integer operations, a series of
1950   'functions' were also added to the expr language, to allow several styles
1951   of rounding/truncation, along with a set of common floating point operations,
1952   like sin, cos, tan, log, pow, etc. The ability to call external functions
1953   like CDR(), etc. was also added, without having to use the ${...} notation.
1954
1955 * The delimiter passed to applications has been changed to the comma (','), as
1956   that is what people are used to using within extensions.conf.  If you are
1957   using realtime extensions, you will need to translate your existing dialplan
1958   to use this separator.  To use a literal comma, you need merely to escape it
1959   with a backslash ('\').  Another possible side effect is that you may need to
1960   remove the obscene level of backslashing that was necessary for the dialplan
1961   to work correctly in 1.4 and previous versions.  This should make writing
1962   dialplans less painful in the future, albeit with the pain of a one-time
1963   conversion.  If you would like to avoid this conversion immediately, set
1964   pbx_realtime=1.4 in the [compat] section of asterisk.conf.  After
1965   transitioning, set pbx_realtime=1.6 in the same section.
1966
1967 * For the same purpose as above, you may set res_agi=1.4 in the [compat]
1968   section of asterisk.conf to continue to use the '|' delimiter in the EXEC
1969   arguments of AGI applications.  After converting to use the ',' delimiter,
1970   change this option to res_agi=1.6.
1971
1972 * As a side effect of the application delimiter change, many places that used
1973   to need quotes in order to get the proper meaning are no longer required.
1974   You now only need to quote strings in configuration files if you literally
1975   want quotation marks within a string.
1976
1977 * Any applications run that contain the pipe symbol but not a comma symbol will
1978   get a warning printed to the effect that the application delimiter has changed.
1979   However, there are legitimate reasons why this might be useful in certain
1980   situations, so this warning can be turned off with the dontwarn option in
1981   asterisk.conf.
1982
1983 * The logger.conf option 'rotatetimestamp' has been deprecated in favor of
1984   'rotatestrategy'.  This new option supports a 'rotate' strategy that more
1985   closely mimics the system logger in terms of file rotation.
1986
1987 * The concise versions of various CLI commands are now deprecated. We recommend
1988   using the manager interface (AMI) for application integration with Asterisk.
1989
1990 Voicemail:
1991
1992 * The voicemail configuration values 'maxmessage' and 'minmessage' have
1993   been changed to 'maxsecs' and 'minsecs' to clarify their purpose and
1994   to make them more distinguishable from 'maxmsgs', which sets folder
1995   size.  The old variables will continue to work in this version, albeit
1996   with a deprecation warning.
1997
1998 * If you use any interface for modifying voicemail aside from the built in
1999   dialplan applications, then the option "pollmailboxes" *must* be set in
2000   voicemail.conf for message waiting indication (MWI) to work properly.  This
2001   is because Voicemail notification is now event based instead of polling
2002   based.  The channel drivers are no longer responsible for constantly manually
2003   checking mailboxes for changes so that they can send MWI information to users.
2004   Examples of situations that would require this option are web interfaces to
2005   voicemail or an email client in the case of using IMAP storage.
2006
2007 Applications:
2008
2009
2010 * ChanIsAvail() now has a 't' option, which allows the specified device
2011   to be queried for state without consulting the channel drivers. This
2012   performs mostly a 'ChanExists' sort of function.
2013
2014 * ChannelRedirect() will not terminate the channel that fails to do a
2015   channelredirect as it has done previously. Instead CHANNELREDIRECT_STATUS
2016   will reflect if the attempt was successful of not.
2017
2018 * SetCallerPres() has been replaced with the CALLERPRES() dialplan function
2019   and is now deprecated.
2020
2021 * DISA()'s fifth argument is now an options argument.  If you have previously
2022   used 'NOANSWER' in this argument, you'll need to convert that to the new
2023   option 'n'.
2024
2025 * Macro() is now deprecated.  If you need subroutines, you should use the
2026   Gosub()/Return() applications.  To replace MacroExclusive(), we have
2027   introduced dialplan functions LOCK(), TRYLOCK(), and UNLOCK().  You may use
2028   these functions in any location where you desire to ensure that only one
2029   channel is executing that path at any one time.  The Macro() applications
2030   are deprecated for performance reasons.  However, since Macro() has been
2031   around for a long time and so many dialplans depend heavily on it, for the
2032   sake of backwards compatibility it will not be removed .  It is also worth
2033   noting that using both Macro() and GoSub() at the same time is _heavily_
2034   discouraged.
2035
2036 * Read() now sets a READSTATUS variable on exit.  It does NOT automatically
2037   return -1 (and hangup) anymore on error.  If you want to hangup on error,
2038   you need to do so explicitly in your dialplan.
2039
2040 * Privacy() no longer uses privacy.conf, so any options must be specified
2041   directly in the application arguments.
2042
2043 * MusicOnHold application now has duration parameter which allows specifying
2044   timeout in seconds.
2045
2046 * WaitMusicOnHold application is now deprecated in favor of extended MusicOnHold.
2047
2048 * SetMusicOnHold is now deprecated. You should use Set(CHANNEL(musicclass)=...)
2049   instead.
2050
2051 * The arguments in ExecIf changed a bit, to be more like other applications.
2052   The syntax is now ExecIf(<cond>?appiftrue(args):appiffalse(args)).
2053
2054 * The behavior of the Set application now depends upon a compatibility option,
2055   set in asterisk.conf.  To use the old 1.4 behavior, which allowed Set to take
2056   multiple key/value pairs, set app_set=1.4 in [compat] in asterisk.conf.  To
2057   use the new behavior, which permits variables to be set with embedded commas,
2058   set app_set=1.6 in [compat] in asterisk.conf.  Note that you can have both
2059   behaviors at the same time, if you switch to using MSet if you want the old
2060   behavior.
2061
2062 Dialplan Functions:
2063
2064 * QUEUE_MEMBER_COUNT() has been deprecated in favor of the QUEUE_MEMBER() function. For
2065   more information, issue a "show function QUEUE_MEMBER" from the CLI.
2066
2067 CDR:
2068
2069 * The cdr_sqlite module has been marked as deprecated in favor of
2070   cdr_sqlite3_custom.  It will potentially be removed from the tree
2071   after Asterisk 1.6 is released.
2072
2073 * The cdr_odbc module now uses res_odbc to manage its connections.  The
2074   username and password parameters in cdr_odbc.conf, therefore, are no
2075   longer used.  The dsn parameter now points to an entry in res_odbc.conf.
2076
2077 * The uniqueid field in the core Asterisk structure has been changed from a
2078   maximum 31 character field to a 149 character field, to account for all
2079   possible values the systemname prefix could be.  In the past, if the
2080   systemname was too long, the uniqueid would have been truncated.
2081
2082 * The cdr_tds module now supports all versions of FreeTDS that contain
2083   the db-lib frontend.  It will also now log the userfield variable if
2084   the target database table contains a column for it.
2085
2086 Formats:
2087
2088 * format_wav: The GAIN preprocessor definition and source code that used it
2089   is removed.  This change was made in response to user complaints of
2090   choppiness or the clipping of loud signal peaks.  To increase the volume
2091   of voicemail messages, use the 'volgain' option in voicemail.conf
2092
2093 Channel Drivers:
2094
2095 * SIP: a small upgrade to support the "Record" button on the SNOM360,
2096   which sends a sip INFO message with a "Record: on" or "Record: off"
2097   header. If Asterisk is set up (via features.conf) to accept "One Touch Monitor"
2098   requests (by default, via '*1'), then the user-configured dialpad sequence
2099   is generated, and recording can be started and stopped via this button. The
2100   file names and formats are all controlled via the normal mechanisms. If the
2101   user has not configured the automon feature, the normal "415 Unsupported media type"
2102   is returned, and nothing is done.
2103
2104 * SIP: The "call-limit" option is marked as deprecated. It still works in this version of
2105   Asterisk, but will be removed in the following version. Please use the groupcount functions
2106   in the dialplan to enforce call limits. The "limitonpeer" configuration option is
2107   now renamed to "counteronpeer".
2108
2109 * SIP: The "username" option is now renamed to "defaultuser" to match "defaultip".
2110   These are used only before registration to call a peer with the uri
2111         sip:defaultuser@defaultip
2112   The "username" setting still work, but is deprecated and will not work in
2113   the next version of Asterisk.
2114
2115 * SIP: The old "insecure" options, deprecated in 1.4, have been removed.
2116   "insecure=very" should be changed to "insecure=port,invite"
2117   "insecure=yes" should be changed to "insecure=port"
2118   Be aware that some telephony providers show the invalid syntax in their
2119   sample configurations.
2120
2121 * chan_local.c: the comma delimiter inside the channel name has been changed to a
2122   semicolon, in order to make the Local channel driver compatible with the comma
2123   delimiter change in applications.
2124
2125 * H323: The "tos" setting has changed name to "tos_audio" and "cos" to "cos_audio"
2126   to be compatible with settings in sip.conf. The "tos" and "cos" configuration
2127   is deprecated and will stop working in the next release of Asterisk.
2128
2129 * Console: A new console channel driver, chan_console, has been added to Asterisk.
2130   This new module can not be loaded at the same time as chan_alsa or chan_oss.  The
2131   default modules.conf only loads one of them (chan_oss by default).  So, unless you
2132   have modified your modules.conf to not use the autoload option, then you will need
2133   to modify modules.conf to add another "noload" line to ensure that only one of
2134   these three modules gets loaded.
2135
2136 * DAHDI: The chan_zap module that supported PSTN interfaces using
2137   Zaptel has been renamed to chan_dahdi, and only supports the DAHDI
2138   telephony driver package for PSTN interfaces. See the
2139   Zaptel-to-DAHDI.txt file for more details on this transition.
2140
2141 * DAHDI: The "msdstrip" option has been deprecated, as it provides no value over
2142   the method of stripping digits in the dialplan using variable substring syntax.
2143
2144 Configuration:
2145
2146 * pbx_dundi.c: tos parameter changed to use new values. Old values like lowdelay,
2147   lowcost and other is not acceptable now. Look into qos.tex for description of
2148   this parameter.
2149
2150 * queues.conf: the queue-lessthan sound file option is no longer available, and the
2151   queue-round-seconds option no longer takes '1' as a valid parameter.
2152
2153 Manager:
2154
2155 * Manager has been upgraded to version 1.1 with a lot of changes.
2156   Please check doc/manager_1_1.txt for information
2157
2158 * The IAXpeers command output has been changed to more closely resemble the
2159   output of the SIPpeers command.
2160
2161 * cdr_manager now reports at the "cdr" level, not at "call"  You may need to
2162    change your manager.conf to add the level to existing AMI users, if they
2163    want to see the CDR events generated.
2164
2165 * The Originate command now requires the Originate write permission.  For
2166    Originate with the Application parameter, you need the additional System
2167    privilege if you want to do anything that calls out to a subshell.
2168
2169 iLBC Codec:
2170
2171 * Previously, the Asterisk source code distribution included the iLBC
2172   encoder/decoder source code, from Global IP Solutions
2173   (http://www.gipscorp.com). This code is not licensed for
2174   distribution, and thus has been removed from the Asterisk source
2175   code distribution. If you wish to use codec_ilbc to support iLBC
2176   channels in Asterisk, you can run the contrib/scripts/get_ilbc_source.sh
2177   script to download the source and put it in the proper place in
2178   the Asterisk build tree. Once that is done you can follow your normal
2179   steps of building Asterisk. You will need to run 'menuselect' and enable
2180   the iLBC codec in the 'Codec  Translators' category.
2181
2182 From 1.2 to 1.4:
2183
2184 Build Process (configure script):
2185
2186 Asterisk now uses an autoconf-generated configuration script to learn how it
2187 should build itself for your system. As it is a standard script, running:
2188
2189 $ ./configure --help
2190
2191 will show you all the options available. This script can be used to tell the
2192 build process what libraries you have on your system (if it cannot find them
2193 automatically), which libraries you wish to have ignored even though they may
2194 be present, etc.
2195
2196 You must run the configure script before Asterisk will build, although it will
2197 attempt to automatically run it for you with no options specified; for most
2198 users, that will result in a similar build to what they would have had before
2199 the configure script was added to the build process (except for having to run
2200 'make' again after the configure script is run). Note that the configure script
2201 does NOT need to be re-run just to rebuild Asterisk; you only need to re-run it
2202 when your system configuration changes or you wish to build Asterisk with
2203 different options.
2204
2205 Build Process (module selection):
2206
2207 The Asterisk source tree now includes a basic module selection and build option
2208 selection tool called 'menuselect'. Run 'make menuselect' to make your choices.
2209 In this tool, you can disable building of modules that you don't care about,
2210 turn on/off global options for the build and see which modules will not
2211 (and cannot) be built because your system does not have the required external
2212 dependencies installed.
2213
2214 The resulting file from menuselect is called 'menuselect.makeopts'. Note that
2215 the resulting menuselect.makeopts file generally contains which modules *not*
2216 to build. The modules listed in this file indicate which modules have unmet
2217 dependencies, a present conflict, or have been disabled by the user in the
2218 menuselect interface. Compiler Flags can also be set in the menuselect
2219 interface.  In this case, the resulting file contains which CFLAGS are in use,
2220 not which ones are not in use.
2221
2222 If you would like to save your choices and have them applied against all
2223 builds, the file can be copied to '~/.asterisk.makeopts' or
2224 '/etc/asterisk.makeopts'.
2225
2226 Build Process (Makefile targets):
2227
2228 The 'valgrind' and 'dont-optimize' targets have been removed; their functionality
2229 is available by enabling the DONT_OPTIMIZE setting in the 'Compiler Flags' menu
2230 in the menuselect tool.
2231
2232 It is now possible to run most make targets against a single subdirectory; from
2233 the top level directory, for example, 'make channels' will run 'make all' in the
2234 'channels' subdirectory. This also is true for 'clean', 'distclean' and 'depend'.
2235
2236 Sound (prompt) and Music On Hold files:
2237
2238 Beginning with Asterisk 1.4, the sound files and music on hold files supplied for
2239 use with Asterisk have been replaced with new versions produced from high quality
2240 master recordings, and are available in three languages (English, French and
2241 Spanish) and in five formats (WAV (uncompressed), mu-Law, a-Law, GSM and G.729).
2242 In addition, the music on hold files provided by opsound.org Music are now available
2243 in the same five formats, but no longer available in MP3 format.
2244
2245 The Asterisk 1.4 tarball packages will only include English prompts in GSM format,
2246 (as were supplied with previous releases) and the opsound.org MOH files in WAV format.
2247 All of the other variations can be installed by running 'make menuselect' and
2248 selecting the packages you wish to install; when you run 'make install', those
2249 packages will be downloaded and installed along with the standard files included
2250 in the tarball.
2251
2252 If for some reason you expect to not have Internet access at the time you will be
2253 running 'make install', you can make your package selections using menuselect and
2254 then run 'make sounds' to download (only) the sound packages; this will leave the
2255 sound packages in the 'sounds' subdirectory to be used later during installation.
2256
2257 WARNING: Asterisk 1.4 supports a new layout for sound files in multiple languages;
2258 instead of the alternate-language files being stored in subdirectories underneath
2259 the existing files (for French, that would be digits/fr, letters/fr, phonetic/fr,
2260 etc.) the new layout creates one directory under /var/lib/asterisk/sounds for the
2261 language itself, then places all the sound files for that language under that
2262 directory and its subdirectories. This is the layout that will be created if you
2263 select non-English languages to be installed via menuselect, HOWEVER Asterisk does
2264 not default to this layout and will not find the files in the places it expects them
2265 to be. If you wish to use this layout, make sure you put 'languageprefix=yes' in your
2266 /etc/asterisk/asterisk.conf file, so that Asterisk will know how the files were
2267 installed.
2268
2269 PBX Core:
2270
2271 * The (very old and undocumented) ability to use BYEXTENSION for dialing
2272   instead of ${EXTEN} has been removed.
2273
2274 * Builtin (res_features) transfer functionality attempts to use the context
2275   defined in TRANSFER_CONTEXT variable of the transferer channel first. If
2276   not set, it uses the transferee variable. If not set in any channel, it will
2277   attempt to use the last non macro context. If not possible, it will default
2278   to the current context.
2279
2280 * The autofallthrough setting introduced in Asterisk 1.2 now defaults to 'yes';
2281   if your dialplan relies on the ability to 'run off the end' of an extension
2282   and wait for a new extension without using WaitExten() to accomplish that,
2283   you will need set autofallthrough to 'no' in your extensions.conf file.
2284
2285 Command Line Interface:
2286
2287 * 'show channels concise', designed to be used by applications that will parse
2288   its output, previously used ':' characters to separate fields. However, some
2289   of those fields can easily contain that character, making the output not
2290   parseable. The delimiter has been changed to '!'.
2291
2292 Applications:
2293
2294 * In previous Asterisk releases, many applications would jump to priority n+101
2295   to indicate some kind of status or error condition.  This functionality was
2296   marked deprecated in Asterisk 1.2.  An option to disable it was provided with
2297   the default value set to 'on'.  The default value for the global priority
2298   jumping option is now 'off'.
2299
2300 * The applications Cut, Sort, DBGet, DBPut, SetCIDNum, SetCIDName, SetRDNIS,
2301   AbsoluteTimeout, DigitTimeout, ResponseTimeout, SetLanguage, GetGroupCount,
2302   and GetGroupMatchCount were all deprecated in version 1.2, and therefore have
2303   been removed in this version.  You should use the equivalent dialplan
2304   function in places where you have previously used one of these applications.
2305
2306 * The application SetGlobalVar has been deprecated.  You should replace uses
2307   of this application with the following combination of Set and GLOBAL():
2308   Set(GLOBAL(name)=value).  You may also access global variables exclusively by
2309   using the GLOBAL() dialplan function, instead of relying on variable
2310   interpolation falling back to globals when no channel variable is set.
2311
2312 * The application SetVar has been renamed to Set.  The syntax SetVar was marked
2313   deprecated in version 1.2 and is no longer recognized in this version.  The
2314   use of Set with multiple argument pairs has also been deprecated.  Please
2315   separate each name/value pair into its own dialplan line.
2316
2317 * app_read has been updated to use the newer options codes, using "skip" or
2318   "noanswer" will not work.  Use s or n.  Also there is a new feature i, for
2319   using indication tones, so typing in skip would give you unexpected results.
2320
2321 * OSPAuth is added to authenticate OSP tokens in in_bound call setup messages.
2322
2323 * The CONNECT event in the queue_log from app_queue now has a second field
2324   in addition to the holdtime field. It contains the unique ID of the
2325   queue member channel that is taking the call. This is useful when trying
2326   to link recording filenames back to a particular call from the queue.
2327
2328 * The old/current behavior of app_queue has a serial type behavior
2329   in that the queue will make all waiting callers wait in the queue
2330   even if there is more than one available member ready to take
2331   calls until the head caller is connected with the member they
2332   were trying to get to. The next waiting caller in line then
2333   becomes the head caller, and they are then connected with the
2334   next available member and all available members and waiting callers
2335   waits while this happens. This cycle continues until there are
2336   no more available members or waiting callers, whichever comes first.
2337   The new behavior, enabled by setting autofill=yes in queues.conf
2338   either at the [general] level to default for all queues or
2339   to set on a per-queue level, makes sure that when the waiting
2340   callers are connecting with available members in a parallel fashion
2341   until there are no more available members or no more waiting callers,
2342   whichever comes first. This is probably more along the lines of how
2343   one would expect a queue should work and in most cases, you will want
2344   to enable this new behavior. If you do not specify or comment out this
2345   option, it will default to "no" to keep backward compatability with the old
2346   behavior.
2347
2348 * Queues depend on the channel driver reporting the proper state
2349   for each member of the queue. To get proper signalling on
2350   queue members that use the SIP channel driver, you need to
2351   enable a call limit (could be set to a high value so it
2352   is not put into action) and also make sure that both inbound
2353   and outbound calls are accounted for.
2354
2355   Example:
2356
2357        [general]
2358        limitonpeer = yes
2359
2360        [peername]
2361        type=friend
2362        call-limit=10
2363
2364
2365 * The app_queue application now has the ability to use MixMonitor to
2366   record conversations queue members are having with queue callers. Please
2367   see configs/queues.conf.sample for more information on this option.
2368
2369 * The app_queue application strategy called 'roundrobin' has been deprecated
2370   for this release. Users are encouraged to use 'rrmemory' instead, since it
2371   provides more 'true' round-robin call delivery. For the Asterisk 1.6 release,
2372   'rrmemory' will be renamed 'roundrobin'.
2373
2374 * The app_queue application option called 'monitor-join' has been deprecated
2375   for this release. Users are encouraged to use 'monitor-type=mixmonitor' instead,
2376   since it provides the same functionality but is not dependent on soxmix or some
2377   other external program in order to mix the audio.
2378
2379 * app_meetme: The 'm' option (monitor) is renamed to 'l' (listen only), and
2380   the 'm' option now provides the functionality of "initially muted".
2381   In practice, most existing dialplans using the 'm' flag should not notice
2382   any difference, unless the keypad menu is enabled, allowing the user
2383   to unmute themsleves.
2384
2385 * ast_play_and_record would attempt to cancel the recording if a DTMF
2386   '0' was received.  This behavior was not documented in most of the
2387   applications that used ast_play_and_record and the return codes from
2388   ast_play_and_record weren't checked for properly.
2389   ast_play_and_record has been changed so that '0' no longer cancels a
2390   recording.  If you want to allow DTMF digits to cancel an
2391   in-progress recording use ast_play_and_record_full which allows you
2392   to specify which DTMF digits can be used to accept a recording and
2393   which digits can be used to cancel a recording.
2394
2395 * ast_app_messagecount has been renamed to ast_app_inboxcount.  There is now a
2396   new ast_app_messagecount function which takes a single context/mailbox/folder
2397   mailbox specification and returns the message count for that folder only.
2398   This addresses the deficiency of not being able to count the number of
2399   messages in folders other than INBOX and Old.
2400
2401 * The exit behavior of the AGI applications has changed. Previously, when
2402   a connection to an AGI server failed, the application would cause the channel
2403   to immediately stop dialplan execution and hangup. Now, the only time that
2404   the AGI applications will cause the channel to stop dialplan execution is
2405   when the channel itself requests hangup. The AGI applications now set an
2406   AGISTATUS variable which will allow you to find out whether running the AGI
2407   was successful or not.
2408
2409   Previously, there was no way to handle the case where Asterisk was unable to
2410   locally execute an AGI script for some reason. In this case, dialplan
2411   execution will continue as it did before, but the AGISTATUS variable will be
2412   set to "FAILURE".
2413
2414   A locally executed AGI script can now exit with a non-zero exit code and this
2415   failure will be detected by Asterisk. If an AGI script exits with a non-zero
2416   exit code, the AGISTATUS variable will be set to "FAILURE" as opposed to
2417   "SUCCESS".
2418
2419 * app_voicemail: The ODBC_STORAGE capability now requires the extended table format
2420   previously used only by EXTENDED_ODBC_STORAGE. This means that you will need to update
2421   your table format using the schema provided in doc/odbcstorage.txt
2422
2423 * app_waitforsilence: Fixes have been made to this application which changes the
2424   default behavior with how quickly it returns. You can maintain "old-style" behavior
2425   with the addition/use of a third "timeout" parameter.
2426   Please consult the application documentation and make changes to your dialplan
2427   if appropriate.
2428
2429 Manager:
2430
2431 * After executing the 'status' manager action, the "Status" manager events
2432   included the header "CallerID:" which was actually only the CallerID number,
2433   and not the full CallerID string.  This header has been renamed to
2434   "CallerIDNum".  For compatibility purposes, the CallerID parameter will remain
2435   until after the release of 1.4, when it will be removed.  Please use the time
2436   during the 1.4 release to make this transition.
2437
2438 * The AgentConnect event now has an additional field called "BridgedChannel"
2439   which contains the unique ID of the queue member channel that is taking the
2440   call. This is useful when trying to link recording filenames back to
2441   a particular call from the queue.
2442
2443 * app_userevent has been modified to always send Event: UserEvent with the
2444   additional header UserEvent: <userspec>.  Also, the Channel and UniqueID
2445   headers are not automatically sent, unless you specify them as separate
2446   arguments.  Please see the application help for the new syntax.
2447
2448 * app_meetme: Mute and Unmute events are now reported via the Manager API.
2449   Native Manager API commands MeetMeMute and MeetMeUnmute are provided, which
2450   are easier to use than "Action Command:". The MeetMeStopTalking event has
2451   also been deprecated in favor of the already existing MeetmeTalking event
2452   with a "Status" of "on" or "off" added.
2453
2454 * OriginateFailure and OriginateSuccess events were replaced by event
2455   OriginateResponse with a header named "Response" to indicate success or
2456   failure
2457
2458 Variables:
2459
2460 * The builtin variables ${CALLERID}, ${CALLERIDNAME}, ${CALLERIDNUM},
2461   ${CALLERANI}, ${DNID}, ${RDNIS}, ${DATETIME}, ${TIMESTAMP}, ${ACCOUNTCODE},
2462   and ${LANGUAGE} have all been deprecated in favor of their related dialplan
2463   functions.  You are encouraged to move towards the associated dialplan
2464   function, as these variables will be removed in a future release.
2465
2466 * The CDR-CSV variables uniqueid, userfield, and basing time on GMT are now
2467   adjustable from cdr.conf, instead of recompiling.
2468
2469 * OSP applications exports several new variables, ${OSPINHANDLE},
2470   ${OSPOUTHANDLE}, ${OSPINTOKEN}, ${OSPOUTTOKEN}, ${OSPCALLING},
2471   ${OSPINTIMELIMIT}, and ${OSPOUTTIMELIMIT}
2472
2473 * Builtin transfer functionality sets the variable ${TRANSFERERNAME} in the new
2474   created channel. This variables holds the channel name of the transferer.
2475
2476 * The dial plan variable PRI_CAUSE will be removed from future versions
2477   of Asterisk.
2478   It is replaced by adding a cause value to the hangup() application.
2479
2480 Functions:
2481
2482 * The function ${CHECK_MD5()} has been deprecated in favor of using an
2483   expression: $[${MD5(<string>)} = ${saved_md5}].
2484
2485 * The 'builtin' functions that used to be combined in pbx_functions.so are
2486   now built as separate modules. If you are not using 'autoload=yes' in your
2487   modules.conf file then you will need to explicitly load the modules that
2488   contain the functions you want to use.
2489
2490 * The ENUMLOOKUP() function with the 'c' option (for counting the number of
2491   records), but the lookup fails to match any records, the returned value will
2492   now be "0" instead of blank.
2493
2494 * The REALTIME() function is now available in version 1.4 and app_realtime has
2495   been deprecated in favor of the new function. app_realtime will be removed
2496   completely with the version 1.6 release so please take the time between
2497   releases to make any necessary changes
2498
2499 * The QUEUEAGENTCOUNT() function has been deprecated in favor of
2500   QUEUE_MEMBER_COUNT().
2501
2502 The IAX2 channel:
2503
2504 * It is possible that previous configurations depended on the order in which
2505   peers and users were specified in iax.conf for forcing the order in which
2506   chan_iax2 matched against them.  This behavior is going away and is considered
2507   deprecated in this version.  Avoid having ambiguous peer and user entries and
2508   to make things easy on yourself, always set the "username" option for users
2509   so that the remote end can match on that exactly instead of trying to infer
2510   which user you want based on host.
2511
2512   If you would like to go ahead and use the new behavior which doesn't use the
2513   order in the config file to influence matching order, then change the
2514   MAX_PEER_BUCKETS define in chan_iax2.c to a value greater than one.  An
2515   example is provided there.  By changing this, you will get *much* better
2516   performance on systems that do a lot of peer and user lookups as they will be
2517   stored in memory in a much more efficient manner.
2518
2519 * The "mailboxdetail" option has been deprecated.  Previously, if this option
2520   was not enabled, the 2 byte MSGCOUNT information element would be set to all
2521   1's to indicate there there is some number of messages waiting.  With this
2522   option enabled, the number of new messages were placed in one byte and the
2523   number of old messages are placed in the other.  This is now the default
2524   (and the only) behavior.
2525
2526 The SIP channel:
2527
2528 * The "incominglimit" setting is replaced by the "call-limit" setting in
2529   sip.conf.
2530
2531 * OSP support code is removed from SIP channel to OSP applications. ospauth
2532   option in sip.conf is removed to osp.conf as authpolicy. allowguest option
2533   in sip.conf cannot be set as osp anymore.
2534
2535 * The Asterisk RTP stack has been changed in regards to RFC2833 reception
2536   and transmission. Packets will now be sent with proper duration instead of all
2537   at once. If you are receiving calls from a pre-1.4 Asterisk installation you
2538   will want to turn on the rfc2833compensate option. Without this option your
2539   DTMF reception may act poorly.
2540
2541 * The $SIPUSERAGENT dialplan variable is deprecated and will be removed
2542   in coming versions of Asterisk. Please use the dialplan function
2543   SIPCHANINFO(useragent) instead.
2544
2545 * The ALERT_INFO dialplan variable is deprecated and will be removed
2546   in coming versions of Asterisk. Please use the dialplan application
2547   sipaddheader() to add the "Alert-Info" header to the outbound invite.
2548
2549 * The "canreinvite" option has changed. canreinvite=yes used to disable
2550   re-invites if you had NAT=yes. In 1.4, you need to set canreinvite=nonat
2551   to disable re-invites when NAT=yes. This is propably what you want.
2552   The settings are now: "yes", "no", "nonat", "update". Please consult
2553   sip.conf.sample for detailed information.
2554
2555 The Zap channel:
2556
2557 * Support for MFC/R2 has been removed, as it has not been functional for some
2558   time and it has no maintainer.
2559
2560 The Agent channel:
2561
2562 * Callback mode (AgentCallbackLogin) is now deprecated, since the entire function
2563   it provided can be done using dialplan logic, without requiring additional
2564   channel and module locks (which frequently caused deadlocks). An example of
2565   how to do this using AEL dialplan is in doc/queues-with-callback-members.txt.
2566
2567 The G726-32 codec:
2568
2569 * It has been determined that previous versions of Asterisk used the wrong codeword
2570   packing order for G726-32 data. This version supports both available packing orders,
2571   and can transcode between them. It also now selects the proper order when
2572   negotiating with a SIP peer based on the codec name supplied in the SDP. However,
2573   there are existing devices that improperly request one order and then use another;
2574   Sipura and Grandstream ATAs are known to do this, and there may be others. To
2575   be able to continue to use these devices with this version of Asterisk and the
2576   G726-32 codec, a configuration parameter called 'g726nonstandard' has been added
2577   to sip.conf, so that Asterisk can use the packing order expected by the device (even
2578   though it requested a different order). In addition, the internal format number for
2579   G726-32 has been changed, and the old number is now assigned to AAL2-G726-32. The
2580   result of this is that this version of Asterisk will be able to interoperate over
2581   IAX2 with older versions of Asterisk, as long as this version is told to allow
2582   'g726aal2' instead of 'g726' as the codec for the call.
2583
2584 Installation:
2585
2586 * On BSD systems, the installation directories have changed to more "FreeBSDish"
2587   directories. On startup, Asterisk will look for the main configuration in
2588   /usr/local/etc/asterisk/asterisk.conf
2589   If you have an old installation, you might want to remove the binaries and
2590   move the configuration files to the new locations. The following directories
2591   are now default:
2592         ASTLIBDIR       /usr/local/lib/asterisk
2593         ASTVARLIBDIR    /usr/local/share/asterisk
2594         ASTETCDIR       /usr/local/etc/asterisk
2595         ASTBINDIR       /usr/local/bin/asterisk
2596         ASTSBINDIR      /usr/local/sbin/asterisk
2597
2598 Music on Hold:
2599
2600 * The music on hold handling has been changed in some significant ways in hopes
2601   to make it work in a way that is much less confusing to users. Behavior will
2602   not change if the same configuration is used from older versions of Asterisk.
2603   However, there are some new configuration options that will make things work
2604   in a way that makes more sense.
2605
2606   Previously, many of the channel drivers had an option called "musicclass" or
2607   something similar. This option set what music on hold class this channel
2608   would *hear* when put on hold. Some people expected (with good reason) that
2609   this option was to configure what music on hold class to play when putting
2610   the bridged channel on hold. This option has now been deprecated.
2611
2612   Two new music on hold related configuration options for channel drivers have
2613   been introduced. Some channel drivers support both options, some just one,
2614   and some support neither of them. Check the sample configuration files to see
2615   which options apply to which channel driver.
2616
2617   The "mohsuggest" option specifies which music on hold class to suggest to the
2618   bridged channel when putting them on hold. The only way that this class can
2619   be overridden is if the bridged channel has a specific music class set that
2620   was done in the dialplan using Set(CHANNEL(musicclass)=something).
2621
2622   The "mohinterpret" option is similar to the old "musicclass" option. It
2623   specifies which music on hold class this channel would like to listen to when
2624   put on hold. This music class is only effective if this channel has no music
2625   class set on it from the dialplan and the bridged channel putting this one on
2626   hold had no "mohsuggest" setting.
2627
2628   The IAX2 and Zap channel drivers have an additional feature for the
2629   "mohinterpret" option. If this option is set to "passthrough", then these
2630   channel drivers will pass through the HOLD message in signalling instead of
2631   starting music on hold on the channel. An example for how this would be
2632   useful is in an enterprise network of Asterisk servers. When one phone on one
2633   server puts a phone on a different server on hold, the remote server will be
2634   responsible for playing the hold music to its local phone that was put on
2635   hold instead of the far end server across the network playing the music.
2636
2637 CDR Records:
2638
2639 * The behavior of the "clid" field of the CDR has always been that it will
2640   contain the callerid ANI if it is set, or the callerid number if ANI was not
2641   set.  When using the "callerid" option for various channel drivers, some
2642   would set ANI and some would not.  This has been cleared up so that all
2643   channel drivers set ANI.  If you would like to change the callerid number
2644   on the channel from the dialplan and have that change also show up in the
2645   CDR, then you *must* set CALLERID(ANI) as well as CALLERID(num).
2646
2647 API:
2648
2649 * There are some API functions that were not previously prefixed with the 'ast_'
2650   prefix but now are; these include the ADSI, ODBC and AGI interfaces. If you
2651   have a module that uses the services provided by res_adsi, res_odbc, or
2652   res_agi, you will need to add ast_ prefixes to the functions that you call
2653   from those modules.
2654
2655 Formats:
2656
2657 * format_wav: The GAIN preprocessor definition has been changed from 2 to 0
2658   in Asterisk 1.4.  This change was made in response to user complaints of
2659   choppiness or the clipping of loud signal peaks.  The GAIN preprocessor
2660   definition will be retained in Asterisk 1.4, but will be removed in a
2661   future release.  The use of GAIN for the increasing of voicemail message
2662   volume should use the 'volgain' option in voicemail.conf
2663
2664 From 1.0 to 1.2:
2665
2666 Compiling:
2667
2668 * The Asterisk 1.2 source code now uses C language features
2669   supported only by 'modern' C compilers.  Generally, this means GCC
2670   version 3.0 or higher, although some GCC 2.96 releases will also
2671   work.  Some non-GCC compilers that support C99 and the common GCC
2672   extensions (including anonymous structures and unions) will also
2673   work.  All releases of GCC 2.95 do _not_ have the requisite feature
2674   support; systems using that compiler will need to be upgraded to
2675   a more recent compiler release.
2676
2677 Dialplan Expressions:
2678
2679 * The dialplan expression parser (which handles $[ ... ] constructs)
2680   has gone through a major upgrade, but has one incompatible change:
2681   spaces are no longer required around expression operators, including
2682   string comparisons. However, you can now use quoting to keep strings
2683   together for comparison. For more details, please read the
2684   doc/README.variables file, and check over your dialplan for possible
2685   problems.
2686
2687 Agents:
2688
2689 * The default for ackcall has been changed to "no" instead of "yes"
2690   because of a bug which caused the "yes" behavior to generally act like
2691   "no".  You may need to adjust the value if your agents behave
2692   differently than you expect with respect to acknowledgement.
2693
2694 * The AgentCallBackLogin application now requires a second '|' before
2695   specifying an extension@context.  This is to distinguish the options
2696   string from the extension, so that they do not conflict.  See
2697   'show application AgentCallbackLogin' for more details.
2698
2699 Parking:
2700
2701 * Parking behavior has changed slightly; when a parked call times out,
2702   Asterisk will attempt to deliver the call back to the extension that
2703   parked it, rather than the 's' extension. If that extension is busy
2704   or unavailable, the parked call will be lost.
2705
2706 Dialing:
2707
2708 * The Caller*ID of the outbound leg is now the extension that was
2709   called, rather than the Caller*ID of the inbound leg of the call.  The
2710   "o" flag for Dial can be used to restore the original behavior if
2711   desired.  Note that if you are looking for the originating callerid
2712   from the manager event, there is a new manager event "Dial" which
2713   provides the source and destination channels and callerid.
2714
2715 IAX:
2716
2717 * The naming convention for IAX channels has changed in two ways:
2718    1. The call number follows a "-" rather than a "/" character.
2719    2. The name of the channel has been simplified to IAX2/peer-callno,
2720    rather than IAX2/peer@peer-callno or even IAX2/peer@peer/callno.
2721
2722 SIP:
2723
2724 * The global option "port" in 1.0.X that is used to set which port to
2725   bind to has been changed to "bindport" to be more consistent with
2726   the other channel drivers and to avoid confusion with the "port"
2727   option for users/peers.
2728
2729 * The "Registry" event now uses "Username" rather than "User" for
2730   consistency with IAX.
2731
2732 Applications:
2733
2734 * With the addition of dialplan functions (which operate similarly
2735   to variables), the SetVar application has been renamed to Set.
2736
2737 * The CallerPres application has been removed.  Use SetCallerPres
2738   instead.  It accepts both numeric and symbolic names.
2739
2740 * The applications GetGroupCount, GetGroupMatchCount, SetGroup, and
2741   CheckGroup have been deprecated in favor of functions.  Here is a
2742   table of their replacements:
2743
2744   GetGroupCount([groupname][@category]         GROUP_COUNT([groupname][@category])      Set(GROUPCOUNT=${GROUP_COUNT()})
2745   GroupMatchCount(groupmatch[@category])       GROUP_MATCH_COUNT(groupmatch[@category]) Set(GROUPCOUNT=${GROUP_MATCH_COUNT(SIP/.*)})
2746   SetGroup(groupname[@category])               GROUP([category])=groupname              Set(GROUP()=test)
2747   CheckGroup(max[@category])                   N/A                                      GotoIf($[ ${GROUP_COUNT()} > 5 ]?103)
2748
2749   Note that CheckGroup does not have a direct replacement.  There is
2750   also a new function called GROUP_LIST() which will return a space
2751   separated list of all of the groups set on a channel.  The GROUP()
2752   function can also return the name of the group set on a channel when
2753   used in a read environment.
2754
2755 * The applications DBGet and DBPut have been deprecated in favor of
2756   functions.  Here is a table of their replacements:
2757
2758   DBGet(foo=family/key)        Set(foo=${DB(family/key)})
2759   DBPut(family/key=${foo})     Set(DB(family/key)=${foo})
2760
2761 * The application SetLanguage has been deprecated in favor of the
2762   function LANGUAGE().
2763
2764   SetLanguage(fr)               Set(LANGUAGE()=fr)
2765
2766   The LANGUAGE function can also return the currently set language:
2767
2768   Set(MYLANG=${LANGUAGE()})
2769
2770 * The applications AbsoluteTimeout, DigitTimeout, and ResponseTimeout
2771   have been deprecated in favor of the function TIMEOUT(timeouttype):
2772
2773   AbsoluteTimeout(300)          Set(TIMEOUT(absolute)=300)
2774   DigitTimeout(15)              Set(TIMEOUT(digit)=15)
2775   ResponseTimeout(15)           Set(TIMEOUT(response)=15)
2776
2777   The TIMEOUT() function can also return the currently set timeouts:
2778
2779   Set(DTIMEOUT=${TIMEOUT(digit)})
2780
2781 * The applications SetCIDName, SetCIDNum, and SetRDNIS have been
2782   deprecated in favor of the CALLERID(datatype) function:
2783
2784   SetCIDName(Joe Cool)          Set(CALLERID(name)=Joe Cool)
2785   SetCIDNum(2025551212)         Set(CALLERID(number)=2025551212)
2786   SetRDNIS(2024561414)          Set(CALLERID(RDNIS)=2024561414)
2787
2788 * The application Record now uses the period to separate the filename
2789   from the format, rather than the colon.
2790
2791 * The application VoiceMail now supports a 'temporary' greeting for each
2792   mailbox. This greeting can be recorded by using option 4 in the
2793   'mailbox options' menu, and 'change your password' option has been
2794   moved to option 5.
2795
2796 * The application VoiceMailMain now only matches the 'default' context if
2797   none is specified in the arguments.  (This was the previously
2798   documented behavior, however, we didn't follow that behavior.)  The old
2799   behavior can be restored by setting searchcontexts=yes in voicemail.conf.
2800
2801 Queues:
2802
2803 * A queue is now considered empty not only if there are no members but if
2804   none of the members are available (e.g. agents not logged on).  To
2805   restore the original behavior, use "leavewhenempty=strict" or
2806   "joinwhenempty=strict" instead of "=yes" for those options.
2807
2808 * It is now possible to use multi-digit extensions in the exit context
2809   for a queue (although you should not have overlapping extensions,
2810   as there is no digit timeout). This means that the EXITWITHKEY event
2811   in queue_log can now contain a key field with more than a single
2812   character in it.
2813
2814 Extensions:
2815
2816 * By default, there is a new option called "autofallthrough" in
2817   extensions.conf that is set to yes.  Asterisk 1.0 (and earlier)
2818   behavior was to wait for an extension to be dialed after there were no
2819   more extensions to execute.  "autofallthrough" changes this behavior
2820   so that the call will immediately be terminated with BUSY,
2821   CONGESTION, or HANGUP based on Asterisk's best guess.  If you are
2822   writing an extension for IVR, you must use the WaitExten application
2823   if "autofallthrough" is set to yes.
2824
2825 AGI:
2826
2827 * AGI scripts did not always get SIGHUP at the end, previously.  That
2828   behavior has been fixed.  If you do not want your script to terminate
2829   at the end of AGI being called (e.g. on a hangup) then set SIGHUP to
2830   be ignored within your application.
2831
2832 * CallerID is reported with agi_callerid and agi_calleridname instead
2833   of a single parameter holding both.
2834
2835 Music On Hold:
2836
2837 * The preferred format for musiconhold.conf has changed; please see the
2838   sample configuration file for the new format. The existing format
2839   is still supported but will generate warnings when the module is loaded.
2840
2841 chan_modem:
2842
2843 * All the chan_modem channel drivers (aopen, bestdata and i4l) are deprecated
2844   in this release, and will be removed in the next major Asterisk release.
2845   Please migrate to chan_misdn for ISDN interfaces; there is no upgrade
2846   path for aopen and bestdata modem users.
2847
2848 MeetMe:
2849
2850 * The conference application now allows users to increase/decrease their
2851   speaking volume and listening volume (independently of each other and
2852   other users); the 'admin' and 'user' menus have changed, and new sound
2853   files are included with this release. However, if a user calling in
2854   over a Zaptel channel that does NOT have hardware DTMF detection
2855   increases their speaking volume, it is likely they will no longer be
2856   able to enter/exit the menu or make any further adjustments, as the
2857   software DTMF detector will not be able to recognize the DTMF coming
2858   from their device.
2859
2860 GetVar Manager Action:
2861
2862 * Previously, the behavior of the GetVar manager action reported the value
2863   of a variable in the following manner:
2864    > name: value
2865   This has been changed to a manner similar to the SetVar action and is now
2866    > Variable: name
2867    > Value: value