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