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