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