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