res_pjsip: Fail global load if debug or default_from_user are empty
[asterisk/asterisk.git] / CHANGES
1 ==============================================================================
2 ===
3 === This file documents the new and/or enhanced functionality added in
4 === the Asterisk versions listed below. This file does NOT include
5 === changes in behavior that would not be backwards compatible with
6 === previous versions; for that information see the UPGRADE.txt file
7 === and the other UPGRADE files for older releases.
8 ===
9 ==============================================================================
10
11 ------------------------------------------------------------------------------
12 --- Functionality changes from Asterisk 14 to Asterisk 15 --------------------
13 ------------------------------------------------------------------------------
14
15
16 ------------------------------------------------------------------------------
17 --- Functionality changes from Asterisk 14.0.0 to Asterisk 14.1.0 ----------
18 ------------------------------------------------------------------------------
19
20 app_voicemail
21 ------------------
22  * Added "tps_queue_high" and "tps_queue_low" options.
23    The options can modify the taskprocessor alert levels for this module.
24    Additional information can be found in the sample configuration file at
25    config/samples/voicemail.conf.sample.
26
27 res_pjsip_mwi
28 ------------------
29  * Added "mwi_tps_queue_high" and "mwi_tps_queue_low" global configuration
30    options to tune taskprocessor alert levels.
31
32  * Added "mwi_disable_initial_unsolicited" global configuration option
33    to disable sending unsolicited MWI to all endpoints on startup.
34    Additional information can be found in the sample configuration file at
35    config/samples/pjsip.conf.sample.
36
37 chan_pjsip
38 ------------------
39  * A new dialplan function, PJSIP_SEND_SESSION_REFRESH, has been added. When
40    invoked, a re-INVITE or UPDATE request will be sent immediately to the
41    endpoint underlying the channel. When used in combination with the existing
42    dialplan function PJSIP_MEDIA_OFFER, this allows the formats on a PJSIP
43    channel to be re-negotiated and updated after session set up.
44
45
46 ------------------------------------------------------------------------------
47 --- Functionality changes from Asterisk 13 to Asterisk 14 --------------------
48 ------------------------------------------------------------------------------
49
50 AMI
51 -----------------
52  * A new event, "DialState" has been added. This is similar to "DialBegin" and
53  "DialEnd" in that it tracks the state of a dialed call. The difference is that
54  this indicates some intermediate state change in the dial attempt, such as
55  "RINGING", "PROGRESS", or "PROCEEDING".
56
57 ARI
58 -----------------
59  * A new ARI method has been added to the channels resource. "create" allows for
60    you to create a new channel and place that channel into a Stasis application.
61    This is similar to origination except that the specified channel is not
62    dialed. This allows for an application writer to create a channel, perform
63    manipulations on it, and then delay dialing the channel until later.
64
65  * To complement the "create" method, a "dial" method has been added to the
66    channels resource in order to place a call to a created channel.
67
68  * All operations that initiate playback of media on a resource now support
69    a list of media URIs. The list of URIs are played in the order they are
70    presented to the resource. A new event, "PlaybackContinuing", is raised when
71    a media URI finishes but before the next media URI starts. When a list is
72    played, the "Playback" model will contain the optional attribute
73    "next_media_uri", which specifies the next media URI in the list to be played
74    back to the resource. The "PlaybackFinished" event is raised when all media
75    URIs are done.
76
77  * Stored recordings now allow for the media associated with a stored recording
78    to be retrieved. The new route, GET /recordings/stored/{name}/file, will
79    transmit the raw media file to the requester as binary.
80
81
82  * "Dial" events have been modified to not only be sent when dialing begins and ends.
83  They now are also sent for intermediate states, such as "RINGING", "PROGRESS", and
84  "PROCEEDING".
85
86 Applications
87 ------------------
88
89 BridgeAdd
90 ------------------
91  * A new application in Asterisk, this will join the calling channel
92    to an existing bridge containing the named channel prefix.
93
94 ChanSpy
95 ------------------
96  * Added the 'l' option, which forces ChanSpy's audiohook to use a long queue
97    to store the audio frames. This option is useful if audio loss is
98    experienced when using ChanSpy, but may introduce some delay in the audio
99    feed on the listening channel.
100
101 Codecs
102 ------------------
103  * Added format attribute negotiation for the iLBC audio codec. Format attribute
104    negotiation is provided by the res_format_attr_ilbc module. iLBC 20 is the
105    default now. Falls back to iLBC 30, when the remote party requests this.
106
107 ConfBridge
108 ------------------
109  * Added the ability to pass options to MixMonitor when recording is used with
110    ConfBridge. This includes the addition of the following configuration
111    parameters for the 'bridge' object:
112    - record_file_timestamp: whether or not to append the start time to the
113      recorded file name
114    - record_options: the options to pass to the MixMonitor application
115    - record_command: a command to execute when recording is finished
116    Note that these options may also be with the CONFBRIDGE function.
117
118 ControlPlayback
119 ------------------
120  * Remote files can now be retrieved and played back. See the Playback
121    dialplan application for more details.
122
123 FollowMe
124 ------------------
125  * It is now possible to disable the prompt from a callee by setting
126    'enable_callee_prompt = no' in followme.conf.
127
128 Playback
129 ------------------
130  * Remote files can now be retrieved and played back via the Playback and other
131    media playback dialplan applications. This is done by directly providing
132    the URL to play to the dialplan application:
133      same => n,Playback(http://1.1.1.1/howler-monkeys-fl.wav)
134    Note that unlike 'normal' media files, the entire URI to the file must be
135    provided, including the file extension. Currently, on HTTP and HTTPS URI
136    schemes are supported.
137
138 Queue
139 -------------------
140  * Added field ReasonPause on QueueMemberStatus if set when paused, the reason
141    the queue member was paused.
142
143  * Added field LastPause on QueueMemberStatus for time when started the last
144    pause for a queue member.
145
146  * Show the time when started the last pause for queue member on CLI for command
147    'queue show'.
148
149 SMS
150 ------------------
151  * Added the 'n' option, which prevents the SMS from being written to the log
152    file. This is needed for those countries with privacy laws that require
153    providers to not log SMS content.
154
155
156 Channel Drivers
157 ------------------
158
159 chan_dahdi
160 ------------------
161  * The CALLERID(ani2) value for incoming calls is now populated in featdmf
162    signaling mode.  The information was previously discarded.
163
164  * Added the force_restart_unavailable_chans compatibility option.  When
165    enabled it causes Asterisk to restart the ISDN B channel if an outgoing
166    call receives cause 44 (Requested channel not available).
167
168 chan_iax2
169 ------------------
170  * The iax.conf forcejitterbuffer option has been removed.  It is now always
171    forced if you set iax.conf jitterbuffer=yes.  If you put a jitter buffer
172    on a channel it will be on the channel.
173
174  * A new configuration parameters, 'calltokenexpiration', has been added that
175    controls the duration before a call token expires. Default duration is 10
176    seconds. Setting this to a higher value may help in lagged networks or those
177    experiencing high packet loss.
178
179 chan_rtp (was chan_multicast_rtp)
180 ------------------
181  * Added unicast RTP support and renamed chan_multicast_rtp to chan_rtp.
182
183  * The format for dialing a unicast RTP channel is:
184    UnicastRTP/<destination-addr>[/[<options>]]
185    Where <destination-addr> is something like '127.0.0.1:5060'.
186    Where <options> are in standard Asterisk flag options format:
187    c(<codec>) - Specify which codec/format to use such as 'ulaw'.
188    e(<engine>) - Specify which RTP engine to use such as 'asterisk'.
189
190  * New options were added for a multicast RTP channel.  The format for
191    dialing a multicast RTP channel is:
192    MulticastRTP/<type>/<destination-addr>[/[<control-addr>][/[<options>]]]
193    Where <type> can be either 'basic' or 'linksys'.
194    Where <destination-addr> is something like '224.0.0.3:5060'.
195    Where <control-addr> is something like '127.0.0.1:5060'.
196    Where <options> are in standard Asterisk flag options format:
197    c(<codec>) - Specify which codec/format to use such as 'ulaw'.
198    i(<address>) - Specify the interface address from which multicast RTP
199      is sent.
200    l(<enable>) - Set whether packets are looped back to the sender.  The
201      enable value can be 0 to set looping to off and non-zero to set
202      looping on.
203    t(<ttl>) - Set the time-to-live (TTL) value for multicast packets.
204
205 chan_sip
206 ------------------
207  * New 'rtpbindaddr' global setting. This allows a user to define which
208    ipaddress to bind the rtpengine to. For example, chan_sip might bind
209    to eth0 (10.0.0.2) but rtpengine to eth1 (192.168.1.10).
210
211  * DTLS related configuration options can now be set at a general level.
212    Enabling DTLS support, though, requires enabling it at the user
213    or peer level.
214
215  * Added the possibility to set the From: header through the the SIP dial
216    string (populating the fromuser/fromdomain fields), complementing the
217    [!dnid] option for the To: header that has existed since 1.6.0 (1d6b192).
218    NOTE: This is again separated by an exclamation mark, so the To: header may
219    not contain one of those.
220
221  * Session-Timers (RFC 4028) work for TCP (and TLS) transports as well now.
222    Previously Asterisk dropped calls only with UDP transports. However with
223    longer international calls via TCP, the SIP channel might break, because
224    all hops on the Internet route must stay online (have not a single power
225    outage, for example). Therefore with Session-Timers enabled (which are
226    enabled at default), you might see additional dropped calls. Consequently
227    please, consider to go for session-timers=refuse in your sip.conf.
228
229 chan_pjsip
230 ------------------
231  * New 'user_eq_phone' endpoint setting. This adds a 'user=phone' parameter
232    to the request URI and From URI if the user is determined to be a phone
233    number.
234
235  * New 'moh_passthrough' endpoint setting. This will pass hold and unhold
236    requests through using SIP re-invites with sendonly and sendrecv accordingly.
237
238  * Added the pjsip.conf system type disable_tcp_switch option.  The option
239    allows the user to disable switching from UDP to TCP transports described
240    by RFC 3261 section 18.1.1.
241
242  * New 'line' and 'endpoint' options added on outbound registrations. This
243    allows some identifying information to be added to the Contact of the
244    outbound registration. If this information is present on messages received
245    from the remote server the message will automatically be associated with the
246    configured endpoint on the outbound registration.
247
248
249 Core
250 ------------------
251  * The core of Asterisk uses a message bus called "Stasis" to distribute
252    information to internal components. For performance reasons, the message
253    distribution was modified to make use of a thread pool instead of a
254    dedicated thread per consumer in certain cases. The initial settings for
255    the thread pool can now be configured in 'stasis.conf'.
256
257  * A new core DNS API has been implemented which provides a common interface
258    for DNS functionality. Modules that use this functionality will require that
259    a DNS resolver module is loaded and available.
260
261  * Modified processing of command-line options to first parse only what
262    is necessary to read asterisk.conf. Once asterisk.conf is fully loaded,
263    the remaining options are processed.  The -X option now applies to
264    asterisk.conf only.  To enable #exec for other config files you must
265    set execincludes=yes in asterisk.conf.  Any other option set on the
266    command-line will now override the equivalent setting from asterisk.conf.
267
268  * The TLS core in Asterisk now supports X.509 certificate subject alternative
269    names. This way one X.509 certificate can be used for hosts that can be
270    reached under multiple DNS names or for multiple hosts.
271
272  * The Asterisk logging system now supports JSON structured logging. Log
273    channels specified in logger.conf or added dynamically via CLI commands now
274    support an optional specifier prior to their levels that determines their
275    formatting. To set a log channel to format its entries as JSON, a formatter
276    of '[json]' can be set, e.g.,
277       full => [json]debug,verbose,notice,warning,error
278
279  * The core now supports a 'media cache', which stores temporary media files
280    retrieved from external sources. CLI commands have been added to manipulate
281    and display the cached files, including:
282    - 'media cache show <all>' - show all cached media files, or details about
283      one particular cached media file
284    - 'media cache refresh <item>' - force a refresh of a particular media file
285      in the cache
286    - 'media cache delete <item>' - remove an item from the cache
287    - 'media cache create <uri>' - retrieve a URI and store it in the cache
288
289  * The ability for hints to be automatically created as a result of device state
290    changes now exists in the PBX. This functionality is referred to as "autohints"
291    and is configurable in extensions.conf by placing "autohints=yes" in the
292    context. If enabled then a hint will be automatically created with the name of
293    the device.
294
295
296 Functions
297 ------------------
298  * The func_odbc global option "single_db_connection" default value has been
299    changed to 'no'.
300
301
302 Formats
303 ------------------
304  * New module format_ogg_speex added which supports Speex codec inside
305    Ogg containers (filename extension .spx).
306
307
308 CHANNEL
309 ------------------
310  * Added CHANNEL(onhold) item that returns 1 (onhold) and 0 (not-onhold) for
311    the hold status of a channel.
312
313 CURL
314 ------------------
315  * The CURL function now supports a write option, which will save the retrieved
316    file to a location on disk. As an example:
317      same => n,Set(CURL(https://1.1.1.1/foo.wav)=/tmp/foo.wav)
318    will save 'foo.wav' to /tmp.
319
320 DTMF Features
321 ------------------
322  * The transferdialattempts default value has been changed from 1 to 3. The
323    transferinvalidsound has been changed from "pbx-invalid" to
324    "privacy-incorrect". These were changed to make DTMF transfers be more
325    user-friendly by default.
326
327
328 Resources
329 ------------------
330
331 res_http_media_cache
332 ------------------
333  * A backend for the core media cache, this module retrieves media files from
334    a remote HTTP(S) server and stores them in the core media cache for later
335    playback.
336
337 res_musiconhold
338 ------------------
339  * Added sort=randstart to the sort options. It sorts the files by name and
340    then chooses the first file to play at random.
341  * Added preferchannelclass=no option to prefer the application-passed class
342    over the channel-set musicclass. This allows separate hold-music from
343    application (e.g. Queue or Dial) specified music.
344
345 res_resolver_unbound
346 ------------------
347  * Added a res_resolver_unbound module which uses the libunbound resolver library
348    to perform DNS resolution. This module requires the libunbound library to be
349    installed in order to be used.
350
351 res_pjsip
352 ------------------
353  * A new SIP resolver using the core DNS API has been implemented. This relies on
354    external SIP resolver support in PJSIP which is only available as of PJSIP
355    2.4. If this support is unavailable the existing built-in PJSIP SIP resolver
356    will be used instead. The new SIP resolver provides NAPTR support, improved
357    SRV support, and AAAA record support.
358
359 res_pjsip_info_empty
360 --------------------
361  * A new module that can respond to empty Content-Type INFO packets during call.
362    Some SBCs will terminate a call if their empty INFO packets are not responded
363    to within a predefined time.
364
365 res_pjsip_outbound_registration
366 -------------------------------
367 * A new 'fatal_retry_interval' option has been added to outbound registration.
368   When set (default is zero), and upon receiving a failure response to an
369   outbound registration, registration is retried at the given interval up to
370   'max_retries'.
371
372 res_pjsip_outbound_publish
373 ------------------
374  * Added a new multi_user option that when set to 'yes' allows a given configuration
375    to be used for multiple users.
376
377
378 CEL Backends
379 ------------------
380
381 cel_pgsql
382 ------------------
383  * Added a new option, 'usegmtime', which causes timestamps in CEL events
384    to be logged in GMT.
385
386  * Added support to set schema where located the table cel. This settings is
387    configurable for cel_pgsql via the 'schema' in configuration file
388    cel_pgsql.conf.
389
390
391 CDR Backends
392 ------------------
393
394 cdr_adaptive_odbc
395 ------------------
396  * Added the ability to set the character to quote identifiers. This
397    allows adding the character at the start and end of table and column
398    names. This setting is configurable for cdr_adaptive_odbc via the
399    quoted_identifiers in configuration file cdr_adaptive_odbc.conf.
400
401 cdr_odbc
402 ------------------
403  * Added a new configuration option, "newcdrcolumns", which enables use of the
404    post-1.8 CDR columns 'peeraccount', 'linkedid', and 'sequence'.
405
406 cdr_csv
407 ------------------
408  * Added a new configuration option, "newcdrcolumns", which enables use of the
409    post-1.8 CDR columns 'peeraccount', 'linkedid', and 'sequence'.
410
411
412 ------------------------------------------------------------------------------
413 --- Functionality changes from Asterisk 13.10.0 to Asterisk 13.11.0 ----------
414 ------------------------------------------------------------------------------
415
416 chan_dahdi
417 ------------------
418  * Added "faxdetect_timeout" option.
419    The option determines how many seconds into a call before faxdetect
420    is disabled for the call.  Setting the value to zero disables the timeout.
421
422 res_pjsip
423 ------------------
424  * Added "fax_detect_timeout" to endpoint.
425    The option determines how many seconds into a call before fax_detect
426    is disabled for the call.  Setting the value to zero disables the timeout.
427
428  * Added "subscribe_context" to endpoint.
429    If specified, incoming SUBSCRIBE requests will be searched for the matching
430    extension in the indicated context. If no "subscribe_context" is specified,
431    then the "context" setting is used.
432
433 res_rtp_asterisk
434 ------------------
435  * The DTLS part in Asterisk now supports Perfect Forward Secrecy (PFS).
436    Enabling PFS is attempted by default, and is dependent on the configuration
437    of the module using TLS.
438    - Ephemeral ECDH (ECDHE) is enabled by default. To disable it, do not
439      specify a ECDHE cipher suite in sip.conf, for example:
440        dtlscipher=AES128-SHA
441    - Ephemeral DH (DHE) is disabled by default. To enable it, add DH parameters
442      into the private key file, e.g., sip.conf dtlsprivatekey. For example:
443        openssl dhparam -out ./dh.pem 2048
444    - Because clients expect the server to prefer PFS, and because OpenSSL sorts
445      its cipher suites by bit strength, see "openssl ciphers -v DEFAULT".
446      Consider re-ordering your cipher suites in the respective configuration
447      file. For example:
448        dtlscipher=ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256
449      which forces PFS and requires at least DTLS 1.2.
450
451 ------------------------------------------------------------------------------
452 --- Functionality changes from Asterisk 13.9.0 to Asterisk 13.10.0 -----------
453 ------------------------------------------------------------------------------
454
455 Core
456 ------------------
457  * A channel variable FORWARDERNAME is now set which indicates which channel
458    was responsible for a forwarding requests received on dial attempt.
459
460 func_odbc
461 ------------------
462  * Added new global option "single_db_connection".
463    Enabling this option func_odbc will use a single database connection per DSN.
464    This option is enabled by default.
465
466 res_fax
467 ------------------
468  * Added FAXMODE variable to let dialplan know what fax transport was used.
469    FAXMODE variable is set to either "audio" or "T38".
470
471 res_pjsip
472 ------------------
473  * Added "via_addr", "via_port", "call_id" to contacts.
474    As res_pjsip_nat rewrites contact's address, only the last Via header
475    can contain the source address of registered endpoint.
476    Also Call-Id header may contain the source address of registered endpoint.
477    Added new fields ViaAddress,CallID to AMI event ContactStatus
478
479  * Endpoint IP Access Controls
480    Added new configuration Endpoint options:
481     "acl" - list of IP ACL section names in acl.conf
482     "deny" - List of IP addresses to deny access from
483     "permit" - List of IP addresses to permit access from
484     "contact_acl" - List of Contact ACL section names in acl.conf
485     "contact_deny" - List of Contact header addresses to deny
486     "contact_permit" - List of Contact header addresses to permit
487
488  * Added "reg_server" to contacts.
489    If the Asterisk system name is set in asterisk.conf, it will be stored
490    into the "reg_server" field in the ps_contacts table to facilitate
491    multi-server setups.
492
493  * When starting Asterisk, received traffic will now be ignored until Asterisk
494    has loaded all modules and is fully booted.
495
496 res_hep
497 ------------------
498  * Added a new option, 'uuid_type', that sets the preferred source of the Homer
499    correlation UUID. The valid options are:
500    - call-id: Use the PJSIP SIP Call-ID header value
501    - channel: Use the Asterisk channel name
502    The default value is 'call-id'. In the event that a HEP module cannot find a
503    valid value using the specified 'uuid_type', the module may fallback to a
504    more readily available source for the correlation UUID.
505
506 res_odbc
507 ------------------
508  * A new option has been added, 'max_connections', which sets the maximum number
509    of concurrent connections to the database. This option defaults to 1 which
510    returns the behavior to that of Asterisk 13.7 and prior.
511
512 app_confbridge
513 ------------------
514  * Added a bridge profile option called regcontext that allows you to
515    dynamically register the conference bridge name as an extension into
516    the specified context.  This allows tracking down conferences on multi-
517    server installations via alternate means (DUNDI for example). By default
518    this feature is not used.
519
520 Codecs
521 ------------------
522  * Added the associated format name to 'core show codecs'.
523
524 res_ari_channels
525 ------------------
526  * Added 'formats' to channel create/originate to allow setting the allowed
527    formats for a channel when no originator channel is available.  Especially
528    useful for Local channel creation where no other format information is
529    available.  'core show codecs' can now be used to look up suitable format
530    names.
531
532 ------------------------------------------------------------------------------
533 --- Functionality changes from Asterisk 13.8.0 to Asterisk 13.9.0 ------------
534 ------------------------------------------------------------------------------
535
536 res_parking:
537  - The dynamic parking lot creation channel variables PARKINGDYNAMIC,
538    PARKINGDYNCONTEXT, PARKINGDYNEXTEN, and PARKINGDYNPOS are now looked
539    for in the parker's channel instead of the parked channel.  This is only
540    of significance if the parker uses blind transfer or the DTMF one-step
541    parking feature.  You need to use the double underscore '__' inheritance
542    for these variables.  The indefinite inheritance is also recommended
543    for the PARKINGEXTEN variable.
544
545 res_pjsip
546 ------------------
547  * Added new global option (disable_multi_domain) to pjsip.
548    Disabling Multi Domain can improve realtime performace by reducing
549    number of database requsts.
550
551 chan_pjsip
552 ------------------
553  * Added 'pjsip show channelstats' CLI command.
554
555 res_pjsip_outbound_publish
556 ------------------
557  * Added support for setting the transport used on outbound publish
558    using the transport configuration option.
559
560 ------------------------------------------------------------------------------
561 --- Functionality changes from Asterisk 13.7.0 to Asterisk 13.8.0 ------------
562 ------------------------------------------------------------------------------
563
564 res_pjsip_caller_id
565 ------------------
566  * Per RFC3325, the 'From' header is now anonymized on outgoing calls when
567    caller id presentation is prohibited.
568
569 res_pjsip_config_wizard
570 ------------------
571  * A new command (pjsip export config_wizard primitives) has been added that
572    will export all the pjsip objects it created to the console or a file
573    suitable for reuse in a pjsip.conf file.
574
575 Build System
576 ------------------
577  * To help insure that Asterisk is compiled and run with the same known
578    version of pjproject, a new option (--with-pjproject-bundled) has been
579    added to ./configure.  When specified, the version of pjproject specified
580    in third-party/versions.mak will be downloaded and configured.  When you
581    make Asterisk, the build process will also automatically build pjproject
582    and Asterisk will be statically linked to it.  Once a particular version
583    of pjproject is configured and built, it won't be configured or built
584    again unless you run a 'make distclean'.
585
586    To facilitate testing, when 'make install' is run, the pjsua and pjsystest
587    utilities and the pjproject python bindings will be installed in
588    ASTDATADIR/third-party/pjproject.
589
590    The default behavior remains building with the shared pjproject
591    installation, if any.
592
593 app_confbridge
594 ------------------
595  * Added CONFBRIDGE_INFO(muted,) for querying the muted conference state.
596
597  * Added Muted header to AMI ConfbridgeListRooms action response list events
598    to indicate the muted conference state.
599
600  * Added Muted column to CLI "confbridge list" output to indicate the muted
601    conference state and made the locked column a yes/no value instead of a
602    locked/unlocked value.
603
604 REDIRECTING(reason)
605 ------------------
606  * The REDIRECTING(reason) value is now treated consistently between
607    chan_sip and chan_pjsip.
608
609    Both channel drivers match incoming reason values with values documented
610    by REDIRECTING(reason) and values documented by RFC5806 regardless of
611    whether they are quoted or not.  RFC5806 values are mapped to the
612    equivalent REDIRECTING(reason) documented value and is set in
613    REDIRECTING(reason).  e.g., an incoming RFC5806 'unconditional' value or a
614    quoted string version ('"unconditional"') is converted to
615    REDIRECTING(reason)'s 'cfu' value.  The user's dialplan only needs to deal
616    with 'cfu' instead of any of the aliases.
617
618    The incoming 480 response reason text supported by chan_sip checks for
619    known reason values and if not matched then puts quotes around the reason
620    string and assigns that to REDIRECTING(reason).
621
622    Both channel drivers send outgoing known REDIRECTING(reason) values as the
623    unquoted RFC5806 equivalent.  User custom values are either sent as is or
624    with added quotes if SIP doesn't allow a character within the value as
625    part of a RFC3261 Section 25.1 token.  Note that there are still
626    limitations on what characters can be put in a custom user value.  e.g.,
627    embedding quotes in the middle of the reason string is just going to cause
628    you grief.
629
630  * Setting a REDIRECTING(reason) value now recognizes RFC5806 aliases.
631    e.g., Setting REDIRECTING(reason) to 'unconditional' is converted to the
632    'cfu' value.
633
634 res_pjproject
635 ------------------
636  * This module is the successor of res_pjsip_log_forwarder.  As well as
637    handling the log forwarding (which now displays as 'pjproject:0' instead
638    of 'pjsip:0'), it also adds a 'pjproject show buildopts' command to the CLI.
639    This displays the compiled-in options of the pjproject installation
640    Asterisk is currently running against.
641
642  * Another feature of this module is the ability to map pjproject log levels
643    to Asterisk log levels, or to suppress the pjproject log messages
644    altogether.  Many of the messages emitted by pjproject itself are the result
645    of errors which Asterisk will ultimately handle so the messages can be
646    misleading or just noise.  A new config file (pjproject.conf) has been added
647    to configure the mapping and a new CLI command (pjproject show log mappings)
648    has been added to display the mappings currently in use.
649
650 res_pjsip
651 ------------------
652  * Transports are now reloadable.  In testing, no in-progress calls were
653    disrupted if the ip address or port weren't changed, but the possibility
654    still exists.  To make sure there are no unintentional drops, a new option
655    'allow_reload', which defaults to 'no' has been added to transport.  If
656    left at the default, changes to the particular transport will be ignored.
657    If set to 'yes', changes (if any) will be applied.
658
659  * Added new global option (regcontext) to pjsip. When set, Asterisk will
660    dynamically create and destroy a NoOp priority 1 extension
661    for a given endpoint who registers or unregisters with us.
662
663  * Endpoints and aors can now be identified by the username and realm in an
664    incoming Authorization header.  To use this feature, add "auth_username"
665    to your endpoint's "identify_by" list.  You can combine "auth_username"
666    and the original "username" to test both the From/To and Authorization
667    headers.  For endpoints, the order is controlled by the global
668    "endpoint_identifier_order" setting.  For matching aors to an endpoint
669    for inbound registration, the order is controlled by this option.
670
671  * In conjunction with the "auth_username" change, 3 new options have been
672    added to the global configuration object that control how many unidentified
673    requests over a certain period from the same IP address can be received
674    before a security altert is generated.  A new CLI command
675    "pjsip show unidentified_requests" will list the current candidates.
676
677 res_pjsip_history
678 ------------------
679  * A new module, res_pjsip_history, has been added that provides SIP history
680    viewing/filtering from the CLI. The module is intended to be used on systems
681    with busy SIP traffic, where existing forms of viewing SIP messages - such
682    as the res_pjsip_logger - may be inadequate. The module provides two new
683    CLI commands:
684    - 'pjsip set history {on|off|clear}' - this enables/disables SIP history
685      capturing, as well as clears an existing history capture. Note that SIP
686      packets captured are stored in memory until cleared. As a result, the
687      history capture should only be used for debugging/viewing purposes, and
688      should *NOT* be left permanently enabled on a system.
689    - 'pjsip show history' - displays the captured SIP history. When invoked
690      with no options, the entire captured history is displayed. Two options
691      are available:
692      -- 'entry <num>' - display a detailed view of a single SIP message in
693         the history
694      -- 'where ...' - filter the history based on some expression. For more
695         information on filtering, view the current CLI help for the
696         'pjsip show history' command.
697
698 Voicemail
699 ------------------
700  * app_voicemail and res_mwi_external can now be built together.  The default
701    remains to build app_voicemail and not res_mwi_external but if they are
702    both built, the load order will cause res_mwi_external to load first and
703    app_voicemail will be skipped.  Use 'preload=app_voicemail.so' in
704    modules.conf to force app_voicemail to be the voicemail provider.
705
706 res_pjsip_sdp_rtp
707 ------------------
708  * A new option (bind_rtp_to_media_address) has been added to endpoint which
709    will cause res_pjsip_sdp_rtp to actually bind the RTP instance to the
710    media_address as well as using it in the SDP.  If set, RTP packets will now
711    originate from the media address instead of the operating system's "primary"
712    ip address.
713
714 res_rtp_asterisk
715 ------------------
716  * A new configuration section - ice_host_candidates - has been added to
717    rtp.conf, allowing automatically discovered ICE host candidates to be
718    overriden. This allows an Asterisk server behind a 1:1 NAT to send its
719    external IP as a host candidate rather than relying on STUN to discover it.
720
721 ------------------------------------------------------------------------------
722 --- Functionality changes from Asterisk 13.6.0 to Asterisk 13.7.0 ------------
723 ------------------------------------------------------------------------------
724
725 Codecs
726 ------------------
727  * Added format attribute negotiation for the VP8 video codec. Format attribute
728    negotiation is provided by the res_format_attr_vp8 module.
729
730 ConfBridge
731 ------------------
732  * A new "timeout" user profile option has been added. This configures the number
733    of seconds that a participant may stay in the ConfBridge after joining. When
734    the time expires, the user is ejected from the conference and CONFBRIDGE_RESULT
735    is set to "TIMEOUT" on the channel.
736
737 chan_sip
738 ------------------
739  * The websockets_enabled option has been added to the general section of
740    sip.conf.  The option is enabled by default to match the previous behavior.
741    The option should be disabled when using res_pjsip_transport_websockets to
742    ensure chan_sip will not conflict with PJSIP websockets.
743
744 Dialplan Functions
745 ------------------
746  * The HOLD_INTERCEPT dialplan function now actually exists in the source tree.
747    While support for the events was added in Asterisk 13.4.0, the function
748    accidentally never made it in. That function is now present, and will cause
749    the 'hold' raised by a channel to be intercepted and converted into an
750    event instead.
751
752 res_pjsip_outbound_registration
753 -------------------------------
754  * If res_statsd is loaded and a StatsD server is configured, basic statistics
755    regarding the state of outbound registrations will now be emitted. This
756    includes:
757    - A GAUGE statistic for the overall number of outbound registrations, i.e.:
758        PJSIP.registrations.count
759    - A GAUGE statistic for the overall number of outbound registrations in a
760      particular state, e.g.:
761        PJSIP.registrations.state.Registered
762
763 res_pjsip
764 ------------------
765  * The ability to use "like" has been added to the pjsip list and show
766    CLI commands.  For instance: CLI> pjsip list endpoints like abc
767
768  * If res_statsd is loaded and a StatsD server is configured, basic statistics
769    regarding the state of PJSIP contacts will now be emitted. This includes:
770    - A GAUGE statistic for the overall number of contacts in a particular
771      state, e.g.:
772        PJSIP.contacts.states.Reachable
773    - A TIMER statistic for the RTT time for each qualified contact, e.g.:
774        PJSIP.contacts.alice@@127.0.0.1:5061.rtt
775
776 res_sorcery_memory_cache
777 ------------------------
778  * A new caching strategy, full_backend_cache, has been added which caches
779    all stored objects in the backend. When enabled all objects will be
780    expired or go stale according to the configuration. As well when enabled
781    all retrieval operations will be performed against the cache instead of
782    the backend.
783
784 func_callerid
785 -------------------
786  * CALLERID(pres) is now documented as a valid alternative to setting both
787    CALLERID(name-pres) and CALLERID(num-pres) at once.  Some channel drivers,
788    like chan_sip, don't make a distinction between the two: they take the
789    least public value from name-pres and num-pres.  By using CALLERID(pres)
790    for reading and writing, you touch the same combined value in the dialplan.
791    The same applies to CONNECTEDLINE(pres), REDIRECTING(orig-pres),
792    REDIRECTING(to-pres) and REDIRECTING(from-pres).
793
794 res_endpoint_stats
795 -------------------
796  * A new module that emits StatsD statistics regarding Asterisk endpoints.
797    This includes a total count of the number of endpoints, the count of the
798    number of endpoints in the technology agnostic state of the endpoint -
799    online or offline - as well as the number of channels associated with each
800    endpoint. These are recorded as three different GAUGE statistics:
801     - endpoints.count
802     - endpoints.state.{unknown|offline|online}
803     - endpoints.{tech}.{resource}.channels
804
805
806 ------------------------------------------------------------------------------
807 --- Functionality changes from Asterisk 13.5.0 to Asterisk 13.6.0 ------------
808 ------------------------------------------------------------------------------
809
810 Dialplan Functions
811 ------------------
812  * The CHANNEL function, when used on a PJSIP channel, now exposes a 'call-id'
813    extraction option when using with the 'pjsip' signalling option. It will
814    return the SIP Call-ID associated with the INVITE request that established
815    the PJSIP channel.
816
817 ARI
818 ------------------
819  * Two new endpoint related events are now available: PeerStatusChange and
820    ContactStatusChange. In particular, these events are useful when subscribing
821    to all event sources, as they provide additional endpoint related
822    information beyond the addition/removal of channels from an endpoint.
823
824  * Added the ability to subscribe to all ARI events in Asterisk, regardless
825    of whether the application 'controls' the resource. This is useful for
826    scenarios where an ARI application merely wants to observe the system,
827    as opposed to control it. There are two ways to accomplish this:
828    (1) Via the WebSocket connection URI. A new query paramter, 'subscribeAll',
829        has been added that, when present and True, will subscribe all
830        specified applications to all ARI event sources in Asterisk.
831    (2) Via the applications resource. An ARI client can, at any time, subscribe
832        to all resources in an event source merely by not providing an explicit
833        resource. For example, subscribing to an event source of 'channels:'
834        as opposed to 'channels:12345' will subscribe the application to all
835        channels.
836
837 ------------------------------------------------------------------------------
838 --- Functionality changes from Asterisk 13.4.0 to Asterisk 13.5.0 ------------
839 ------------------------------------------------------------------------------
840
841 AMI
842 ------------------
843  * A new ContactStatus event has been added that reflects res_pjsip contact
844    lifecycle changes:  Created, Removed, Reachable, Unreachable, Unknown.
845
846  * Added the Linkedid header to the common channel headers listed for each
847    channel in AMI events.
848
849 ARI
850 ------------------
851  * A new feature has been added that enables the retrieval of modules and
852    module information through an HTTP request. Information on a single module
853    can be also be retrieved. Individual modules can be loaded to Asterisk, as
854    well as unloaded and reloaded.
855
856 * A new resource has been added to the 'asterisk' resource, 'config/dynamic'.
857    This resource allows for push configuration of sorcery derived objects
858    within Asterisk. The resource supports creation, retrieval, updating, and
859    deletion. Sorcery derived objects that are manipulated by this resource
860    must have a sorcery wizard that supports the desired operations.
861
862  * A new feature has been added that allows for the rotation of log channels
863    through HTTP requests.
864
865
866 res_pjsip
867 ------------------
868 * A new 'g726_non_standard' endpoint option has been added that, when set to
869   'yes' and g.726 audio is negotiated, forces the codec to be treated as if it
870   is AAL2 packed on the channel.
871
872 * A new 'rtp_keepalive' endpoint option has been added. This option specifies
873   an interval, in seconds, at which we will send RTP comfort noise packets to
874   the endpoint. This functions identically to chan_sip's "rtpkeepalive" option.
875
876 * New 'rtp_timeout' and 'rtp_timeout_hold' endpoint options have been added.
877   These options specify the amount of time, in seconds, that Asterisk will wait
878   before terminating the call due to lack of received RTP. These are identical
879   to chan_sip's rtptimeout and rtpholdtimeout options.
880
881 ------------------------------------------------------------------------------
882 --- Functionality changes from Asterisk 13.3.0 to Asterisk 13.4.0 ------------
883 ------------------------------------------------------------------------------
884
885 chan_pjsip
886 ------------------
887  * New 'rpid_immediate' option to control if connected line update information
888    goes to the caller immediately or waits for another reason to send the
889    connected line information update.  See the online option documentation for
890    more information.  Defaults to 'no' as setting it to 'yes' can result in
891    many unnecessary messages being sent to the caller.
892
893  * The configuration setting 'progressinband' now defaults to 'no', which
894    matches the actual behavior of previous versions.
895
896 res_pjsip
897 ------------------
898  * A new CLI command has been added: "pjsip show settings", which shows
899    both the global and system configuration settings.
900
901  * A new aor option has been added: "qualify_timeout", which sets the timeout
902    in seconds for a qualify.  The default is 3 seconds.  This overrides the
903    hard coded 32 seconds in pjproject.
904
905  * Endpoint status will now change to "Unreachable" when all contacts are
906    unavailable.  When any contact becomes available, the endpoint will status
907    will change back to "Reachable".
908
909  * A new global option has been added: "max_initial_qualify_time", which
910    sets the maximum amount of time from startup that qualifies should be
911    attempted on all contacts.
912
913 res_ari_channels
914 ------------------
915  * Two new events, 'ChannelHold' and 'ChannelUnhold', have been added to the
916    events data model. These events are raised when a channel indicates a hold
917    or unhold, respectively.
918
919 func_holdintercept
920 ------------------
921  * A new dialplan function, HOLD_INTERCEPT, has been added. This function, when
922    placed on a channel, intercepts hold/unhold indications signalled by the
923    channel and prevents them from moving on to other channels in a bridge with
924    the hold initiator. Instead, AMI or ARI events are raised indicating that
925    the channel wanted to place someone on hold. This allows external
926    applications to implement their own custom hold/unhold logic.
927
928 ------------------------------------------------------------------------------
929 --- Functionality changes from Asterisk 13.2.0 to Asterisk 13.3.0 ------------
930 ------------------------------------------------------------------------------
931
932 chan_pjsip/app_transfer
933 ------------------
934  * The Transfer application, when used with chan_pjsip, now supports using
935    a PJSIP endpoint as the transfer destination. This is in addition to
936    explicitly specifying a SIP URI to transfer to.
937
938 res_ari_channels
939 ------------------
940  * The ARI /channels resource now supports a new operation, 'redirect'. The
941    redirect operation will perform a technology and state specific redirection
942    on the channel to a specified endpoint or destination. In the case of SIP
943    technologies, this is either a 302 Redirect response to an on-going INVITE
944    dialog or a SIP REFER request.
945
946 res_pjsip
947 ------------------
948  * A new 'endpoint_identifier_order' option has been added that allows one to
949    set the order by which endpoint identifiers are processed and checked. This
950    option is specified under the 'global' type configuration section.
951
952 ------------------------------------------------------------------------------
953 --- Functionality changes from Asterisk 13.1.0 to Asterisk 13.2.0 ------------
954 ------------------------------------------------------------------------------
955
956  * New 'PJSIP_AOR' and 'PJSIP_CONTACT' dialplan functions have been added which
957    allow examining PJSIP AORs or contacts from the dialplan.
958
959 res_pjsip_outbound_registration
960 ------------------
961  * The 'pjsip send unregister' command now stops further registrations.
962
963  * A new command 'pjsip send register' has been added which allows you to
964    start or restart periodic registration.  It can be used after a
965    'send unregister' or after a 401 permanent error.
966
967 res_pjsip_config_wizard
968 ------------------
969  * This is a new module that adds streamlined configuration capability for
970    chan_pjsip.  It's targeted at users who have lots of basic configuration
971    scenarios like 'phone' or 'agent' or 'trunk'.  Additional information
972    can be found in the sample configuration file at
973    config/samples/pjsip_wizard.conf.sample.
974
975 res_fax
976 -----------
977  * The T.38 negotiation timeout was previously hard coded at 5000 milliseconds
978    and is now configurable via the 't38timeout' configuration option in
979    res_fax.conf and via the fax options dialplan function 'FAXOPT(t38timeout)'.
980    The default remains at 5000 milliseconds.
981
982 PJSIP Transports
983 ----------
984  * The ca_list_path transport parameter has been added for TLS transports. This
985    option behaves similarly to the old sip.conf option "tlscapath". In order to
986    use this, you must be using PJProject version 2.4 or higher.
987
988 ARI
989 ------------------
990  * The Originate operation now takes in an originator channel. The linked ID of
991    this originator channel is applied to the newly originated outgoing channel.
992    If using CEL this allows an association to be established between the two so
993    it can be recognized that the originator is dialing the originated channel.
994
995  * "language" (the default spoken language for the channel) is now included in
996    the standard channel state output for suitable events.
997
998  * The POST channels/{id} operation and the POST channels/{id}/continue operation
999    now have a new "label" parameter. This allows for origination or continuation
1000    to a labeled priority in the dialplan instead of requiring a specific priority
1001    number. The ARI version has been bumped to 1.7.0 as a result.
1002
1003 AMI
1004 ------------------
1005  * "Language" (the default spoken language for the channel) is now included in
1006    the standard channel state output for suitable events.
1007
1008  * AMI actions that return a list of events have been made to return consistent
1009    headers for the action response event starting the list and the list complete
1010    event.  The AMI version has been bumped to 2.7.0 as a result.
1011
1012 ------------------------------------------------------------------------------
1013 --- Functionality changes from Asterisk 13.0.0 to Asterisk 13.1.0 ------------
1014 ------------------------------------------------------------------------------
1015
1016 AMI
1017 ------------------
1018  * Event NewConnectedLine is emitted when the connected line information on
1019    a channel changes.
1020
1021 ARI
1022 ------------------
1023  * Event ChannelConnectedLine is emitted when the connected line information
1024    on a channel changes.
1025
1026 Core Transfers
1027 -----------------
1028
1029 The features.conf general section has three new configurable options:
1030     * transferdialattempts
1031     * transferretrysound
1032     * transferinvalidsound
1033 For more information on what these options do, see the Asterisk wiki:
1034  https://wiki.asterisk.org/wiki/x/W4fAAQ
1035
1036 Channel Drivers
1037 ------------------
1038
1039 chan_pjsip
1040 ------------------
1041  * New 'media_encryption_optimistic' endpoint setting. This will use SRTP
1042    when possible but does not consider lack of it a failure.
1043
1044 res_pjsip_endpoint_identifer_ip
1045 ------------------
1046  * New CLI commands have been added: "pjsip show identif(y|ies)", which lists
1047    all configured PJSIP identify objects
1048    
1049 ------------------------------------------------------------------------------
1050 --- Functionality changes from Asterisk 12 to Asterisk 13 --------------------
1051 ------------------------------------------------------------------------------
1052
1053 Overview
1054 ------------------
1055
1056 Asterisk 13 is the next Long Term Support (LTS) release of Asterisk. As such,
1057 the focus of development for this release of Asterisk was on improving the
1058 usability and features developed in the previous Standard release, Asterisk 12.
1059 Beyond a general refinement of end user features, development focussed heavily
1060 on the Asterisk APIs - the Asterisk Manager Interface (AMI) and the Asterisk
1061 REST Interface (ARI) - and the PJSIP stack in Asterisk. Some highlights of the
1062 new features include:
1063
1064 * Asterisk security events are now provided via AMI, allowing end users to
1065   monitor their Asterisk system in real time for security related issues.
1066 * External control of Message Waiting Indicators (MWI) through both AMI and ARI.
1067 * Reception/transmission of out of call text messages using any supported
1068   channel driver/protocol stack through ARI.
1069 * Resource List Server support in the PJSIP stack, providing subscriptions to
1070   lists of resources and batched delivery of NOTIFY requests.
1071 * Inter-Asterisk distributed device state and mailbox state using the PJSIP
1072   stack.
1073
1074 It is important to note that Asterisk 13 is built on the architecture developed
1075 during the previous Standard release, Asterisk 12. Users upgrading to
1076 Asterisk 13 should read about the new features in Asterisk 12 later in this file
1077 (see Functionality changes from Asterisk 11 to Asterisk 12), as well as the
1078 UPGRADE-12.txt delivered with this release. In particular, users upgrading to
1079 Asterisk 13 from a release prior to Asterisk 12 should read the specifications
1080 on AMI, CDRs, and CEL on the Asterisk wiki:
1081  * AMI - https://wiki.asterisk.org/wiki/x/dAFRAQ
1082  * CEL - https://wiki.asterisk.org/wiki/x/4ICLAQ
1083  * CDRs - https://wiki.asterisk.org/wiki/x/pwpRAQ
1084
1085 Many new featuers in Asterisk 13 were introduced in point releases of
1086 Asterisk 12. Following this section - which documents the changes from all
1087 versions of Asterisk 12 to Asterisk 13 - users should examine the new features
1088 that were introduced in the point releases of Asterisk 12, as they are also
1089 included in Asterisk 13.
1090
1091 Finally, all users upgrading to Asterisk 13 should read the UPGRADE.txt file
1092 delivered with this release.
1093
1094
1095 Build System
1096 ------------------
1097  * Sample config files have been moved from configs/ to a sub-folder of that
1098    directory, samples.
1099
1100  * The menuselect utility has been pulled into the Asterisk repository. As a
1101    result, the libxml2 development library is now a required dependency for
1102    Asterisk.
1103
1104  * A new Compiler Flag, REF_DEBUG, has been added. When enabled, reference
1105    counted objects will emit additional debug information to the refs log file
1106    located in the standard Asterisk log file directory. This log file is useful
1107    in tracking down object leaks and other reference counting issues. Prior to
1108    this version, this option was only available by modifying the source code
1109    directly. This change also includes a new script, refcounter.py, in the
1110    contrib folder that will process the refs log file. Note that this replaces
1111    the refcounter utility that could be built from the utils directory.
1112
1113
1114 Applications
1115 ------------------
1116
1117 DahdiBarge
1118 ------------------
1119  * This module was deprecated and has been removed. Users of app_dahdibarge
1120    should use ChanSpy instead.
1121
1122 MixMonitor
1123 ------------------
1124  * New options to play a beep when starting a recording and stopping a recording
1125    have been added.  The option "p" will play a beep to the channel that starts
1126    the recording.  The option "P" will play a beep to the channel that stops the
1127    recording.
1128
1129 Queue
1130 ------------------
1131  * Queue rules can now be stored in a database table, queue_rules. Unlike other
1132    RealTime tables, the queue_rules table is only examined on module load or
1133    module reload. A new general setting has been added to queuerules.conf,
1134    'realtime_rules', which, when set to 'yes', will cause app_queue to look in
1135    RealTime for additional queue rules to parse. Note that both the file and
1136    the database can be used as a provide of queue rules when 'realtime_rules'
1137    is set to 'yes'.
1138
1139    When app_queue is reloaded, all rules are re-parsed and loaded into memory.
1140    There is no caching of RealTime queue rules.
1141
1142 ReadFile
1143 ------------------
1144  * This module was deprecated and has been removed. Users of app_readfile
1145    should use func_env's FILE function instead.
1146
1147 Say
1148 ------------------
1149  * The 'say' family of dialplan applications now support the Japanese
1150    language. The 'language' parameter in say.conf now recognizes a setting of
1151    'ja', which will enable Japanese language specific mechanisms for playing
1152    back numbers, dates, and other items.
1153  * Counting, enumeration and dates now supports Icelandic grammar with the
1154    'language' parameter set to 'is'.
1155
1156 SayCountPL
1157 ------------------
1158  * This module was deprecated and has been removed. Users of app_saycountpl
1159    should use the Say family of applications.
1160
1161 SetMusicOnHold
1162 ------------------
1163  * The SetMusicOnHold dialplan application was deprecated and has been removed.
1164    Users of the application should use the CHANNEL function's musicclass
1165    setting instead.
1166
1167 WaitMusicOnHold
1168 ------------------
1169  * The WaitMusicOnHold dialplan application was deprecated and has been
1170    removed. Users of the application should use MusicOnHold with a duration
1171    parameter instead.
1172
1173 VoiceMail
1174 ------------------
1175  * VoiceMail and VoiceMailMain now support the Japanese language. The
1176    'language' parameter in voicemail.conf now recognizes a setting of 'ja',
1177    which will enable prompts to be played back using a Japanese grammatical
1178    structure. Additional prompts are necessary for this functionality,
1179    including:
1180    - jb-arimasu: there is
1181    - jb-arimasen: there is not
1182    - jb-oshitekudasai: please press
1183    - jb-ni: article ni
1184    - jb-ga: article ga
1185    - jb-wa: article wa
1186    - jb-wo: article wo
1187
1188  * Add the ability to specify multiple email addresses in configuration,
1189    separated by a |.
1190
1191
1192 CDR Backends
1193 ------------------
1194
1195 cdr_sqlite
1196 -----------------
1197  * This module was deprecated and has been removed. Users of cdr_sqlite
1198    should use cdr_sqlite3_custom.
1199
1200 cdr_pgsql
1201 ------------------
1202  * Added the ability to support PostgreSQL application_name on connections.
1203    This allows PostgreSQL to display the configured name in the
1204    pg_stat_activity view and CSV log entries. This setting is configurable
1205    for cdr_pgsql via the appname configuration setting in cdr_pgsql.conf.
1206
1207
1208 CEL Backends
1209 ------------------
1210
1211 cel_pgsql
1212 ------------------
1213  * Added the ability to support PostgreSQL application_name on connections.
1214    This allows PostgreSQL to display the configured name in the
1215    pg_stat_activity view and CSV log entries. This setting is configurable
1216    for cel_pgsql via the appname configuration setting in cel_pgsql.conf.
1217
1218
1219 Channel Drivers
1220 ------------------
1221
1222 chan_dahdi
1223 ------------------
1224  * SS7 support now requires libss7 v2.0 or later.
1225
1226  * Added SS7 support for connected line and redirecting.
1227
1228  * Most SS7 CLI commands are reworked as well as new SS7 commands added.
1229    See online CLI help.
1230
1231  * Added several SS7 config option parameters described in
1232    chan_dahdi.conf.sample.
1233
1234 chan_gtalk
1235 ------------------
1236  * This module was deprecated and has been removed. Users of chan_gtalk
1237    should use chan_motif.
1238
1239 chan_h323
1240 ------------------
1241  * This module was deprecated and has been removed. Users of chan_h323
1242    should use chan_ooh323.
1243
1244 chan_jingle
1245 ------------------
1246  * This module was deprecated and has been removed. Users of chan_jingle
1247    should use chan_motif.
1248
1249 chan_pjsip
1250 ------------------
1251  * Added the CLI command 'pjsip list ciphers' so a user can know what
1252    OpenSSL names are available on their system for the pjsip.conf cipher
1253    option.
1254
1255 chan_sip
1256 ------------------
1257  * The SIPPEER dialplan function no longer supports using a colon as a
1258    delimiter for parameters. The parameters for the function should be
1259    delimited using a comma.
1260
1261  * The SIPCHANINFO dialplan function was deprecated and has been removed. Users
1262    of the function should use the CHANNEL function instead.
1263
1264
1265 Core
1266 ------------------
1267
1268 Account Codes
1269 ------------------
1270  * Added functional peeraccount support.  Except for Queue, the
1271    accountcode propagation is now consistently propagated to outgoing
1272    channels before dialing.  The channel accountcode can change from its
1273    original non-empty value on channel creation for the following specific
1274    reasons.  One, dialplan sets it using CHANNEL(accountcode).  Two, an
1275    originate method that can specify an accountcode value.  Three, the
1276    calling channel propagates its peeraccount or accountcode to the
1277    outgoing channel's accountcode before dialing.  The change has two
1278    visible effects.  One, local channels now cross accountcode and
1279    peeraccount across the special bridge between the ;1 and ;2 channels
1280    just like channels between normal bridges.  Two, the
1281    CHANNEL(peeraccount) value can now be set before Dial and FollowMe to
1282    set the accountcode on the outgoing channel(s).
1283
1284    For Queue, an outgoing channel's non-empty accountcode will not change
1285    unless explicitly set by CHANNEL(accountcode).  The change has three
1286    visible effects.  One, local channels now cross accountcode and
1287    peeraccount across the special bridge between the ;1 and ;2 channels
1288    just like channels between normal bridges.  Two, the queue member will
1289    get an accountcode if it doesn't have one and one is available from the
1290    calling channel's peeraccount.  Three, accountcode propagation includes
1291    local channel members where the accountcodes are propagated early
1292    enough to be available on the ;2 channel.
1293
1294 AMI
1295 ------------------
1296  * New DeviceStateChanged and PresenceStateChanged AMI events have been added.
1297    These events are emitted whenever a device state or presence state change
1298    occurs. The events are controlled by res_manager_device_state.so and
1299    res_manager_presence_state.so. If the high frequency of these events is
1300    problematic for you, do not load these modules.
1301
1302  * Added DialplanExtensionAdd and DialplanExtensionRemove AMI commands. They
1303    work in basically the same way as the 'dialplan add extension' and
1304    'dialplan remove extension' CLI commands respectively.
1305
1306  * New AMI action LoggerRotate reloads and rotates logger in the same manner
1307    as CLI command 'logger rotate'
1308
1309  * New AMI Actions FAXSessions, FAXSession, and FAXStats replicate the
1310    functionality of CLI commands 'fax show sessions', 'fax show session',
1311    and fax show stats' respectively.
1312
1313  * New AMI actions PRIDebugSet, PRIDebugFileSet, and PRIDebugFileUnset
1314    enable manager control over PRI debugging levels and file output.
1315
1316  * AMI action PJSIPNotify may now send to a URI instead of only to a PJSIP
1317    endpoint as long as a default outbound endpoint is set. This also applies
1318    to the equivalent CLI command (pjsip send notify)
1319
1320  * The AMI action PJSIPShowEndpoint now includes ContactStatusDetail sections
1321    that give information on Asterisk's attempts to qualify the endpoint.
1322
1323  * The DialEnd event will now contain a Forward header if the dial is ending
1324    due to the call being forwarded. The contents of the Forward header is the
1325    extension in the number to which the call is being forwarded.
1326
1327 CEL
1328 ------------------
1329  * The "bridge_technology" extra field key has been added to BRIDGE_ENTER
1330    and BRIDGE_EXIT events.
1331
1332 Features
1333 ------------------
1334  * Channel variables are now substituted in arguments passed to applications
1335    run by using dynamic features.
1336
1337 TLS
1338 ------------------
1339  * The TLS core in Asterisk now supports Perfect Forward Secrecy (PFS).
1340    Enabling PFS is attempted by default, and is dependent on the configuration
1341    of the module using TLS.
1342    - Ephemeral ECDH (ECDHE) is enabled by default. To disable it, do not
1343      specify a ECDHE cipher suite in sip.conf, for example:
1344        tlscipher=AES128-SHA:DES-CBC3-SHA
1345    - Ephemeral DH (DHE) is disabled by default. To enable it, add DH parameters
1346      into the private key file, e.g., sip.conf tlsprivatekey. For example, the
1347      default dh2048.pem - see
1348      http://www.opensource.apple.com/source/OpenSSL098/OpenSSL098-35.1/src/apps/dh2048.pem?txt
1349    - Because clients expect the server to prefer PFS, and because OpenSSL sorts
1350      its cipher suites by bit strength, see "openssl ciphers -v DEFAULT".
1351      Consider re-ordering your cipher suites in the respective configuration
1352      file. For example:
1353        tlscipher=AES128+kEECDH:AES128+kEDH:3DES+kEDH:AES128-SHA:DES-CBC3-SHA:-ADH:-AECDH
1354      will use PFS when offered by the client. Clients which do not offer PFS
1355      fall-back to AES-128 (or even 3DES, as recommended by RFC 3261).
1356
1357
1358 Functions
1359 ------------------
1360
1361 JACK_HOOK
1362 ------------------
1363  * The JACK_HOOK function now supports audio with a sample rate higher than
1364    8kHz.
1365
1366
1367 Resources
1368 ------------------
1369
1370 res_config_pgsql
1371 ------------------
1372  * Added the ability to support PostgreSQL application_name on connections.
1373    This allows PostgreSQL to display the configured name in the
1374    pg_stat_activity view and CSV log entries. This setting is configurable
1375    for res_config_pgsql via the dbappname configuration setting in
1376    res_pgsql.conf.
1377
1378 res_pjsip_outbound_publish
1379 ------------------
1380  * A new module, res_pjsip_outbound_publish provides the mechanisms for sending
1381    PUBLISH requests for specific event packages to another SIP User Agent.
1382
1383 res_pjsip_pubsub
1384 ------------------
1385  * The publish/subscribe core module has been updated to support RFC 4662
1386    Resource Lists, allowing Asterisk to act as a Resource List Server (RLS).
1387    Resource lists are configured in pjsip.conf under a new object type,
1388    resource_list. Resource lists can contain either message-summary or presence
1389    events, and can be composed of specific resources that provide the event or
1390    other resource lists.
1391
1392  * Inbound publication support is provided by a new object, inbound-publication.
1393    This configures res_pjsip_pubsub to accept PUBLISH requests from a particular
1394    resource. Which events are accepted is constructed dynamically; see
1395    res_pjsip_publish_asterisk for more information.
1396
1397 res_pjsip_publish_asterisk
1398 ------------------
1399  * A new module, res_pjsip_publish_asterisk adds support for PUBLISH requests of
1400    Asterisk information to other Asterisk servers. This module is intended only
1401    for Asterisk to Asterisk exchanges of information. Currently, this includes
1402    both mailbox state and device state information.
1403
1404 ------------------------------------------------------------------------------
1405 --- Functionality changes from Asterisk 12.4.0 to Asterisk 12.5.0 ------------
1406 ------------------------------------------------------------------------------
1407
1408 ARI
1409 ------------------
1410  * Stored recordings now support a new operation, copy. This will take an
1411    existing stored recording and copy it to a new location in the recordings
1412    directory.
1413
1414  * LiveRecording objects now have three additional fields that can be reported
1415    in a RecordingFinished ARI event:
1416    - total_duration: the duration of the recording
1417    - talking_duration: optional. The duration of talking detected in the
1418      recording. This is only available if max_silence_seconds was specified
1419      when the recording was started.
1420    - silence_duration: optional. The duration of silence detected in the
1421      recording. This is only available if max_silence_seconds was specified
1422      when the recording was started.
1423    Note that all duration values are reported in seconds.
1424
1425  * Users of ARI can now send and receive out of call text messages. Messages
1426    can be sent directly to a particular endpoint, or can be sent to the
1427    endpoints resource directly and inferred from the URI scheme. Text
1428    messages are passed to ARI clients as TextMessageReceived events. ARI
1429    clients can choose to receive text messages by subscribing to the particular
1430    endpoint technology or endpoints that they are interested in.
1431
1432  * The applications resource now supports subscriptions to all endpoints of
1433    a particular channel technology. For example, subscribing to an eventSource
1434    of 'endpoint:PJSIP' will subscribe to all PJSIP endpoints.
1435
1436 res_pjsip
1437 ------------------
1438  * The endpoint configuration object now supports 'accountcode'. Any channel
1439    created for an endpoint with this setting will have its accountcode set
1440    to the specified value.
1441
1442 res_hep_rtcp
1443 ------------------
1444  * A new module, res_hep_rtcp, has been added that will forward RTCP call
1445    statistics to a HEP capture server. See res_hep for more information.
1446
1447 Functions
1448 ------------------
1449  * Function AUDIOHOOK_INHERIT has been deprecated. Audiohooks are now
1450    unconditionally inhereted through masquerades. As a side benefit, more
1451    than one audiohook of a given type may persist through a masquerade now.
1452
1453 ------------------------------------------------------------------------------
1454 --- Functionality changes from Asterisk 12.3.0 to Asterisk 12.4.0 ------------
1455 ------------------------------------------------------------------------------
1456
1457 AgentRequest
1458 ------------------
1459  * Returns new AGENT_STATUS value "NOT_CONNECTED" if the agent fails to
1460    connect with an incoming caller after being alerted to the presence
1461    of the incoming caller.  The most likely reason this would happen is
1462    the agent did not acknowledge the call in time.
1463
1464 AMI
1465 ------------------
1466  * New events have been added for the TALK_DETECT function. When the function
1467    is used on a channel, ChannelTalkingStart/ChannelTalkingStop events will be
1468    emitted to connected AMI clients indicating the start/stop of talking on
1469    the channel.
1470
1471 ARI
1472 ------------------
1473  * New event models have been aded for the TALK_DETECT function. When the
1474    function is used on a channel, ChannelTalkingStarted/ChannelTalkingFinished
1475    events will be emitted to connected WebSockets subscribed to the channel,
1476    indicating the start/stop of talking on the channel.
1477
1478 Functions
1479 ------------------
1480  * A new function, TALK_DETECT, has been added. When set on a channel, this
1481    fucntion causes events indicating the starting/stoping of talking on said
1482    channel to be emitted to both AMI and ARI clients.
1483
1484 ------------------------------------------------------------------------------
1485 --- Functionality changes from Asterisk 12.2.0 to Asterisk 12.3.0 ------------
1486 ------------------------------------------------------------------------------
1487
1488 ARI
1489 ------------------
1490  * A new Playback URI 'tone' has been added. Tones are specified either as
1491    an indication name (e.g. 'tone:busy') from indications.conf or as a tone
1492    pattern (e.g. 'tone:240/250,0/250'). Tones differ from normal playback
1493    URIs in that they must be stopped manually and will continue to occupy
1494    a channel's ARI control queue until they are stopped. They also can not
1495    be rewound or fastforwarded.
1496
1497  * User events can now be generated from ARI.  Events can be signalled with
1498    arbitrary json variables, and include one or more of channel, bridge, or
1499    endpoint snapshots.  An application must be specified which will receive
1500    the event message (other applications can subscribe to it).  The message
1501    will also be delivered via AMI provided a channel is attached.  Dialplan
1502    generated user event messages are still transmitted via the channel, and
1503    will only be received by a stasis application they are attached to or if
1504    the channel is subscribed to.
1505
1506 chan_sip
1507 -----------
1508  * SIP peers can now specify 'trust_id_outbound' which affects RPID/PAI
1509    fields for prohibited callingpres information. Values are legacy, no, and
1510    yes. By default, legacy is used.
1511    trust_id_outbound=legacy - behavior remains the same as 1.8.26.1. When
1512      dealing with prohibited callingpres and sendrpid=pai/rpid, RPID/PAI
1513      headers are appended to outbound SIP messages just as they are with
1514      allowed callingpres values, but data about the remote party's identity is
1515      anonymized.
1516      When sendrpid=rpid, only the remote party's domain is anonymized.
1517    trust_id_outbound=no - when dealing with prohibited callingpres, RPID/PAI
1518      headers are not sent.
1519    trust_id_outbound=yes - RPID/PAI headers are applied with the full remote
1520      party information in tact even for prohibited callingpres information.
1521      In the case of PAI, a Privacy: id header will be appended for prohibited
1522      calling information to communicate that the private information should
1523      not be relayed to untrusted parties.
1524
1525 res_parking
1526 ------------------
1527  * Manager action 'Park' now takes an additional argument 'AnnounceChannel'
1528    which can be used to announce the parked call's location to an arbitrary
1529    channel in a bridge. If 'Channel' and 'TimeoutChannel' are now the two
1530    parties in a one to one bridge, 'TimeoutChannel' is treated as having
1531    parked 'Channel' like with the Park Call DTMF feature and will receive
1532    announcements prior to being hung up.
1533
1534 ------------------------------------------------------------------------------
1535 --- Functionality changes from Asterisk 12.1.0 to Asterisk 12.2.0 ------------
1536 ------------------------------------------------------------------------------
1537
1538 Record
1539 ------------------
1540  * Record application now has an option 'o' which allows 0 to act as an exit
1541    key setting the RECORD_STATUS variable to 'OPERATOR' instead of 'DTMF'
1542
1543 ChanSpy
1544 --------------------------
1545  * ChanSpy now accepts a channel uniqueid or a fully specified channel name
1546    as the chanprefix parameter if the 'u' option is specified.
1547
1548 ConfBridge
1549 --------------------------
1550  * CONFBRIDGE dialplan function is now capable of creating/modifying dynamic
1551    conference user menus.
1552
1553  * CONFBRIDGE dialplan function is now capable of removing dynamic conference
1554    menus, bridge settings, and user settings that have been applied by the
1555    CONFBRIDGE dialplan function.
1556
1557  * The ConfBridge dialplan application now sets a channel variable,
1558    CONFBRIGE_RESULT, upon exiting. This variable can be used to determine
1559    how a channel exited the conference.
1560
1561  * Added conference user option 'announce_join_leave_review'. This option
1562    implies 'announce_join_leave' with the added effect that the user will
1563    be asked if they want to confirm or re-record the recording of their
1564    name when entering the conference
1565
1566 Directory
1567 --------------------------
1568  * At exit, the Directory application now sets a channel variable
1569    DIRECTORY_RESULT to one of the following based on the reason for exiting:
1570      OPERATOR    user requested operator by pressing '0' for operator
1571      ASSISTANT   user requested assistant by pressing '*' for assistant
1572      TIMEOUT     user pressed nothing and Directory stopped waiting
1573      HANGUP      user's channel hung up
1574      SELECTED    user selected a user from the directory and is routed
1575      USEREXIT    user pressed '#' from the selection prompt to exit
1576      FAILED      directory failed in a way that wasn't accounted for. Dang.
1577
1578 Monitor
1579 ------------------
1580  * Monitor() - A new option, B(), has been added that will turn on a periodic
1581    beep while the call is being recorded.
1582
1583 MusicOnHold
1584 --------------------------
1585  * MusicOnHold streams (all modes other than "files") now support wide band
1586    audio too.
1587
1588 Page
1589 --------------------------
1590  * Added options 'b' and 'B' to apply predial handlers for outgoing calls
1591    and for the channel executing Page respectively.
1592
1593 PickupChan
1594 --------------------------
1595  * PickupChan now accepts channel uniqueids of channels to pickup.
1596
1597 Say
1598 --------------------------
1599  * If a channel variable SAY_DTMF_INTERRUPT is present on a channel and set
1600    to 'true' (case insensitive), then any Say application (SayNumber,
1601    SayDigits, SayAlpha, SayAlphaCase, SayUnixTime, and SayCounted) will
1602    anticipate DTMF. If DTMF is received, these applications will behave like
1603    the background application and jump to the received extension once a match
1604    is established or after a short period of inactivity.
1605
1606 MixMonitor
1607 -------------------------
1608  * A new function, MIXMONITOR, has been added to allow access to individual
1609    instances of MixMonitor on a channel.
1610
1611  * A new option, B(), has been added that will turn on a periodic beep while the
1612    call is being recorded.
1613
1614
1615 Channel Drivers
1616 -------------------------
1617
1618 chan_sip
1619 -------------------------
1620  * TEL URI support for inbound INVITE requests has been added. chan_sip will
1621    now handle TEL schemes in the Request and From URIs. The phone-context in
1622    the Request URI will be stored in the SIPURIPHONECONTEXT channel variable on
1623    the inbound channel.
1624
1625 Core
1626 ------------------
1627  * Exposed sorcery-based configuration files like pjsip.conf to dialplans via
1628    the new AST_SORCERY diaplan function.
1629
1630  * Core Show Locks output now includes Thread/LWP ID if the platform
1631    supports this feature.
1632
1633  * New "logger add channel" and "logger remove channel" CLI commands have
1634    been added to allow creation and deletion of dynamic logger channels
1635    without configuration changes. These dynamic logger channels will only
1636    exist until the next restart of asterisk.
1637
1638 ARI
1639 ------------------
1640  * The live recording object on recording events now contains a target_uri
1641    field which contains the URI of what is being recorded.
1642
1643  * The bridge type used when creating a bridge is now a comma separated list of
1644    bridge properties. Valid options are: mixing, holding, dtmf_events, and
1645    proxy_media.
1646
1647  * A channelId can now be provided when creating a channel, either in the
1648    uri (POST channels/my-channel-id) or as query parameter.  A local channel
1649    will suffix the second channel id with ';2' unless provided as query
1650    parameter otherChannelId.
1651
1652  * A bridgeId can now be provided when creating a bridge, either in the uri
1653    (POST bridges/my-bridge-id) or as a query parameter.
1654
1655  * A playbackId can be provided when starting a playback, either in the uri
1656    (POST channels/my-channel-id/play/my-playback-id /
1657     POST bridges/my-bridge-id/play/my-playback-id)  or as a query parameter.
1658
1659  * A snoop channel can be started with a snoopId, in the uri or query.
1660
1661 AMI
1662 ------------------
1663  * Originate now takes optional parameters ChannelId and OtherChannelId,
1664    used to set the UniqueId on creation.  The other id is assigned to the
1665    second channel when dialing LOCAL, or defaults to appending ;2 if only
1666    the single Id is given.
1667
1668  * The Mixmonitor action now has a "Command" header that can be used to
1669    indicate a post-process command to run once recording finishes.
1670
1671 RealTime
1672 ------------------
1673  * A new set of Alembic scripts has been added for CDR tables. This will create
1674    a 'cdr' table with the default schema that Asterisk expects.
1675
1676
1677 Functions
1678 ------------------
1679  * A new function was added: PERIODIC_HOOK.  This allows running a periodic
1680    dialplan hook on a channel.  Any audio generated by this hook will be
1681    injected into the call.
1682
1683
1684 Resources
1685 ------------------
1686
1687 res_hep
1688 ------------------
1689  * A new module, res_hep, has been added, that acts as a generic packet
1690    capture agent for the Homer Encapsulation Protocol (HEP) version 3.
1691    It can be configured via hep.conf. Other modules can use res_hep to send
1692    message traffic to a HEP capture server.
1693
1694 res_hep_pjsip
1695 ------------------
1696  * A new module, res_hep_pjsip, has been added that will forward PJSIP
1697    message traffic to a HEP capture server. See res_hep for more
1698    information.
1699
1700 res_pjsip
1701 ------------------
1702  * transport and endpoint ToS options (tos, tos_audio, and tos_video) may now
1703    be set as the named set of ToS values (cs0-cs7, af11-af43, ef).
1704
1705  * Added the following new CLI commands:
1706    - "pjsip show contacts" - list all current PJSIP contacts.
1707    - "pjsip show contact" - show specific information about a current PJSIP
1708      contact.
1709    - "pjsip show channel" - show detailed information about a PJSIP channel.
1710
1711 res_pjsip_multihomed
1712 ------------------
1713  * A new module, res_pjsip_multihomed handles situations where the system
1714    Asterisk is running out has multiple interfaces. res_pjsip_multihomed
1715    determines which interface should be used during message sending.
1716
1717 res_pjsip_pidf_digium_body_supplement
1718 ------------------
1719  * A new module, res_pjsip_pidf_digium_body_supplement provides NOTIFY
1720    request body formatting for presence support in Digium phones.
1721
1722 res_pjsip_send_to_voicemail
1723 ------------------
1724  * A new module, res_pjsip_send_to_voicemail allows for REFER requests with
1725    particular headers to transfer a PJSIP channel directly to a particular
1726    extension that has VoiceMail. This is intended to be used with Digium
1727    phones that support this feature.
1728
1729 res_pjsip_outbound_registration
1730 ------------------
1731  * A new CLI command has been added: "pjsip show registrations", which lists
1732    all configured PJSIP registrations
1733
1734
1735 ------------------------------------------------------------------------------
1736 --- Functionality changes from Asterisk 12.0.0 to Asterisk 12.1.0 ------------
1737 ------------------------------------------------------------------------------
1738
1739 AMI
1740 ------------------
1741  * Added a new module that provides AMI control over MWI within Asterisk,
1742    res_mwi_external_ami. Note that this module depends on res_mwi_external;
1743    for more information on enabling this module, see res_mwi_external.
1744    This module provides the MWIGet/MWIUpdate/MWIDelete actions, as well as
1745    the MWIGet/MWIGetComplete events.
1746
1747  * The DialStatus field in the DialEnd event can now contain additional
1748    statuses that convey how the dial operation terminated. This includes
1749    ABORT, CONTINUE, and GOTO.
1750
1751  * AMI will now emit security events. A new class authorization has been
1752    added in manager.conf for the security events, 'security'. The new events
1753    are:
1754     - FailedACL - raised when a request violates an ACL check
1755     - InvalidAccountID - raised when a request fails an authentication
1756       check due to an invalid account ID
1757     - SessionLimit - raised when a request fails due to exceeding the
1758       number of allowed concurrent sessions for a service
1759     - MemoryLimit - raised when a request fails due to an internal memory
1760       allocation failure
1761     - LoadAverageLimit - raised when a request fails because a configured
1762       load average limit has been reached
1763     - RequestNotAllowed - raised when a request is not allowed by
1764       the service
1765     - AuthMethodNotAllowed - raised when a request used an authentication
1766       method not allowed by the service
1767     - RequestBadFormat - raised when a request is received with bad formatting
1768     - SuccessfulAuth - raised when a request successfully authenticates
1769     - UnexpectedAddress - raised when a request has a different source address
1770       then what is expected for a session already in progress with a service
1771     - ChallengeResponseFailed - raised when a request's attempt to authenticate
1772       has been challenged, and the request failed the authentication challenge
1773     - InvalidPassword - raised when a request provides an invalid password
1774       during an authentication attempt
1775     - ChallengeSent - raised when an Asterisk service send an authentication
1776       challenge to a request
1777     - InvalidTransport - raised when a request attempts to use a transport not
1778       allowed by the Asterisk service
1779
1780  * Bridge related events now have two additional fields: BridgeName and
1781    BridgeCreator. BridgeName is a descriptive name for the bridge;
1782    BridgeCreator is the name of the entity that created the bridge. This
1783    affects the following events: ConfbridgeStart, ConfbridgeEnd,
1784    ConfbridgeJoin, ConfbridgeLeave, ConfbridgeRecord, ConfbridgeStopRecord,
1785    ConfbridgeMute, ConfbridgeUnmute, ConfbridgeTalking, BlindTransfer,
1786    AttendedTransfer, BridgeCreate, BridgeDestroy, BridgeEnter, BridgeLeave
1787
1788 ARI
1789 ------------------
1790  * The Bridge data model now contains the additional fields 'name' and
1791    'creator'. The 'name' field conveys a descriptive name for the bridge;
1792    the 'creator' field conveys the name of the entity that created the bridge.
1793    This affects all responses to HTTP requests that return a Bridge data model
1794    as well as all event derived data models that contain a Bridge data model.
1795    The POST /bridges operation may now optionally specify a name to give to
1796    the bridge being created.
1797
1798  * Added a new ARI resource 'mailboxes' which allows the creation and
1799    modification of mailboxes managed by external MWI. Modules res_mwi_external
1800    and res_stasis_mailbox must be enabled to use this resource. For more
1801    information on external MWI control, see res_mwi_external.
1802
1803  * Added new events for externally initiated transfers. The event
1804    BridgeBlindTransfer is now raised when a channel initiates a blind transfer
1805    of a bridge in the ARI controlled application to the dialplan; the
1806    BridgeAttendedTransfer event is raised when a channel initiates an
1807    attended transfer of a bridge in the ARI controlled application to the
1808    dialplan.
1809
1810  * Channel variables may now be specified as a body parameter to the
1811    POST /channels operation. The 'variables' key in the JSON is interpreted
1812    as a sequence of key/value pairs that will be added to the created channel
1813    as channel variables. Other parameters in the JSON body are treated as
1814    query parameters of the same name.
1815
1816 HTTP
1817 ------------------
1818  * Asterisk's HTTP server now supports chunked Transfer-Encoding. This will be
1819    automatically handled by the HTTP server if a request is received with a
1820    Transfer-Encoding type of "chunked".
1821
1822 res_pjsip
1823 ------------------
1824  * Path support has been added with the 'support_path' option in registration
1825    and aor sections.
1826
1827  * A 'debug' option has been added to the globals section that will allow
1828    sip messages to be logged.
1829
1830  * A 'set_var' option has been added to endpoints that will automatically
1831    set the desired variable(s) on a channel created for that endpoint.
1832
1833  * Several new tables and columns have been added to the realtime schema for
1834    the res_pjsip related modules. See the UPGRADE.txt notes for updating
1835    the database schema.
1836
1837 res_mwi_external
1838 ------------------
1839  * A new module, res_mwi_external, has been added to Asterisk. This module
1840    acts as a base framework that other modules can build on top of to allow
1841    an external system to control MWI within Asterisk. For implementations
1842    that make use of res_mwi_external, see res_mwi_external_ami and
1843    res_ari_mailboxes. Note that res_mwi_external canflicts with other modules
1844    that may produce MWI themselves, such as app_voicemail. res_mwi_external
1845    and other modules that depend on it cannot be built or loaded with
1846    app_voicemail present.
1847
1848 res_pjsip
1849 ------------------
1850  * DNS functionality will now automatically be enabled if the system configured
1851    nameservers can be retrieved. If the system configured nameservers can not be
1852    retrieved the functionality will resort to using system resolution. Functionalty
1853    such as SRV records and failover will not be available if system resolution
1854    is in use.
1855
1856 ------------------------------------------------------------------------------
1857 --- Functionality changes from Asterisk 11 to Asterisk 12 --------------------
1858 ------------------------------------------------------------------------------
1859
1860 Overview
1861 ------------------
1862
1863 Asterisk 12 is a standard release of the Asterisk project. As such, the
1864 focus of development for this release was on core architectural changes and
1865 major new features. This includes:
1866  * A more flexible bridging core based on the Bridging API
1867  * A new internal message bus, Stasis
1868  * Major standardization and consistency improvements to AMI
1869  * Addition of the Asterisk RESTful Interface (ARI)
1870  * A new SIP channel driver, chan_pjsip
1871 In addition, as the vast majority of bridging in Asterisk was migrated to the
1872 Bridging API used by ConfBridge, major changes were made to most of the
1873 interfaces in Asterisk. This includes not only AMI, but also CDRs and CEL.
1874
1875 Specifications have been written for the affected interfaces. These
1876 specifications are available on the Asterisk wiki:
1877  * AMI - https://wiki.asterisk.org/wiki/x/dAFRAQ
1878  * CEL - https://wiki.asterisk.org/wiki/x/4ICLAQ
1879  * CDRs - https://wiki.asterisk.org/wiki/x/pwpRAQ
1880
1881 It is *highly* recommended that anyone migrating to Asterisk 12 read the
1882 information regarding its release both in this file and in the accompanying
1883 UPGRADE.txt file. More detailed information on the major changes can be found
1884 on the Asterisk wiki at https://wiki.asterisk.org/wiki/x/0YCLAQ.
1885
1886
1887 Build System
1888 ------------------
1889  * Added build option DISABLE_INLINE. This option can be used to work around a
1890    bug in gcc. For more information, see
1891    http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47816
1892
1893  * Removed the CHANNEL_TRACE development mode build option. Certain aspects of
1894    the CHANNEL_TRACE build option were incompatible with the new bridging
1895    architecture.
1896
1897  * Asterisk now optionally uses libxslt to improve XML documentation generation
1898    and maintainability. If libxslt is not available on the system, some XML
1899    documentation will be incomplete.
1900
1901  * Asterisk now depends on libjansson. If a package of libjansson is not
1902    available on your distro, please see http://www.digip.org/jansson/.
1903
1904  * Asterisk now depends on libuuid and, optionally, uriparser. It is
1905    recommended that you install uriparser, even if it is optional.
1906
1907  * The new SIP stack and channel driver uses a particular version of PJSIP.
1908    Please see https://wiki.asterisk.org/wiki/x/J4GLAQ for more information on
1909    configuring and installing PJSIP for usage with Asterisk.
1910
1911  * Optional API was re-implemented to be more portable, and no longer requires
1912    weak reference support from the compiler. The build option OPTIONAL_API may
1913    be disabled to disable Optional API support.
1914
1915 Applications
1916 ------------------
1917
1918 AgentLogin
1919 ------------------
1920  * Along with AgentRequest, this application has been modified to be a
1921    replacement for chan_agent. The act of a channel calling the AgentLogin
1922    application places the channel into a pool of agents that can be
1923    requested by the AgentRequest application. Note that this application, as
1924    well as all other agent related functionality, is now provided by the
1925    app_agent_pool module. See chan_agent and AgentRequest for more information.
1926
1927  * This application no longer performs agent authentication. If authentication
1928    is desired, the dialplan needs to perform this function using the
1929    Authenticate or VMAuthenticate application or through an AGI script before
1930    running AgentLogin.
1931
1932  * If this application is called and the agent is already logged in, the
1933    dialplan will continue exection with the AGENT_STATUS channel variable set
1934    to ALREADY_LOGGED_IN.
1935
1936  * The agents.conf schema has changed. Rather than specifying agents on a
1937    single line in comma delineated fashion, each agent is defined in a separate
1938    context. This allows agents to use the power of context templates in their
1939    definition.
1940
1941  * A number of parameters from agents.conf have been removed. This includes
1942    maxloginretries, autologoffunavail, updatecdr, goodbye, group, recordformat,
1943    urlprefix, and savecallsin. These options were obsoleted by the move from
1944    a channel driver model to the bridging/application model provided by
1945    app_agent_pool.
1946
1947 AgentRequest
1948 ------------------
1949  * A new application, this will request a logged in agent from the pool and
1950    bridge the requested channel with the channel calling this application.
1951    Logged in agents are those channels that called the AgentLogin application.
1952    If an agent cannot be requested from the pool, the AGENT_STATUS dialplan
1953    application will be set with an appropriate error value.
1954
1955 AgentMonitorOutgoing
1956 ------------------
1957  * This application has been removed. It was a holdover from when
1958    AgentCallbackLogin was removed.
1959
1960 AlarmReceiver
1961 ------------------
1962  * Added support for additional Ademco DTMF signalling formats, including
1963    Express 4+1, Express 4+2, High Speed and Super Fast.
1964
1965  * Added channel variable ALARMRECEIVER_CALL_LIMIT. This sets the maximum
1966    call time, in milliseconds, to run the application.
1967
1968  * Added channel variable ALARMRECEIVER_RETRIES_LIMIT. This sets the
1969    maximum number of times to retry the call.
1970
1971  * Added a new configuration option answait. If set, the AlarmReceiver
1972    application will wait the number of milliseconds specified by answait
1973    after the channel has answered. Valid values range between 500
1974    milliseconds and 10000 milliseconds.
1975
1976  * Added configuration option no_group_meta. If enabled, grouping of metadata
1977    information in the AlarmReceiver log file will be skipped.
1978
1979 Answer
1980 ------------------
1981  * It is now no longer possible to bypass updating the CDR on the channel
1982    when answering. CDRs reflect the state of the channel and will always
1983    reflect the time they were Answered.
1984
1985 BridgeWait
1986 ------------------
1987  * A new application in Asterisk, this will place the calling channel
1988    into a holding bridge, optionally entertaining them with some form of
1989    media. Channels participating in a holding bridge do not interact with
1990    other channels in the same holding bridge. Optionally, however, a channel
1991    may join as an announcer. Any media passed from an announcer channel is
1992    played to all channels in the holding bridge. Channels leave a holding
1993    bridge either when an optional timer expires, or via the ChannelRedirect
1994    application or AMI Redirect action.
1995
1996 ConfBridge
1997 ------------------
1998  * All participants in a bridge can now be kicked out of a conference room
1999    by specifying the channel parameter as 'all' in the ConfBridge kick CLI
2000    command, i.e., 'confbridge kick <conference> all'
2001
2002  * CLI output for the 'confbridge list' command has been improved. When
2003    displaying information about a particular bridge, flags will now be shown
2004    for the participating users indicating properties of that user.
2005
2006  * The ConfbridgeList event now contains the following fields: WaitMarked,
2007    EndMarked, and Waiting. This displays additional properties about the
2008    user's profile, as well as whether or not the user is waiting for a
2009    Marked user to enter the conference.
2010
2011  * Added a new option for conference recording, record_file_append. If enabled,
2012    when the recording is stopped and then re-started, the existing recording
2013    will be used and appended to.
2014
2015  * ConfBridge now has the ability to set the language of announcements to the
2016    conference.  The language can be set on a bridge profile in confbridge.conf
2017    or by the dialplan function CONFBRIDGE(bridge,language)=en.
2018
2019 ControlPlayback
2020 ------------------
2021  * The channel variable CPLAYBACKSTATUS may now return the value
2022    'REMOTESTOPPED'. This occurs when playback is stopped by a remote interface,
2023    such as AMI. See the AMI action ControlPlayback for more information.
2024
2025 Directory
2026 ------------------
2027  * Added the 'a' option, which allows the caller to enter in an additional
2028    alias for the user in the directory. This option must be used in conjunction
2029    with the 'f', 'l', or 'b' options. Note that the alias for a user can be
2030    specified in voicemail.conf.
2031
2032 DumpChan
2033 ------------------
2034  * The output of DumpChan no longer includes the DirectBridge or IndirectBridge
2035    fields. Instead, if a channel is in a bridge, it includes a BridgeID field
2036    containing the unique ID of the bridge that the channel happens to be in.
2037
2038 ForkCDR
2039 ------------------
2040  * ForkCDR no longer automatically resets the forked CDR. See the 'r' option
2041    for more information.
2042
2043  * Variables are no longer purged from the original CDR. See the 'v' option for
2044    more information.
2045
2046  * The 'A' option has been removed. The Answer time on a CDR is never updated
2047    once set.
2048
2049  * The 'd' option has been removed. The disposition on a CDR is a function of
2050    the state of the channel and cannot be altered.
2051
2052  * The 'D' option has been removed. Who the Party B is on a CDR is a function
2053    of the state of the respective channels involved in the CDR and cannot be
2054    altered.
2055
2056  * The 'r' option has been changed. Previously, ForkCDR always reset the CDR
2057    such that the start time and, if applicable, the answer time was updated.
2058    Now, by default, ForkCDR simply forks the CDR, maintaining any times. The
2059    'r' option now triggers the Reset, setting the start time (and answer time
2060    if applicable) to the current time. Note that the 'a' option still sets
2061    the answer time to the current time if the channel was already answered.
2062
2063  * The 's' option has been removed. A variable can be set on the original CDR
2064    if desired using the CDR function, and removed from a forked CDR using the
2065    same function.
2066
2067  * The 'T' option has been removed. The concept of DONT_TOUCH and LOCKED no
2068    longer applies in the CDR engine.
2069
2070  * The 'v' option now prevents the copy of the variables from the original CDR
2071    to the forked CDR. Previously the variables were always copied but were
2072    removed from the original. This was changed as removing variables from a CDR
2073    can have unintended side effects - this option allows the user to prevent
2074    propagation of variables from the original to the forked without modifying
2075    the original.
2076
2077 MeetMe
2078 -------------------
2079  * Added the 'n' option to MeetMe to prevent application of the DENOISE
2080    function to a channel joining a conference. Some channel drivers that vary
2081    the number of audio samples in a voice frame will experience significant
2082    quality problems if a denoiser is attached to the channel; this option gives
2083    them the ability to remove the denoiser without having to unload func_speex.
2084
2085 MixMonitor
2086 ------------------
2087  * The 'b' option now includes conferences as well as sounds played to the
2088    participants.
2089
2090  * The AUDIOHOOK_INHERIT function is no longer needed to keep a MixMonitor
2091    running during a transfer. If a MixMonitor is started on a channel,
2092    the MixMonitor will continue to record the audio passing through the
2093    channel even in the presence of transfers.
2094
2095 NoCDR
2096 ------------------
2097  * The NoCDR application is deprecated. Please use the CDR_PROP function to
2098    disable CDRs.
2099
2100  * While the NoCDR application will prevent CDRs for a channel from being
2101    propagated to registered CDR backends, it will not prevent that data from
2102    being collected. Hence, a subsequent call to ResetCDR or the CDR_PROP
2103    function that enables CDRs on a channel will restore those records that have
2104    not yet been finalized.
2105
2106 ParkAndAnnounce
2107 -------------------
2108  * The app_parkandannounce module has been removed. The application
2109    ParkAndAnnounce is now provided by the res_parking module. See the
2110    res_parking changes for more information.
2111
2112 Queue
2113 -------------------
2114  * Added queue available hint. The hint can be added to the dialplan using the
2115    following syntax: exten,hint,Queue:{queue_name}_avail
2116    For example, if the name of the queue is 'markq':
2117         exten => 8501,hint,Queue:markq_avail
2118    This will report 'InUse' if there are no logged in agents or no free agents.
2119    It will report 'Idle' when an agent is free.
2120
2121  * Queues now support a hint for member paused state. The hint uses the form
2122    'Queue:{queue_name}_pause_{member_name}', where {queue_name} and {member_name}
2123    are the name of the queue and the name of the member to subscribe to,
2124    respectively. For example: exten => 8501,hint,Queue:sales_pause_mark.
2125    Members will show as In Use when paused.
2126
2127  * The configuration options eventwhencalled and eventmemberstatus have been
2128    removed.  As a result, the AMI events QueueMemberStatus, AgentCalled,
2129    AgentConnect, AgentComplete, AgentDump, and AgentRingNoAnswer will always be
2130    sent.  The "Variable" fields will also no longer exist on the Agent* events.
2131    These events can be filtered out from a connected AMI client using the
2132    eventfilter setting in manager.conf.
2133
2134  * The queue log now differentiates between blind and attended transfers. A
2135    blind transfer will result in a BLINDTRANSFER message with the destination
2136    context and extension. An attended transfer will result in an
2137    ATTENDEDTRANSFER message. This message will indicate the method by which
2138    the attended transfer was completed: "BRIDGE" for a bridge merge, "APP"
2139    for running an application on a bridge or channel, or "LINK" for linking
2140    two bridges together with local channels. The queue log will also now detect
2141    externally initiated blind and attended transfers and record the transfer
2142    status accordingly.
2143
2144  * When performing queue pause/unpause on an interface without specifying an
2145    individual queue, the PAUSEALL/UNPAUSEALL event will only be logged if at
2146    least one member of any queue exists for that interface.
2147
2148  * Added the 'queue_log_realtime_use_gmt' option to have timestamps in GMT
2149    for realtime queue log entries.
2150
2151 ResetCDR
2152 ------------------
2153  * The 'e' option has been deprecated. Use the CDR_PROP function to re-enable
2154    CDRs when they were previously disabled on a channel.
2155
2156  * The 'w' and 'a' options have been removed. Dispatching CDRs to registered
2157    backends occurs on an as-needed basis in order to preserve linkedid
2158    propagation and other needed behavior.
2159
2160 SayAlphaCase
2161 ------------------
2162  * A new application, this is similar to SayAlpha except that it supports
2163    case sensitive playback of the specified characters. For example,
2164    SayAlphaCase(u,aBc) will result in 'a uppercase b c'.
2165
2166 SetAMAFlags
2167 ------------------
2168  * This application is deprecated in favor of CHANNEL(amaflags).
2169
2170 SendDTMF
2171 ------------------
2172  * The SendDTMF application will now accept 'W' as valid input. This will cause
2173    the application to delay one second while streaming DTMF.
2174
2175 Stasis
2176 ------------------
2177  * A new application in Asterisk 12, this hands control of the channel calling
2178    the application over to an external system. Currently, external systems
2179    manipulate channels in Stasis through the Asterisk RESTful Interface (ARI).
2180
2181 UserEvent
2182 ------------------
2183  * UserEvent will now handle duplicate keys by overwriting the previous value
2184    assigned to the key.
2185
2186  * In addition to AMI, UserEvent invocations will now be distributed to any
2187    interested Stasis applications.
2188
2189 VoiceMail
2190 ------------------
2191  * Mailboxes defined by app_voicemail MUST be referenced by the rest of the
2192    system as mailbox@context.  The rest of the system cannot add @default
2193    to mailbox identifiers for app_voicemail that do not specify a context
2194    any longer.  It is a mailbox identifier format that should only be
2195    interpreted by app_voicemail.
2196
2197  * The voicemail.conf configuration file now has an 'alias' configuration
2198    parameter for use with the Directory application. The voicemail realtime
2199    database table schema has also been updated with an 'alias' column.
2200
2201
2202 Codecs
2203 ------------------
2204  * Pass through support has been added for both VP8 and Opus.
2205
2206  * Added format attribute negotiation for the Opus codec. Format attribute
2207    negotiation is provided by the res_format_attr_opus module.
2208
2209
2210 Core
2211 ------------------
2212  * Masquerades as an operation inside Asterisk have been effectively hidden
2213    by the migration to the Bridging API. As such, many 'quirks' of Asterisk
2214    no longer occur. This includes renaming of channels, "<ZOMBIE>" channels,
2215    dropping of frame/audio hooks, and other internal implementation details
2216    that users had to deal with. This fundamental change has large implications
2217    throughout the changes documented for this version. For more information
2218    about the new core architecture of Asterisk, please see the Asterisk wiki.
2219
2220  * Multiple parties in a bridge may now be transferred. If a participant in a
2221    multi-party bridge initiates a blind transfer, a Local channel will be used
2222    to execute the dialplan location that the transferer sent the parties to. If
2223    a participant in a multi-party bridge initiates an attended transfer,
2224    several options are possible. If the attended transfer results in a transfer
2225    to an application, a Local channel is used. If the attended transfer results
2226    in a transfer to another channel, the resulting channels will be merged into
2227    a single bridge.
2228
2229  * The channel variable ATTENDED_TRANSFER_COMPLETE_SOUND is no longer channel
2230    driver specific.  If the channel variable is set on the transferrer channel,
2231    the sound will be played to the target of an attended transfer.
2232
2233  * The channel variable BRIDGEPEER becomes a comma separated list of peers in
2234    a multi-party bridge.  The BRIDGEPEER value can have a maximum of 10 peers
2235    listed.  Any more peers in the bridge will not be included in the list.
2236    BRIDGEPEER is not valid in holding bridges like parking since those channels
2237    do not talk to each other even though they are in a bridge.
2238
2239  * The channel variable BRIDGEPVTCALLID is only valid for two party bridges
2240    and will contain a value if the BRIDGEPEER's channel driver supports it.
2241
2242  * A channel variable ATTENDEDTRANSFER is now set which indicates which channel
2243    was responsible for an attended transfer in a similar fashion to
2244    BLINDTRANSFER.
2245
2246  * Modules using the Configuration Framework or Sorcery must have XML
2247    configuration documentation. This configuration documentation is included
2248    with the rest of Asterisk's XML documentation, and is accessible via CLI
2249    commands. See the CLI changes for more information.
2250
2251 AMI (Asterisk Manager Interface)
2252 ------------------
2253  * Major changes were made to both the syntax as well as the semantics of the
2254    AMI protocol. In particular, AMI events have been substantially improved
2255    in this version of Asterisk. For more information, please see the AMI
2256    specification at https://wiki.asterisk.org/wiki/x/dAFRAQ
2257
2258  * AMI events that reference a particular channel or bridge will now always
2259    contain a standard set of fields. When multiple channels or bridges are
2260    referenced in an event, fields for at least some subset of the channels
2261    and bridges in the event will be prefixed with a descriptive name to avoid
2262    name collisions. See the AMI event documentation on the Asterisk wiki for
2263    more information.
2264
2265  * The CLI command 'manager show commands' no longer truncates command names
2266    longer than 15 characters and no longer shows authorization requirement
2267    for commands. 'manager show command' now displays the privileges needed
2268    for using a given manager command instead.
2269
2270  * The SIPshowpeer action will now include a 'SubscribeContext' field for a
2271    peer in its response if the peer has a subscribe context set.
2272
2273  * The SIPqualifypeer action now acknowledges the request once it has
2274    established that the request is against a known peer. It also issues a new
2275    event, 'SIPQualifyPeerDone', once the qualify action has been completed.
2276
2277  * The PlayDTMF action now supports an optional 'Duration' parameter.  This
2278    specifies the duration of the digit to be played, in milliseconds.
2279
2280  * Added VoicemailRefresh action to allow an external entity to trigger mailbox
2281    updates when changes occur instead of requiring the use of pollmailboxes.
2282
2283  * Added a new action 'ControlPlayback'. The ControlPlayback action allows an
2284    AMI client to manipulate audio currently being played back on a channel. The
2285    supported operations depend on the application being used to send audio to
2286    the channel. When the audio playback was initiated using the ControlPlayback
2287    application or CONTROL STREAM FILE AGI command, the audio can be paused,
2288    stopped, restarted, reversed, or skipped forward. When initiated by other
2289    mechanisms (such as the Playback application), the audio can be stopped,
2290    reversed, or skipped forward.
2291
2292  * Channel related events now contain a snapshot of channel state, adding new
2293    fields to many of these events.
2294
2295  * The AMI event 'Newexten' field 'Extension' is deprecated, and may be removed
2296    in a future release. Please use the common 'Exten' field instead.
2297
2298  * The AMI event 'UserEvent' from app_userevent now contains the channel state
2299    fields. The channel state fields will come before the body fields.
2300
2301  * The AMI events 'ParkedCall', 'ParkedCallTimeOut', 'ParkedCallGiveUp', and
2302    'UnParkedCall' have changed significantly in the new res_parking module.
2303
2304    The 'Channel' and 'From' headers are gone. For the channel that was parked
2305    or is coming out of parking, a 'Parkee' channel snapshot is issued and it
2306    has a number of fields associated with it. The old 'Channel' header relayed
2307    the same data as the new 'ParkeeChannel' header.
2308
2309    The 'From' field was ambiguous and changed meaning depending on the event.
2310    for most of these, it was the name of the channel that parked the call
2311    (the 'Parker'). There is no longer a header that provides this channel name,
2312    however the 'ParkerDialString' will contain a dialstring to redial the
2313    device that parked the call.
2314
2315    On UnParkedCall events, the 'From' header would instead represent the
2316    channel responsible for retrieving the parkee. It receives a channel
2317    snapshot labeled 'Retriever'. The 'from' field is is replaced with
2318    'RetrieverChannel'.
2319
2320    Lastly, the 'Exten' field has been replaced with 'ParkingSpace'.
2321
2322  * The AMI event 'Parkinglot' (response to 'Parkinglots' command) in a similar
2323    fashion has changed the field names 'StartExten' and 'StopExten' to
2324    'StartSpace' and 'StopSpace' respectively.
2325
2326  * The deprecated use of | (pipe) as a separator in the channelvars setting in
2327    manager.conf has been removed.
2328
2329  * Channel Variables conveyed with a channel no longer contain the name of the
2330    channel as part of the key field, i.e., ChanVariable(SIP/foo): bar=baz is now
2331    ChanVariable: bar=baz. When multiple channels are present in a single AMI
2332    event, the various ChanVariable fields will contain a suffix that specifies
2333    which channel they correspond to.
2334
2335  * The NewPeerAccount AMI event is no longer raised. The NewAccountCode AMI
2336    event always conveys the AMI event for a particular channel.
2337
2338  * All 'Reload' events have been consolidated into a single event type. This
2339    event will always contain a Module field specifying the name of the module
2340    and a Status field denoting the result of the reload. All modules now issue
2341    this event when being reloaded.
2342
2343  * The 'ModuleLoadReport' event has been removed. Most AMI connections would
2344    fail to receive this event due to being connected after modules have loaded.
2345    AMI connections that want to know when Asterisk is ready should listen for
2346    the 'FullyBooted' event.
2347
2348  * app_fax now sends the same send fax/receive fax events as res_fax. The
2349    'FaxSent' event is now the 'SendFAX' event, and the 'FaxReceived' event is
2350    now the 'ReceiveFAX' event.
2351
2352  * The 'MusicOnHold' event is now two events: 'MusicOnHoldStart' and
2353    'MusicOnHoldStop'. The sub type field has been removed.
2354
2355  * The 'JabberEvent' event has been removed. It is not AMI's purpose to be a
2356    carrier for another protocol.
2357
2358  * The Bridge Manager action's 'Playtone' header now accepts more fine-grained
2359    options. 'Channel1' and 'Channel2' may be specified in order to play a tone
2360    to the specific channel. 'Both' may be specified to play a tone to both
2361    channels. The old 'yes' option is still accepted as a way of playing the
2362    tone to Channel2 only.
2363
2364  * The AMI 'Status' response event to the AMI Status action replaces the
2365    'BridgedChannel' and 'BridgedUniqueid' headers with the 'BridgeID' header to
2366    indicate what bridge the channel is currently in.
2367
2368  * The AMI 'Hold' event has been moved out of individual channel drivers, into
2369    core, and is now two events: 'Hold' and 'Unhold'.  The status field has been
2370    removed.
2371
2372  * The AMI events in app_queue have been made more consistent with each other.
2373    Events that reference channels (QueueCaller* and Agent*) will show
2374    information about each channel.  The (infamous) 'Join' and 'Leave' AMI
2375    events have been changed to 'QueueCallerJoin' and 'QueueCallerLeave'.
2376
2377  * The 'MCID' AMI event now publishes a channel snapshot when available and
2378    its non-channel-snapshot parameters now use either the "MCallerID" or
2379    'MConnectedID' prefixes with Subaddr*, Name*, and Num* suffixes instead
2380    of 'CallerID' and 'ConnectedID' to avoid confusion with similarly named
2381    parameters in the channel snapshot.
2382
2383  * The AMI events 'Agentlogin' and 'Agentlogoff' have been renamed
2384    'AgentLogin' and 'AgentLogoff' respectively.
2385
2386  * The 'Channel' key used in the 'AlarmClear', 'Alarm', and 'DNDState' has been
2387    renamed "DAHDIChannel" since it does not convey an Asterisk channel name.
2388
2389  * 'ChannelUpdate' events have been removed.
2390
2391  * All AMI events now contain a 'SystemName' field, if available.
2392
2393  * Local channel optimization is now conveyed in two events:
2394    'LocalOptimizationBegin' and 'LocalOptimizationEnd'. The Begin event is sent
2395    when the Local channel driver begins attempting to optimize itself out of
2396    the media path; the End event is sent after the channel halves have
2397    successfully optimized themselves out of the media path.
2398
2399  * Local channel information in events is now prefixed with 'LocalOne' and
2400    'LocalTwo'. This replaces the suffix of '1' and '2' for the two halves of
2401    the Local channel. This affects the 'LocalBridge', 'LocalOptimizationBegin',
2402    and 'LocalOptimizationEnd' events.
2403
2404  * The option 'allowmultiplelogin' can now be set or overriden in a particular
2405    account. When set in the general context, it will act as the default
2406    setting for defined accounts.
2407
2408  * The 'BridgeAction' event was removed. It technically added no value, as the
2409    Bridge Action already receives confirmation of the bridge through a
2410    successful completion Event.
2411
2412  * The 'BridgeExec' events were removed. These events duplicated the events that
2413    occur in the Briding API, and are conveyed now through BridgeCreate,
2414    BridgeEnter, and BridgeLeave events.
2415
2416  * The 'RTCPSent'/'RTCPReceived' events have been significantly modified from
2417    previous versions. They now report all SR/RR packets sent/received, and
2418    have been restructured to better reflect the data sent in a SR/RR. In
2419    particular, the event structure now supports multiple report blocks.
2420
2421  * Added 'BlindTransfer' and 'AttendedTransfer' events. These events are
2422    raised when a blind transfer/attended transfer completes successfully.
2423    They contain information about the transfer that just completed, including
2424    the location of the transfered channel.
2425
2426  * Added a 'security' class to AMI which outputs the required fields for
2427    security messages similar to the log messages from res_security_log
2428
2429  * The AMI event 'ExtensionStatus' now contains a 'StatusText' field
2430    that describes the status value in a human readable string.
2431
2432 CDR (Call Detail Records)
2433 ------------------
2434  * Significant changes have been made to the behavior of CDRs. The CDR engine
2435    was effectively rewritten and built on the Stasis message bus. For a full
2436    definition of CDR behavior in Asterisk 12, please read the specification
2437    on the Asterisk wiki (wiki.asterisk.org).
2438
2439  * CDRs will now be created between all participants in a bridge. For each
2440    pair of channels in a bridge, a CDR is created to represent the path of
2441    communication between those two endpoints. This lets an end user choose who
2442    to bill for what during bridge operations with multiple parties.
2443
2444  * The duration, billsec, start, answer, and end times now reflect the times
2445    associated with the current CDR for the channel, as opposed to a cumulative
2446    measurement of all CDRs for that channel.
2447
2448  * When a CDR is dispatched, user defined CDR variables from both parties are
2449    included in the resulting CDR. If both parties have the same variable, only
2450    the Party A value is provided.
2451
2452  * Added a new option to cdr.conf, 'debug'. When enabled, significantly more
2453    information regarding the CDR engine is logged as verbose messages. This
2454    option should only be used if the behavior of the CDR engine needs to be
2455    debugged.
2456
2457  * Added CLI command 'cdr set debug {on|off}'. This toggles the 'debug' setting
2458    normally configured in cdr.conf.
2459
2460  * Added CLI command 'cdr show active {channel}'. When {channel} is not
2461    specified, this command provides a summary of the channels with CDR
2462    information and their statistics. When {channel} is specified, it shows
2463    detailed information about all records associated with {channel}.
2464
2465 CEL (Channel Event Logging)
2466 ------------------
2467  * CEL has undergone significant rework in Asterisk 12, and is now built on the
2468    Stasis message bus. Please see the specification for CEL on the Asterisk
2469    wiki at https://wiki.asterisk.org/wiki/x/4ICLAQ for more detailed
2470    information.
2471
2472  * The 'extra' field of all CEL events that use it now consists of a JSON blob
2473    with key/value pairs which are defined in the Asterisk 12 CEL documentation.
2474
2475  * BLINDTRANSFER events now report the transferee bridge unique
2476    identifier, extension, and context in a JSON blob as the extra string
2477    instead of the transferee channel name as the peer.
2478
2479  * ATTENDEDTRANSFER events now report the peer as NULL and additional
2480    information in the 'extra' string as a JSON blob. For transfers that occur
2481    between two bridged channels, the 'extra' JSON blob contains the primary
2482    bridge unique identifier, the secondary channel name, and the secondary
2483    bridge unique identifier. For transfers that occur between a bridged channel
2484    and a channel running an app, the 'extra' JSON blob contains the primary
2485    bridge unique identifier, the secondary channel name, and the app name.
2486
2487  * LOCAL_OPTIMIZE events have been added to convey local channel
2488    optimizations with the record occurring for the semi-one channel and
2489    the semi-two channel name in the peer field.
2490
2491  * BRIDGE_START, BRIDGE_END, BRIDGE_UPDATE, 3WAY_START, 3WAY_END, CONF_ENTER,
2492    CONF_EXIT, CONF_START, and CONF_END events have all been removed. These
2493    events have been replaced by BRIDGE_ENTER/BRIDGE_EXIT. The BRIDGE_ENTER
2494    and BRIDGE_EXIT events are raised when a channel enters/exits any bridge,
2495    regardless of whether or not that bridge happens to contain multiple
2496    parties.
2497
2498 CLI
2499 -------------------
2500  * When compiled with '--enable-dev-mode', the astobj2 library will now add
2501    several CLI commands that allow for inspection of ao2 containers that
2502    register themselves with astobj2. The CLI commands are 'astobj2 container
2503    dump', 'astobj2 container stats', and 'astobj2 container check'.
2504
2505  * Added specific CLI commands for bridge inspection. This includes 'bridge
2506    show all', which lists all bridges in the system, and 'bridge show {id}',
2507    which provides specific information about a bridge.
2508
2509  * Added CLI command 'bridge destroy'. This will destroy the specified bridge,
2510    ejecting the channels currently in the bridge. If the channels cannot
2511    continue in the dialplan or application that put them in the bridge, they
2512    will be hung up.
2513
2514  * Added command 'bridge kick'. This will eject a single channel from a bridge.
2515
2516  * Added commands to inspect and manipulate the registered bridge technologies.
2517    This include 'bridge technology show', which lists the registered bridge
2518    technologies, as well as 'bridge technology {suspend|unsuspend} {tech}',
2519    which controls whether or not a registered bridge technology can be used
2520    during smart bridge operations. If a technology is suspended, it will not
2521    be used when a bridge technology is picked for channels; when unsuspended,
2522    it can be used again.
2523
2524  * The command 'config show help {module} {type} {option}' will show
2525    configuration documentation for modules with XML configuration
2526    documentation. When {module}, {type}, and {option} are omitted, a listing
2527    of all modules with registered documentation is displayed. When {module}
2528    is specified, a listing of all configuration types for that module is
2529    displayed, along with their synopsis. When {module} and {type} are
2530    specified, a listing of all configuration options for that type are
2531    displayed along with their synopsis. When {module}, {type}, and {option}
2532    are specified, detailed information for that configuration option is
2533    displayed.
2534
2535  * Added 'core show sounds' and 'core show sound' CLI commands. These display
2536    a listing of all installed media sounds available on the system and
2537    detailed information about a sound, respectively.
2538
2539  * 'xmldoc dump' has been added. This CLI command will dump the XML
2540    documentation DOM as a string to the specified file. The Asterisk core
2541    will populate certain XML elements pulled from the source files with
2542    additional run-time information; this command lets a user produce the
2543    XML documentation with all information.
2544
2545 Features
2546 -------------------
2547  * Parking has been pulled from core and placed into a separate module called
2548    res_parking. See Parking changes below for more details. Configuration for
2549    parking should now be performed in res_parking.conf. Configuration for
2550    parking in features.conf is now unsupported.
2551
2552  * Core attended transfers now have several new options. While performing an
2553    attended transfer, the transferer now has the following options:
2554    - *1 - cancel the attended transfer (configurable via atxferabort)
2555    - *2 - complete the attended transfer, dropping out of the call
2556           (configurable via atxfercomplete)
2557    - *3 - complete the attended transfer, but stay in the call. This will turn
2558           the call into a multi-party bridge (configurable via atxferthreeway)
2559    - *4 - swap to the other party. Once an attended transfer has begun, this
2560           options may be used multiple times (configurable via atxferswap)
2561
2562  * For DTMF blind and attended transfers, the channel variable TRANSFER_CONTEXT
2563    must be on the channel initiating the transfer to have any effect.
2564
2565  * The BRIDGE_FEATURES channel variable would previously only set features for
2566    the calling party and would set this feature regardless of whether the
2567    feature was in caps or in lowercase. Use of a caps feature for a letter
2568    will now apply the feature to the calling party while use of a lowercase
2569    letter will apply that feature to the called party.
2570
2571  * Add support for automixmon to the BRIDGE_FEATURES channel variable.
2572
2573  * The channel variable DYNAMIC_PEERNAME is redundant with BRIDGEPEER and is
2574    removed.  The more useful DYNAMIC_WHO_ACTIVATED gives the channel name that
2575    activated the dynamic feature.
2576
2577  * The channel variables DYNAMIC_FEATURENAME and DYNAMIC_WHO_ACTIVATED are set
2578    only on the channel executing the dynamic feature.  Executing a dynamic
2579    feature on the bridge peer in a multi-party bridge will execute it on all
2580    peers of the activating channel.
2581
2582  * You can now have the settings for a channel updated using the FEATURE()
2583    and FEATUREMAP() functions inherited to child channels by setting
2584    FEATURE(inherit)=yes.
2585
2586  * automixmon now supports additional channel variables from automon including:
2587    TOUCH_MIXMONITOR_PREFIX, TOUCH_MIXMONITOR_MESSAGE_START,
2588    and TOUCH_MIXMONITOR_MESSAGE_STOP
2589
2590  * A new general features.conf option 'recordingfailsound' has been added which
2591    allowssetting a failure sound for a user tries to invoke a recording feature
2592    such as automon or automixmon and it fails.
2593
2594  * It is no longer necessary (or possible) to define the ATXFER_NULL_TECH in
2595    features.c for atxferdropcall=no to work properly. This option now just
2596    works.
2597
2598 Logging
2599 -------------------
2600  * Added log rotation strategy 'none'. If set, no log rotation strategy will
2601    be used. Given that this can cause the Asterisk log files to grow quickly,
2602    this option should only be used if an external mechanism for log management
2603    is preferred.
2604
2605 Realtime
2606 ------------------
2607  * Dynamic realtime tables for SIP Users can now include a 'path' field. This
2608    will store the path information for that peer when it registers. Realtime
2609    tables can also use the 'supportpath' field to enable Path header support.
2610
2611  * LDAP realtime configurations for SIP Users now have the AstAccountPathSupport
2612    objectIdentifier. This maps to the supportpath option in sip.conf.
2613
2614 Sorcery
2615 ------------------
2616  * Sorcery is a new data abstraction and object persistence API in Asterisk. It
2617    provides modules a useful abstraction on top of the many storage mechanisms
2618    in Asterisk, including the Asterisk Database, static configuration files,
2619    static Realtime, and dynamic Realtime. It also provides a caching service.
2620    Users can configure a hierarchy of data storage layers for specific modules
2621    in sorcery.conf.
2622
2623  * All future modules which utilize Sorcery for object persistence must have a
2624    column named "id" within their schema when using the Sorcery realtime module.
2625    This column must be able to contain a string of up to 128 characters in length.
2626
2627 Security Events Framework
2628 ------------------
2629  * Security Event timestamps now use ISO 8601 formatted date/time instead of
2630    the "seconds-microseconds" format that it was using previously.
2631
2632 Stasis Message Bus
2633 ------------------
2634  * The Stasis message bus is a publish/subscribe message bus internal to
2635    Asterisk. Many services in Asterisk are built on the Stasis message bus,
2636    including AMI, ARI, CDRs, and CEL. Parameters controlling the operation of
2637    Stasis can be configured in stasis.conf. Note that these parameters operate
2638    at a very low level in Asterisk, and generally will not require changes.
2639
2640 Channel Drivers
2641 ------------------
2642  * When a channel driver is configured to enable jiterbuffers, they are now
2643    applied unconditionally when a channel joins a bridge. If a jitterbuffer
2644    is already set for that channel when it enters, such as by the JITTERBUFFER
2645    function, then the existing jitterbuffer will be used and the one set by
2646    the channel driver will not be applied.
2647
2648 chan_agent
2649 ------------------
2650  * chan_agent has been removed and replaced with AgentLogin and AgentRequest
2651    dialplan applications provided by the app_agent_pool module. Agents are
2652    connected with callers using the new AgentRequest dialplan application.
2653    The Agents:<agent-id> device state is available to monitor the status of an
2654    agent. See agents.conf.sample for valid configuration options.
2655
2656  * The updatecdr option has been removed. Altering the names of channels on a
2657    CDR is not supported - the name of the channel is the name of the channel,
2658    and pretending otherwise helps no one. The AGENTUPDATECDR channel variable
2659    has also been removed, for the same reason.
2660
2661  * The endcall and enddtmf configuration options are removed.  Use the
2662    dialplan function CHANNEL(dtmf-features) to set DTMF features on the agent
2663    channel before calling AgentLogin.
2664
2665 chan_bridge
2666 ------------------
2667  * chan_bridge has been removed. Its functionality has been incorporated
2668    directly into the ConfBridge application itself.
2669
2670 chan_dahdi
2671 ------------------
2672  * Added the CLI command 'pri destroy span'. This will destroy the D-channel
2673    of the specified span and its B-channels. Note that this command should
2674    only be used if you understand the risks it entails.
2675
2676  * The CLI command 'dahdi destroy channel' is now 'dahdi destroy channels'.
2677    A range of channels can be specified to be destroyed. Note that this command
2678    should only be used if you understand the risks it entails.
2679
2680  * Added the CLI command 'dahdi create channels'. A range of channels can be
2681    specified to be created, or the keyword 'new' can be used to add channels
2682    not yet created.
2683
2684  * The script specified by the chan_dahdi.conf mwimonitornotify option now gets
2685    the exact configured mailbox name.  For app_voicemail mailboxes this is
2686    mailbox@context.
2687
2688  * Added mwi_vm_boxes that also must be configured for ISDN MWI to be enabled.
2689
2690 chan_iax2
2691 ------------------
2692  * IPv6 support has been added.  We are now able to bind to and
2693    communicate using IPv6 addresses.
2694
2695 chan_local
2696 ------------------
2697  * The /b option has been removed.
2698
2699  * chan_local moved into the system core and is no longer a loadable module.
2700
2701 chan_mobile
2702 ------------------
2703  * Added general support for busy detection.
2704
2705  * Added ECAM command support for Sony Ericsson phones.
2706
2707 chan_pjsip
2708 ------------------
2709  * A new SIP channel driver for Asterisk, chan_pjsip is built on the PJSIP
2710    SIP stack. A collection of resource modules provides the bulk of the SIP
2711    functionality. For more information on the new SIP channel driver, see
2712    https://wiki.asterisk.org/wiki/x/JYGLAQ
2713
2714 chan_sip
2715 ------------------
2716  * Added support for RFC 3327 "Path" headers. This can be enabled in sip.conf
2717    using the 'supportpath' setting, either on a global basis or on a peer basis.
2718    This setting enables Asterisk to route outgoing out-of-dialog requests via a
2719    set of proxies by using a pre-loaded route-set defined by the Path headers in
2720    the REGISTER request. See Realtime updates for more configuration information.
2721
2722  * The SIP_CODEC family of variables may now specify more than one codec. Each
2723    codec must be separated by a comma. The first codec specified is the
2724    preferred codec for the offer. This allows a dialplan writer to specify both
2725    audio and video codecs, e.g., Set(SIP_CODEC=ulaw,h264)
2726
2727  * The 'callevents' parameter has been removed. Hold AMI events are now raised
2728    in the core, and can be filtered out using the 'eventfilter' parameter
2729    in manager.conf.
2730
2731  * Added 'ignore_requested_pref'. When enabled, this will use the preferred
2732    codecs configured for a peer instead of the requested codec.
2733
2734  * The option "register_retry_403" has been added to chan_sip to work around
2735    servers that are known to erroneously send 403 in response to valid
2736    REGISTER requests and allows Asterisk to continue attepmting to connect.
2737
2738 chan_skinny
2739 ------------------
2740  * Added the 'immeddialkey' parameter. If set, when the user presses the
2741    configured key the already entered number will be immediately dialed. This
2742    is useful when the dialplan allows for variable length pattern matching.
2743    Valid options are '*' and '#'.
2744
2745  * Added the 'callfwdtimeout' parameter. This configures the amount of time (in
2746    milliseconds) before a call forward is considered to not be answered.
2747
2748  * The 'serviceurl' parameter allows Service URLs to be attached to line
2749    buttons.
2750
2751
2752 Functions
2753 ------------------
2754
2755 AGENT
2756 ------------------
2757  * The password option has been disabled, as the AgentLogin application no
2758    longer provides authentication.
2759
2760 AUDIOHOOK_INHERIT
2761 ------------------
2762  * Due to changes in the Asterisk core, this function is no longer needed to
2763    preserve a MixMonitor on a channel during transfer operations and dialplan
2764    execution. It is effectively obsolete.
2765
2766 CDR (function)
2767 ------------------
2768  * The 'amaflags' and 'accountcode' attributes for the CDR function are
2769    deprecated. Use the CHANNEL function instead to access these attributes.
2770
2771  * The 'l' option has been removed. When reading a CDR attribute, the most
2772    recent record is always used. When writing a CDR attribute, all non-finalized
2773    CDRs are updated.
2774
2775  * The 'r' option has been removed, for the same reason as the 'l' option.
2776
2777  * The 's' option has been removed, as LOCKED semantics no longer exist in the
2778    CDR engine.
2779
2780 CDR_PROP
2781 ------------------
2782  * A new function CDR_PROP has been added. This function lets you set properties
2783    on a channel's active CDRs. This function is write-only. Properties accept
2784    boolean values to set/clear them on the channel's CDRs. Valid properties
2785    include:
2786    - 'party_a' - make this channel the preferred Party A in any CDR between two
2787      channels. If two channels have this property set, the creation time of the
2788      channel is used to determine who is Party A. Note that dialed channels are
2789      never Party A in a CDR.
2790    - 'disable' - disable CDRs on this channel. This is analogous to the NoCDR
2791      application when set to True, and analogous to the 'e' option in ResetCDR
2792      when set to False.
2793
2794 CHANNEL
2795 ------------------
2796  * Added the argument 'dtmf_features'. This sets the DTMF features that will be
2797    enabled on a channel when it enters a bridge. Allowed values are 'T', 'K',
2798    'H', 'W', and 'X', and are analogous to the parameters passed to the Dial
2799    application.
2800
2801  * Added the argument 'after_bridge_goto'. This can be set to a parseable Goto
2802    string, i.e., [[context],extension],priority. If set on a channel, if a
2803    channel leaves a bridge but is not hung up it will resume dialplan execution
2804    at that location.
2805
2806 JITTERBUFFER
2807 ------------------
2808  * JITTERBUFFER now accepts an argument of 'disabled' which can be used
2809    to remove jitterbuffers previously set on a channel with JITTERBUFFER.
2810    The value of this setting is ignored when disabled is used for the argument.
2811
2812 PJSIP_DIAL_CONTACTS
2813 ------------------
2814  * A new function provided by chan_pjsip, this function can be used in
2815    conjunction with the Dial application to construct a dial string that will
2816    dial all contacts on an Address of Record associated with a chan_pjsip
2817    endpoint.
2818
2819 PJSIP_MEDIA_OFFER
2820 ------------------
2821  * Provided by chan_pjsip, this function sets the codecs to be offerred on the
2822    outbound channel prior to dialing.
2823
2824 REDIRECTING
2825 ------------------
2826  * Redirecting reasons can now be set to arbitrary strings. This means
2827    that the REDIRECTING dialplan function can be used to set the redirecting
2828    reason to any string. It also allows for custom strings to be read as the
2829    redirecting reason from SIP Diversion headers.
2830
2831 SPEECH_ENGINE
2832 ------------------
2833  * The SPEECH_ENGINE function now supports read operations. When read from, it
2834    will return the current value of the requested attribute.
2835
2836 VMCOUNT:
2837 ------------------
2838  * Mailboxes defined by app_voicemail MUST be referenced by the rest of the
2839    system as mailbox@context.  The rest of the system cannot add @default
2840    to mailbox identifiers for app_voicemail that do not specify a context
2841    any longer.  It is a mailbox identifier format that should only be
2842    interpreted by app_voicemail.
2843
2844
2845 Resources
2846 ------------------
2847
2848 res_agi (Asterisk Gateway Interface)
2849 ------------------
2850  * The manager event AGIExec has been split into AGIExecStart and AGIExecEnd.
2851
2852  * The manager event AsyncAGI has been split into AsyncAGIStart, AsyncAGIExec,
2853    and AsyncAGIEnd.
2854
2855  * The CONTROL STREAM FILE command now accepts an offsetms parameter. This
2856    will start the playback of the audio at the position specified. It will
2857    also return the final position of the file in 'endpos'.
2858
2859  * The CONTROL STREAM FILE command will now populate the CPLAYBACKSTATUS
2860    channel variable if the user stopped the file playback or if a remote
2861    entity stopped the playback. If neither stopped the playback, it will
2862    indicate the overall success/failure of the playback. If stopped early,
2863    the final offset of the file will be set in the CPLAYBACKOFFSET channel
2864    variable.
2865
2866  * The SAY ALPHA command now accepts an additional parameter to control
2867    whether it specifies the case of uppercase, lowercase, or all letters to
2868    provide functionality similar to SayAlphaCase.
2869
2870 res_ari (Asterisk RESTful Interface) (and others)
2871 ------------------
2872  * The Asterisk RESTful Interface (ARI) provides a mechanism to expose and
2873    control telephony primitives in Asterisk by remote client. This includes
2874    channels, bridges, endpoints, media, and other fundamental concepts. Users
2875    of ARI can develop their own communications applications, controlling
2876    multiple channels using an HTTP RESTful interface and receiving JSON events
2877    about the objects via a WebSocket connection. ARI can be configured in
2878    Asterisk via ari.conf. For more information on ARI, see
2879    https://wiki.asterisk.org/wiki/x/0YCLAQ
2880
2881 res_parking
2882 -------------------
2883  * Parking has been extracted from the Asterisk core as a loadable module,
2884    res_parking. Configuration for parking is now provided by res_parking.conf.
2885    Configuration through features.conf is no longer supported.
2886
2887  * res_parking uses the configuration framework. If an invalid configuration is
2888    supplied, res_parking will fail to load or fail to reload. Previously,
2889    invalid configurations would generally be accepted, with certain errors
2890    resulting in individually disabled parking lots.
2891
2892  * Parked calls are now placed in bridges. While this is largely an
2893    architectural change, it does have implications on how channels in a parking
2894    lot are viewed. For example, commands that display channels in bridges will
2895    now also display the channels in a parking lot.
2896
2897  * The order of arguments for the new parking applications have been modified.
2898    Timeout and return context/exten/priority are now implemented as options,
2899    while the name of the parking lot is now the first parameter. See the
2900    application documentation for Park, ParkedCall, and ParkAndAnnounce for more
2901    in-depth information as well as syntax.
2902
2903  * Extensions are by default no longer automatically created in the dialplan to
2904    park calls or pickup parked calls. Generation of dialplan extensions can be
2905    enabled using the 'parkext' configuration option.
2906
2907  * ADSI functionality for parking is no longer supported. The 'adsipark'
2908    configuration option has been removed as a result.
2909
2910  * The PARKINGSLOT channel variable has been deprecated in favor of
2911    PARKING_SPACE to match the naming scheme of the new system.
2912
2913  * PARKING_SPACE and PARKEDLOT channel variables will now be set for a parked
2914    channel even when the configuration option 'comebactoorigin' is enabled.
2915
2916  * A new CLI command 'parking show' has been added. This allows a user to
2917    inspect the parking lots that are currently in use.
2918    'parking show <parkinglot>' will also show the parked calls in a specific
2919    parking lot.
2920
2921  * The CLI command 'parkedcalls' is now deprecated in favor of
2922    'parking show <parkinglot>'.
2923
2924  * The AMI command 'ParkedCalls' will now accept a 'ParkingLot' argument which
2925    can be used to get a list of parked calls for a specific parking lot.
2926
2927  * The AMI command 'Park' field 'Channel2' has been deprecated and replaced
2928    with 'TimeoutChannel'. If both 'Channel2' and 'TimeoutChannel' are
2929    specified, 'TimeoutChannel' will be used. The field 'TimeoutChannel' is no
2930    longer a required argument.
2931
2932  * The ParkAndAnnounce application is now provided through res_parking instead
2933    of through the separate app_parkandannounce module.
2934
2935  * ParkAndAnnounce will no longer go to the next position in dialplan on timeout
2936    by default. Instead, it will follow the timeout rules of the parking lot. The
2937    old behavior can be reproduced by using the 'c' option.
2938
2939  * Dynamic parking lots will now fail to be created under the following
2940    conditions:
2941    - if the parking lot specified by PARKINGDYNAMIC does not exist
2942    - if they require exclusive park and parkedcall extensions which overlap
2943      with existing parking lots.
2944
2945  * Dynamic parking lots will be cleared on reload for dynamic parking lots that
2946    currently contain no calls. Dynamic parking lots containing parked calls
2947    will persist through the reloads without alteration.
2948
2949  * If 'parkext_exclusive' is set for a parking lot and that extension is
2950    already in use when that parking lot tries to register it, this is now
2951    considered a parking system configuration error. Configurations which do
2952    this will be rejected.
2953
2954  * Added channel variable PARKER_FLAT. This contains the name of the extension
2955    that would be used if 'comebacktoorigin' is enabled. This can be useful when
2956    comebacktoorigin is disabled, but the dialplan or an external control
2957    mechanism wants to use the extension in the park-dial context that was
2958    generated to re-dial the parker on timeout.
2959
2960 res_pjsip (and many others)
2961 ------------------
2962  * A large number of resource modules make up the SIP stack based on pjsip.
2963    The chan_pjsip channel driver users these resource modules to provide
2964    various SIP functionality in Asterisk. The majority of configuration for
2965    these modules is performed in pjsip.conf. Other modules may use their
2966    own configuration files.
2967
2968  * Added 'set_var' option for an endpoint. For each variable specified that
2969    variable gets set upon creation of a channel involving the endpoint.
2970
2971 res_rtp_asterisk
2972 ------------------
2973  * ICE/STUN/TURN support in res_rtp_asterisk has been made optional.  To enable
2974    them, an Asterisk-specific version of PJSIP needs to be installed.
2975    Tarballs are available from https://github.com/asterisk/pjproject/tags/.
2976
2977 res_statsd/res_chan_stats
2978 ------------------
2979  * A new resource module, res_statsd, has been added, which acts as a statsd
2980    client. This module allows Asterisk to publish statistics to a statsd
2981    server. In conjunction with res_chan_stats, it will publish statistics about
2982    channels to the statsd server. It can be configured via res_statsd.conf.
2983
2984 res_xmpp
2985 ------------------
2986  * Device state for XMPP buddies is now available using the following format:
2987    XMPP/<client name>/<buddy address>
2988    If any resource is available the device state is considered to be not in use.
2989    If no resources exist or all are unavailable the device state is considered
2990    to be unavailable.
2991
2992
2993 Scripts
2994 ------------------
2995
2996 Realtime/Database Scripts
2997 ------------------
2998  * Asterisk previously included example db schemas in the contrib/realtime/
2999    directory of the source tree.  This has been replaced by a set of database
3000    migrations using the Alembic framework.  This allows you to use alembic to
3001    initialize the database for you.  It will also serve as a database migration
3002    tool when upgrading Asterisk in the future.
3003
3004    See contrib/ast-db-manage/README.md for more details.
3005
3006 sip_to_res_pjsip.py
3007 -------------------
3008  * A new script has been added in the contrib/scripts/sip_to_res_pjsip folder.
3009    This python script will convert an existing sip.conf file to a
3010    pjsip.conf file, for use with the chan_pjsip channel driver. This script
3011    is meant to be an aid in converting an existing chan_sip configuration to
3012    a chan_pjsip configuration, but it is expected that configuration beyond
3013    what the script provides will be needed.
3014
3015 ------------------------------------------------------------------------------
3016 --- Functionality changes from Asterisk 10 to Asterisk 11 --------------------
3017 ------------------------------------------------------------------------------
3018
3019 Build System
3020 -------------------
3021  * The Asterisk build system will now build and install a shared library
3022    (libasteriskssl.so) used to wrap various initialization and shutdown functions
3023    from the libssl and libcrypto libraries provided by OpenSSL. This is done so
3024    that Asterisk can ensure that these functions do *not* get called by any
3025    modules that are loaded into Asterisk, since they should only be called once
3026    in any single process. If desired, this feature can be disabled by supplying
3027    the "--disable-asteriskssl" option to the configure script.
3028
3029  * A new make target, 'full', has been added to the Makefile.  This performs
3030    the same compilation actions as make all, but will also scan the entirety of
3031    each source file for documentation.  This option is needed to generate AMI
3032    event documentation.  Note that your system must have Python in order for
3033    this make target to succeed.
3034
3035  * The optimization portion of the build system has been reworked to avoid
3036    broken builds on certain architectures.  All architecture-specific
3037    optimization has been removed in favor of using -march=native to allow gcc
3038    to detect the environment in which it is running when possible.  This can
3039    be toggled as BUILD_NATIVE under "Compiler Flags" in menuselect.
3040
3041  * BUILD_CFLAGS and BUILD_LDFLAGS can now be passed to menuselect, e.g.,
3042    make BUILD_CFLAGS="whatever" BUILD_LDFLAGS="whatever"
3043
3044  * Remove "asterisk/version.h" in favor of "asterisk/ast_version.h".  If you
3045    previously parsed the header file to obtain the version of Asterisk, you
3046    will now have to go through Asterisk to get the version information.
3047
3048
3049 Applications
3050 -------------------
3051
3052 Bridge
3053 -------------------
3054  * Added 'F()' option. Similar to the dial option, this can be supplied with
3055    arguments indicating where the callee should go after the caller is hung up,
3056    or without options specified, the priority after the Queue will be used.
3057
3058
3059 ConfBridge
3060 -------------------
3061  * Added menu action admin_toggle_mute_participants.  This will mute / unmute
3062    all non-admin participants on a conference.  The confbridge configuration
3063    file also allows for the default sounds played to all conference users when
3064    this occurs to be overriden using sound_participants_unmuted and
3065    sound_participants_muted.
3066
3067  * Added menu action participant_count.  This will playback the number of
3068    current participants in a conference.
3069
3070  * Added announcement configuration option to user profile. If set the sound
3071    file will be played to the user, and only the user, upon joining the
3072    conference bridge.
3073
3074  * Added record_file_append option that defaults to "yes", but if set to no
3075    will create a new file between each start/stop recording.
3076
3077
3078 Dial
3079 -------------------
3080  * Added 'b' and 'B' options to Dial that execute a Gosub on callee and caller
3081    channels respectively before the callee channels are called.
3082
3083
3084 ExternalIVR
3085 -------------------
3086  * Added support for IPv6.
3087
3088  * Add interrupt ('I') command to ExternalIVR.  Sending this command from an
3089    external process will cause the current playlist to be cleared, including
3090    stopping any audio file that is currently playing.  This is useful when you
3091    want to interrupt audio playback only when specific DTMF is entered by the
3092    caller.
3093
3094
3095 FollowMe
3096 -------------------
3097  * A new option, 'I' has been added to app_followme. By setting this option,
3098    Asterisk will not update the caller with connected line changes when they
3099    occur.  This is similar to app_dial and app_queue.
3100
3101  * The 'N' option is now ignored if the call is already answered.
3102
3103  * Added 'b' and 'B' options to FollowMe that execute a Gosub on callee
3104    and caller channels respectively before the callee channels are called.
3105
3106  * The winning FollowMe outgoing call is now put on hold if the caller put it on
3107    hold.
3108
3109
3110 MixMonitor
3111 ------------------
3112  * MixMonitor hooks now have IDs associated with them which can be used to
3113    assign a target to StopMixMonitor. Use of MixMonitor's i(variable) option
3114    will allow storage of the MixMontior ID in a channel variable. StopMixmonitor
3115    now accepts that ID as an argument.
3116
3117  * Added 'm' option, which stores a copy of the recording as a voicemail in the
3118    indicated mailboxes.
3119
3120
3121 MySQL
3122 -------------------
3123  * The connect action in app_mysql now allows you to specify a port number to
3124    connect to.  This is useful if you run a MySQL server on a non-standard
3125    port number.
3126
3127
3128 OSP Applications
3129 -------------------
3130  * Increased the default number of allowed destinations from 5 to 12.
3131
3132
3133 Page
3134 -------------------
3135  * The app_page application now no longer depends on DAHDI or app_meetme.  It
3136    has been re-architected to use app_confbridge internally.
3137
3138
3139 Queue
3140 -------------------
3141  * Added queue options autopausebusy and autopauseunavail for automatically
3142    pausing a queue member when their device reports busy or congestion.
3143
3144  * The 'ignorebusy' option for queue members has been deprecated in favor of
3145    the option 'ringinuse. Also a 'queue set ringinuse' CLI command has been
3146    added as well as an AMI action 'QueueMemberRingInUse' to set this variable on a
3147    per interface basis. Individual ringinuse values can now be set in
3148    queues.conf via an argument to member definitions. Lastly, the queue
3149    'ringinuse' setting now only determines defaults for the per member
3150    'ringinuse' setting and does not override per member settings like it does
3151    in earlier versions.
3152
3153  * Added 'F()' option. Similar to the dial option, this can be supplied with
3154    arguments indicating where the callee should go after the caller is hung up,
3155    or without options specified, the priority after the Queue will be used.
3156
3157  * Added new option log_member_name_as_agent, which will cause the membername to
3158    be logged in the agent field for ADDMEMBER and REMOVEMEMBER queue events if a
3159    state_interface has been set.
3160
3161  * Add queue monitoring hints.  exten => 8501,hint,Queue:markq.
3162
3163  * App_queue will now play periodic announcements for the caller that
3164    holds the first position in the queue while waiting for answer.
3165
3166 SayUnixTime
3167 ------------------
3168  * Added 'j' option to SayUnixTime. SayUnixTime no longer auto jumps to extension
3169    when receiving DTMF.  Use the 'j' option to enable extension jumping. Also
3170    changed arguments to SayUnixTime so that every option is truly optional even
3171    when using multiple options (so that j option could be used without having to
3172    manually specify timezone and format) There are other benefits, e.g., format
3173    can now be used without specifying time zone as well.
3174
3175
3176 Voicemail
3177 ------------------
3178  * Addition of the VM_INFO function - see Function changes.
3179
3180  * The imapserver, imapport, and imapflags configuration options can now be
3181    overriden on a user by user basis.
3182
3183  * When voicemail plays a message's envelope with saycid set to yes, when
3184    reaching the caller id field it will play a recording of a file with the same
3185    base name as the sender's callerid if there is a similarly named file in
3186    <astspooldir>/recordings/callerids/
3187
3188  * Voicemails now contains a unique message identifier "msg_id", which is stored
3189    in the message envelope with the sound files.  IMAP backends will now store
3190    the message identifiers with a header of "X-Asterisk-VM-Message-ID".  ODBC
3191    backends will store the message identifier in a "msg_id" column.  See
3192    UPGRADE.txt for more information.
3193
3194  * Added VoiceMailPlayMsg application.  This application will play a single
3195    voicemail message from a mailbox.  The result of the application, SUCCESS or
3196    FAILED, is stored in the channel variable VOICEMAIL_PLAYBACKSTATUS.
3197
3198
3199 Functions
3200 ------------------
3201  * Hangup handlers can be attached to channels using the CHANNEL() function.
3202    Hangup handlers will run when the channel is hung up similar to the h
3203    extension. The hangup_handler_push option will push a GoSub compatible
3204    location in the dialplan onto the channel's hangup handler stack.  The
3205    hangup_handler_pop option will remove the last added location, and optionally
3206    replace it with a new GoSub compatible location.  The hangup_handler_wipe
3207    option will remove all locations on the stack, and optionally add a new
3208    location.
3209
3210  * The expression parser now recognizes the ABS() absolute value function,
3211    which will convert negative floating point values to positive values.
3212
3213  * FAXOPT(faxdetect) will enable a generic fax detect framehook for dialplan
3214    control of faxdetect.
3215
3216  * Addition of the VM_INFO function that can be used to retrieve voicemail
3217    user information, such as the email address and full name.
3218    The MAILBOX_EXISTS dialplan function has been deprecated in favour of
3219    VM_INFO.
3220
3221  * The REDIRECTING function now supports the redirecting original party id
3222    and reason.
3223
3224  * Two new functions have been added: FEATURE() and FEATUREMAP().  FEATURE()
3225    lets you set some of the configuration options from the [general] section
3226    of features.conf on a per-channel basis.  FEATUREMAP() lets you customize
3227    the key sequence used to activate built-in features, such as blindxfer,
3228    and automon.  See the built-in documentation for details.
3229
3230  * MESSAGE(from) for incoming SIP messages now returns "display-name" <uri>
3231    instead of simply the uri.  This is the format that MessageSend() can use
3232    in the from parameter for outgoing SIP messages.
3233
3234  * Added the PRESENCE_STATE function.  This allows retrieving presence state
3235    information from any presence state provider.  It also allows setting
3236    presence state information from a CustomPresence presence state provider.
3237    See AMI/CLI changes for related commands.
3238
3239  * Added the AMI_CLIENT function to make manager account attributes available
3240    to the dialplan. It currently supports returning the current number of
3241    active sessions for a given account.
3242
3243  * Added support for private party ID information to CALLERID, CONNECTEDLINE,
3244    and the REDIRECTING functions.
3245
3246
3247 Channel Drivers
3248 ------------------
3249
3250 chan_local
3251 ------------------
3252  * Added a manager event "LocalBridge" for local channel call bridges between
3253    the two pseudo-channels created.
3254
3255
3256 chan_dahdi
3257 ------------------
3258  * Added dialtone_detect option for analog ports to disconnect incoming
3259    calls when dialtone is detected.
3260
3261  * Added option colp_send to send ISDN connected line information.  Allowed
3262    settings are block, to not send any connected line information; connect, to
3263    send connected line information on initial connect; and update, to send
3264    information on any update during a call.  Default is update.
3265
3266  * Add options namedcallgroup and namedpickupgroup to support installations
3267    where a higher number of groups (>64) is required.
3268
3269  * Added support to use private party ID information with PRI calls.
3270
3271
3272 chan_motif
3273 ------------------
3274  * A new channel driver named chan_motif has been added which provides support for
3275    Google Talk and Jingle in a single channel driver. This new channel driver includes
3276    support for both audio and video, RFC2833 DTMF, all codecs supported by Asterisk,
3277    hold, unhold, and ringing notification. It is also compliant with the current Jingle
3278    specification, current Google Jingle specification, and the original Google Talk
3279    protocol.
3280
3281
3282 chan_ooh323
3283 ------------------
3284  * Added NAT support for RTP.  Setting in config is 'nat', which can be set
3285    globally and overriden on a peer by peer basis.
3286
3287  * Direct media functionality has been added. Options in config are:
3288    directmedia (directrtp) and directrtpsetup (earlydirect)
3289
3290  * ChannelUpdate events now contain a CallRef header.
3291
3292
3293 chan_sip
3294 ------------------
3295  * Asterisk will no longer substitute CID number for CID name in the display
3296    name field if CID number exists without a CID name. This change improves
3297    compatibility with certain device features such as Avaya IP500's directory
3298    lookup service.
3299
3300  * A new setting for autocreatepeer (autocreatepeer=persistent) allows peers
3301    created using that setting to not be removed during SIP reload.
3302
3303  * Added settings recordonfeature and recordofffeature.  When receiving an INFO
3304    request with a "Record:" header, this will turn the requested feature on/off.
3305    Allowed values are 'automon', 'automixmon', and blank to disable.  Note that
3306    dynamic features must be enabled and configured properly on the requesting
3307    channel for this to function properly.
3308
3309  * Add support to realtime for the 'callbackextension' option.
3310
3311  * When multiple peers exist with the same address, but differing
3312    callbackextension options, incoming requests that are matched by address
3313    will be matched to the peer with the matching callbackextension if it is
3314    available.
3315
3316  * Two new NAT options, auto_force_rport and auto_comedia, have been added
3317    which set the force_rport and comedia options automatically if Asterisk
3318    detects that an incoming SIP request crossed a NAT after being sent by
3319    the remote endpoint.
3320
3321  * The default global nat setting in sip.conf has been changed from force_rport
3322    to auto_force_rport.
3323
3324  * NAT settings are now a combinable list of options. The equivalent of the
3325    deprecated nat=yes is nat=force_rport,comedia. nat=no behaves as before.
3326
3327  * Adds an option send_diversion which can be disabled to prevent
3328    diversion headers from automatically being added to INVITE requests.
3329
3330  * Add support for lightweight NAT keepalive. If enabled a blank packet will
3331    be sent to the remote host at a given interval to keep the NAT mapping open.
3332    This can be enabled using the keepalive configuration option.
3333
3334  * Add option 'tonezone' to specify country code for indications.  This option
3335    can be set both globally and overridden for specific peers.
3336
3337  * The SIP Security Events Framework now supports IPv6.
3338
3339  * Add a new setting for directmedia, 'outgoing', to alleviate INVITE glares
3340    between multiple user agents. When set, for directmedia reinvites,
3341    Asterisk will not send an immediate reinvite on an incoming call leg. This
3342    option is useful when peered with another SIP user agent that is known to
3343    send immediate direct media reinvites upon call establishment.
3344
3345  * Add support for WebSocket transport. This can be configured using 'ws' or 'wss'
3346    as the transport.
3347
3348  * Add options subminexpiry and submaxexpiry to set limits of subscription
3349    timer independently from registration timer settings. The setting of the
3350    registration timer limits still is done by options minexpiry, maxexpiry
3351    and defaultexpiry. For backwards compatibility the setting of minexpiry
3352    and maxexpiry also is used to configure the subscription timer limits if
3353    subminexpiry and submaxexpiry are not set in sip.conf.
3354
3355  * Set registration timer limits to default values when reloading sip
3356    configuration and values are not set by configuration.
3357
3358  * Add options namedcallgroup and namedpickupgroup to support installations
3359    where a higher number of groups (>64) is required.
3360
3361  * When a MESSAGE request is received, the address the request was received from
3362    is now saved in the SIP_RECVADDR variable.
3363
3364  * Add ANI2/OLI parsing for SIP.  The "From" header in INVITE requests is now
3365    parsed for the presence of "isup-oli", "ss7-oli", or "oli" tags.  If present,
3366    the ANI2/OLI information is set on the channel, which can be retrieved using
3367    the CALLERID function.
3368
3369  * Peers can now be configured to support negotiation of ICE candidates using
3370    the setting icesupport.  See res_rtp_asterisk changes for more information.
3371
3372  * Added support for format attribute negotiation.  See the Codecs changes for
3373    more information.
3374
3375  * Extra headers specified with SIPAddHeader are sent with the REFER message
3376    when using Transfer application. See refer_addheaders in sip.conf.sample.
3377
3378  * Added support to use private party ID information with calls.
3379
3380  * Adds an option discard_remote_hold_retrieval that when set stops telling
3381    the peer to start music on hold.
3382
3383
3384 chan_skinny
3385 ------------------
3386  * Added skinny version 17 protocol support.
3387
3388
3389 chan_unistim
3390 --------------------
3391  * Added option 'dtmf_duration' allowing playback time of DTMF tones to be set
3392
3393  * Modified option 'date_format' to allow options to display date in 31Jan and Jan31
3394    formats as options 0 and 1. The previous options 0 and 1 now map to options 2 and 3
3395    as per the UNISTIM protocol.
3396
3397  * Fixed issues with dialtone not matching indications.conf and mute stopping rx
3398    as well as tx. Also fixed issue with call "Timer" displaying as French "Dur\E9e"
3399
3400  * Added ability to use multiple lines for a single phone.  This allows multiple
3401    calls to occur on a single phone, using callwaiting and switching between calls.
3402
3403  * Added option 'sharpdial' allowing end dialing by pressing # key
3404
3405  * Added option 'interdigit_timer' to control phone dial timeout
3406
3407  * Added options 'cwstyle', 'cwvolume' controlling callwaiting appearance
3408
3409  * Added global 'debug' option, that enables debug in channel driver
3410
3411  * Added ability to translate on-screen menu in multiple languages. Tested on
3412    Russian languages.  Supported encodings: ISO 8859-1, ISO 8859-2, ISO 8859-4,
3413    ISO 8859-5, ISO 2022-JP. Language controlled by 'language' and on-screen
3414    menu of phone
3415
3416  * In addition to English added French and Russian languages for on-screen menus
3417
3418  * Reworked dialing number input: added dialing by timeout, immediate dial on
3419    on dialplan compare, phone number length now not limited by screen size
3420
3421  * Added ability to pickup a call using features.conf defined value and
3422    on-screen key
3423
3424
3425 chan_mISDN:
3426 ------------------
3427  * Add options namedcallgroup and namedpickupgroup to support installations
3428    where a higher number of groups (>64) is required.
3429
3430  * Added support to use private party ID information with calls.
3431
3432
3433 Core
3434 ------------------
3435  * The minimum DTMF duration can now be configured in asterisk.conf
3436    as "mindtmfduration". The default value is (as before) set to 80 ms.
3437    (previously it was only available in source code)
3438
3439  * Named ACLs can now be specified in acl.conf and used in configurations that
3440    use ACLs. As a general rule, if some derivative of 'permit' or 'deny' is
3441    used to specify an ACL, a similar form of 'acl' will add a named ACL to the
3442    working ACL. In addition, some CLI commands have been added to provide
3443    show information and allow for module reloading - see CLI Changes.
3444
3445  * Rules in ACLs (specified using 'permit' and 'deny') can now contain multiple
3446    items (separated by commas), and items in the rule can be negated by prefixing
3447    them with '!'. This simplifies Asterisk Realtime configurations, since it is no
3448    longer necessray to control the order that the 'permit' and 'deny' columns are
3449    returned from queries.
3450
3451  * DUNDi now allows the built in variables ${NUMBER}, ${IPADDR} and ${SECRET} to
3452    be used within the dynamic weight attribute when specifying a mapping.
3453
3454  * CEL backends can now be configured to show "USER_DEFINED" in the EventName
3455    header, instead of putting the user defined event name there.  When enabled
3456    the UserDefType header is added for user defined events.  This feature is
3457    enabled with the setting show_user_defined.
3458
3459  * Macro has been deprecated in favor of GoSub.  For redirecting and connected
3460    line purposes use the following variables instead of their macro equivalents:
3461    REDIRECTING_SEND_SUB, REDIRECTING_SEND_SUB_ARGS, CONNECTED_LINE_SEND_SUB,
3462    CONNECTED_LINE_SEND_SUB_ARGS.  For CCSS, use cc_callback_sub instead of
3463    cc_callback_macro in channel configurations.
3464
3465  * Asterisk can now use a system-provided NetBSD editline library (libedit) if it
3466    is available.
3467
3468  * Call files now support the "early_media" option to connect with an outgoing
3469    extension when early media is received.
3470
3471  * Added support to use private party ID information with calls.
3472
3473
3474 AGI
3475 ------------------
3476  * A new channel variable, AGIEXITONHANGUP, has been added which allows
3477    Asterisk to behave like it did in Asterisk 1.4 and earlier where the
3478    AGI application would exit immediately after a channel hangup is detected.
3479
3480  * IPv6 addresses are now supported when using FastAGI (agi://).  Hostnames
3481    are resolved and each address is attempted in turn until one succeeds or
3482    all fail.
3483
3484
3485 AMI (Asterisk Manager Interface)
3486 ------------------
3487  * The originate action now has an option "EarlyMedia" that enables the
3488    call to bridge when we get early media in the call. Previously,
3489    early media was disregarded always when originating calls using AMI.
3490
3491  * Added setvar= option to manager accounts (much like sip.conf)
3492
3493  * Originate now generates an error response if the extension given is not found
3494    in the dialplan
3495
3496  * MixMonitor will now show IDs associated with the mixmonitor upon creating
3497    them if the i(variable) option is used. StopMixMonitor will accept
3498    MixMonitorID as an option to close specific MixMonitors.
3499
3500  * The SIPshowpeer manager action response field "SIP-Forcerport" has been
3501    updated to include information about peers configured with
3502    nat=auto_force_rport by returning "A" if auto_force_rport is set and nat is
3503    detected, and "a" if it is set and nat is not detected. "Y" and "N" are still
3504    returned if auto_force_rport is not enabled.
3505
3506  * Added SIPpeerstatus manager command which will generate PeerStatus events
3507    similar to the existing PeerStatus events found in chan_sip on demand.
3508
3509  * Hangup now can take a regular expression as the Channel option.  If you want
3510    to hangup multiple channels, use /regex/ as the Channel option.  Existing
3511    behavior to hanging up a single channel is unchanged, but if you pass a regex,
3512    the manager will send you a list of channels back that were hung up.
3513
3514  * Support for IPv6 addresses has been added.
3515
3516  * AMI Events can now be documented in the Asterisk source. Note that AMI event
3517    documentation is only generated when Asterisk is compiled using 'make full'.
3518    See the CLI section for commands to display AMI event information.
3519
3520  * The AMI Hangup event now includes the AccountCode header so you can easily
3521    correlate with AMI Newchannel events.
3522
3523  * The QueueMemberStatus, QueueMemberAdded, and QueueMember events now include
3524    the StateInterface of the queue member.
3525
3526  * Added AMI event SessionTimeout in the Call category that is issued when a
3527    call is terminated due to either RTP stream inactivity or SIP session timer
3528    expiration.
3529
3530  * CEL events can now contain a user defined header UserDefType.  See core
3531    changes for more information.
3532
3533  * OOH323 ChannelUpdate events now contain a CallRef header.
3534
3535  * Added PresenceState command.  This command will report the presence state for
3536    the given presence provider.
3537
3538  * Added Parkinglots command.  This will list all parking lots as a series of
3539    AMI Parkinglot events.
3540
3541  * Added MessageSend command.  This behaves in the same manner as the
3542    MessageSend application, and is a technolgoy agnostic mechanism to send out
3543    of call text messages.
3544
3545  * Added "message" class authorization.  This grants an account permission to
3546    send out of call messages.  Write-only.
3547
3548
3549 CLI
3550 -------------------
3551  * The "dialplan add include" command has been modified to create context a context
3552    if one does not already exist. For instance, "dialplan add include foo into bar"
3553    will create context "bar" if it does not already exist.
3554
3555  * A  "dialplan remove context" command has been added to remove a context from
3556    the dialplan
3557
3558  * The "mixmonitor list <channel>" command will now show MixMonitor ID, and the
3559    filenames of all running mixmonitors on a channel.
3560
3561  * The debug level of "pri set debug" is now a bitmask ranging from 0 to 15 if
3562    numeric instead of 0, 1, or 2.
3563
3564  * "stun show status" will show a table describing how the STUN client is
3565    behaving.
3566
3567  * "acl show [named acl]" will show information regarding a Named ACL.  The
3568    acl module can be reloaded with "reload acl".
3569
3570  * Added CLI command to display AMI event information - "manager show events",
3571    which shows a list of all known and documented AMI events, and "manager show
3572    event [event name]", which shows detail information about a specific AMI
3573    event.
3574
3575  * The result of the CLI command "queue show" now includes the state interface
3576    information of the queue member.
3577
3578  * The command "core set verbose" will now set a separate level of logging for
3579    each remote console without affecting any other console.