+++ /dev/null
-==============================================================================
-===
-=== THIS FILE IS AUTOMATICALLY GENERATED DURING THE RELEASE
-=== PROCESS. DO NOT MAKE CHANGES HERE. INSTEAD, REFER TO
-=== doc/CHANGES-staging/README.md FOR MORE DETAILS.
-===
-=== This file documents the new and/or enhanced functionality added in
-=== the Asterisk versions listed below. This file does NOT include
-=== changes in behavior that would not be backwards compatible with
-=== previous versions; for that information see the UPGRADE.txt file
-=== and the other UPGRADE files for older releases.
-===
-==============================================================================
-
-------------------------------------------------------------------------------
---- Functionality changes from Asterisk 19.0.0 to Asterisk 20.0.0 ------------
-------------------------------------------------------------------------------
-
-Applications
-------------------
- * added support for Danish syntax, playing the correct plural sound file
- dependen on where you have 1 or multipe messages
- based on the existing SE/NO code
-
- * added that we set DIALEDPEERNUMBER on the outgoing channels
- so it is avalible in b(content^extension^line)
- this add the same behaviour as Dial
-
-Channel-agnostic MF support
-------------------
- * A SendMF application and PlayMF manager
- application are now included to send
- arbitrary standard R1 MF tones on the
- current channel or another specified channel.
-
-Core
-------------------
- * Bundled PJProject Build
-
- The build process has been updated to make pjproject troubleshooting
- and development easier. See third-party/pjproject/README-hacking.md or
- https://wiki.asterisk.org/wiki/display/AST/Bundled+PJProject
- for more info.
-
-Handle non-standard Meter metric type safely
-------------------
- * A meter_support flag has been introduced that defaults to true to maintain current behaviour.
- If disabled, a counter metric type will be used instead wherever a meter metric type was used,
- the counter will have a "_meter" suffix appended to the metric name.
-
-MessageSend
-------------------
- * The MessageSend AMI action has been updated to allow the Destination
- and the To addresses to be provided separately. This brings the
- MessageSend manager command in line with the capabilities of the
- MessageSend dialplan application.
-
-ToneScan application
-------------------
- * A new application, ToneScan, allows for
- synchronous detection of call progress
- signals such as dial tone, busy tone,
- Special Information Tones, and modems.
-
-ami
-------------------
- * An AMI event now exists for "Wink".
-
- * AMI events can now be globally disabled using
- the disabledevents [general] setting.
-
-app_confbridge
-------------------
- * Added the hear_own_join_sound option to the confbridge user profile to
- control who hears the sound_join audio file. When set to 'yes' the user
- entering the conference and the participants already in the conference
- will hear the sound_join audio file. When set to 'no' the user entering
- the conference will not hear the sound_join audio file, but the
- participants already in the conference will hear the sound_join audio file.
-
- * Adds the CONFBRIDGE_CHANNELS function which can
- be used to retrieve a list of channels in a ConfBridge,
- optionally filtered by a particular category. This
- list can then be used with functions like SHIFT, POP,
- UNSHIFT, etc.
-
-app_dtmfstore
-------------------
- * New application which collects digits
- dialed and stores them into
- a specified variable.
-
-app_mf
-------------------
- * Adds MF receiver and sender applications to support
- the R1 MF signaling protocol, including integration
- with the Dial application.
-
- * Adds an option to ReceiveMF to cap the
- number of digits read at a user-specified
- maximum.
-
-app_milliwatt
-------------------
- * The Milliwatt application's existing behavior is
- incorrect in that it plays a constant tone, which
- is not how digital milliwatt test lines actually
- work.
-
- An option is added so that a proper milliwatt test
- tone can be provided, including a 1 second silent
- interval every 10 seconds. However, for compatability
- reasons, the default behavior remains unchanged.
-
-app_morsecode
-------------------
- * Extends the Morsecode application by adding support for
- American Morse code and adds a configurable option
- for the frequency used in off intervals.
-
-app_originate
-------------------
- * Codecs can now be specified for dialplan-originated
- calls, as with call files and the manager action.
- By default, only the slin codec is now used, instead
- of all the slin* codecs.
-
-app_playback
-------------------
- * A new option 'mix' is added to the Playback application that
- will play by filename and say.conf. It will look on the format of the
- name, if it is like say format it will play with say.conf if not it
- will play the file name.
-
-app_queue
-------------------
- * Reload behavior in app_queue has been changed so
- queue and agent stats are not reset during full
- app_queue module reloads. The queue reset stats
- CLI command may still be used to reset stats while
- Asterisk is running.
-
- * Add field to save the time value when a member enter a queue.
- Shows this time in seconds using 'queue show' command and the
- field LoginTime for responses for AMI the events.
-
- The output for the CLI command `queue show` is changed by added a
- extra data field for the information of the time login time for each
- member.
-
- * added that we set DIALEDPEERNUMBER on the outgoing channels
- so it is avalible in b(content^extension^line)
- this add the same behaviour as Dial
-
- * Load queues and members from Realtime for
- AMI actions: QueuePause, QueueStatus and QueueSummary,
- Applications: PauseQueueMember and UnpauseQueueMember.
-
- * Added a new AMI action: QueueWithdrawCaller
- This AMI action makes it possible to withdraw a caller from a queue
- back to the dialplan. The call will be signaled to leave the queue
- whenever it can, hence, it not guaranteed that the call will leave
- the queue.
-
- Optional custom data can be passed in the request, in the WithdrawInfo
- parameter. If the call successfully withdrawn the queue,
- it can be retrieved using the QUEUE_WITHDRAW_INFO variable.
-
- This can be useful for certain uses, such as dispatching the call
- to a specific extension.
-
- * The m option now allows an override music on hold
- class to be specified for the Queue application
- within the dialplan.
-
-app_queue.c
-------------------
- * Allow multiple files to be streamed for agent announcement.
-
-app_queues
-------------------
- * adding support for playing the correct en/et for nordic languages
-
- * Don't play sound_thanks if there is no leading hold_time message
- When the only announcement is hold time, and there is no hold time (0 min, 0 sec), asterisk will say "thank you for your patience"
-
-app_read
-------------------
- * A new option allows the digit '#' to be read literally,
- rather than used exclusively as the input terminator
- character.
-
-app_sendtext
-------------------
- * A ReceiveText application has been added that can be
- used in conjunction with the SendText application.
-
-app_voicemail
-------------------
- * Add a new 'S' option to VoiceMail which prevents the instructions
- (vm-intro) from being played if a busy/unavailable/temporary greeting
- from the voicemail user is played. This is similar to the existing 's'
- option except that instructions will still be played if no user
- greeting is available.
-
- * added support for Danish syntax, playing the correct plural sound file
- dependen on where you have 1 or multipe messages
- based on the existing SE/NO code
-
- * The r option has been added, which prevents deletion
- of messages from VoiceMailMain, which can be
- useful for shared mailboxes.
-
-apps
-------------------
- * A new option 'mix' is added to the Playback application that
- will play by filename and say.conf. It will look on the format of the
- name, if it is like say format it will play with say.conf if not it
- will play the file name.
-
-ari
-------------------
- * Expose channel driver's unique id (which is the Call-ID for SIP/PJSIP)
- to ARI channel resources as 'protocol_id'.
-
- ASTERISK-30027
-
-ast_coredumper
-------------------
- * New options:
- --pid=<asterisk_pid>
- Allows specification of an Asterisk instance when trying to
- and the script can't determine it itself.
- --libdir=<system library directory>
- Allows specification of a non-standard installation directory
- containing the Asterisk modules.
- --(no-)rename
- Renames the coredump and the output files with readable
- timestamps. This is the default.
- Removed unneeded or confusing options:
- --append-coredumps
- --conffile
- --no-default-search
- --tarball-uniqueid
- Changed Variables:
- COREDUMPS is now just "/tmp/core!(*.txt)"
- DATEFORMAT is renamed to DATEOPTS and defaults to '-u +%FT%H-%M-%SZ'
- Changed behavior:
- If you use 'running' or 'RUNNING' you no longer need to specify
- '--no-default-search' to ignore existing coredumps.
-
-cdr
-------------------
- * A new CDR option, channeldefaultenabled, allows controlling
- whether CDR is enabled or disabled by default on
- newly created channels. The default behavior remains
- unchanged from previous versions of Asterisk (new
- channels will have CDR enabled, as long as CDR is
- enabled globally).
-
-chan_dahdi
-------------------
- * Previously, cadences were appended on dahdi restart,
- rather than reloaded. This prevented cadences from
- being updated and maxed out the available cadences
- if reloaded multiple times. This behavior is fixed
- so that reloading cadences is idempotent and cadences
- can actually be reloaded.
-
- * A POLARITY function is now available that allows
- getting or setting the polarity on a channel
- from the dialplan.
-
-chan_iax2
-------------------
- * ANI2 (OLI) is now transmitted over IAX2 calls
- as an information element.
-
- * Both a secret and an outkey may be specified at dial time,
- since encryption is possible with RSA authentication.
-
-chan_pjsip
-------------------
- * Add function PJSIP_HEADERS() to get list of headers by pattern in the same way as SIP_HEADERS() do.
-
- Add ability to read header by pattern using PJSIP_HEADER().
-
- * added global config option "allow_sending_180_after_183"
-
- Allow Asterisk to send 180 Ringing to an endpoint
- after 183 Session Progress has been send.
- If disabled Asterisk will instead send only a
- 183 Session Progress to the endpoint.
-
- * Hook flash events can now be sent on a PJSIP channel
- if requested to do so.
-
-chan_sip
-------------------
- * Session timers get removed on UPDATE
- Fix if Asterisk receives a SIP REFER with Session-Timers UAC
- that Asterisk maintains Session-Timers when sending UPDATE request
-
-chan_sip.c
-------------------
- * resolve issue with pickup on device that uses "183" and not "180"
-
-channel_internal_api
-------------------
- * CHANNEL(lastcontext) and CHANNEL(lastexten)
- are now available for use in the dialplan.
-
-cli
-------------------
- * The "module refresh" command has been added,
- which allows unloading and then loading a
- module with a single command.
-
- * A new CLI command 'dialplan eval function' has been
- added which allows users to test the behavior of
- dialplan function calls directly from the CLI.
-
-func_channel
-------------------
- * Adds the CHANNEL_EXISTS function to check for the existence
- of a channel by name or unique ID.
-
-func_db
-------------------
- * The function DB_KEYCOUNT has been added, which
- returns the cardinality of the keys at a specified
- prefix in AstDB, i.e. the number of keys at a
- given prefix.
-
-func_env.c
-------------------
- * Two new functions, DIRNAME and BASENAME, are now
- included which allow users to obtain the directory
- or the base filename of any file.
-
-func_evalexten
-------------------
- * This adds the EVAL_EXTEN function which may be
- used to evaluate data at dialplan extensions.
-
-func_framedrop
-------------------
- * New function to selectively drop specified frames
- in either direction on a channel.
-
-func_json
-------------------
- * The JSON_DECODE dialplan function can now be used
- to parse JSON strings, such as in conjunction with
- CURL for using API responses.
-
-func_odbc
-------------------
- * A SQL_ESC_BACKSLASHES dialplan function has been added which
- escapes backslashes. Usage of this is dependent on whether the
- database in use can use backslashes to escape ticks or not. If
- it can, then usage of this prevents a broken SQL query depending
- on how the SQL query is constructed.
-
-func_scramble
-------------------
- * Adds an audio scrambler function that may be used to
- distort voice audio on a channel as a privacy
- enhancement.
-
-func_strings
-------------------
- * A new STRBETWEEN function is now included which
- allows a substring to be inserted between characters
- in a string. This is particularly useful for transforming
- dial strings, such as adding pauses between digits
- for a string of digits that are sent to another channel.
-
-func_vmcount
-------------------
- * Multiple mailboxes may now be specified instead of just one.
-
-logger
-------------------
- * Added the ability to define custom log levels in logger.conf
- and use them in the Log dialplan application. Also adds a
- logger show levels CLI command.
-
-res_agi
-------------------
- * Agi command 'exec' can now be enabled\r
- to evaluate dialplan functions and variables\r
- by setting the variable AGIEXECFULL to yes.
-
-res_cliexec
-------------------
- * A new CLI command, dialplan exec application, has
- been added which allows dialplan applications to be
- executed at the CLI, useful for some quick testing
- without needing to write dialplan.
-
-res_fax_spandsp
-------------------
- * Adds support for spandsp 3.0.0.
-
-res_geolocation
-------------------
- * Added res_geolocation which creates the core capabilities
- to manipulate Geolocation information on SIP INVITEs.
-
-res_parking
-------------------
- * An m option to Park and ParkAndAnnounce now allows
- specifying a music on hold class override.
-
-res_pjproject
-------------------
- * In pjproject.conf you can now map pjproject log levels
- to the Asterisk TRACE log level. The default mappings
- have therefore changed so that only pjproject levels
- 3 and 4 are mapped to DEBUG and 5 and 6 are now mapped
- to TRACE. Previously 3, 4, 5, and 6 were all mapped to
- DEBUG.
-
-res_pjsip
-------------------
- * A new transport option 'allow_wildcard_certs' has been added that when it
- and 'verify_server' are both set to 'yes', enables verification against
- wildcards, i.e. '*.' in certs for common, and subject alt names of type DNS
- for TLS transport types. Names must start with the wildcard. Partial wildcards,
- e.g. 'f*.example.com' and 'foo.*.com' are not allowed. As well, names only
- match against a single level meaning '*.example.com' matches 'foo.example.com',
- but not 'foo.bar.example.com'.
-
-res_pjsip_geolocation
-------------------
- * Added res_pjsip_geolocation which gives chan_pjsip
- the ability to use the core geolocation capabilities.
-
-res_pjsip_header_funcs
-------------------
- * Add function PJSIP_RESPONSE_HEADERS() to get list of header names from 200 response, in the same way as PJSIP_HEADERS() from the request.
-
- Add function PJSIP_RESPONSE_HEADER() to read header from 200 response, in the same way as PJSIP_HEADER() from the request.
-
-res_pjsip_pubsub
-------------------
- * A new resource_list option, resource_display_name, indicates
- whether display name of resource or the resource name being
- provided for RLS entries.
- If this option is enabled, the Display Name will be provided.
- This option is disabled by default to remain the previous behavior.
- If the 'event' set to 'presence' or 'dialog' the non-empty HINT name
- will be set as the Display Name.
- The 'message-summary' is not supported yet.
-
- * The Resource List Subscriptions (RLS) is dynamic now.
- The asterisk now updates current subscriptions to reflect the changes
- to the list on subscription refresh. If list items are added,
- removed, updated or do not exist anymore, the asterisk regenerates
- the resource list.
-
-res_pjsip_registrar
-------------------
- * Adds new PJSIP AOR option remove_unavailable to either
- remove unavailable contacts when a REGISTER exceeds
- max_contacts when remove_existing is disabled, or
- prioritize unavailable contacts over other existing
- contacts when remove_existing is enabled.
-
-res_pjsip_t38
-------------------
- * In res_pjsip_sdp_rtp, the bind_rtp_to_media_address option and the
- fallback use of the transport's bind address solve problems sending
- media on systems that cannot send ipv4 packets on ipv6 sockets, and
- certain other situations. This change extends both of these behaviors
- to UDPTL sessions as well in res_pjsip_t38, to fix fax-specific
- problems on these systems, introducing a new option
- endpoint/t38_bind_udptl_to_media_address.
-
-res_rtp_asterisk
-------------------
- * When the address of the STUN server (stunaddr) is a name resolved via DNS, the
- stunaddr will be recurringly resolved when the DNS answer Time-To-Live (TTL)
- expires. This allows the STUN server to change its IP address without having to
- reload the res_rtp_asterisk module.
-
-res_tonedetect
-------------------
- * Arbitrary tone detection is now available through a
- WaitForTone application (blocking) and a TONE_DETECT
- function (non-blocking).
-
-say.c
-------------------
- * Adds SAYFILES function to retrieve the file names that would
- be played by corresponding Say applications, such as
- SayDigits, SayAlpha, etc.
-
- Additionally adds SayMoney and SayOrdinal applications.
-
-stasis_channels
-------------------
- * Expose channel driver's unique id (which is the Call-ID for SIP/PJSIP)
- to ARI channel resources as 'protocol_id'.
-
- ASTERISK-30027
-
-------------------------------------------------------------------------------
---- Functionality changes from Asterisk 18.0.0 to Asterisk 19.0.0 ------------
-------------------------------------------------------------------------------
-
-AMI Flash event
-------------------
- * Hook flash events are now exposed as AMI events.
-
-Add variable support to Originate
-------------------
- * The Originate application now allows
- variables to be set on the new channel
- through a new option.
-
-Core
-------------------
- * Added debug logging categories that allow a user to output debug information
- based on a specified category. This lets the user limit, and filter debug
- output to data relevant to a particular context, or topic. For instance the
- following categories are now available for debug logging purposes:
-
- dtls, dtls_packet, ice, rtcp, rtcp_packet, rtp, rtp_packet, stun, stun_packet
-
- These debug categories can be enable/disable via an Asterisk CLI command:
-
- core set debug category <category>[:<sublevel>] [category[:<sublevel] ...]
- core set debug category off [<category> [<category>] ...]
-
- If no sub-level is associated all debug statements for a given category are
- output. If a sub-level is given then only those statements assigned a value
- at or below the associated sub-level are output.
-
- * The location where the media cache stores its temporary files
- is no longer hardcoded to /tmp but can now be configured separately
- via the astcachedir config variable in asterisk.conf.
-
- The default location for astcachedir is now /var/cache/asterisk
- instead of /tmp, please make sure to manually cleanup and/or
- migrate the temporary files in /tmp after upgrading.
-
-MessageSend
-------------------
- * The MessageSend dialplan application now takes an
- optional third argument that can set the message's
- "To" field on outgoing messages. It's an alternative
- to using the MESSAGE(to) dialplan function.
-
- To prevent confusion with the first argument, currently
- named "to", it's been renamed to "destination".
- Its function, creating the request URI, hasn't changed.
-
- The online documentation has also been enhanced to
- explain the behavior.
-
- Despite the changes in this commit, there should be
- no impact to current users of MessageSend.
-
-New ConfKick application
-------------------
- * Adds a ConfKick() application, which allows
- a specific channel, all users, or all non-admin
- users to be kicked from a conference bridge.
-
-New Reload application
-------------------
- * Adds an application to reload modules
-
-PlaybackFinished has a new error state
-------------------
- * The PlaybackFinished event now has a new state "failed"
- that is used when the sound file was not played due to an error.
- Before the state on PlaybackFinished was always "done".
-
- In case of multiple sound files to be played,
- the PlaybackFinished is sent only once in the end of the list,
- even in case of error.
-
-WaitForCondition application
-------------------
- * This application provides a way to halt
- dialplan execution until a provided
- condition evaluates to true.
-
-app_confbridge
-------------------
- * app_confbridge now has the ability to force the estimated bitrate on an SFU
- bridge. To use it, set a bridge profile's remb_behavior to "force" and
- set remb_estimated_bitrate to a rate in bits per second. The
- remb_estimated_bitrate parameter is ignored if remb_behavior is something
- other than "force".
-
-app_confbridge answer supervision control
-------------------
- * app_confbridge now provides a user option to prevent
- answer supervision if the channel hasn't been
- answered yet. To use it, set a user profile's
- answer_channel option to no.
-
-app_dial announcement option
-------------------
- * The A option for Dial now supports
- playing audio to the caller as well
- as the called party.
-
-app_mixmonitor
-------------------
- * app_mixmonitor now sends manager events MixMonitorStart, MixMonitorStop and
- MixMonitorMute when the channel monitoring is started, stopped and muted (or
- unmuted) respectively.
-
-app_voicemail
-------------------
- * The VoiceMail application can now be configured to send greetings and
- instructions via early media and only answering the channel when it is
- time for the caller to record their message. This behavior can be
- activated by passing the new 'e' option to VoiceMail.
-
- * You can now customize the "beep" tone or omit it entirely.
-
-chan_iax2
-------------------
- * You can now specify a default "auth" method in the
- [general] section of iax.conf
-
-chan_pjsip
-------------------
- * The PJSIP_SEND_SESSION_REFRESH dialplan function now issues a warning, and
- returns unsuccessful if it's used on a channel prior to answering.
-
-chan_pjsip, app_transfer
-------------------
- * Added TRANSFERSTATUSPROTOCOL variable. When transfer is performed,
- transfers can pass a protocol specific error code.
- Example, in SIP 3xx-6xx represent any SIP specific error received when
- performing a REFER.
-
-func_math: Three new dialplan functions
-------------------
- * Introduce three new functions, MIN, MAX, and ABS, which can be used to
- obtain the minimum or maximum of up to two integers or absolute value.
-
-func_odbc
-------------------
- * Introduce an ARGC variable for func_odbc functions, along with a minargs
- per-function configuration option.
-
- minargs enables enforcing of minimum count of arguments to pass to
- func_odbc, so if you're unconditionally using ARG1 through ARG4 then
- this should be set to 4. func_odbc will generate an error in this case,
- so for example
-
- [FOO]
- minargs = 4
-
- and ODBC_FOO(a,b,c) in dialplan will now error out instead of using a
- potentially leaked ARG4 from Gosub().
-
- ARGC is needed if you're using optional argument, to verify whether or
- not an argument has been passed, else it's possible to use a leaked ARGn
- from Gosub (app_stack). So now you can safely do
- ${IF($[${ARGC}>3]?${ARGV}:default value)} kind of thing.
-
-func_volume now can be read
-------------------
- * The VOLUME function can now also be used
- to read existing values previously set.
-
-logger
-------------------
- * Added a new log formatter called "plain" that always prints
- file, function and line number if available (even for verbose
- messages) and never prints color control characters. Most
- suitable for file output but can be used for other channels
- as well.
-
- You use it in logger.conf like so:
- debug => [plain]debug
- console => [plain]error,warning,debug,notice,pjsip_history
- messages => [plain]warning,error,verbose
-
- * The dateformat option in logger.conf will now control the remote
- console (asterisk -r -T) timestamp format. Previously, dateformat only
- controlled the formatting of the timestamp going to log files and the
- main console (asterisk -c) but only for non-verbose messages.
-
- Internally, Asterisk does not send the logging timestamp with verbose
- messages to console clients. It's up to the Asterisk remote consoles
- to format verbose messages. Asterisk remote consoles previously did
- not load dateformat from logger.conf.
-
- Previously there was a non-configurable and hard-coded "%b %e %T"
- dateformat that would be used no matter what on all verbose console
- messages printed on remote consoles.
-
- Example:
- logger.conf
- dateformat=%F %T.%3q
-
- # asterisk -rvvv -T
- [2021-03-19 09:54:19.760-0400] Loading res_stasis_answer.so.
- [Mar 19 09:55:43] -- Goto (dialExten,s,1)
-
- Given the following example configuration in logger.conf, Asterisk log
- files and the console, will log verbose messages using the given
- timestamp. Now ensuring that all remote console messages are logged
- with the same dateformat as other log streams.
-
- ---
- [general]
- dateformat=%F %T.%3q
-
- [logfiles]
- console => notice,warning,error,verbose
- full => notice,warning,error,debug,verbose
- ---
-
- Now we have a globally-defined dateformat that will be used
- consistently across the Asterisk main console, remote consoles, and
- log files.
-
- Now we have consistent logging:
-
- # asterisk -rvvv -T
- [2021-03-19 09:54:19.760-0400] Loading res_stasis_answer.so.
- [2021-03-19 09:55:43.920-0400] -- Goto (dialExten,s,1)
-
-res_pjsip
-------------------
- * PJSIP transports can now be partially reloaded safely. This allows the
- local_net and external_* options to be updated without restarting Asterisk.
-
- * PJSIP endpoints can now be configured to skip authentication when
- handling OPTIONS requests by setting the allow_unauthenticated_options
- configuration property to 'yes.'
-
- * PJSIP support of registrations of endpoints in multidomain
- scenarios, where the endpoint contains the domain info
- in pjsip.conf.
-
-res_pjsip_dialog_info_body_generator
-------------------
- * PJSIP now supports RFC 4235 Section 4.1.6 dialog-info+xml local and
- remote elements by iterating through ringing channels and inserting
- that info into NOTIFY packet sent to the endpoint.
-
-res_pjsip_messaging
-------------------
- * Implemented the new "to" parameter of the MessageSend()
- dialplan application. This allows a user to specify
- a complete SIP "To" header separate from the Request URI.
- We now also accept a destination in the same format
- as Dial()... PJSIP/number@endpoint
-
-res_rtp_asterisk
-------------------
- * By default Asterisk reports the PJSIP version in all
- STUN packets it sends.
-
- This behaviour may not be desired in a production
- environment and can now be disabled by setting the
- stun_software_attribute option to 'no' in rtp.conf.
-
-res_srtp
-------------------
- * SRTP replay protection has been added to res_srtp and
- a new configuration option "srtpreplayprotection" has
- been added to the rtp.conf config file. For security
- reasons, the default setting is "yes". Buggy clients
- may not handle this correctly which could result in
- no, or one way, audio and Asterisk error messages like
- "replay check failed".
-
-------------------------------------------------------------------------------
---- New functionality introduced in Asterisk 18.0.0 --------------------------
-------------------------------------------------------------------------------
-
-Core
-------------------
- * The Streams API becomes the home for the core ACN capabilities.
- These include...
-
- * Parsing and formatting of codec negotiation preferences.
- * Resolving pending streams and topologies with those configured
- using configured preferences.
- * Utility functions for creating string representations of
- streams, topologies, and negotiation preferences.
-
- For codec negotiation preferences:
- * Added ast_stream_codec_prefs_parse() which takes a string
- representation of codec negotiation preferences, which
- may come from a pjsip endpoint for example, and populates
- a ast_stream_codec_negotiation_prefs structure.
- * Added ast_stream_codec_prefs_to_str() which does the reverse.
- * Added many functions to parse individual parameter name
- and value strings to their respective enum values, and the
- reverse.
-
- For streams:
- * Added ast_stream_create_resolved() which takes a "live" stream
- and resolves it with a configured stream and the negotiation
- preferences to create a new stream.
- * Added ast_stream_to_str() which create a string representation
- of a stream suitable for debug or display purposes.
-
- For topology:
- * Added ast_stream_topology_create_resolved() which takes a "live"
- topology and resolves it, stream by stream, with a configured
- topology stream and the negotiation preferences to create a new
- topology.
- * Added ast_stream_topology_to_str() which create a string
- representation of a topology suitable for debug or display
- purposes.
- * Renamed ast_format_caps_from_topology() to
- ast_stream_topology_get_formats() to be more consistent with
- the existing ast_stream_get_formats().
-
- Additional changes:
- * A new function ast_format_cap_append_names() appends the results
- to the ast_str buffer instead of replacing buffer contents.
-
-app_bridgeaddchan
-------------------
- * The BridgeAdd application now behaves more like the Bridge application.
- The application now sets the BRIDGERESULT channel variable to indicate
- what happened when the channel resumes in dialplan. This is instead of
- hanging up the channel on failure conditions.
-
-res_pjsip
-------------------
- * Two new options, incoming_call_offer_pref and outgoing_call_offer_pref
- have been added to res_pjsip endpoints that specify the preferred order
- of codecs to use between those received/sent in an SDP offer and those
- set in the endpoint configuration.
-
-------------------------------------------------------------------------------
---- Functionality changes from Asterisk 17.0.0 to Asterisk 18.0.0 ------------
-------------------------------------------------------------------------------
-
-AMI
-------------------
- * You can now specify an optional 'Content-Type' as an argument for the Asterisk
- SendText manager action.
-
-ARI
-------------------
- * A new parameter 'inhibitConnectedLineUpdates' is now available in the
- 'bridges.addChannel' call. This prevents the identity of the newly connected
- channel from being presented to other bridge members.
-
-ARI Channels
-------------------
- * The Channel resource has a new sub-resource "externalMedia".
- This allows an application to create a channel for the sole purpose
- of exchanging media with an external server. Once created, this
- channel could be placed into a bridge with existing channels to
- allow the external server to inject audio into the bridge or
- receive audio from the bridge.
- See https://wiki.asterisk.org/wiki/display/AST/External+Media+and+ARI
- for more information.
-
-Core
-------------------
- * H.265/HEVC is now a supported video codec and it can be used by
- specifying "h265" in the allow line.
- Please note however, that handling of the additional SDP parameters
- described in RFC 7798 section 7.2 is not yet supported.
-
-Features
-------------------
- * Adds support for AudioSocket, a very simple bidirectional audio streaming
- protocol. There are both channel and application interfaces.
-
- A description of the protocol can be found on the referenced wiki page. A
- short talk about the reasons and implementation can be found on YouTube at
- the link provided.
-
- ARI support has also been added via the existing "externalMedia" ARI
- functionality. The UUID is specified using the arbitrary "data" field.
-
- Wiki: https://wiki.asterisk.org/wiki/display/AST/AudioSocket
- YouTube: https://www.youtube.com/watch?v=tjduXbZZEgI
-
-Messaging
-------------------
- * In order to reduce the amount of AMI and ARI events generated,
- the global "Message/ast_msg_queue" channel can be set to suppress
- it's normal channel housekeeping events such as "Newexten",
- "VarSet", etc. This can greatly reduce load on the manager
- and ARI applications when the Digium Phone Module for Asterisk
- is in use. To enable, set "hide_messaging_ami_events" in
- asterisk.conf to "yes" In Asterisk versions <18, the default
- is "no" preserving existing behavior. Beginning with
- Asterisk 18, the option will default to "yes".
-
-STIR/SHAKEN
-------------------
- * STIR/SHAKEN support has been added to Asterisk. Configuration is done in
- stir_shaken.conf. There is a sample configuration file to help you get
- started (asterisk/configs/samples/stir_shaken.conf.sample). Once that's
- set up, you can enable STIR/SHAKEN on any endpoint by setting stir_shaken
- to yes on the endpoint configuration object. This will add an Identity
- header on outgoing INVITEs, and check for an Identity header on incoming
- INVITEs. This option has been added to Alembic as well.
-
- The information received on an incoming INVITE can be checked using the
- STIR_SHAKEN dialplan function. There are two variations:
-
- STIR_SHAKEN(count)
- STIR_SHAKEN(0, verify_result)
-
- The first variation will tell you how many STIR/SHAKEN results are on the
- channel. The second fetches information for a specific result. The first
- parameter is the index, followed by what information you want to retrieve.
- The available options are 'verify_result', 'identity', and 'attestation'.
-
-app_chanisavail
-------------------
- * The ChanIsAvail application now tolerates empty positions in the supplied
- device list. Dialplan can now be simplified by not having to check for
- empty positions in the device list.
-
-app_confbridge
-------------------
- * A new bridge profile option, maximum_sample_rate, has been added which sets
- a maximum sample rate that the bridge will be mixed at. This allows the bridge
- to move below the maximum sample rate as needed but caps it at the maximum.
-
- * A new option, "text_messaging", has been added to the user profile
- which allows control over whether text messaging is enabled or
- disabled for a user. If enabled (the default) text messages
- will be sent to the user. If disabled no text messages will be
- sent to the user.
-
-app_dial
-------------------
- * The Dial application now tolerates empty positions in the supplied
- destination list. Dialplan can now be simplified by not having to check
- for empty positions in the destination list. If there are no endpoints to
- dial then DIALSTATUS is set to CHANUNAVAIL.
-
-app_mixmonitor
-------------------
- * An option 'S' has been added to MixMonitor. If used in combination with
- the r() and/or t() options, if a frame is available to write to one of
- those files but not the other, a frame of silence if written to the file
- that does not have an audio frame. This should prevent the two files
- from "drifting" when mixed after the fact.
-
- * If the 'filename' argument to MixMonitor() ended with '.wav49,'
- Asterisk would silently convert the extension to '.WAV' when opening
- the file for writing. This caused the MIXMONITOR_FILENAME variable to
- reference the wrong file. The MIXMONITOR_FILENAME variable will now
- reflect the name of the file that Asterisk actually used instead of
- the filename that was passed to the application.
-
-app_page
-------------------
- * The Page application now tolerates empty positions in the supplied
- destination list. Dialplan can now be simplified by not having to check
- for empty positions in the destination list.
-
-app_voicemail
-------------------
- * A feature was added in Asterisk 13.27.0 and 16.4.0 that removed lock files from
- the Asterisk voicemail directory on startup. Some users that store their
- voicemails on network storage devices experienced slow startup times due to the
- relative expense of traversing the voicemail directory structure looking for
- orphaned lock files. This feature has now been removed.
-
- Users who require the lock files to be removed at startup should modify their
- startup scripts to do so before starting the asterisk process.
-
-chan_pjsip
-------------------
- * A new dialplan function, PJSIP_MOH_PASSTHROUGH, has been added to chan_pjsip. This
- allows the behaviour of the moh_passthrough endpoint option to be read or changed
- in the dialplan. This allows control on a per-call basis.
-
-chan_rtp
-------------------
- * The UnicastRTP channel driver provided by chan_rtp now accepts
- "<hostname>:<port>" as an alternative to "<ip_address>:<port>" in the destination.
- The first AAAA (preferred) or A record resolved will be used as the destination.
- The lookup is synchronous so beware of possible dialplan delays if you specify a
- hostname.
-
-func_curl
-------------------
- * A new parameter, httpheader, has been added to CURLOPT function. This parameter
- allows to set custom http headers for subsequent calls off CURL function.
- Any setting of headers will replace the default curl headers
- (e.g. "Content-type: application/x-www-form-urlencoded")
-
- * A new option, followlocation, can now be enabled with the CURLOPT()
- dialplan function. Setting this will instruct cURL to follow 3xx
- redirects, which it does not by default.
-
-func_jitterbuffer
-------------------
- * The JITTERBUFFER dialplan function now has an option to enable video synchronization
- support. When enabled and used with a compatible channel driver (chan_sip, chan_pjsip)
- the video is buffered according to the size of the audio jitterbuffer and is
- synchronized to the audio.
-
-func_volume
-------------------
- * Accept decimal number as argument.
-
-http
-------------------
- * You can now disable the /httpstatus page served by Asterisk's built-in
- HTTP server by setting 'enable_status' to 'no' in http.conf.
-
-minmemfree
-------------------
- * The 'minmemfree' configuration option now counts memory allocated to
- the filesystem cache as "free" because it is memory that is available
- to the process.
-
-res_ari_channels
-------------------
- * When creating a channel in ARI using the create call
- you can now specify dialplan variables to be set as part
- of the same operation.
-
-res_musiconhold
-------------------
- * This fix allows a realtime moh class to be unregistered from the command
- line. This is useful when the contents of a directory referenced by a
- realtime moh class have changed.
- The realtime moh class is then reloaded on the next request and uses the
- new directory contents.
-
- * A new mode - playlist - has been added to res_musiconhold. This mode allows the
- user to specify the files (or URLs) to play explicitly by putting them directly
- in musiconhold.conf.
-
-res_pjsip
-------------------
- * Added a new PJSIP system setting called disable_rport.
- Default is no to keep support working as before.
-
- If it is false (default) it adds the 'rport' parameter in the outgoing request message.
- If it is true it does not add the 'rport' parameter in the outgoing request message.
-
- This is a system option, but working as a global option.
-
-res_pjsip_endpoint_identifier_ip
-------------------
- * In 'type = identify' sections, the addresses specified for the 'match'
- clause can now include a port number. For IP addresses, the port is
- provided by including a colon after the address, followed by the
- desired port number. If supplied, the netmask should follow the port
- number. To specify a port for IPv6 addresses, the address itself must
- be enclosed in brackets to be parsed correctly.
-
-res_pjsip_logger
-------------------
- * The PJSIP packet logger now has the following CLI commands:
-
- pjsip set logger pcap <filename>
-
- When used this will create a pcap file containing the incoming
- and outgoing SIP packets, in unencrypted form.
-
- pjsip set logger console <on / off>
-
- This allows you to toggle logging to console on and off.
-
- pjsip set logger host <IP/subnet mask> add
-
- This allows you to add an additional IP address or subnet
- mask to logging, allowing you to log multiple instead of
- just a single IP address or all traffic.
-
- The normal "pjsip set logger host" CLI command has also been
- expanded to allow subnet masks as well.
-
-res_pjsip_session
-------------------
- * When placing an outgoing call to a PJSIP endpoint the intent
- of any requested formats will now be respected. If only an audio
- format is requested (such as ulaw) but the underlying endpoint
- does not support the format the resulting SDP will still only
- contain an audio stream, and not any additional streams such as
- video.
-
- * Two new options, incoming_call_offer_pref and outgoing_call_offer_pref
- have been added to res_pjsip endpoints that specify the preferred order
- of codecs to use between those received/sent in an SDP offer and those
- set in the endpoint configuration.
-
-res_rtp_asterisk
-------------------
- * This change include a new cli command 'rtp show settings'
-
- The command display by general settings of rtp configuration. For this
- point is added the fields: rtpstart, rtpend, dtmftimeout, rtpchecksum,
- strictrtp, learning_min_sequential and icesupport.
-
- * The blacklist mechanism in res_rtp_asterisk for ICE and STUN was converted to
- an ACL mechanism.
-
- As such six now options are now available:
-
- ice_deny
- ice_permit
- ice_acl
- stun_deny
- stun_permit
- stun_acl
-
- These options have their obvious meanings as used elsewhere.
-
- Backwards compatibility was maintained by adding {stun,ice}_blacklist as
- aliases for {stun,ice}_deny.
-
-res_sorcery_memory_cache
-------------------
- * The SorceryMemoryCacheExpireObject AMI action and CLI
- command allow expiring of a specific object within the
- sorcery memory cache. This is done by removing the
- object from the cache with the expectation that the
- cache will then re-populate the object when it is next
- needed.
-
- For full backend caching this does not occur. The cache
- won't repopulate until an entire refresh is done resulting
- in the possibility that objects are missing until that
- time.
-
- The AMI action and CLI command will now not allow
- expiring of an object if the cache is configured as a
- full backend cache. Instead you must use either the
- SorceryMemoryCacheExpire or SorceryMemoryCachePopulate
- AMI actions or their associated CLI commands.
-
-taskprocessor.c
-------------------
- * Added two new CLI commands to reset stats for taskprocessors. You can
- reset stats for a single, specific taskprocessor ('core reset
- taskprocessor <taskprocessor>'), or you can reset all taskprocessors
- ('core reset taskprocessors'). These commands will reset the counter for
- the number of tasks processed as well as the max queue size.
-
- * Added "like" support for 'core show taskprocessors'. Now you
- can specify a specific set of taskprocessors (or just one) by
- adding the keyword "like" to the above command, followed by
- your search criteria.
-
-------------------------------------------------------------------------------
---- New functionality introduced in Asterisk 17.0.0 --------------------------
-------------------------------------------------------------------------------
-
-Bridging
-------------------
- * The bridging core no longer uses the stasis cache for bridge
- snapshots. The latest bridge snapshot is now stored on the
- ast_bridge structure itself.
-
- The following APIs are no longer available since the stasis cache
- is no longer used:
- ast_bridge_topic_cached()
- ast_bridge_topic_all_cached()
-
- A topic pool is now used for individual bridge topics.
-
- The ast_bridge_cache() function was removed since there's no
- longer a separate container of snapshots.
-
- A new function "ast_bridges()" was created to retrieve the
- container of all bridges. Users formerly calling
- ast_bridge_cache() can use the new function to iterate over
- bridges and retrieve the latest snapshot directly from the
- bridge.
-
- The ast_bridge_snapshot_get_latest() function was renamed to
- ast_bridge_get_snapshot_by_uniqueid().
-
- A new function "ast_bridge_get_snapshot()" was created to retrieve
- the bridge snapshot directly from the bridge structure.
-
- The ast_bridge_topic_all() function now returns a normal topic
- not a cached one so you can't use stasis cache functions on it
- either.
-
- The ast_bridge_snapshot_type() stasis message now has the
- ast_bridge_snapshot_update structure as it's data. It contains
- the last snapshot and the new one.
-
-Channels
-------------------
- * The core no longer uses the stasis cache for channels snapshots.
- The following APIs are no longer available:
- ast_channel_topic_cached()
- ast_channel_topic_all_cached()
- The ast_channel_cache_all() and ast_channel_cache_by_name() functions
- now returns an ao2_container of ast_channel_snapshots rather than a
- container of stasis_messages therefore you can't call stasis_cache
- functions on it.
- The ast_channel_topic_all() function now returns a normal topic,
- not a cached one so you can't use stasis cache functions on it either.
- The ast_channel_snapshot_type() stasis message now has the
- ast_channel_snapshot_update structure as it's data.
- ast_channel_snapshot_get_latest() still returns the latest snapshot.
-
-chan_sip
-------------------
- * The chan_sip module is now deprecated, users should migrate to the
- replacement module chan_pjsip. See guides at the Asterisk Wiki:
- https://wiki.asterisk.org/wiki/x/tAHOAQ
- https://wiki.asterisk.org/wiki/x/hYCLAQ
-
-------------------------------------------------------------------------------
---- Functionality changes from Asterisk 16.0.0 to Asterisk 17.0.0 ------------
-------------------------------------------------------------------------------
-
-AttendedTransfer
-------------------
- * A new application, this will queue up attended transfer to the given extension.
-
-BlindTransfer
-------------------
- * A new application, this will redirect all channels currently
- bridged to the caller channel to the specified destination.
-
-ConfBridge
-------------------
- * Add "average_all", "highest_all", and "lowest_all" values for
- the remb_behavior option. These values operate on a bridge
- level instead of a per-source level. This means that a single
- REMB value is calculated and sent to every sender, instead of
- a REMB value that is unique for the specific sender..
-
-Dial
-------------------
- * Add RINGTIME and RINGTIME_MS variables containing respectively seconds and
- milliseconds between creation of the dialing channel and receiving the first
- RINGING signal
-
- Add PROGRESSTIME and PROGRESSTIME_MS variables analogous to the above with respect to
- the PROGRESS signal. Shorter of these two times should be equivalent to
- the PDD (Post Dial Delay) value
-
- Add DIALEDTIME_MS and ANSWEREDTIME_MS variables to get millisecond resolution
- versions of DIALEDTIME and ANSWEREDTIME
-
-RTP/ICE
-------------------
- * You can now indicate that you'd like an ice_host_candidate's local address
- to be published as well as the mapped address. See the sample rtp.conf
- for more information.
-
-ReadExten
-------------------
- * Add 'p' option to stop reading extension if user presses '#' key.
-
-pbx_dundi
-------------------
- * The DUNDi PBX module now supports IPv4/IPv6 dual binding.
-
-res_pjsip
-------------------
- * Added a new PJSIP global setting called norefersub.
- Default is true to keep support working as before.
-
- res_pjsip_refer configures PJSIP norefersub capability accordingly.
-
- Checks the PJSIP global setting value.
- If it is true (default) it adds the norefersub capability to PJSIP.
- If it is false (disabled) it does not add the norefersub capability
- to PJSIP.
-
- This is useful for Cisco switches that do not follow RFC4488.
-
-res_rtp_asterisk
-------------------
- * DTLS packets will now be fragmented according to the MTU as set in rtp.conf. This
- allows larger certificates to be used for the DTLS negotiation. By default this value
- is 1200.
-
-------------------------------------------------------------------------------
---- Functionality changes from Asterisk 16.2.0 to Asterisk 16.3.0 ----------
-------------------------------------------------------------------------------
-
-ARI
-------------------
- * Application event filtering is now supported. An application can now specify
- an "allowed" and/or "disallowed" list(s) of event types. Only those types
- indicated in the "allowed" list are sent to the application. Conversely, any
- types defined in the "disallowed" list are not sent to the application. Note
- that if a type is specified in both lists "disallowed" takes precedence.
-
- * A new REST API call has been added: 'move'. It follows the format
- 'channels/{channelId}/move' and can be used to move channels from one application
- to another without needing to exit back into the dialplan. An application must be
- specified, but the passing a list of arguments to the new application is optional.
- An example call would look like this:
-
- client.channels.move(channelId=chan.id, app='ari-example', appArgs='a,b,c')
-
- If the channel was inside of a bridge when switching applications, it will
- remain there. If the application specified cannot be moved to, then the channel
- will remain in the current application and an event will be triggered named
- "ApplicationMoveFailed", which will provide the destination application's name
- and the channel information.
-
-res_pjsip
-------------------
- * A new configuration parameter "taskprocessor_overload_trigger" has been
- added to the pjsip.conf "globals" section. The distributor currently stops
- accepting new requests when any taskprocessor overload is triggered. The
- new option allows you to completely disable overload detection (NOT
- RECOMMENDED), keep the current behavior, or trigger only on pjsip
- taskprocessor overloads.
-
-chan_pjsip
-------------------
- * A new configuration parameter 'ignore_183_without_sdp' has been added
- to the pjsip.conf "endpoints" section. If enabled, will make chan_pjsip
- discard 183s that do not contain an SDP body, which can resolve no
- ringback tone issues as well as making the behavior match chan_sip.
-
-MWI
-------------------
- * A new module "res_mwi_devstate" has been added that allows subscriptions
- to voicemail boxes using "presence" events. This allows common BLF keys
- to act as voicemail waiting indicators.
-
-app_queue
-------------------
- * Added the ability to set the wrapuptime per-member using the AddQueueMember
- application.
-
-------------------------------------------------------------------------------
---- Functionality changes from Asterisk 16.1.0 to Asterisk 16.2.0 ------------
-------------------------------------------------------------------------------
-
-ARI
-------------------
- * Whenever an ARI application is started, a context will be created for it
- automatically as long as one does not already exist, following the format
- 'stasis-<app_name>'. Two extensions are also added to this context: a match-all
- extension, and the 'h' extension. Any phone that registers under this context
- will place all calls to the corresponding Stasis application.
-
-res_pjsip
-------------------
- * Added "send_contact_status_on_update_registration" global configuration option
- to enable sending AMI ContactStatus event when a device refreshes its registration.
-
-Core
-------------------
- * Reworked the media indexer so it doesn't cache the index. Testing revealed
- that the cache added no benefit but that it could consume excessive memory.
- Two new index related functions were created: ast_sounds_get_index_for_file()
- and ast_media_index_update_for_file() which restrict index updating to
- specific sound files. The original ast_sounds_get_index() and
- ast_media_index_update() calls are still available but since they no longer
- cache the results internally, developers should re-use an index they may
- already have instead of calling ast_sounds_get_index() repeatedly. If
- information for only a single file is needed, ast_sounds_get_index_for_file()
- should be called instead of ast_sounds_get_index().
-
-Features
-------------------
- * Before Asterisk 12, when using the automon or automixmon features defined
- in features.conf, a channel variable (TOUCH_MIXMONITOR_OUTPUT) was set on
- both channels, indicating the filename of the recording.
-
- When bridging was overhauled in Asterisk 12, the behavior was changed such
- that the variable was only set on the peer channel and not on the channel
- that initiated the automon or automixmon.
-
- The previous behavior has been restored so both channels receive the
- channel variable when one of these features is invoked.
-
-app_voicemail
-------------------
- * You can now specify a special context with the "aliasescontext" parameter
- in voicemail.conf which will allow you to create aliases for physical
- mailboxes.
-
-------------------------------------------------------------------------------
---- Functionality changes from Asterisk 16.0.0 to Asterisk 16.1.0 ------------
-------------------------------------------------------------------------------
-
-pbx_config
-------------------
- * pbx_config will now find and process multiple 'globals' sections from
- extensions.conf. Variables are processed in the order they are found
- and duplicate variables overwrite the previous value.
-
-chan_pjsip
-------------------
- * New dialplan function PJSIP_PARSE_URI added to parse an URI and return
- a specified part of the URI.
-
-Core
-------------------
- * ast_bt_get_symbols() now returns a vector of strings instead of an
- array of strings. This must be freed with ast_bt_free_symbols.
-
-res_pjsip
-------------------
- * New options 'trust_connected_line' and 'send_connected_line' have been
- added to the endpoint. The option 'trust_connected_line' is to control
- if connected line updates are accepted from this endpoint.
- The option 'send_connected_line' is to control if connected line updates
- can be sent to this endpoint.
- The default value is 'yes' for both options.
-
-res_rtp_asterisk
-------------------
- * The existing strictrtp option in rtp.conf has a new choice availabe, called
- 'seqno', which behaves the same way as setting strictrtp to 'yes', but will
- ignore the time interval during learning so that bursts of packets can still
- trigger learning our source.
-
-------------------------------------------------------------------------------
---- Functionality changes from Asterisk 15 to Asterisk 16 --------------------
-------------------------------------------------------------------------------
-
-app_fax
-------------------
- * The app_fax module is now deprecated, users should migrate to the
- replacement module res_fax.
-
-app_originate
-------------------
- * An 'a' option has been added to the Originate dialplan application which
- will execute the originate in an asynchronous fashion. If set then the
- application will return immediately without waiting for the originated
- channel to answer.
-
-Build System
-------------------
- * MALLOC_DEBUG no longer has an effect on Asterisk's ABI. Asterisk built
- with MALLOC_DEBUG can now successfully load binary modules built without
- MALLOC_DEBUG and vice versa. Third-party pre-compiled modules no longer
- need to have a special build with it enabled.
-
- * Asterisk now depends on libjansson >= 2.11. If this version is not
- available on your distro you can use `./configure --with-jansson-bundled`.
-
-app_macro
-------------------
- * The app_macro module is now deprecated and by default it is no longer
- built. Users should migrate to app_stack (Gosub). A warning is logged
- the first time any Macro is used.
-
-app_setcallerid
-------------------
- * The app_setcallerid module has been removed. The CALLERID dialplan function
- should be used instead.
-
-chan_sip
-------------------
- * New function SIP_HEADERS() enumerates all headers in the incoming INVITE.
-
- * The variable GET_TRANSFERRER_DATA set in the peer channel causes matching
- headers be retrieved from the REFER message and made accessible to the
- dialplan in the hash TRANSFER_DATA.
-
-chan_dahdi
-------------------
- * Timeouts for reading digits from analog phones are now configurable in
- chan_dahdi.conf: firstdigit_timeout, interdigit_timeout, matchdigit_timeout.
-
-AMI
-------------------
- * The ContactStatus and Status fields for the manager events ContactStatus
- and ContactStatusDetail are now set to "NonQualified" when a contact exists
- but has not been qualified.
-
- * The "Newexten" event is now part of the "dialplan" class. The documentation
- for Asterisk 15 already specified this, but the implementation was actually
- using the "call" class instead.
-
-ARI
-------------------
- * The ContactInfo event's contact_status field is now set to "NonQualified"
- when a contact exists but has not been qualified.
-
-app_queue
-------------------
- * Added the ability to set the wrapuptime in the configuration of member.
- When set the wrapuptime on the member is used instead of the wrapuptime
- defined for the queue itself.
-
- * Added predial handler support for caller and callee channels with the
- B and b options respectively. This is similar to the predial support
- in app_dial.
-
-res_config_sqlite
-------------------
- * The res_config_sqlite module is now deprecated, users should migrate to the
- replacement module res_config_sqlite3.
-
-res_monitor
-------------------
- * The res_monitor module is now deprecated, users should migrate to the
- replacement module app_mixmonitor.
-
-res_pjsip
-------------------
- * A new AMI action, PJSIPShowAors, has been added which displays information
- about all configured PJSIP AORs.
-
- * A new AMI action, PJSIPShowAuths, has been added which displays information
- about all configured PJSIP Auths.
-
- * A new AMI action, PJSIPShowContacts, has been added which displays information
- about all configured PJSIP Contacts.
-
-res_pjsip_registrar_expire
-------------------
- * The res_pjsip_registrar_expire module has been removed. The functionality has
- been moved into res_pjsip_registrar.
-
-func_audiohookinherit
-------------------
- * The func_audiohookinherit module has been removed. Due to architectural changes
- in Asterisk 12, audiohook inheritance is performed automatically and this
- function now lacks function.
-
-cdr_syslog
-------------------
- * The cdr_syslog module is now deprecated and by default it is no longer
- built.
-
-cdr_sqlite
-------------------
- * The cdr_sqlite module has been removed. Users should move to using the
- cdr_sqlite3_custom module instead.
-
-format_jpeg
-------------------
- * The format_jpeg module has been removed.
-
-pbx_dundi
-------------------
- * DUNDi now supports IPv6
-
-Core:
-------------------
- * libedit is no longer available as an embedded library and must be provided
- by the system.
- * The STATIC_BUILD functionality has been removed as it has not been maintained
- and has not worked in quite some time.
- * The module loader now enforces inter-module dependencies. This ensures that
- a module is not started before another it depends on, even if preload is used.
- If a dependency is not available or fails to startup this will block any
- dependants from startup.
- * Parts of the Asterisk core which can load configuration from realtime are now
- built-in modules. It is no longer necessary to preload realtime drivers as
- they are always initialized before the built-in modules.
-
-------------------------------------------------------------------------------
---- Functionality changes from Asterisk 15.5.0 to Asterisk 15.6.0 ------------
-------------------------------------------------------------------------------
-
-res_pjsip
-------------------
- * A new option 'suppress_q850_reason_headers' has been added to the endpoint
- object. Some devices can't accept multiple Reason headers and get confused
- when both 'SIP' and 'Q.850' Reason headers are received. This option allows
- the 'Q.850' Reason header to be suppressed. The default value is 'no'.
-
-res_pjsip_endpoint_identifier_ip
-------------------
- * Added regex support to the identify section match_header option. You
- specify a regex instead of an explicit string by surrounding the header
- value with slashes:
- match_header = SIPHeader: /regex/
-
-------------------------------------------------------------------------------
---- Functionality changes from Asterisk 15.4.0 to Asterisk 15.5.0 ------------
-------------------------------------------------------------------------------
-
-Core
-------------------
- * Core bridging and, more specifically, bridge_softmix have been enhanced to
- relay received frames of type TEXT or TEXT_DATA to all participants in a
- softmix bridge. res_pjsip_messaging and chan_pjsip have been enhanced to
- take advantage of this so when res_pjsip_messaging receives an in-dialog
- MESSAGE message from a user in a conference call, it's relayed to all
- other participants in the call.
-
-app_sendtext
-------------------
- * Support Enhanced Messaging. SendText now accepts new channel variables
- that can be used to override the To and From display names and set the
- Content-Type of a message. Since you can now set Content-Type, other
- text/* content types are now valid.
-
-app_confbridge
-------------------
- * ConfbridgeList now shows talking status. This utilizes the same voice
- detection as the ConfbridgeTalking event, so bridges must be configured
- with "talk_detection_events=yes" for this flag to have meaning.
-
- * ConfBridge can now send events to participants via in-dialog MESSAGEs.
- All current Confbridge events are supported, such as ConfbridgeJoin,
- ConfbridgeLeave, etc. In addition to those events, a new event
- ConfbridgeWelcome has been added that will send a list of all
- current participants to a new participant.
-
-res_pjsip
-------------------
- * Two new options have been added to the system and endpoint objects to
- control whether, on outbound calls, Asterisk will accept updated SDP answers
- during the initial INVITE transaction when 100rel is not in effect.
- This usually happens when the INVITE is forked to multiple UASs and more
- than one sends an SDP answer or when a single UAS needs to change a media
- port to switch from custom ringback to the actual media destination.
-
- The 'follow_early_media_forked' option sets whether Asterisk will accept
- the updated SDP when the To tag on the subsequent response is different than
- that on the the previous response. This usually occurs in the forked INVITE
- scenario. The default value is "yes" which is the current behavior.
-
- The 'accept_multiple_sdp_answers' flag sets whether Asterisk will accept the
- updated SDP when the To tag on the subsequent response is the same as that
- on the previous response. This can occur when a UAS needs to switch media
- ports from custom ringback to the final media path. The default value is
- "no" which is the current behavior.
-
- These options have to be enabled system-wide in the system config section
- of pjsip.conf as well as on individual endpoints that require the
- functionality.
-
-------------------------------------------------------------------------------
---- Functionality changes from Asterisk 15.3.0 to Asterisk 15.4.0 ------------
-------------------------------------------------------------------------------
-
-Core
-------------------
- * A new configuration option "genericplc_on_equal_codecs" was added to the
- "plc" section of codecs.conf to allow generic packet loss concealment even
- if no transcoding was originally needed. Transcoding via SLIN is forced
- in this case.
-
-res_pjproject
-------------------
- * Added the "cache_pools" option to pjproject.conf. Disabling the option
- helps track down pool content mismanagement when using valgrind or
- MALLOC_DEBUG. The cache gets in the way of determining if the pool contents
- are used after free and who freed it.
-
-res_pjsip_notify
-------------------
- * Extend the PJSIPNotify AMI command to send an in-dialog notify on a
- channel.
-
-------------------------------------------------------------------------------
---- Functionality changes from Asterisk 15.2.0 to Asterisk 15.3.0 ------------
-------------------------------------------------------------------------------
-
-Core
-------------------
- * During dialplan reload log messages are produced for each context,
- extension and include. These messages are no longer printed by the
- verbose loggers, they are now only logged as debug messages.
-
-app_confbridge
-------------------
- * Added the Muted header to the ConfbridgeJoin AMI event to indicate the
- participant's starting mute status.
-
- * Made the AMI ConfbridgeList action's ConfbridgeList events output all
- the standard channel snapshot headers instead of a few hand-coded channel
- snapshot headers. The benefit is that the CallerIDName gets disruptive
- characters like CR, LF, Tab, and a few others escaped. However, an empty
- CallerIDName is now output as "<unknown>" instead of "<no name>".
-
-app_followme
-------------------
- * Added a new prompt, connecting-prompt, which will be played
- (if configured) to the "winner" callee before connecting the call.
-
-res_pjsip
-------------------
- * Users who are matching endpoints by SIP header need to reevaluate their
- global "endpoint_identifier_order" option in light of the "ip" endpoint
- identifier method split into the "ip" and "header" endpoint identifier
- methods.
-
- * The pjsip_transport_event feature introduced in 15.1.0 has been refactored.
- Any external modules that may have used that feature (highly unlikely) will
- need to be changed as the API has been altered slightly.
-
-res_pjsip_endpoint_identifier_ip
-------------------
- * The endpoint identifier "ip" method previously recognized endpoints either
- by IP address or a matching SIP header. The "ip" endpoint identifier method
- is now split into the "ip" and "header" endpoint identifier methods. The
- "ip" endpoint identifier method only matches by IP address and the "header"
- endpoint identifier method only matches by SIP header. The split allows the
- user to control the relative priority of the IP address and the SIP header
- identification methods in the global "endpoint_identifier_order" option.
- e.g., If you have two type=identify sections where one matches by IP address
- for endpoint alice and the other matches by SIP header for endpoint bob then
- you can now predict which endpoint is matched when a request comes in that
- matches both.
-
-res_pjsip_pubsub
-------------------
- * In an earlier release, inbound registrations on a reliable transport
- were pruned on Asterisk restart since the TCP connection would have
- been torn down and become unusable when Asterisk stopped. This same
- process is now also applied to inbound subscriptions. Since this
- required the addition of a new column to the ps_subscription_persistence
- realtime table, users who store their subscriptions in a database will
- need to run the "alembic upgrade head" process to add the column to
- the schema.
-
-res_pjsip_transport_management
-------------------
- * Since res_pjsip_transport_management provides several attack
- mitigation features, its functionality moved to res_pjsip and
- this module has been removed. This way the features will always
- be available if res_pjsip is loaded.
-
-------------------------------------------------------------------------------
---- Functionality changes from Asterisk 15.1.0 to Asterisk 15.2.0 ------------
-------------------------------------------------------------------------------
-
-Core
-------------------
- * Added the "cache_media_frames" option to asterisk.conf. Disabling the option
- helps track down media frame mismanagement when using valgrind or
- MALLOC_DEBUG. The cache gets in the way of determining if the frame is
- used after free and who freed it. NOTE: This option has no effect when
- Asterisk is compiled with the LOW_MEMORY compile time option enabled because
- the cache code does not exist.
-
-chan_sip
-------------------
- * Calls to invalid extensions are now reported as an ACL failure security event
- "no_extension_match".
-
-res_rtp_asterisk
-------------------
- * The X.509 certificate used for DTLS negotiation can now be automatically
- generated. This is supported by res_pjsip by specifying
- "dtls_auto_generate_cert = yes" on a PJSIP endpoint. For chan_sip, you
- would set "dtlsautogeneratecert = yes" either in the [general] section of
- sip.conf or on a specific peer.
-
-res_pjsip
-------------------
- * The "identify_by" on endpoints can now be set to "ip" to restrict an endpoint
- being matched based only on IP address. To ensure no behavior change the
- default has been changed to "username,ip".
-
-------------------------------------------------------------------------------
---- Functionality changes from Asterisk 15.0.0 to Asterisk 15.1.0 ------------
-------------------------------------------------------------------------------
-
-res_pjsip
-------------------
- * The "remove_existing" option now allows a registration to succeed by
- displacing any existing contacts that now exceed the "max_contacts" count.
- Any removed contacts are the next to expire. The behaviour change is
- beneficial when "rewrite_contact" is enabled and "max_contacts" is greater
- than one. The removed contact is likely the old contact created by
- "rewrite_contact" that the device is refreshing.
-
-AMI
-------------------
- * Added a new CancelAtxfer action that cancels an attended transfer.
-
-------------------------------------------------------------------------------
---- Functionality changes from Asterisk 14 to Asterisk 15 --------------------
-------------------------------------------------------------------------------
-
-app_queue
-------------------
- * PAUSEALL/UNPAUSEALL now sets the pause reason in the queue_log if it has
- been defined.
-
- * A new option, "announce-position-only-up," has been added that, when set to
- yes, causes position announcements to only be played when the caller's
- queue position has improved since the last time that we announced their
- position. This default is no.
-
-Build System
-------------------
- * '--with-pjproject-bundled' is now the default when running ./configure
- It can be disabled with '--without-pjproject-bundled'.
-
- * A '--with-download-cache' option is now available which is equivalent to
- setting '--with-sounds-cache' and '--with-externals-cache' to the same
- value. The download cache can also be set via the AST_DOWNLOAD_CACHE
- environment variable.
-
-------------------------------------------------------------------------------
---- Functionality changes from Asterisk 14.6.0 to Asterisk 14.7.0 ------------
-------------------------------------------------------------------------------
-
-res_pjsip
-------------------
- * The "external_media_address" on transports is now resolved using dnsmgr and
- when dnsmgr refreshes are enabled will be automatically updated with the new
- IP address of a given hostname.
-
- * A new endpoint parameter "incoming_mwi_mailbox" allows Asterisk to receive
- unsolicited MWI NOTIFY requests and make them available to other modules via
- the stasis message bus.
-
-res_musiconhold
-------------------
- * By default, when res_musiconhold reloads or unloads, it sends a HUP signal
- to custom applications (and all descendants), waits 100ms, then sends a
- TERM signal, waits 100ms, then finally sends a KILL signal. An application
- which is interacting with an external device and/or spawns children of its
- own may not be able to exit cleanly in the default times, expecially if sent
- a KILL signal, or if it's children are getting signals directly from
- res_musiconhoild. To allow extra time, the 'kill_escalation_delay'
- class option can be used to set the number of milliseconds res_musiconhold
- waits before escalating kill signals, with the default being the current
- 100ms. To control to whom the signals are sent, the "kill_method"
- class option can be set to "process_group" (the default, existing behavior),
- which sends signals to the application and its descendants directly, or
- "process" which sends signals only to the application itself.
-
- * New dialplan function PJSIP_DTMF_MODE added to get or change the DTMF mode
- of a channel on a per-call basis.
-
-res_xmpp
------------------
- * OAuth 2.0 authentication is now supported when contacting Google. Follow the
- instructions in xmpp.conf.sample to retrieve and configure the necessary
- tokens.
-
-------------------------------------------------------------------------------
---- Functionality changes from Asterisk 14.5.0 to Asterisk 14.6.0 ------------
-------------------------------------------------------------------------------
-
-app_voicemail
-------------------
- * A new global option "imap_poll_logout" was added to specify whether need to
- disconnect from the IMAP server after polling of mailboxes.
- Default: no
-
-res_pjsip
-------------------
- * A new endpoint option "refer_blind_progress" was added to turn off notifying
- the progress details on Blind Transfer. If this option is not set then
- the chan_pjsip will send NOTIFY "200 OK" immediately after "202 Accepted".
- On default is enabled.
- Some SIP phones like Mitel/Aastra or Snom keep the line busy until
- receive "200 OK".
-
- * A new endpoint option "notify_early_inuse_ringing" was added to control
- whether to notify dialog-info state 'early' or 'confirmed' on Ringing
- when already INUSE.
-
- * The endpoint option 'dtmf_mode' has a new option 'auto_dtmf' added. This
- mode works similar to 'auto' except uses DTMF INFO as fallback instead of
- INBAND.
-
-res_agi
-------------------
- * The EAGI() application will now look for a dialplan variable named
- EAGI_AUDIO_FORMAT and use that format with the 'enhanced' audio pipe that
- EAGI provides. If not specified, it will continue to use the default signed
- linear (slin).
-
-chan_pjsip
-------------------
- * When dialing an endpoint directly or using the PJSIP_DIAL_CONTACTS dialplan
- function any contact which is considered unreachable due to qualify being
- enabled will no longer be called.
-
- * The asymmetric_rtp_codec option now also controls whether chan_pjsip will
- send media as-is without transcoding if the codec has been negotiated in the
- SDP. If set to "no" then Asterisk will only ever send the preferred codec
- from the SDP, unless the remote side sends a different codec and we will
- switch to match.
-
-Build System
-------------------
- * Added a new PJPROJECT_CONFIGURE_OPTS environment variable which can be used
- to pass arbitrary options to the bundled pjproject configure.
-
- * Automatically set the bundled pjproject configure --host and --build
- options to match those supplied for the asterisk configure.
-
-------------------------------------------------------------------------------
---- Functionality changes from Asterisk 14.4.0 to Asterisk 14.5.0 ------------
-------------------------------------------------------------------------------
-
-res_rtp_asterisk
-------------------
- * Added the stun_blacklist option to rtp.conf. Some multihomed servers have
- IP interfaces that cannot reach the STUN server specified by stunaddr.
- Blacklist those interface subnets from trying to send a STUN packet to find
- the external IP address. Attempting to send the STUN packet needlessly
- delays processing incoming and outgoing SIP INVITEs because we will wait
- for a response that can never come until we give up on the response.
- Multiple subnets may be listed.
-
-Logging
--------------------
- * Added logger_queue_limit to the configuration options.
- All log messages go to a queue serviced by a single thread
- which does all the IO. This setting controls how big that
- queue can get (and therefore how much memory is allocated)
- before new messages are discarded.
- The default is 1000.
-
-res_pjsip_config_wizard
-------------------
- * Two new parameters have been added to the pjsip config wizard.
- Setting 'sends_line_with_registrations' to true will cause the wizard
- to skip the creation of an identify object to match incoming requests
- to the endpoint and instead add the line and endpoint parameters to
- the outbound registration object.
- Setting 'outbound_proxy' is a shortcut for adding individual
- endpoint/outbound_proxy, aor/outbound_proxy and registration/outbound_proxy
- parameters.
-
-res_hep_rtcp
-------------------
- * If the 'call-id' value is specified for the uuid_type option and a
- chan_sip channel is used the resulting HEP traffic will now contain the
- SIP Call-ID instead of the Asterisk channel name.
-
-------------------------------------------------------------------------------
---- Functionality changes from Asterisk 14.3.0 to Asterisk 14.4.0 ------------
-------------------------------------------------------------------------------
-
-Build System
-------------------
- * LOW_MEMORY no longer has an effect on Asterisk ABI. Symbols that were
- previously suppressed by LOW_MEMORY are now replaced by stub functions.
- Asterisk built with LOW_MEMORY can now successfully load binary modules
- built without LOW_MEMORY and vice versa.
-
- * RADIUS backends for CEL and CDR can now also be built using the radcli
- client library, in addition to the existing support for building them
- using either freeradius or radiusclient-ng.
-
-Core
-------------------
- * ASTERISK_REGISTER_FILE was no longer useful and has been removed. Sources
- which use mtx_prof must now manually declare and initialize the variable.
-
-chan_sip
-------------------
- * If an offer is received with optional SRTP (a media stream with RTP/AVP but
- which contains a crypto line) chan_sip will now accept it and enable SRTP.
- If you would like to do optional SRTP on outbound you will need to create
- a dialplan that dials with it enabled initially and if it fails fall back to
- without.
-
-res_pjsip
-------------------
- * Added endpoint configuration parameter "preferred_codec_only".
- This allow asterisk response to a SIP invite with the single most
- preferred codec rather than advertising all joint codec capabilities.
- This limits the other side's codec choice to exactly what we prefer.
-
-cdr_radius
-------------------
- * To fix a memory leak the syslog channel is now empty if it has not been set
- and used by a syslog channel in the logger.
-
-cel_radius
-------------------
- * To fix a memory leak the syslog channel is now empty if it has not been set
- and used by a syslog channel in the logger.
-
-RTP
-------------------
- * New setting "rtp_pt_dynamic = 35" in asterisk.conf:
- Normally the Dynamic RTP Payload Type numbers are 96-127, which allow just 32
- formats. To avoid the message "No Dynamic RTP mapping available", the range
- was changed to 35-63,96-127. This is allowed by RFC 3551 section 3. However,
- when you use more than 32 formats and calls are not accepted by a remote
- implementation, please report this and go back to rtp_pt_dynamic = 96.
-
- * A new setting, "rtp_use_dynamic", has been added in asterisk.conf". When set
- to "yes" RTP dynamic payload types are assigned dynamically per RTP instance.
- When set to "no" RTP dynamic payload types are globally initialized to pre-
- designated numbers and function similar to static payload types.
-
-app_originate
-------------------
- * Added support to gosub predial routines on both original channel and on the
- created channel using options parameter (like app_dial) B() and b(). This
- allows for adding variables to newly created channel or, e.g. setting callerid.
-
-CLI Commands
-------------------
- * 'dialplan show' output will now show [config_file:line_number] instead of
- [registrar] when that information is available. Currently only extensions
- registered by pbx_config when loading/reloading will use this format.
-
-app_queue
-------------------
- * Add 'QueueUpdate' application which can be used to track outbound calls
- using app_queue.
-
-pbx_spool
-------------------
- * Asterisk will now set the AST_OUTGOING_ATTEMPT channel variable so that
- attempt-specific behavior is possible. This is a 1-based number that
- simply increases by 1 for each attempt.
-
-------------------------------------------------------------------------------
---- Functionality changes from Asterisk 14.3.0 to Asterisk 14.4.0 ------------
-------------------------------------------------------------------------------
-
-AMI
-------------------
- * The 'PJSIPShowEndpoint' command's respone event of 'IdentifyDetail' now
- contains a new optional parameter, 'MatchHeader', mapping to the new
- configuration option 'match_header' for the corresponding 'identify' object.
- It should be noted that since 'match_header' takes in a key: value pair, the
- event parameter will contain a ':' as well.
-
-app_record
-------------------
- * Added new 'u' option to Record() application which prevents Asterisk from
- truncating silence from the end of recorded files.
-
-res_pjsip_outbound_registration
-------------------
- * Outbound registrations are now refreshed when res_stun_monitor detects
- a network change event has happened.
- The 'pjsip send (un)register' CLI commands were updated to accept '*all'
- as an argument to operate on all registrations.
- The 'PJSIP(Un)Register' AMI commands were updated to also accept '*all'.
-
-app_voicemail
-------------------
- * The 'Comedian Mail' prompts can now be overriden using the 'vm-login' and
- 'vm-newuser' configuration options in voicemail.conf.
-
- * Added 'fromstring' field to the voicemail boxes. If set, it will override
- the global 'fromstring' field on a per-mailbox basis.
-
-func_channel
-------------------
- * Added CHANNEL(callid) to retrieve the call log tag associated with the
- channel. e.g., [C-00000000] Dialplan now has access to the call log
- search key associated with the channel so it can be saved in case there
- is a problem with the call.
-
-res_pjsip
-------------------
- * A new transport parameter 'symmetric_transport' has been added.
- When a request from a dynamic contact comes in on a transport with this
- option set to 'yes', the transport name will be saved and used for
- subsequent outgoing requests like OPTIONS, NOTIFY and INVITE. It's
- saved as a contact uri parameter named 'x-ast-txp' and will display with
- the contact uri in CLI, AMI, and ARI output. On the outgoing request,
- if a transport wasn't explicitly set on the endpoint AND the request URI
- is not a hostname, the saved transport will be used and the 'x-ast-txp'
- parameter stripped from the outgoing packet. To facilitate recreation of
- subscriptions on asterisk restart, a new column 'contact_uri' needed to be
- added to the ps_subcsription_persistence table. Since new columns were
- added to both transport and subscription_persistence, an alembic upgrade
- should be run to bring the database tables up to date.
-
- * A new option, allow_overlap, has been added to endpoints which allows
- overlap dialing functionality to be enabled or disabled. The option defaults
- to enabled.
-
-res_pjsip_transport_websocket
-------------------
- * Removed non-secure websocket support. Firefox and Chrome have not allowed
- non-secure websockets for quite some time so this shouldn't be an issue
- for people. Attempting to use a non-secure websocket may or may not work
- when Asterisk attempts to send SIP requests to do something like initiate
- call hangup.
-
-res_pjsip_endpoint_identifier_ip
-------------------
- * A new option has been added to the 'identify' configuration object,
- 'match_header'. The 'match_header' attribute should contain a SIP
- header: value pair that, When set, will cause inbound requests that contain
- the matching SIP header/value pair to be associated with the corresponding
- endpoint. This option is cumulative with the 'match' option, so that if
- either option matches the request, the request is associated with the
- endpoint.
-
- In a future release, this module will be renamed to something more
- appropriate, as it now matches inbound requests on more than just IP
- address.
-
-res_rtp_asterisk
------------------
- * The RTP layer of Asterisk now has support for RFC 5761: "Multiplexing RTP
- Data and Control Packets on a Single Port." So far, the only channel driver
- that supports this feature is chan_pjsip. You can set "rtcp_mux = yes" on
- a PJSIP endpoint in pjsip.conf to enable the feature.
-
-------------------------------------------------------------------------------
---- Functionality changes from Asterisk 14.2.0 to Asterisk 14.3.0 ------------
-------------------------------------------------------------------------------
-
-res_pjproject
-------------------
- * Added new CLI command "pjproject set log level". The new command allows
- the maximum PJPROJECT log levels to be adjusted dynamically and
- independently from the set debug logging level like many other similar
- module debug logging commands.
-
- * Added new companion CLI command "pjproject show log level" to allow the
- user to see the current maximum pjproject logging level.
-
- * Added new pjproject.conf startup section "log_level' option to set the
- initial maximum PJPROJECT logging level.
-
-res_pjsip_outbound_registration
-------------------
- * Statsd no longer logs redundant status PJSIP.registrations.state changes
- for internal state transitions that don't change the reported public status
- state.
-
-res_pjsip_registrar
-------------------
- * The PJSIPShowRegistrationInboundContactStatuses AMI command has been added
- to return ContactStatusDetail events as opposed to
- PJSIPShowRegistrationsInbound which just a dumps every defined AOR.
-
-res_pjsip
-------------------
- * Six existing contact fields have been added to the end of the
- ContactStatusDetail AMI event:
- ID, AuthenticateQualify, OutboundProxy, Path, QualifyFrequency and
- QualifyTimeout. Existing fields have not been disturbed.
-
-res_pjsip_endpoint_identifier_ip
-------------------
- * SRV lookups can now be done on provided hostnames to determine additional
- source IP addresses for requests. This is configurable using the
- "srv_lookups" option on the identify and defaults to "yes".
-
-ARI
-------------------
- * The 'ari set debug' command has been enhanced to accept 'all' as an
- application name. This allows dumping of all apps even if an app
- hasn't registered yet.
-
- * 'ari set debug' now displays requests and responses as well as events.
-
-------------------------------------------------------------------------------
---- Functionality changes from Asterisk 14.1.0 to Asterisk 14.2.0 ------------
-------------------------------------------------------------------------------
-
-AMI
-------------------
- * Events that reference a bridge may now contain two new optional fields:
- - 'BridgeVideoSourceMode': the video source mode for the bridge.
- Can be one of 'none', 'talker', or 'single'.
- - 'BridgeVideoSource': the unique ID of the channel that is the video
- source in this bridge, if one exists.
-
- * A new event, BridgeVideoSourceUpdate, has been added with a class
- authorization of CALL. The event is raised when the video source changes
- in a multi-party mixing bridge.
-
-ARI
-------------------
- * The bridges resource now exposes two new operations:
- - POST /bridges/{bridgeId}/videoSource/{channelId}: Set a video source in a
- multi-party mixing bridge
- - DELETE /bridges/{bridgeId}/videoSource: Remove the set video source,
- reverting to talk detection for the video source
-
- * The bridge model in any returned response or event now contains the following
- optional fields:
- - video_mode: the video source mode for the bridge. Can be one of 'none',
- 'talker', or 'single'.
- - video_source_id: the unique ID of the channel that is the video source
- in this bridge, if one exists.
-
- * A new event, BridgeVideoSourceChanged, has been added for bridges.
- Applications subscribed to a bridge will receive this event when the source
- of video changes in a mixing bridge.
-
- * The ARI major version has been bumped. There are not any known breaking changes
- in ARI. The major version has been bumped because otherwise we can end up with
- overlapping version numbers between different Asterisk versions. Now each major
- version of Asterisk will bring with it a change in the major version of ARI.
- The ARI version in Asterisk 14 is now 2.0.0.
-
-res_pjsip
-------------------
- * Automatic dual stack support is now implemented. Depending on DNS resolution
- and the transport used for sending a message the SIP signaling and SDP will
- be updated with the correct IP address and protocol version. This means that
- the rtp_ipv6 and t38_udptl_ipv6 options no longer have any effect. The
- res_pjsip_multihomed module has also been moved into core res_pjsip to ensure
- that messages are updated with the correct address information in all cases.
-
-chan_pjsip
-------------------
- * The default behavior for RTP codecs has been changed. The sending codec will
- now match the receiving codec. This can be turned off and behavior reverted
- to asymmetric using the "asymmetric_rtp_codec" endpoint option. If this
- option is set then the sending and received codec are allowed to differ.
-
-CLI Commands
-------------------
- * Three new CLI commands have been added for ARI:
- - ari show apps:
- Displays a listing of all registered ARI applications.
- - ari show app <name>:
- Display detailed information about a registered ARI application.
- - ari set debug <name> <on|off>:
- Enable/disable debugging of an ARI application. When debugged, verbose
- information will be sent to the Asterisk CLI.
-
-
-Queue
-------------------
- * A new dialplan variable, ABANDONED, is set when the call is not answered
- by an agent.
-
-res_ari
-------------------
- * The configuration file ari.conf now supports a channelvars option, which
- specifies a list of channel variables to include in each channel-oriented
- ARI event.
-
-------------------------------------------------------------------------------
---- Functionality changes from Asterisk 14.0.0 to Asterisk 14.1.0 ------------
-------------------------------------------------------------------------------
-
-Build System
-------------------
- * The res_digium_phone, codec_g729a, codec_silk, codec_siren7 and
- codec_siren14 binary modules hosted at downloads.digium.com can now be
- automatically downloaded and installed during the Asterisk install
- process. If selected in menuselect, when 'make install' is run, the
- script will check the downloads site for a new version and download
- and install it if needed. The '--with-externals-cache' option to
- ./configure can be used to specify a location to cache the latest
- tarballs so they don't have to be re-downloaded for every install.
-
-app_voicemail
-------------------
- * Added "tps_queue_high" and "tps_queue_low" options.
- The options can modify the taskprocessor alert levels for this module.
- Additional information can be found in the sample configuration file at
- config/samples/voicemail.conf.sample.
-
-res_pjsip_mwi
-------------------
- * Added "mwi_tps_queue_high" and "mwi_tps_queue_low" global configuration
- options to tune taskprocessor alert levels.
-
- * Added "mwi_disable_initial_unsolicited" global configuration option
- to disable sending unsolicited MWI to all endpoints on startup.
- Additional information can be found in the sample configuration file at
- config/samples/pjsip.conf.sample.
-
-chan_pjsip
-------------------
- * A new dialplan function, PJSIP_SEND_SESSION_REFRESH, has been added. When
- invoked, a re-INVITE or UPDATE request will be sent immediately to the
- endpoint underlying the channel. When used in combination with the existing
- dialplan function PJSIP_MEDIA_OFFER, this allows the formats on a PJSIP
- channel to be re-negotiated and updated after session set up.
-
-res_pjsip
-------------------
- * A new endpoint configuration parameter 'contact_user' has been added which
- when set will override the default user set on Contact headers in outgoing
- requests.
-
- * If you are using a sorcery realtime backend to store global res_pjsip
- options (ps_globals table) then you now have to do a res_pjsip reload for
- changes to these options to take effect. If you are using pjsip.conf to
- configure these options then you already had to do a reload after making
- changes.
-
- * Added "ignore_uri_user_options" global configuration option for
- compatibility with an ITSP that sends URI user field options. When enabled
- the user field is truncated at the first semicolon.
- Example:
- URI: "sip:1235557890;phone-context=national@x.x.x.x;user=phone"
- The user field is "1235557890;phone-context=national"
- Which is truncated to this: "1235557890"
-
- Note: The caller-id and redirecting number strings obtained from incoming
- SIP URI user fields are now always truncated at the first semicolon.
-
-res_rtp_asterisk
-------------------
- * An option, ice_blacklist, has been added which allows certain subnets to be
- excluded from local ICE candidates.
-
-app_confbridge
-------------------
- * Some sounds played into the bridge are played asynchronously. This, for
- instance, allows a channel to immediately exit the ConfBridge without having
- to wait for a leave announcement to play.
-
-app_dial
-------------------
- * Added the "Q" option which sets the Q.850/Q.931 cause on unanswered channels
- when another channel answers the call. The default of ANSWERED_ELSEWHERE
- is unchanged.
-
-res_ari
-------------------
- * ARI events will all now include a new field in the root of the JSON message,
- 'asterisk_id'. This will be the unique ID for the Asterisk system
- transmitting the event. The value can be overridden using the 'entityid'
- setting in asterisk.conf.
-
-------------------------------------------------------------------------------
---- Functionality changes from Asterisk 13 to Asterisk 14 --------------------
-------------------------------------------------------------------------------
-
-AMI
------------------
- * A new event, "DialState" has been added. This is similar to "DialBegin" and
- "DialEnd" in that it tracks the state of a dialed call. The difference is that
- this indicates some intermediate state change in the dial attempt, such as
- "RINGING", "PROGRESS", or "PROCEEDING".
-
-ARI
------------------
- * A new ARI method has been added to the channels resource. "create" allows for
- you to create a new channel and place that channel into a Stasis application.
- This is similar to origination except that the specified channel is not
- dialed. This allows for an application writer to create a channel, perform
- manipulations on it, and then delay dialing the channel until later.
-
- * To complement the "create" method, a "dial" method has been added to the
- channels resource in order to place a call to a created channel.
-
- * All operations that initiate playback of media on a resource now support
- a list of media URIs. The list of URIs are played in the order they are
- presented to the resource. A new event, "PlaybackContinuing", is raised when
- a media URI finishes but before the next media URI starts. When a list is
- played, the "Playback" model will contain the optional attribute
- "next_media_uri", which specifies the next media URI in the list to be played
- back to the resource. The "PlaybackFinished" event is raised when all media
- URIs are done.
-
- * Stored recordings now allow for the media associated with a stored recording
- to be retrieved. The new route, GET /recordings/stored/{name}/file, will
- transmit the raw media file to the requester as binary.
-
-
- * "Dial" events have been modified to not only be sent when dialing begins and ends.
- They now are also sent for intermediate states, such as "RINGING", "PROGRESS", and
- "PROCEEDING".
-
-Applications
-------------------
-
-BridgeAdd
-------------------
- * A new application in Asterisk, this will join the calling channel
- to an existing bridge containing the named channel prefix.
-
-ChanSpy
-------------------
- * Added the 'l' option, which forces ChanSpy's audiohook to use a long queue
- to store the audio frames. This option is useful if audio loss is
- experienced when using ChanSpy, but may introduce some delay in the audio
- feed on the listening channel.
-
-Codecs
-------------------
- * Added format attribute negotiation for the iLBC audio codec. Format attribute
- negotiation is provided by the res_format_attr_ilbc module. iLBC 20 is the
- default now. Falls back to iLBC 30, when the remote party requests this.
-
-ConfBridge
-------------------
- * Added the ability to pass options to MixMonitor when recording is used with
- ConfBridge. This includes the addition of the following configuration
- parameters for the 'bridge' object:
- - record_file_timestamp: whether or not to append the start time to the
- recorded file name
- - record_options: the options to pass to the MixMonitor application
- - record_command: a command to execute when recording is finished
- Note that these options may also be with the CONFBRIDGE function.
-
-ControlPlayback
-------------------
- * Remote files can now be retrieved and played back. See the Playback
- dialplan application for more details.
-
-FollowMe
-------------------
- * It is now possible to disable the prompt from a callee by setting
- 'enable_callee_prompt = no' in followme.conf.
-
-Playback
-------------------
- * Remote files can now be retrieved and played back via the Playback and other
- media playback dialplan applications. This is done by directly providing
- the URL to play to the dialplan application:
- same => n,Playback(http://1.1.1.1/howler-monkeys-fl.wav)
- Note that unlike 'normal' media files, the entire URI to the file must be
- provided, including the file extension. Currently, on HTTP and HTTPS URI
- schemes are supported.
-
-Queue
--------------------
- * Added field ReasonPause on QueueMemberStatus if set when paused, the reason
- the queue member was paused.
-
- * Added field LastPause on QueueMemberStatus for time when started the last
- pause for a queue member.
-
- * Show the time when started the last pause for queue member on CLI for command
- 'queue show'.
-
-SMS
-------------------
- * Added the 'n' option, which prevents the SMS from being written to the log
- file. This is needed for those countries with privacy laws that require
- providers to not log SMS content.
-
-
-Channel Drivers
-------------------
-
-chan_dahdi
-------------------
- * The CALLERID(ani2) value for incoming calls is now populated in featdmf
- signaling mode. The information was previously discarded.
-
- * Added the force_restart_unavailable_chans compatibility option. When
- enabled it causes Asterisk to restart the ISDN B channel if an outgoing
- call receives cause 44 (Requested channel not available).
-
-chan_iax2
-------------------
- * The iax.conf forcejitterbuffer option has been removed. It is now always
- forced if you set iax.conf jitterbuffer=yes. If you put a jitter buffer
- on a channel it will be on the channel.
-
- * A new configuration parameters, 'calltokenexpiration', has been added that
- controls the duration before a call token expires. Default duration is 10
- seconds. Setting this to a higher value may help in lagged networks or those
- experiencing high packet loss.
-
- * Plaintext auth mode is deprecated and removed from possible default modes.
-
-chan_rtp (was chan_multicast_rtp)
-------------------
- * Added unicast RTP support and renamed chan_multicast_rtp to chan_rtp.
-
- * The format for dialing a unicast RTP channel is:
- UnicastRTP/<destination-addr>[/[<options>]]
- Where <destination-addr> is something like '127.0.0.1:5060'.
- Where <options> are in standard Asterisk flag options format:
- c(<codec>) - Specify which codec/format to use such as 'ulaw'.
- e(<engine>) - Specify which RTP engine to use such as 'asterisk'.
-
- * New options were added for a multicast RTP channel. The format for
- dialing a multicast RTP channel is:
- MulticastRTP/<type>/<destination-addr>[/[<control-addr>][/[<options>]]]
- Where <type> can be either 'basic' or 'linksys'.
- Where <destination-addr> is something like '224.0.0.3:5060'.
- Where <control-addr> is something like '127.0.0.1:5060'.
- Where <options> are in standard Asterisk flag options format:
- c(<codec>) - Specify which codec/format to use such as 'ulaw'.
- i(<address>) - Specify the interface address from which multicast RTP
- is sent.
- l(<enable>) - Set whether packets are looped back to the sender. The
- enable value can be 0 to set looping to off and non-zero to set
- looping on.
- t(<ttl>) - Set the time-to-live (TTL) value for multicast packets.
-
-chan_sip
-------------------
- * New 'rtpbindaddr' global setting. This allows a user to define which
- ipaddress to bind the rtpengine to. For example, chan_sip might bind
- to eth0 (10.0.0.2) but rtpengine to eth1 (192.168.1.10).
-
- * DTLS related configuration options can now be set at a general level.
- Enabling DTLS support, though, requires enabling it at the user
- or peer level.
-
- * Added the possibility to set the From: header through the the SIP dial
- string (populating the fromuser/fromdomain fields), complementing the
- [!dnid] option for the To: header that has existed since 1.6.0 (1d6b192).
- NOTE: This is again separated by an exclamation mark, so the To: header may
- not contain one of those.
-
- * Session-Timers (RFC 4028) work for TCP (and TLS) transports as well now.
- Previously Asterisk dropped calls only with UDP transports. However with
- longer international calls via TCP, the SIP channel might break, because
- all hops on the Internet route must stay online (have not a single power
- outage, for example). Therefore with Session-Timers enabled (which are
- enabled at default), you might see additional dropped calls. Consequently
- please, consider to go for session-timers=refuse in your sip.conf.
-
-chan_pjsip
-------------------
- * New 'user_eq_phone' endpoint setting. This adds a 'user=phone' parameter
- to the request URI and From URI if the user is determined to be a phone
- number.
-
- * New 'moh_passthrough' endpoint setting. This will pass hold and unhold
- requests through using SIP re-invites with sendonly and sendrecv accordingly.
-
- * Added the pjsip.conf system type disable_tcp_switch option. The option
- allows the user to disable switching from UDP to TCP transports described
- by RFC 3261 section 18.1.1.
-
- * New 'line' and 'endpoint' options added on outbound registrations. This
- allows some identifying information to be added to the Contact of the
- outbound registration. If this information is present on messages received
- from the remote server the message will automatically be associated with the
- configured endpoint on the outbound registration.
-
-
-Core
-------------------
- * The core of Asterisk uses a message bus called "Stasis" to distribute
- information to internal components. For performance reasons, the message
- distribution was modified to make use of a thread pool instead of a
- dedicated thread per consumer in certain cases. The initial settings for
- the thread pool can now be configured in 'stasis.conf'.
-
- * A new core DNS API has been implemented which provides a common interface
- for DNS functionality. Modules that use this functionality will require that
- a DNS resolver module is loaded and available.
-
- * Modified processing of command-line options to first parse only what
- is necessary to read asterisk.conf. Once asterisk.conf is fully loaded,
- the remaining options are processed. The -X option now applies to
- asterisk.conf only. To enable #exec for other config files you must
- set execincludes=yes in asterisk.conf. Any other option set on the
- command-line will now override the equivalent setting from asterisk.conf.
-
- * The TLS core in Asterisk now supports X.509 certificate subject alternative
- names. This way one X.509 certificate can be used for hosts that can be
- reached under multiple DNS names or for multiple hosts.
-
- * The Asterisk logging system now supports JSON structured logging. Log
- channels specified in logger.conf or added dynamically via CLI commands now
- support an optional specifier prior to their levels that determines their
- formatting. To set a log channel to format its entries as JSON, a formatter
- of '[json]' can be set, e.g.,
- full => [json]debug,verbose,notice,warning,error
-
- * The core now supports a 'media cache', which stores temporary media files
- retrieved from external sources. CLI commands have been added to manipulate
- and display the cached files, including:
- - 'media cache show <all>' - show all cached media files, or details about
- one particular cached media file
- - 'media cache refresh <item>' - force a refresh of a particular media file
- in the cache
- - 'media cache delete <item>' - remove an item from the cache
- - 'media cache create <uri>' - retrieve a URI and store it in the cache
-
- * The ability for device state hints to be automatically created as a result of
- device state changes now exists in the PBX. This functionality is referred to
- as "autohints" and is configurable in extensions.conf by placing "autohints=yes"
- in the context. If enabled a device state hint will be automatically created
- with the name of the device.
-
-* If Asterisk is built with systemd support, and run under systemd, it will
- notify systemd of its state using sd_notify. Use 'Type=notify' in
- asterisk.service.
-
-Functions
-------------------
- * The func_odbc global option "single_db_connection" default value has been
- changed to 'no'.
-
-
-Formats
-------------------
- * New module format_ogg_speex added which supports Speex codec inside
- Ogg containers (filename extension .spx).
-
-
-CHANNEL
-------------------
- * Added CHANNEL(onhold) item that returns 1 (onhold) and 0 (not-onhold) for
- the hold status of a channel.
-
-CURL
-------------------
- * The CURL function now supports a write option, which will save the retrieved
- file to a location on disk. As an example:
- same => n,Set(CURL(https://1.1.1.1/foo.wav)=/tmp/foo.wav)
- will save 'foo.wav' to /tmp.
-
-DTMF Features
-------------------
- * The transferdialattempts default value has been changed from 1 to 3. The
- transferinvalidsound has been changed from "pbx-invalid" to
- "privacy-incorrect". These were changed to make DTMF transfers be more
- user-friendly by default.
-
-
-Resources
-------------------
-
-res_http_media_cache
-------------------
- * A backend for the core media cache, this module retrieves media files from
- a remote HTTP(S) server and stores them in the core media cache for later
- playback.
-
-res_musiconhold
-------------------
- * Added sort=randstart to the sort options. It sorts the files by name and
- then chooses the first file to play at random.
- * Added preferchannelclass=no option to prefer the application-passed class
- over the channel-set musicclass. This allows separate hold-music from
- application (e.g. Queue or Dial) specified music.
-
-res_resolver_unbound
-------------------
- * Added a res_resolver_unbound module which uses the libunbound resolver library
- to perform DNS resolution. This module requires the libunbound library to be
- installed in order to be used.
-
-res_pjsip
-------------------
- * A new SIP resolver using the core DNS API has been implemented. This relies on
- external SIP resolver support in PJSIP which is only available as of PJSIP
- 2.4. If this support is unavailable the existing built-in PJSIP SIP resolver
- will be used instead. The new SIP resolver provides NAPTR support, improved
- SRV support, and AAAA record support.
-
-res_pjsip_info_empty
---------------------
- * A new module that can respond to empty Content-Type INFO packets during call.
- Some SBCs will terminate a call if their empty INFO packets are not responded
- to within a predefined time.
-
-res_pjsip_outbound_registration
--------------------------------
-* A new 'fatal_retry_interval' option has been added to outbound registration.
- When set (default is zero), and upon receiving a failure response to an
- outbound registration, registration is retried at the given interval up to
- 'max_retries'.
-
-res_pjsip_outbound_publish
-------------------
- * Added a new multi_user option that when set to 'yes' allows a given configuration
- to be used for multiple users.
-
-
-CEL Backends
-------------------
-
-cel_pgsql
-------------------
- * Added a new option, 'usegmtime', which causes timestamps in CEL events
- to be logged in GMT.
-
- * Added support to set schema where located the table cel. This settings is
- configurable for cel_pgsql via the 'schema' in configuration file
- cel_pgsql.conf.
-
-
-CDR Backends
-------------------
-
-cdr_adaptive_odbc
-------------------
- * Added the ability to set the character to quote identifiers. This
- allows adding the character at the start and end of table and column
- names. This setting is configurable for cdr_adaptive_odbc via the
- quoted_identifiers in configuration file cdr_adaptive_odbc.conf.
-
-cdr_odbc
-------------------
- * Added a new configuration option, "newcdrcolumns", which enables use of the
- post-1.8 CDR columns 'peeraccount', 'linkedid', and 'sequence'.
-
-cdr_csv
-------------------
- * Added a new configuration option, "newcdrcolumns", which enables use of the
- post-1.8 CDR columns 'peeraccount', 'linkedid', and 'sequence'.
-
-------------------------------------------------------------------------------
---- Functionality changes from Asterisk 13.10.0 to Asterisk 13.11.0 ----------
-------------------------------------------------------------------------------
-
-chan_dahdi
-------------------
- * Added "faxdetect_timeout" option.
- The option determines how many seconds into a call before faxdetect
- is disabled for the call. Setting the value to zero disables the timeout.
-
-res_pjsip
-------------------
- * Added "fax_detect_timeout" to endpoint.
- The option determines how many seconds into a call before fax_detect
- is disabled for the call. Setting the value to zero disables the timeout.
-
- * Added "subscribe_context" to endpoint.
- If specified, incoming SUBSCRIBE requests will be searched for the matching
- extension in the indicated context. If no "subscribe_context" is specified,
- then the "context" setting is used.
-
-res_rtp_asterisk
-------------------
- * The DTLS part in Asterisk now supports Perfect Forward Secrecy (PFS).
- Enabling PFS is attempted by default, and is dependent on the configuration
- of the module using TLS.
- - Ephemeral ECDH (ECDHE) is enabled by default. To disable it, do not
- specify a ECDHE cipher suite in sip.conf, for example:
- dtlscipher=AES128-SHA
- - Ephemeral DH (DHE) is disabled by default. To enable it, add DH parameters
- into the private key file, e.g., sip.conf dtlsprivatekey. For example:
- openssl dhparam -out ./dh.pem 2048
- - Because clients expect the server to prefer PFS, and because OpenSSL sorts
- its cipher suites by bit strength, see "openssl ciphers -v DEFAULT".
- Consider re-ordering your cipher suites in the respective configuration
- file. For example:
- dtlscipher=ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256
- which forces PFS and requires at least DTLS 1.2.
-
-------------------------------------------------------------------------------
---- Functionality changes from Asterisk 13.9.0 to Asterisk 13.10.0 -----------
-------------------------------------------------------------------------------
-
-Core
-------------------
- * A channel variable FORWARDERNAME is now set which indicates which channel
- was responsible for a forwarding requests received on dial attempt.
-
-func_odbc
-------------------
- * Added new global option "single_db_connection".
- Enabling this option func_odbc will use a single database connection per DSN.
- This option is enabled by default.
-
-res_fax
-------------------
- * Added FAXMODE variable to let dialplan know what fax transport was used.
- FAXMODE variable is set to either "audio" or "T38".
-
-res_pjsip
-------------------
- * Added "via_addr", "via_port", "call_id" to contacts.
- As res_pjsip_nat rewrites contact's address, only the last Via header
- can contain the source address of registered endpoint.
- Also Call-Id header may contain the source address of registered endpoint.
- Added new fields ViaAddress,CallID to AMI event ContactStatus
-
- * Endpoint IP Access Controls
- Added new configuration Endpoint options:
- "acl" - list of IP ACL section names in acl.conf
- "deny" - List of IP addresses to deny access from
- "permit" - List of IP addresses to permit access from
- "contact_acl" - List of Contact ACL section names in acl.conf
- "contact_deny" - List of Contact header addresses to deny
- "contact_permit" - List of Contact header addresses to permit
-
- * Added "reg_server" to contacts.
- If the Asterisk system name is set in asterisk.conf, it will be stored
- into the "reg_server" field in the ps_contacts table to facilitate
- multi-server setups.
-
- * When starting Asterisk, received traffic will now be ignored until Asterisk
- has loaded all modules and is fully booted.
-
-res_hep
-------------------
- * Added a new option, 'uuid_type', that sets the preferred source of the Homer
- correlation UUID. The valid options are:
- - call-id: Use the PJSIP SIP Call-ID header value
- - channel: Use the Asterisk channel name
- The default value is 'call-id'. In the event that a HEP module cannot find a
- valid value using the specified 'uuid_type', the module may fallback to a
- more readily available source for the correlation UUID.
-
-res_odbc
-------------------
- * A new option has been added, 'max_connections', which sets the maximum number
- of concurrent connections to the database. This option defaults to 1 which
- returns the behavior to that of Asterisk 13.7 and prior.
-
-app_confbridge
-------------------
- * Added a bridge profile option called regcontext that allows you to
- dynamically register the conference bridge name as an extension into
- the specified context. This allows tracking down conferences on multi-
- server installations via alternate means (DUNDI for example). By default
- this feature is not used.
-
-Codecs
-------------------
- * Added the associated format name to 'core show codecs'.
-
-res_ari_channels
-------------------
- * Added 'formats' to channel create/originate to allow setting the allowed
- formats for a channel when no originator channel is available. Especially
- useful for Local channel creation where no other format information is
- available. 'core show codecs' can now be used to look up suitable format
- names.
-
-------------------------------------------------------------------------------
---- Functionality changes from Asterisk 13.8.0 to Asterisk 13.9.0 ------------
-------------------------------------------------------------------------------
-
-res_parking:
- - The dynamic parking lot creation channel variables PARKINGDYNAMIC,
- PARKINGDYNCONTEXT, PARKINGDYNEXTEN, and PARKINGDYNPOS are now looked
- for in the parker's channel instead of the parked channel. This is only
- of significance if the parker uses blind transfer or the DTMF one-step
- parking feature. You need to use the double underscore '__' inheritance
- for these variables. The indefinite inheritance is also recommended
- for the PARKINGEXTEN variable.
-
-res_pjsip
-------------------
- * Added new global option (disable_multi_domain) to pjsip.
- Disabling Multi Domain can improve realtime performace by reducing
- number of database requsts.
-
-chan_pjsip
-------------------
- * Added 'pjsip show channelstats' CLI command.
-
-res_pjsip_outbound_publish
-------------------
- * Added support for setting the transport used on outbound publish
- using the transport configuration option.
-
-------------------------------------------------------------------------------
---- Functionality changes from Asterisk 13.7.0 to Asterisk 13.8.0 ------------
-------------------------------------------------------------------------------
-
-res_pjsip_caller_id
-------------------
- * Per RFC3325, the 'From' header is now anonymized on outgoing calls when
- caller id presentation is prohibited.
-
-res_pjsip_config_wizard
-------------------
- * A new command (pjsip export config_wizard primitives) has been added that
- will export all the pjsip objects it created to the console or a file
- suitable for reuse in a pjsip.conf file.
-
-Build System
-------------------
- * To help insure that Asterisk is compiled and run with the same known
- version of pjproject, a new option (--with-pjproject-bundled) has been
- added to ./configure. When specified, the version of pjproject specified
- in third-party/versions.mak will be downloaded and configured. When you
- make Asterisk, the build process will also automatically build pjproject
- and Asterisk will be statically linked to it. Once a particular version
- of pjproject is configured and built, it won't be configured or built
- again unless you run a 'make distclean'.
-
- To facilitate testing, when 'make install' is run, the pjsua and pjsystest
- utilities and the pjproject python bindings will be installed in
- ASTDATADIR/third-party/pjproject.
-
- The default behavior remains building with the shared pjproject
- installation, if any.
-
-app_confbridge
-------------------
- * Added CONFBRIDGE_INFO(muted,) for querying the muted conference state.
-
- * Added Muted header to AMI ConfbridgeListRooms action response list events
- to indicate the muted conference state.
-
- * Added Muted column to CLI "confbridge list" output to indicate the muted
- conference state and made the locked column a yes/no value instead of a
- locked/unlocked value.
-
-REDIRECTING(reason)
-------------------
- * The REDIRECTING(reason) value is now treated consistently between
- chan_sip and chan_pjsip.
-
- Both channel drivers match incoming reason values with values documented
- by REDIRECTING(reason) and values documented by RFC5806 regardless of
- whether they are quoted or not. RFC5806 values are mapped to the
- equivalent REDIRECTING(reason) documented value and is set in
- REDIRECTING(reason). e.g., an incoming RFC5806 'unconditional' value or a
- quoted string version ('"unconditional"') is converted to
- REDIRECTING(reason)'s 'cfu' value. The user's dialplan only needs to deal
- with 'cfu' instead of any of the aliases.
-
- The incoming 480 response reason text supported by chan_sip checks for
- known reason values and if not matched then puts quotes around the reason
- string and assigns that to REDIRECTING(reason).
-
- Both channel drivers send outgoing known REDIRECTING(reason) values as the
- unquoted RFC5806 equivalent. User custom values are either sent as is or
- with added quotes if SIP doesn't allow a character within the value as
- part of a RFC3261 Section 25.1 token. Note that there are still
- limitations on what characters can be put in a custom user value. e.g.,
- embedding quotes in the middle of the reason string is just going to cause
- you grief.
-
- * Setting a REDIRECTING(reason) value now recognizes RFC5806 aliases.
- e.g., Setting REDIRECTING(reason) to 'unconditional' is converted to the
- 'cfu' value.
-
-res_pjproject
-------------------
- * This module is the successor of res_pjsip_log_forwarder. As well as
- handling the log forwarding (which now displays as 'pjproject:0' instead
- of 'pjsip:0'), it also adds a 'pjproject show buildopts' command to the CLI.
- This displays the compiled-in options of the pjproject installation
- Asterisk is currently running against.
-
- * Another feature of this module is the ability to map pjproject log levels
- to Asterisk log levels, or to suppress the pjproject log messages
- altogether. Many of the messages emitted by pjproject itself are the result
- of errors which Asterisk will ultimately handle so the messages can be
- misleading or just noise. A new config file (pjproject.conf) has been added
- to configure the mapping and a new CLI command (pjproject show log mappings)
- has been added to display the mappings currently in use.
-
-res_pjsip
-------------------
- * Transports are now reloadable. In testing, no in-progress calls were
- disrupted if the ip address or port weren't changed, but the possibility
- still exists. To make sure there are no unintentional drops, a new option
- 'allow_reload', which defaults to 'no' has been added to transport. If
- left at the default, changes to the particular transport will be ignored.
- If set to 'yes', changes (if any) will be applied.
-
- * Added new global option (regcontext) to pjsip. When set, Asterisk will
- dynamically create and destroy a NoOp priority 1 extension
- for a given endpoint who registers or unregisters with us.
-
- * Endpoints and aors can now be identified by the username and realm in an
- incoming Authorization header. To use this feature, add "auth_username"
- to your endpoint's "identify_by" list. You can combine "auth_username"
- and the original "username" to test both the From/To and Authorization
- headers. For endpoints, the order is controlled by the global
- "endpoint_identifier_order" setting. For matching aors to an endpoint
- for inbound registration, the order is controlled by this option.
-
- * In conjunction with the "auth_username" change, 3 new options have been
- added to the global configuration object that control how many unidentified
- requests over a certain period from the same IP address can be received
- before a security alert is generated. A new CLI command
- "pjsip show unidentified_requests" will list the current candidates.
-
-res_pjsip_history
-------------------
- * A new module, res_pjsip_history, has been added that provides SIP history
- viewing/filtering from the CLI. The module is intended to be used on systems
- with busy SIP traffic, where existing forms of viewing SIP messages - such
- as the res_pjsip_logger - may be inadequate. The module provides two new
- CLI commands:
- - 'pjsip set history {on|off|clear}' - this enables/disables SIP history
- capturing, as well as clears an existing history capture. Note that SIP
- packets captured are stored in memory until cleared. As a result, the
- history capture should only be used for debugging/viewing purposes, and
- should *NOT* be left permanently enabled on a system.
- - 'pjsip show history' - displays the captured SIP history. When invoked
- with no options, the entire captured history is displayed. Two options
- are available:
- -- 'entry <num>' - display a detailed view of a single SIP message in
- the history
- -- 'where ...' - filter the history based on some expression. For more
- information on filtering, view the current CLI help for the
- 'pjsip show history' command.
-
-Voicemail
-------------------
- * app_voicemail and res_mwi_external can now be built together. The default
- remains to build app_voicemail and not res_mwi_external but if they are
- both built, the load order will cause res_mwi_external to load first and
- app_voicemail will be skipped. Use 'preload=app_voicemail.so' in
- modules.conf to force app_voicemail to be the voicemail provider.
-
-res_pjsip_sdp_rtp
-------------------
- * A new option (bind_rtp_to_media_address) has been added to endpoint which
- will cause res_pjsip_sdp_rtp to actually bind the RTP instance to the
- media_address as well as using it in the SDP. If set, RTP packets will now
- originate from the media address instead of the operating system's "primary"
- ip address.
-
-res_rtp_asterisk
-------------------
- * A new configuration section - ice_host_candidates - has been added to
- rtp.conf, allowing automatically discovered ICE host candidates to be
- overriden. This allows an Asterisk server behind a 1:1 NAT to send its
- external IP as a host candidate rather than relying on STUN to discover it.
-
-------------------------------------------------------------------------------
---- Functionality changes from Asterisk 13.6.0 to Asterisk 13.7.0 ------------
-------------------------------------------------------------------------------
-
-Codecs
-------------------
- * Added format attribute negotiation for the VP8 video codec. Format attribute
- negotiation is provided by the res_format_attr_vp8 module.
-
-ConfBridge
-------------------
- * A new "timeout" user profile option has been added. This configures the number
- of seconds that a participant may stay in the ConfBridge after joining. When
- the time expires, the user is ejected from the conference and CONFBRIDGE_RESULT
- is set to "TIMEOUT" on the channel.
-
-chan_sip
-------------------
- * The websockets_enabled option has been added to the general section of
- sip.conf. The option is enabled by default to match the previous behavior.
- The option should be disabled when using res_pjsip_transport_websockets to
- ensure chan_sip will not conflict with PJSIP websockets.
-
-Dialplan Functions
-------------------
- * The HOLD_INTERCEPT dialplan function now actually exists in the source tree.
- While support for the events was added in Asterisk 13.4.0, the function
- accidentally never made it in. That function is now present, and will cause
- the 'hold' raised by a channel to be intercepted and converted into an
- event instead.
-
-res_pjsip_outbound_registration
--------------------------------
- * If res_statsd is loaded and a StatsD server is configured, basic statistics
- regarding the state of outbound registrations will now be emitted. This
- includes:
- - A GAUGE statistic for the overall number of outbound registrations, i.e.:
- PJSIP.registrations.count
- - A GAUGE statistic for the overall number of outbound registrations in a
- particular state, e.g.:
- PJSIP.registrations.state.Registered
-
-res_pjsip
-------------------
- * The ability to use "like" has been added to the pjsip list and show
- CLI commands. For instance: CLI> pjsip list endpoints like abc
-
- * If res_statsd is loaded and a StatsD server is configured, basic statistics
- regarding the state of PJSIP contacts will now be emitted. This includes:
- - A GAUGE statistic for the overall number of contacts in a particular
- state, e.g.:
- PJSIP.contacts.states.Reachable
- - A TIMER statistic for the RTT time for each qualified contact, e.g.:
- PJSIP.contacts.alice@@127.0.0.1:5061.rtt
-
-res_sorcery_memory_cache
-------------------------
- * A new caching strategy, full_backend_cache, has been added which caches
- all stored objects in the backend. When enabled all objects will be
- expired or go stale according to the configuration. As well when enabled
- all retrieval operations will be performed against the cache instead of
- the backend.
-
-func_callerid
--------------------
- * CALLERID(pres) is now documented as a valid alternative to setting both
- CALLERID(name-pres) and CALLERID(num-pres) at once. Some channel drivers,
- like chan_sip, don't make a distinction between the two: they take the
- least public value from name-pres and num-pres. By using CALLERID(pres)
- for reading and writing, you touch the same combined value in the dialplan.
- The same applies to CONNECTEDLINE(pres), REDIRECTING(orig-pres),
- REDIRECTING(to-pres) and REDIRECTING(from-pres).
-
-res_endpoint_stats
--------------------
- * A new module that emits StatsD statistics regarding Asterisk endpoints.
- This includes a total count of the number of endpoints, the count of the
- number of endpoints in the technology agnostic state of the endpoint -
- online or offline - as well as the number of channels associated with each
- endpoint. These are recorded as three different GAUGE statistics:
- - endpoints.count
- - endpoints.state.{unknown|offline|online}
- - endpoints.{tech}.{resource}.channels
-
-
-------------------------------------------------------------------------------
---- Functionality changes from Asterisk 13.5.0 to Asterisk 13.6.0 ------------
-------------------------------------------------------------------------------
-
-Dialplan Functions
-------------------
- * The CHANNEL function, when used on a PJSIP channel, now exposes a 'call-id'
- extraction option when using with the 'pjsip' signalling option. It will
- return the SIP Call-ID associated with the INVITE request that established
- the PJSIP channel.
-
-ARI
-------------------
- * Two new endpoint related events are now available: PeerStatusChange and
- ContactStatusChange. In particular, these events are useful when subscribing
- to all event sources, as they provide additional endpoint related
- information beyond the addition/removal of channels from an endpoint.
-
- * Added the ability to subscribe to all ARI events in Asterisk, regardless
- of whether the application 'controls' the resource. This is useful for
- scenarios where an ARI application merely wants to observe the system,
- as opposed to control it. There are two ways to accomplish this:
- (1) Via the WebSocket connection URI. A new query paramter, 'subscribeAll',
- has been added that, when present and True, will subscribe all
- specified applications to all ARI event sources in Asterisk.
- (2) Via the applications resource. An ARI client can, at any time, subscribe
- to all resources in an event source merely by not providing an explicit
- resource. For example, subscribing to an event source of 'channels:'
- as opposed to 'channels:12345' will subscribe the application to all
- channels.
-
-------------------------------------------------------------------------------
---- Functionality changes from Asterisk 13.4.0 to Asterisk 13.5.0 ------------
-------------------------------------------------------------------------------
-
-AMI
-------------------
- * A new ContactStatus event has been added that reflects res_pjsip contact
- lifecycle changes: Created, Removed, Reachable, Unreachable, Unknown.
-
- * Added the Linkedid header to the common channel headers listed for each
- channel in AMI events.
-
-ARI
-------------------
- * A new feature has been added that enables the retrieval of modules and
- module information through an HTTP request. Information on a single module
- can be also be retrieved. Individual modules can be loaded to Asterisk, as
- well as unloaded and reloaded.
-
-* A new resource has been added to the 'asterisk' resource, 'config/dynamic'.
- This resource allows for push configuration of sorcery derived objects
- within Asterisk. The resource supports creation, retrieval, updating, and
- deletion. Sorcery derived objects that are manipulated by this resource
- must have a sorcery wizard that supports the desired operations.
-
- * A new feature has been added that allows for the rotation of log channels
- through HTTP requests.
-
-
-res_pjsip
-------------------
-* A new 'g726_non_standard' endpoint option has been added that, when set to
- 'yes' and g.726 audio is negotiated, forces the codec to be treated as if it
- is AAL2 packed on the channel.
-
-* A new 'rtp_keepalive' endpoint option has been added. This option specifies
- an interval, in seconds, at which we will send RTP comfort noise packets to
- the endpoint. This functions identically to chan_sip's "rtpkeepalive" option.
-
-* New 'rtp_timeout' and 'rtp_timeout_hold' endpoint options have been added.
- These options specify the amount of time, in seconds, that Asterisk will wait
- before terminating the call due to lack of received RTP. These are identical
- to chan_sip's rtptimeout and rtpholdtimeout options.
-
-------------------------------------------------------------------------------
---- Functionality changes from Asterisk 13.3.0 to Asterisk 13.4.0 ------------
-------------------------------------------------------------------------------
-
-chan_pjsip
-------------------
- * New 'rpid_immediate' option to control if connected line update information
- goes to the caller immediately or waits for another reason to send the
- connected line information update. See the online option documentation for
- more information. Defaults to 'no' as setting it to 'yes' can result in
- many unnecessary messages being sent to the caller.
-
- * The configuration setting 'progressinband' now defaults to 'no', which
- matches the actual behavior of previous versions.
-
-res_pjsip
-------------------
- * A new CLI command has been added: "pjsip show settings", which shows
- both the global and system configuration settings.
-
- * A new aor option has been added: "qualify_timeout", which sets the timeout
- in seconds for a qualify. The default is 3 seconds. This overrides the
- hard coded 32 seconds in pjproject.
-
- * Endpoint status will now change to "Unreachable" when all contacts are
- unavailable. When any contact becomes available, the endpoint will status
- will change back to "Reachable".
-
- * A new global option has been added: "max_initial_qualify_time", which
- sets the maximum amount of time from startup that qualifies should be
- attempted on all contacts.
-
-res_ari_channels
-------------------
- * Two new events, 'ChannelHold' and 'ChannelUnhold', have been added to the
- events data model. These events are raised when a channel indicates a hold
- or unhold, respectively.
-
-func_holdintercept
-------------------
- * A new dialplan function, HOLD_INTERCEPT, has been added. This function, when
- placed on a channel, intercepts hold/unhold indications signalled by the
- channel and prevents them from moving on to other channels in a bridge with
- the hold initiator. Instead, AMI or ARI events are raised indicating that
- the channel wanted to place someone on hold. This allows external
- applications to implement their own custom hold/unhold logic.
-
-------------------------------------------------------------------------------
---- Functionality changes from Asterisk 13.2.0 to Asterisk 13.3.0 ------------
-------------------------------------------------------------------------------
-
-chan_pjsip/app_transfer
-------------------
- * The Transfer application, when used with chan_pjsip, now supports using
- a PJSIP endpoint as the transfer destination. This is in addition to
- explicitly specifying a SIP URI to transfer to.
-
-res_ari_channels
-------------------
- * The ARI /channels resource now supports a new operation, 'redirect'. The
- redirect operation will perform a technology and state specific redirection
- on the channel to a specified endpoint or destination. In the case of SIP
- technologies, this is either a 302 Redirect response to an on-going INVITE
- dialog or a SIP REFER request.
-
-res_pjsip
-------------------
- * A new 'endpoint_identifier_order' option has been added that allows one to
- set the order by which endpoint identifiers are processed and checked. This
- option is specified under the 'global' type configuration section.
-
-------------------------------------------------------------------------------
---- Functionality changes from Asterisk 13.1.0 to Asterisk 13.2.0 ------------
-------------------------------------------------------------------------------
-
- * New 'PJSIP_AOR' and 'PJSIP_CONTACT' dialplan functions have been added which
- allow examining PJSIP AORs or contacts from the dialplan.
-
-res_pjsip_outbound_registration
-------------------
- * The 'pjsip send unregister' command now stops further registrations.
-
- * A new command 'pjsip send register' has been added which allows you to
- start or restart periodic registration. It can be used after a
- 'send unregister' or after a 401 permanent error.
-
-res_pjsip_config_wizard
-------------------
- * This is a new module that adds streamlined configuration capability for
- chan_pjsip. It's targeted at users who have lots of basic configuration
- scenarios like 'phone' or 'agent' or 'trunk'. Additional information
- can be found in the sample configuration file at
- config/samples/pjsip_wizard.conf.sample.
-
-res_fax
------------
- * The T.38 negotiation timeout was previously hard coded at 5000 milliseconds
- and is now configurable via the 't38timeout' configuration option in
- res_fax.conf and via the fax options dialplan function 'FAXOPT(t38timeout)'.
- The default remains at 5000 milliseconds.
-
-PJSIP Transports
-----------
- * The ca_list_path transport parameter has been added for TLS transports. This
- option behaves similarly to the old sip.conf option "tlscapath". In order to
- use this, you must be using PJProject version 2.4 or higher.
-
-ARI
-------------------
- * The Originate operation now takes in an originator channel. The linked ID of
- this originator channel is applied to the newly originated outgoing channel.
- If using CEL this allows an association to be established between the two so
- it can be recognized that the originator is dialing the originated channel.
-
- * "language" (the default spoken language for the channel) is now included in
- the standard channel state output for suitable events.
-
- * The POST channels/{id} operation and the POST channels/{id}/continue operation
- now have a new "label" parameter. This allows for origination or continuation
- to a labeled priority in the dialplan instead of requiring a specific priority
- number. The ARI version has been bumped to 1.7.0 as a result.
-
-AMI
-------------------
- * "Language" (the default spoken language for the channel) is now included in
- the standard channel state output for suitable events.
-
- * AMI actions that return a list of events have been made to return consistent
- headers for the action response event starting the list and the list complete
- event. The AMI version has been bumped to 2.7.0 as a result.
-
-------------------------------------------------------------------------------
---- Functionality changes from Asterisk 13.0.0 to Asterisk 13.1.0 ------------
-------------------------------------------------------------------------------
-
-AMI
-------------------
- * Event NewConnectedLine is emitted when the connected line information on
- a channel changes.
-
-ARI
-------------------
- * Event ChannelConnectedLine is emitted when the connected line information
- on a channel changes.
-
-Core Transfers
------------------
-
-The features.conf general section has three new configurable options:
- * transferdialattempts
- * transferretrysound
- * transferinvalidsound
-For more information on what these options do, see the Asterisk wiki:
- https://wiki.asterisk.org/wiki/x/W4fAAQ
-
-Channel Drivers
-------------------
-
-chan_pjsip
-------------------
- * New 'media_encryption_optimistic' endpoint setting. This will use SRTP
- when possible but does not consider lack of it a failure.
-
-res_pjsip_endpoint_identifer_ip
-------------------
- * New CLI commands have been added: "pjsip show identif(y|ies)", which lists
- all configured PJSIP identify objects
-
-------------------------------------------------------------------------------
---- Functionality changes from Asterisk 12 to Asterisk 13 --------------------
-------------------------------------------------------------------------------
-
-Overview
-------------------
-
-Asterisk 13 is the next Long Term Support (LTS) release of Asterisk. As such,
-the focus of development for this release of Asterisk was on improving the
-usability and features developed in the previous Standard release, Asterisk 12.
-Beyond a general refinement of end user features, development focussed heavily
-on the Asterisk APIs - the Asterisk Manager Interface (AMI) and the Asterisk
-REST Interface (ARI) - and the PJSIP stack in Asterisk. Some highlights of the
-new features include:
-
-* Asterisk security events are now provided via AMI, allowing end users to
- monitor their Asterisk system in real time for security related issues.
-* External control of Message Waiting Indicators (MWI) through both AMI and ARI.
-* Reception/transmission of out of call text messages using any supported
- channel driver/protocol stack through ARI.
-* Resource List Server support in the PJSIP stack, providing subscriptions to
- lists of resources and batched delivery of NOTIFY requests.
-* Inter-Asterisk distributed device state and mailbox state using the PJSIP
- stack.
-
-It is important to note that Asterisk 13 is built on the architecture developed
-during the previous Standard release, Asterisk 12. Users upgrading to
-Asterisk 13 should read about the new features in Asterisk 12 later in this file
-(see Functionality changes from Asterisk 11 to Asterisk 12), as well as the
-UPGRADE-12.txt delivered with this release. In particular, users upgrading to
-Asterisk 13 from a release prior to Asterisk 12 should read the specifications
-on AMI, CDRs, and CEL on the Asterisk wiki:
- * AMI - https://wiki.asterisk.org/wiki/x/dAFRAQ
- * CEL - https://wiki.asterisk.org/wiki/x/4ICLAQ
- * CDRs - https://wiki.asterisk.org/wiki/x/pwpRAQ
-
-Many new featuers in Asterisk 13 were introduced in point releases of
-Asterisk 12. Following this section - which documents the changes from all
-versions of Asterisk 12 to Asterisk 13 - users should examine the new features
-that were introduced in the point releases of Asterisk 12, as they are also
-included in Asterisk 13.
-
-Finally, all users upgrading to Asterisk 13 should read the UPGRADE.txt file
-delivered with this release.
-
-
-Build System
-------------------
- * Sample config files have been moved from configs/ to a sub-folder of that
- directory, samples.
-
- * The menuselect utility has been pulled into the Asterisk repository. As a
- result, the libxml2 development library is now a required dependency for
- Asterisk.
-
- * A new Compiler Flag, REF_DEBUG, has been added. When enabled, reference
- counted objects will emit additional debug information to the refs log file
- located in the standard Asterisk log file directory. This log file is useful
- in tracking down object leaks and other reference counting issues. Prior to
- this version, this option was only available by modifying the source code
- directly. This change also includes a new script, refcounter.py, in the
- contrib folder that will process the refs log file. Note that this replaces
- the refcounter utility that could be built from the utils directory.
-
-
-Applications
-------------------
-
-DahdiBarge
-------------------
- * This module was deprecated and has been removed. Users of app_dahdibarge
- should use ChanSpy instead.
-
-MixMonitor
-------------------
- * New options to play a beep when starting a recording and stopping a recording
- have been added. The option "p" will play a beep to the channel that starts
- the recording. The option "P" will play a beep to the channel that stops the
- recording.
-
-Queue
-------------------
- * Queue rules can now be stored in a database table, queue_rules. Unlike other
- RealTime tables, the queue_rules table is only examined on module load or
- module reload. A new general setting has been added to queuerules.conf,
- 'realtime_rules', which, when set to 'yes', will cause app_queue to look in
- RealTime for additional queue rules to parse. Note that both the file and
- the database can be used as a provide of queue rules when 'realtime_rules'
- is set to 'yes'.
-
- When app_queue is reloaded, all rules are re-parsed and loaded into memory.
- There is no caching of RealTime queue rules.
-
-ReadFile
-------------------
- * This module was deprecated and has been removed. Users of app_readfile
- should use func_env's FILE function instead.
-
-Say
-------------------
- * The 'say' family of dialplan applications now support the Japanese
- language. The 'language' parameter in say.conf now recognizes a setting of
- 'ja', which will enable Japanese language specific mechanisms for playing
- back numbers, dates, and other items.
- * Counting, enumeration and dates now supports Icelandic grammar with the
- 'language' parameter set to 'is'.
-
-SayCountPL
-------------------
- * This module was deprecated and has been removed. Users of app_saycountpl
- should use the Say family of applications.
-
-SetMusicOnHold
-------------------
- * The SetMusicOnHold dialplan application was deprecated and has been removed.
- Users of the application should use the CHANNEL function's musicclass
- setting instead.
-
-WaitMusicOnHold
-------------------
- * The WaitMusicOnHold dialplan application was deprecated and has been
- removed. Users of the application should use MusicOnHold with a duration
- parameter instead.
-
-VoiceMail
-------------------
- * VoiceMail and VoiceMailMain now support the Japanese language. The
- 'language' parameter in voicemail.conf now recognizes a setting of 'ja',
- which will enable prompts to be played back using a Japanese grammatical
- structure. Additional prompts are necessary for this functionality,
- including:
- - jb-arimasu: there is
- - jb-arimasen: there is not
- - jb-oshitekudasai: please press
- - jb-ni: article ni
- - jb-ga: article ga
- - jb-wa: article wa
- - jb-wo: article wo
-
- * Add the ability to specify multiple email addresses in configuration,
- separated by a |.
-
-
-CDR Backends
-------------------
-
-cdr_sqlite
------------------
- * This module was deprecated and has been removed. Users of cdr_sqlite
- should use cdr_sqlite3_custom.
-
-cdr_pgsql
-------------------
- * Added the ability to support PostgreSQL application_name on connections.
- This allows PostgreSQL to display the configured name in the
- pg_stat_activity view and CSV log entries. This setting is configurable
- for cdr_pgsql via the appname configuration setting in cdr_pgsql.conf.
-
-
-CEL Backends
-------------------
-
-cel_pgsql
-------------------
- * Added the ability to support PostgreSQL application_name on connections.
- This allows PostgreSQL to display the configured name in the
- pg_stat_activity view and CSV log entries. This setting is configurable
- for cel_pgsql via the appname configuration setting in cel_pgsql.conf.
-
-
-Channel Drivers
-------------------
-
-chan_dahdi
-------------------
- * SS7 support now requires libss7 v2.0 or later.
-
- * Added SS7 support for connected line and redirecting.
-
- * Most SS7 CLI commands are reworked as well as new SS7 commands added.
- See online CLI help.
-
- * Added several SS7 config option parameters described in
- chan_dahdi.conf.sample.
-
-chan_gtalk
-------------------
- * This module was deprecated and has been removed. Users of chan_gtalk
- should use chan_motif.
-
-chan_h323
-------------------
- * This module was deprecated and has been removed. Users of chan_h323
- should use chan_ooh323.
-
-chan_jingle
-------------------
- * This module was deprecated and has been removed. Users of chan_jingle
- should use chan_motif.
-
-chan_pjsip
-------------------
- * Added the CLI command 'pjsip list ciphers' so a user can know what
- OpenSSL names are available on their system for the pjsip.conf cipher
- option.
-
-chan_sip
-------------------
- * The SIPPEER dialplan function no longer supports using a colon as a
- delimiter for parameters. The parameters for the function should be
- delimited using a comma.
-
- * The SIPCHANINFO dialplan function was deprecated and has been removed. Users
- of the function should use the CHANNEL function instead.
-
-
-Core
-------------------
-
-Account Codes
-------------------
- * Added functional peeraccount support. Except for Queue, the
- accountcode propagation is now consistently propagated to outgoing
- channels before dialing. The channel accountcode can change from its
- original non-empty value on channel creation for the following specific
- reasons. One, dialplan sets it using CHANNEL(accountcode). Two, an
- originate method that can specify an accountcode value. Three, the
- calling channel propagates its peeraccount or accountcode to the
- outgoing channel's accountcode before dialing. The change has two
- visible effects. One, local channels now cross accountcode and
- peeraccount across the special bridge between the ;1 and ;2 channels
- just like channels between normal bridges. Two, the
- CHANNEL(peeraccount) value can now be set before Dial and FollowMe to
- set the accountcode on the outgoing channel(s).
-
- For Queue, an outgoing channel's non-empty accountcode will not change
- unless explicitly set by CHANNEL(accountcode). The change has three
- visible effects. One, local channels now cross accountcode and
- peeraccount across the special bridge between the ;1 and ;2 channels
- just like channels between normal bridges. Two, the queue member will
- get an accountcode if it doesn't have one and one is available from the
- calling channel's peeraccount. Three, accountcode propagation includes
- local channel members where the accountcodes are propagated early
- enough to be available on the ;2 channel.
-
-AMI
-------------------
- * New DeviceStateChanged and PresenceStateChanged AMI events have been added.
- These events are emitted whenever a device state or presence state change
- occurs. The events are controlled by res_manager_device_state.so and
- res_manager_presence_state.so. If the high frequency of these events is
- problematic for you, do not load these modules.
-
- * Added DialplanExtensionAdd and DialplanExtensionRemove AMI commands. They
- work in basically the same way as the 'dialplan add extension' and
- 'dialplan remove extension' CLI commands respectively.
-
- * New AMI action LoggerRotate reloads and rotates logger in the same manner
- as CLI command 'logger rotate'
-
- * New AMI Actions FAXSessions, FAXSession, and FAXStats replicate the
- functionality of CLI commands 'fax show sessions', 'fax show session',
- and fax show stats' respectively.
-
- * New AMI actions PRIDebugSet, PRIDebugFileSet, and PRIDebugFileUnset
- enable manager control over PRI debugging levels and file output.
-
- * AMI action PJSIPNotify may now send to a URI instead of only to a PJSIP
- endpoint as long as a default outbound endpoint is set. This also applies
- to the equivalent CLI command (pjsip send notify)
-
- * The AMI action PJSIPShowEndpoint now includes ContactStatusDetail sections
- that give information on Asterisk's attempts to qualify the endpoint.
-
- * The DialEnd event will now contain a Forward header if the dial is ending
- due to the call being forwarded. The contents of the Forward header is the
- extension in the number to which the call is being forwarded.
-
-CEL
-------------------
- * The "bridge_technology" extra field key has been added to BRIDGE_ENTER
- and BRIDGE_EXIT events.
-
-Features
-------------------
- * Channel variables are now substituted in arguments passed to applications
- run by using dynamic features.
-
-TLS
-------------------
- * The TLS core in Asterisk now supports Perfect Forward Secrecy (PFS).
- Enabling PFS is attempted by default, and is dependent on the configuration
- of the module using TLS.
- - Ephemeral ECDH (ECDHE) is enabled by default. To disable it, do not
- specify a ECDHE cipher suite in sip.conf, for example:
- tlscipher=AES128-SHA:DES-CBC3-SHA
- - Ephemeral DH (DHE) is disabled by default. To enable it, add DH parameters
- into the private key file, e.g., sip.conf tlsprivatekey. For example, the
- default dh2048.pem - see
- http://www.opensource.apple.com/source/OpenSSL098/OpenSSL098-35.1/src/apps/dh2048.pem?txt
- - Because clients expect the server to prefer PFS, and because OpenSSL sorts
- its cipher suites by bit strength, see "openssl ciphers -v DEFAULT".
- Consider re-ordering your cipher suites in the respective configuration
- file. For example:
- tlscipher=AES128+kEECDH:AES128+kEDH:3DES+kEDH:AES128-SHA:DES-CBC3-SHA:-ADH:-AECDH
- will use PFS when offered by the client. Clients which do not offer PFS
- fall-back to AES-128 (or even 3DES, as recommended by RFC 3261).
-
-
-Functions
-------------------
-
-JACK_HOOK
-------------------
- * The JACK_HOOK function now supports audio with a sample rate higher than
- 8kHz.
-
-
-Resources
-------------------
-
-res_config_pgsql
-------------------
- * Added the ability to support PostgreSQL application_name on connections.
- This allows PostgreSQL to display the configured name in the
- pg_stat_activity view and CSV log entries. This setting is configurable
- for res_config_pgsql via the dbappname configuration setting in
- res_pgsql.conf.
-
-res_pjsip_outbound_publish
-------------------
- * A new module, res_pjsip_outbound_publish provides the mechanisms for sending
- PUBLISH requests for specific event packages to another SIP User Agent.
-
-res_pjsip_pubsub
-------------------
- * The publish/subscribe core module has been updated to support RFC 4662
- Resource Lists, allowing Asterisk to act as a Resource List Server (RLS).
- Resource lists are configured in pjsip.conf under a new object type,
- resource_list. Resource lists can contain either message-summary or presence
- events, and can be composed of specific resources that provide the event or
- other resource lists.
-
- * Inbound publication support is provided by a new object, inbound-publication.
- This configures res_pjsip_pubsub to accept PUBLISH requests from a particular
- resource. Which events are accepted is constructed dynamically; see
- res_pjsip_publish_asterisk for more information.
-
-res_pjsip_publish_asterisk
-------------------
- * A new module, res_pjsip_publish_asterisk adds support for PUBLISH requests of
- Asterisk information to other Asterisk servers. This module is intended only
- for Asterisk to Asterisk exchanges of information. Currently, this includes
- both mailbox state and device state information.
-
-------------------------------------------------------------------------------
---- Functionality changes from Asterisk 12.4.0 to Asterisk 12.5.0 ------------
-------------------------------------------------------------------------------
-
-ARI
-------------------
- * Stored recordings now support a new operation, copy. This will take an
- existing stored recording and copy it to a new location in the recordings
- directory.
-
- * LiveRecording objects now have three additional fields that can be reported
- in a RecordingFinished ARI event:
- - total_duration: the duration of the recording
- - talking_duration: optional. The duration of talking detected in the
- recording. This is only available if max_silence_seconds was specified
- when the recording was started.
- - silence_duration: optional. The duration of silence detected in the
- recording. This is only available if max_silence_seconds was specified
- when the recording was started.
- Note that all duration values are reported in seconds.
-
- * Users of ARI can now send and receive out of call text messages. Messages
- can be sent directly to a particular endpoint, or can be sent to the
- endpoints resource directly and inferred from the URI scheme. Text
- messages are passed to ARI clients as TextMessageReceived events. ARI
- clients can choose to receive text messages by subscribing to the particular
- endpoint technology or endpoints that they are interested in.
-
- * The applications resource now supports subscriptions to all endpoints of
- a particular channel technology. For example, subscribing to an eventSource
- of 'endpoint:PJSIP' will subscribe to all PJSIP endpoints.
-
-res_pjsip
-------------------
- * The endpoint configuration object now supports 'accountcode'. Any channel
- created for an endpoint with this setting will have its accountcode set
- to the specified value.
-
-res_hep_rtcp
-------------------
- * A new module, res_hep_rtcp, has been added that will forward RTCP call
- statistics to a HEP capture server. See res_hep for more information.
-
-Functions
-------------------
- * Function AUDIOHOOK_INHERIT has been deprecated. Audiohooks are now
- unconditionally inherited through masquerades. As a side benefit, more
- than one audiohook of a given type may persist through a masquerade now.
-
-------------------------------------------------------------------------------
---- Functionality changes from Asterisk 12.3.0 to Asterisk 12.4.0 ------------
-------------------------------------------------------------------------------
-
-AgentRequest
-------------------
- * Returns new AGENT_STATUS value "NOT_CONNECTED" if the agent fails to
- connect with an incoming caller after being alerted to the presence
- of the incoming caller. The most likely reason this would happen is
- the agent did not acknowledge the call in time.
-
-AMI
-------------------
- * New events have been added for the TALK_DETECT function. When the function
- is used on a channel, ChannelTalkingStart/ChannelTalkingStop events will be
- emitted to connected AMI clients indicating the start/stop of talking on
- the channel.
-
-ARI
-------------------
- * New event models have been aded for the TALK_DETECT function. When the
- function is used on a channel, ChannelTalkingStarted/ChannelTalkingFinished
- events will be emitted to connected WebSockets subscribed to the channel,
- indicating the start/stop of talking on the channel.
-
-Functions
-------------------
- * A new function, TALK_DETECT, has been added. When set on a channel, this
- fucntion causes events indicating the starting/stoping of talking on said
- channel to be emitted to both AMI and ARI clients.
-
-------------------------------------------------------------------------------
---- Functionality changes from Asterisk 12.2.0 to Asterisk 12.3.0 ------------
-------------------------------------------------------------------------------
-
-ARI
-------------------
- * A new Playback URI 'tone' has been added. Tones are specified either as
- an indication name (e.g. 'tone:busy') from indications.conf or as a tone
- pattern (e.g. 'tone:240/250,0/250'). Tones differ from normal playback
- URIs in that they must be stopped manually and will continue to occupy
- a channel's ARI control queue until they are stopped. They also can not
- be rewound or fastforwarded.
-
- * User events can now be generated from ARI. Events can be signalled with
- arbitrary json variables, and include one or more of channel, bridge, or
- endpoint snapshots. An application must be specified which will receive
- the event message (other applications can subscribe to it). The message
- will also be delivered via AMI provided a channel is attached. Dialplan
- generated user event messages are still transmitted via the channel, and
- will only be received by a stasis application they are attached to or if
- the channel is subscribed to.
-
-chan_sip
------------
- * SIP peers can now specify 'trust_id_outbound' which affects RPID/PAI
- fields for prohibited callingpres information. Values are legacy, no, and
- yes. By default, legacy is used.
- trust_id_outbound=legacy - behavior remains the same as 1.8.26.1. When
- dealing with prohibited callingpres and sendrpid=pai/rpid, RPID/PAI
- headers are appended to outbound SIP messages just as they are with
- allowed callingpres values, but data about the remote party's identity is
- anonymized.
- When sendrpid=rpid, only the remote party's domain is anonymized.
- trust_id_outbound=no - when dealing with prohibited callingpres, RPID/PAI
- headers are not sent.
- trust_id_outbound=yes - RPID/PAI headers are applied with the full remote
- party information in tact even for prohibited callingpres information.
- In the case of PAI, a Privacy: id header will be appended for prohibited
- calling information to communicate that the private information should
- not be relayed to untrusted parties.
-
-res_parking
-------------------
- * Manager action 'Park' now takes an additional argument 'AnnounceChannel'
- which can be used to announce the parked call's location to an arbitrary
- channel in a bridge. If 'Channel' and 'TimeoutChannel' are now the two
- parties in a one to one bridge, 'TimeoutChannel' is treated as having
- parked 'Channel' like with the Park Call DTMF feature and will receive
- announcements prior to being hung up.
-
-------------------------------------------------------------------------------
---- Functionality changes from Asterisk 12.1.0 to Asterisk 12.2.0 ------------
-------------------------------------------------------------------------------
-
-Record
-------------------
- * Record application now has an option 'o' which allows 0 to act as an exit
- key setting the RECORD_STATUS variable to 'OPERATOR' instead of 'DTMF'
-
-ChanSpy
---------------------------
- * ChanSpy now accepts a channel uniqueid or a fully specified channel name
- as the chanprefix parameter if the 'u' option is specified.
-
-ConfBridge
---------------------------
- * CONFBRIDGE dialplan function is now capable of creating/modifying dynamic
- conference user menus.
-
- * CONFBRIDGE dialplan function is now capable of removing dynamic conference
- menus, bridge settings, and user settings that have been applied by the
- CONFBRIDGE dialplan function.
-
- * The ConfBridge dialplan application now sets a channel variable,
- CONFBRIDGE_RESULT, upon exiting. This variable can be used to determine
- how a channel exited the conference.
-
- * Added conference user option 'announce_join_leave_review'. This option
- implies 'announce_join_leave' with the added effect that the user will
- be asked if they want to confirm or re-record the recording of their
- name when entering the conference
-
-Directory
---------------------------
- * At exit, the Directory application now sets a channel variable
- DIRECTORY_RESULT to one of the following based on the reason for exiting:
- OPERATOR user requested operator by pressing '0' for operator
- ASSISTANT user requested assistant by pressing '*' for assistant
- TIMEOUT user pressed nothing and Directory stopped waiting
- HANGUP user's channel hung up
- SELECTED user selected a user from the directory and is routed
- USEREXIT user pressed '#' from the selection prompt to exit
- FAILED directory failed in a way that wasn't accounted for. Dang.
-
-Monitor
-------------------
- * Monitor() - A new option, B(), has been added that will turn on a periodic
- beep while the call is being recorded.
-
-MusicOnHold
---------------------------
- * MusicOnHold streams (all modes other than "files") now support wide band
- audio too.
-
-Page
---------------------------
- * Added options 'b' and 'B' to apply predial handlers for outgoing calls
- and for the channel executing Page respectively.
-
-PickupChan
---------------------------
- * PickupChan now accepts channel uniqueids of channels to pickup.
-
-Say
---------------------------
- * If a channel variable SAY_DTMF_INTERRUPT is present on a channel and set
- to 'true' (case insensitive), then any Say application (SayNumber,
- SayDigits, SayAlpha, SayAlphaCase, SayUnixTime, and SayCounted) will
- anticipate DTMF. If DTMF is received, these applications will behave like
- the background application and jump to the received extension once a match
- is established or after a short period of inactivity.
-
-MixMonitor
--------------------------
- * A new function, MIXMONITOR, has been added to allow access to individual
- instances of MixMonitor on a channel.
-
- * A new option, B(), has been added that will turn on a periodic beep while the
- call is being recorded.
-
-
-Channel Drivers
--------------------------
-
-chan_sip
--------------------------
- * TEL URI support for inbound INVITE requests has been added. chan_sip will
- now handle TEL schemes in the Request and From URIs. The phone-context in
- the Request URI will be stored in the SIPURIPHONECONTEXT channel variable on
- the inbound channel.
-
-Core
-------------------
- * Exposed sorcery-based configuration files like pjsip.conf to dialplans via
- the new AST_SORCERY diaplan function.
-
- * Core Show Locks output now includes Thread/LWP ID if the platform
- supports this feature.
-
- * New "logger add channel" and "logger remove channel" CLI commands have
- been added to allow creation and deletion of dynamic logger channels
- without configuration changes. These dynamic logger channels will only
- exist until the next restart of asterisk.
-
-ARI
-------------------
- * The live recording object on recording events now contains a target_uri
- field which contains the URI of what is being recorded.
-
- * The bridge type used when creating a bridge is now a comma separated list of
- bridge properties. Valid options are: mixing, holding, dtmf_events, and
- proxy_media.
-
- * A channelId can now be provided when creating a channel, either in the
- uri (POST channels/my-channel-id) or as query parameter. A local channel
- will suffix the second channel id with ';2' unless provided as query
- parameter otherChannelId.
-
- * A bridgeId can now be provided when creating a bridge, either in the uri
- (POST bridges/my-bridge-id) or as a query parameter.
-
- * A playbackId can be provided when starting a playback, either in the uri
- (POST channels/my-channel-id/play/my-playback-id /
- POST bridges/my-bridge-id/play/my-playback-id) or as a query parameter.
-
- * A snoop channel can be started with a snoopId, in the uri or query.
-
-AMI
-------------------
- * Originate now takes optional parameters ChannelId and OtherChannelId,
- used to set the UniqueId on creation. The other id is assigned to the
- second channel when dialing LOCAL, or defaults to appending ;2 if only
- the single Id is given.
-
- * The Mixmonitor action now has a "Command" header that can be used to
- indicate a post-process command to run once recording finishes.
-
-RealTime
-------------------
- * A new set of Alembic scripts has been added for CDR tables. This will create
- a 'cdr' table with the default schema that Asterisk expects.
-
-
-Functions
-------------------
- * A new function was added: PERIODIC_HOOK. This allows running a periodic
- dialplan hook on a channel. Any audio generated by this hook will be
- injected into the call.
-
-
-Resources
-------------------
-
-res_hep
-------------------
- * A new module, res_hep, has been added, that acts as a generic packet
- capture agent for the Homer Encapsulation Protocol (HEP) version 3.
- It can be configured via hep.conf. Other modules can use res_hep to send
- message traffic to a HEP capture server.
-
-res_hep_pjsip
-------------------
- * A new module, res_hep_pjsip, has been added that will forward PJSIP
- message traffic to a HEP capture server. See res_hep for more
- information.
-
-res_pjsip
-------------------
- * transport and endpoint ToS options (tos, tos_audio, and tos_video) may now
- be set as the named set of ToS values (cs0-cs7, af11-af43, ef).
-
- * Added the following new CLI commands:
- - "pjsip show contacts" - list all current PJSIP contacts.
- - "pjsip show contact" - show specific information about a current PJSIP
- contact.
- - "pjsip show channel" - show detailed information about a PJSIP channel.
-
-res_pjsip_multihomed
-------------------
- * A new module, res_pjsip_multihomed handles situations where the system
- Asterisk is running out has multiple interfaces. res_pjsip_multihomed
- determines which interface should be used during message sending.
-
-res_pjsip_pidf_digium_body_supplement
-------------------
- * A new module, res_pjsip_pidf_digium_body_supplement provides NOTIFY
- request body formatting for presence support in Digium phones.
-
-res_pjsip_send_to_voicemail
-------------------
- * A new module, res_pjsip_send_to_voicemail allows for REFER requests with
- particular headers to transfer a PJSIP channel directly to a particular
- extension that has VoiceMail. This is intended to be used with Digium
- phones that support this feature.
-
-res_pjsip_outbound_registration
-------------------
- * A new CLI command has been added: "pjsip show registrations", which lists
- all configured PJSIP registrations
-
-
-------------------------------------------------------------------------------
---- Functionality changes from Asterisk 12.0.0 to Asterisk 12.1.0 ------------
-------------------------------------------------------------------------------
-
-AMI
-------------------
- * Added a new module that provides AMI control over MWI within Asterisk,
- res_mwi_external_ami. Note that this module depends on res_mwi_external;
- for more information on enabling this module, see res_mwi_external.
- This module provides the MWIGet/MWIUpdate/MWIDelete actions, as well as
- the MWIGet/MWIGetComplete events.
-
- * The DialStatus field in the DialEnd event can now contain additional
- statuses that convey how the dial operation terminated. This includes
- ABORT, CONTINUE, and GOTO.
-
- * AMI will now emit security events. A new class authorization has been
- added in manager.conf for the security events, 'security'. The new events
- are:
- - FailedACL - raised when a request violates an ACL check
- - InvalidAccountID - raised when a request fails an authentication
- check due to an invalid account ID
- - SessionLimit - raised when a request fails due to exceeding the
- number of allowed concurrent sessions for a service
- - MemoryLimit - raised when a request fails due to an internal memory
- allocation failure
- - LoadAverageLimit - raised when a request fails because a configured
- load average limit has been reached
- - RequestNotAllowed - raised when a request is not allowed by
- the service
- - AuthMethodNotAllowed - raised when a request used an authentication
- method not allowed by the service
- - RequestBadFormat - raised when a request is received with bad formatting
- - SuccessfulAuth - raised when a request successfully authenticates
- - UnexpectedAddress - raised when a request has a different source address
- then what is expected for a session already in progress with a service
- - ChallengeResponseFailed - raised when a request's attempt to authenticate
- has been challenged, and the request failed the authentication challenge
- - InvalidPassword - raised when a request provides an invalid password
- during an authentication attempt
- - ChallengeSent - raised when an Asterisk service send an authentication
- challenge to a request
- - InvalidTransport - raised when a request attempts to use a transport not
- allowed by the Asterisk service
-
- * Bridge related events now have two additional fields: BridgeName and
- BridgeCreator. BridgeName is a descriptive name for the bridge;
- BridgeCreator is the name of the entity that created the bridge. This
- affects the following events: ConfbridgeStart, ConfbridgeEnd,
- ConfbridgeJoin, ConfbridgeLeave, ConfbridgeRecord, ConfbridgeStopRecord,
- ConfbridgeMute, ConfbridgeUnmute, ConfbridgeTalking, BlindTransfer,
- AttendedTransfer, BridgeCreate, BridgeDestroy, BridgeEnter, BridgeLeave
-
-ARI
-------------------
- * The Bridge data model now contains the additional fields 'name' and
- 'creator'. The 'name' field conveys a descriptive name for the bridge;
- the 'creator' field conveys the name of the entity that created the bridge.
- This affects all responses to HTTP requests that return a Bridge data model
- as well as all event derived data models that contain a Bridge data model.
- The POST /bridges operation may now optionally specify a name to give to
- the bridge being created.
-
- * Added a new ARI resource 'mailboxes' which allows the creation and
- modification of mailboxes managed by external MWI. Modules res_mwi_external
- and res_stasis_mailbox must be enabled to use this resource. For more
- information on external MWI control, see res_mwi_external.
-
- * Added new events for externally initiated transfers. The event
- BridgeBlindTransfer is now raised when a channel initiates a blind transfer
- of a bridge in the ARI controlled application to the dialplan; the
- BridgeAttendedTransfer event is raised when a channel initiates an
- attended transfer of a bridge in the ARI controlled application to the
- dialplan.
-
- * Channel variables may now be specified as a body parameter to the
- POST /channels operation. The 'variables' key in the JSON is interpreted
- as a sequence of key/value pairs that will be added to the created channel
- as channel variables. Other parameters in the JSON body are treated as
- query parameters of the same name.
-
-HTTP
-------------------
- * Asterisk's HTTP server now supports chunked Transfer-Encoding. This will be
- automatically handled by the HTTP server if a request is received with a
- Transfer-Encoding type of "chunked".
-
-res_pjsip
-------------------
- * Path support has been added with the 'support_path' option in registration
- and aor sections.
-
- * A 'debug' option has been added to the globals section that will allow
- sip messages to be logged.
-
- * A 'set_var' option has been added to endpoints that will automatically
- set the desired variable(s) on a channel created for that endpoint.
-
- * Several new tables and columns have been added to the realtime schema for
- the res_pjsip related modules. See the UPGRADE.txt notes for updating
- the database schema.
-
-res_mwi_external
-------------------
- * A new module, res_mwi_external, has been added to Asterisk. This module
- acts as a base framework that other modules can build on top of to allow
- an external system to control MWI within Asterisk. For implementations
- that make use of res_mwi_external, see res_mwi_external_ami and
- res_ari_mailboxes. Note that res_mwi_external conflicts with other modules
- that may produce MWI themselves, such as app_voicemail. res_mwi_external
- and other modules that depend on it cannot be built or loaded with
- app_voicemail present.
-
-res_pjsip
-------------------
- * DNS functionality will now automatically be enabled if the system configured
- nameservers can be retrieved. If the system configured nameservers can not be
- retrieved the functionality will resort to using system resolution. Functionality
- such as SRV records and failover will not be available if system resolution
- is in use.
-
-------------------------------------------------------------------------------
---- Functionality changes from Asterisk 11 to Asterisk 12 --------------------
-------------------------------------------------------------------------------
-
-Overview
-------------------
-
-Asterisk 12 is a standard release of the Asterisk project. As such, the
-focus of development for this release was on core architectural changes and
-major new features. This includes:
- * A more flexible bridging core based on the Bridging API
- * A new internal message bus, Stasis
- * Major standardization and consistency improvements to AMI
- * Addition of the Asterisk RESTful Interface (ARI)
- * A new SIP channel driver, chan_pjsip
-In addition, as the vast majority of bridging in Asterisk was migrated to the
-Bridging API used by ConfBridge, major changes were made to most of the
-interfaces in Asterisk. This includes not only AMI, but also CDRs and CEL.
-
-Specifications have been written for the affected interfaces. These
-specifications are available on the Asterisk wiki:
- * AMI - https://wiki.asterisk.org/wiki/x/dAFRAQ
- * CEL - https://wiki.asterisk.org/wiki/x/4ICLAQ
- * CDRs - https://wiki.asterisk.org/wiki/x/pwpRAQ
-
-It is *highly* recommended that anyone migrating to Asterisk 12 read the
-information regarding its release both in this file and in the accompanying
-UPGRADE.txt file. More detailed information on the major changes can be found
-on the Asterisk wiki at https://wiki.asterisk.org/wiki/x/0YCLAQ.
-
-
-Build System
-------------------
- * Added build option DISABLE_INLINE. This option can be used to work around a
- bug in gcc. For more information, see
- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47816
-
- * Removed the CHANNEL_TRACE development mode build option. Certain aspects of
- the CHANNEL_TRACE build option were incompatible with the new bridging
- architecture.
-
- * Asterisk now optionally uses libxslt to improve XML documentation generation
- and maintainability. If libxslt is not available on the system, some XML
- documentation will be incomplete.
-
- * Asterisk now depends on libjansson. If a package of libjansson is not
- available on your distro, please see http://www.digip.org/jansson/.
-
- * Asterisk now depends on libuuid and, optionally, uriparser. It is
- recommended that you install uriparser, even if it is optional.
-
- * The new SIP stack and channel driver uses a particular version of PJSIP.
- Please see https://wiki.asterisk.org/wiki/x/J4GLAQ for more information on
- configuring and installing PJSIP for usage with Asterisk.
-
- * Optional API was re-implemented to be more portable, and no longer requires
- weak reference support from the compiler. The build option OPTIONAL_API may
- be disabled to disable Optional API support.
-
-Applications
-------------------
-
-AgentLogin
-------------------
- * Along with AgentRequest, this application has been modified to be a
- replacement for chan_agent. The act of a channel calling the AgentLogin
- application places the channel into a pool of agents that can be
- requested by the AgentRequest application. Note that this application, as
- well as all other agent related functionality, is now provided by the
- app_agent_pool module. See chan_agent and AgentRequest for more information.
-
- * This application no longer performs agent authentication. If authentication
- is desired, the dialplan needs to perform this function using the
- Authenticate or VMAuthenticate application or through an AGI script before
- running AgentLogin.
-
- * If this application is called and the agent is already logged in, the
- dialplan will continue execution with the AGENT_STATUS channel variable set
- to ALREADY_LOGGED_IN.
-
- * The agents.conf schema has changed. Rather than specifying agents on a
- single line in comma delineated fashion, each agent is defined in a separate
- context. This allows agents to use the power of context templates in their
- definition.
-
- * A number of parameters from agents.conf have been removed. This includes
- maxloginretries, autologoffunavail, updatecdr, goodbye, group, recordformat,
- urlprefix, and savecallsin. These options were obsoleted by the move from
- a channel driver model to the bridging/application model provided by
- app_agent_pool.
-
-AgentRequest
-------------------
- * A new application, this will request a logged in agent from the pool and
- bridge the requested channel with the channel calling this application.
- Logged in agents are those channels that called the AgentLogin application.
- If an agent cannot be requested from the pool, the AGENT_STATUS dialplan
- application will be set with an appropriate error value.
-
-AgentMonitorOutgoing
-------------------
- * This application has been removed. It was a holdover from when
- AgentCallbackLogin was removed.
-
-AlarmReceiver
-------------------
- * Added support for additional Ademco DTMF signalling formats, including
- Express 4+1, Express 4+2, High Speed and Super Fast.
-
- * Added channel variable ALARMRECEIVER_CALL_LIMIT. This sets the maximum
- call time, in milliseconds, to run the application.
-
- * Added channel variable ALARMRECEIVER_RETRIES_LIMIT. This sets the
- maximum number of times to retry the call.
-
- * Added a new configuration option answait. If set, the AlarmReceiver
- application will wait the number of milliseconds specified by answait
- after the channel has answered. Valid values range between 500
- milliseconds and 10000 milliseconds.
-
- * Added configuration option no_group_meta. If enabled, grouping of metadata
- information in the AlarmReceiver log file will be skipped.
-
-Answer
-------------------
- * It is now no longer possible to bypass updating the CDR on the channel
- when answering. CDRs reflect the state of the channel and will always
- reflect the time they were Answered.
-
-BridgeWait
-------------------
- * A new application in Asterisk, this will place the calling channel
- into a holding bridge, optionally entertaining them with some form of
- media. Channels participating in a holding bridge do not interact with
- other channels in the same holding bridge. Optionally, however, a channel
- may join as an announcer. Any media passed from an announcer channel is
- played to all channels in the holding bridge. Channels leave a holding
- bridge either when an optional timer expires, or via the ChannelRedirect
- application or AMI Redirect action.
-
-ConfBridge
-------------------
- * All participants in a bridge can now be kicked out of a conference room
- by specifying the channel parameter as 'all' in the ConfBridge kick CLI
- command, i.e., 'confbridge kick <conference> all'
-
- * CLI output for the 'confbridge list' command has been improved. When
- displaying information about a particular bridge, flags will now be shown
- for the participating users indicating properties of that user.
-
- * The ConfbridgeList event now contains the following fields: WaitMarked,
- EndMarked, and Waiting. This displays additional properties about the
- user's profile, as well as whether or not the user is waiting for a
- Marked user to enter the conference.
-
- * Added a new option for conference recording, record_file_append. If enabled,
- when the recording is stopped and then re-started, the existing recording
- will be used and appended to.
-
- * ConfBridge now has the ability to set the language of announcements to the
- conference. The language can be set on a bridge profile in confbridge.conf
- or by the dialplan function CONFBRIDGE(bridge,language)=en.
-
-ControlPlayback
-------------------
- * The channel variable CPLAYBACKSTATUS may now return the value
- 'REMOTESTOPPED'. This occurs when playback is stopped by a remote interface,
- such as AMI. See the AMI action ControlPlayback for more information.
-
-Directory
-------------------
- * Added the 'a' option, which allows the caller to enter in an additional
- alias for the user in the directory. This option must be used in conjunction
- with the 'f', 'l', or 'b' options. Note that the alias for a user can be
- specified in voicemail.conf.
-
-DumpChan
-------------------
- * The output of DumpChan no longer includes the DirectBridge or IndirectBridge
- fields. Instead, if a channel is in a bridge, it includes a BridgeID field
- containing the unique ID of the bridge that the channel happens to be in.
-
-ForkCDR
-------------------
- * ForkCDR no longer automatically resets the forked CDR. See the 'r' option
- for more information.
-
- * Variables are no longer purged from the original CDR. See the 'v' option for
- more information.
-
- * The 'A' option has been removed. The Answer time on a CDR is never updated
- once set.
-
- * The 'd' option has been removed. The disposition on a CDR is a function of
- the state of the channel and cannot be altered.
-
- * The 'D' option has been removed. Who the Party B is on a CDR is a function
- of the state of the respective channels involved in the CDR and cannot be
- altered.
-
- * The 'r' option has been changed. Previously, ForkCDR always reset the CDR
- such that the start time and, if applicable, the answer time was updated.
- Now, by default, ForkCDR simply forks the CDR, maintaining any times. The
- 'r' option now triggers the Reset, setting the start time (and answer time
- if applicable) to the current time. Note that the 'a' option still sets
- the answer time to the current time if the channel was already answered.
-
- * The 's' option has been removed. A variable can be set on the original CDR
- if desired using the CDR function, and removed from a forked CDR using the
- same function.
-
- * The 'T' option has been removed. The concept of DONT_TOUCH and LOCKED no
- longer applies in the CDR engine.
-
- * The 'v' option now prevents the copy of the variables from the original CDR
- to the forked CDR. Previously the variables were always copied but were
- removed from the original. This was changed as removing variables from a CDR
- can have unintended side effects - this option allows the user to prevent
- propagation of variables from the original to the forked without modifying
- the original.
-
-MeetMe
--------------------
- * Added the 'n' option to MeetMe to prevent application of the DENOISE
- function to a channel joining a conference. Some channel drivers that vary
- the number of audio samples in a voice frame will experience significant
- quality problems if a denoiser is attached to the channel; this option gives
- them the ability to remove the denoiser without having to unload func_speex.
-
-MixMonitor
-------------------
- * The 'b' option now includes conferences as well as sounds played to the
- participants.
-
- * The AUDIOHOOK_INHERIT function is no longer needed to keep a MixMonitor
- running during a transfer. If a MixMonitor is started on a channel,
- the MixMonitor will continue to record the audio passing through the
- channel even in the presence of transfers.
-
-NoCDR
-------------------
- * The NoCDR application is deprecated. Please use the CDR_PROP function to
- disable CDRs.
-
- * While the NoCDR application will prevent CDRs for a channel from being
- propagated to registered CDR backends, it will not prevent that data from
- being collected. Hence, a subsequent call to ResetCDR or the CDR_PROP
- function that enables CDRs on a channel will restore those records that have
- not yet been finalized.
-
-ParkAndAnnounce
--------------------
- * The app_parkandannounce module has been removed. The application
- ParkAndAnnounce is now provided by the res_parking module. See the
- res_parking changes for more information.
-
-Queue
--------------------
- * Added queue available hint. The hint can be added to the dialplan using the
- following syntax: exten,hint,Queue:{queue_name}_avail
- For example, if the name of the queue is 'markq':
- exten => 8501,hint,Queue:markq_avail
- This will report 'InUse' if there are no logged in agents or no free agents.
- It will report 'Idle' when an agent is free.
-
- * Queues now support a hint for member paused state. The hint uses the form
- 'Queue:{queue_name}_pause_{member_name}', where {queue_name} and {member_name}
- are the name of the queue and the name of the member to subscribe to,
- respectively. For example: exten => 8501,hint,Queue:sales_pause_mark.
- Members will show as In Use when paused.
-
- * The configuration options eventwhencalled and eventmemberstatus have been
- removed. As a result, the AMI events QueueMemberStatus, AgentCalled,
- AgentConnect, AgentComplete, AgentDump, and AgentRingNoAnswer will always be
- sent. The "Variable" fields will also no longer exist on the Agent* events.
- These events can be filtered out from a connected AMI client using the
- eventfilter setting in manager.conf.
-
- * The queue log now differentiates between blind and attended transfers. A
- blind transfer will result in a BLINDTRANSFER message with the destination
- context and extension. An attended transfer will result in an
- ATTENDEDTRANSFER message. This message will indicate the method by which
- the attended transfer was completed: "BRIDGE" for a bridge merge, "APP"
- for running an application on a bridge or channel, or "LINK" for linking
- two bridges together with local channels. The queue log will also now detect
- externally initiated blind and attended transfers and record the transfer
- status accordingly.
-
- * When performing queue pause/unpause on an interface without specifying an
- individual queue, the PAUSEALL/UNPAUSEALL event will only be logged if at
- least one member of any queue exists for that interface.
-
- * Added the 'queue_log_realtime_use_gmt' option to have timestamps in GMT
- for realtime queue log entries.
-
-ResetCDR
-------------------
- * The 'e' option has been deprecated. Use the CDR_PROP function to re-enable
- CDRs when they were previously disabled on a channel.
-
- * The 'w' and 'a' options have been removed. Dispatching CDRs to registered
- backends occurs on an as-needed basis in order to preserve linkedid
- propagation and other needed behavior.
-
-SayAlphaCase
-------------------
- * A new application, this is similar to SayAlpha except that it supports
- case sensitive playback of the specified characters. For example,
- SayAlphaCase(u,aBc) will result in 'a uppercase b c'.
-
-SetAMAFlags
-------------------
- * This application is deprecated in favor of CHANNEL(amaflags).
-
-SendDTMF
-------------------
- * The SendDTMF application will now accept 'W' as valid input. This will cause
- the application to delay one second while streaming DTMF.
-
-Stasis
-------------------
- * A new application in Asterisk 12, this hands control of the channel calling
- the application over to an external system. Currently, external systems
- manipulate channels in Stasis through the Asterisk RESTful Interface (ARI).
-
-UserEvent
-------------------
- * UserEvent will now handle duplicate keys by overwriting the previous value
- assigned to the key.
-
- * In addition to AMI, UserEvent invocations will now be distributed to any
- interested Stasis applications.
-
-VoiceMail
-------------------
- * Mailboxes defined by app_voicemail MUST be referenced by the rest of the
- system as mailbox@context. The rest of the system cannot add @default
- to mailbox identifiers for app_voicemail that do not specify a context
- any longer. It is a mailbox identifier format that should only be
- interpreted by app_voicemail.
-
- * The voicemail.conf configuration file now has an 'alias' configuration
- parameter for use with the Directory application. The voicemail realtime
- database table schema has also been updated with an 'alias' column.
-
-
-Codecs
-------------------
- * Pass through support has been added for both VP8 and Opus.
-
- * Added format attribute negotiation for the Opus codec. Format attribute
- negotiation is provided by the res_format_attr_opus module.
-
-
-Core
-------------------
- * Masquerades as an operation inside Asterisk have been effectively hidden
- by the migration to the Bridging API. As such, many 'quirks' of Asterisk
- no longer occur. This includes renaming of channels, "<ZOMBIE>" channels,
- dropping of frame/audio hooks, and other internal implementation details
- that users had to deal with. This fundamental change has large implications
- throughout the changes documented for this version. For more information
- about the new core architecture of Asterisk, please see the Asterisk wiki.
-
- * Multiple parties in a bridge may now be transferred. If a participant in a
- multi-party bridge initiates a blind transfer, a Local channel will be used
- to execute the dialplan location that the transferer sent the parties to. If
- a participant in a multi-party bridge initiates an attended transfer,
- several options are possible. If the attended transfer results in a transfer
- to an application, a Local channel is used. If the attended transfer results
- in a transfer to another channel, the resulting channels will be merged into
- a single bridge.
-
- * The channel variable ATTENDED_TRANSFER_COMPLETE_SOUND is no longer channel
- driver specific. If the channel variable is set on the transferrer channel,
- the sound will be played to the target of an attended transfer.
-
- * The channel variable BRIDGEPEER becomes a comma separated list of peers in
- a multi-party bridge. The BRIDGEPEER value can have a maximum of 10 peers
- listed. Any more peers in the bridge will not be included in the list.
- BRIDGEPEER is not valid in holding bridges like parking since those channels
- do not talk to each other even though they are in a bridge.
-
- * The channel variable BRIDGEPVTCALLID is only valid for two party bridges
- and will contain a value if the BRIDGEPEER's channel driver supports it.
-
- * A channel variable ATTENDEDTRANSFER is now set which indicates which channel
- was responsible for an attended transfer in a similar fashion to
- BLINDTRANSFER.
-
- * Modules using the Configuration Framework or Sorcery must have XML
- configuration documentation. This configuration documentation is included
- with the rest of Asterisk's XML documentation, and is accessible via CLI
- commands. See the CLI changes for more information.
-
-AMI (Asterisk Manager Interface)
-------------------
- * Major changes were made to both the syntax as well as the semantics of the
- AMI protocol. In particular, AMI events have been substantially improved
- in this version of Asterisk. For more information, please see the AMI
- specification at https://wiki.asterisk.org/wiki/x/dAFRAQ
-
- * AMI events that reference a particular channel or bridge will now always
- contain a standard set of fields. When multiple channels or bridges are
- referenced in an event, fields for at least some subset of the channels
- and bridges in the event will be prefixed with a descriptive name to avoid
- name collisions. See the AMI event documentation on the Asterisk wiki for
- more information.
-
- * The CLI command 'manager show commands' no longer truncates command names
- longer than 15 characters and no longer shows authorization requirement
- for commands. 'manager show command' now displays the privileges needed
- for using a given manager command instead.
-
- * The SIPshowpeer action will now include a 'SubscribeContext' field for a
- peer in its response if the peer has a subscribe context set.
-
- * The SIPqualifypeer action now acknowledges the request once it has
- established that the request is against a known peer. It also issues a new
- event, 'SIPQualifyPeerDone', once the qualify action has been completed.
-
- * The PlayDTMF action now supports an optional 'Duration' parameter. This
- specifies the duration of the digit to be played, in milliseconds.
-
- * Added VoicemailRefresh action to allow an external entity to trigger mailbox
- updates when changes occur instead of requiring the use of pollmailboxes.
-
- * Added a new action 'ControlPlayback'. The ControlPlayback action allows an
- AMI client to manipulate audio currently being played back on a channel. The
- supported operations depend on the application being used to send audio to
- the channel. When the audio playback was initiated using the ControlPlayback
- application or CONTROL STREAM FILE AGI command, the audio can be paused,
- stopped, restarted, reversed, or skipped forward. When initiated by other
- mechanisms (such as the Playback application), the audio can be stopped,
- reversed, or skipped forward.
-
- * Channel related events now contain a snapshot of channel state, adding new
- fields to many of these events.
-
- * The AMI event 'Newexten' field 'Extension' is deprecated, and may be removed
- in a future release. Please use the common 'Exten' field instead.
-
- * The AMI event 'UserEvent' from app_userevent now contains the channel state
- fields. The channel state fields will come before the body fields.
-
- * The AMI events 'ParkedCall', 'ParkedCallTimeOut', 'ParkedCallGiveUp', and
- 'UnParkedCall' have changed significantly in the new res_parking module.
-
- The 'Channel' and 'From' headers are gone. For the channel that was parked
- or is coming out of parking, a 'Parkee' channel snapshot is issued and it
- has a number of fields associated with it. The old 'Channel' header relayed
- the same data as the new 'ParkeeChannel' header.
-
- The 'From' field was ambiguous and changed meaning depending on the event.
- for most of these, it was the name of the channel that parked the call
- (the 'Parker'). There is no longer a header that provides this channel name,
- however the 'ParkerDialString' will contain a dialstring to redial the
- device that parked the call.
-
- On UnParkedCall events, the 'From' header would instead represent the
- channel responsible for retrieving the parkee. It receives a channel
- snapshot labeled 'Retriever'. The 'from' field is is replaced with
- 'RetrieverChannel'.
-
- Lastly, the 'Exten' field has been replaced with 'ParkingSpace'.
-
- * The AMI event 'Parkinglot' (response to 'Parkinglots' command) in a similar
- fashion has changed the field names 'StartExten' and 'StopExten' to
- 'StartSpace' and 'StopSpace' respectively.
-
- * The deprecated use of | (pipe) as a separator in the channelvars setting in
- manager.conf has been removed.
-
- * Channel Variables conveyed with a channel no longer contain the name of the
- channel as part of the key field, i.e., ChanVariable(SIP/foo): bar=baz is now
- ChanVariable: bar=baz. When multiple channels are present in a single AMI
- event, the various ChanVariable fields will contain a suffix that specifies
- which channel they correspond to.
-
- * The NewPeerAccount AMI event is no longer raised. The NewAccountCode AMI
- event always conveys the AMI event for a particular channel.
-
- * All 'Reload' events have been consolidated into a single event type. This
- event will always contain a Module field specifying the name of the module
- and a Status field denoting the result of the reload. All modules now issue
- this event when being reloaded.
-
- * The 'ModuleLoadReport' event has been removed. Most AMI connections would
- fail to receive this event due to being connected after modules have loaded.
- AMI connections that want to know when Asterisk is ready should listen for
- the 'FullyBooted' event.
-
- * app_fax now sends the same send fax/receive fax events as res_fax. The
- 'FaxSent' event is now the 'SendFAX' event, and the 'FaxReceived' event is
- now the 'ReceiveFAX' event.
-
- * The 'MusicOnHold' event is now two events: 'MusicOnHoldStart' and
- 'MusicOnHoldStop'. The sub type field has been removed.
-
- * The 'JabberEvent' event has been removed. It is not AMI's purpose to be a
- carrier for another protocol.
-
- * The Bridge Manager action's 'Playtone' header now accepts more fine-grained
- options. 'Channel1' and 'Channel2' may be specified in order to play a tone
- to the specific channel. 'Both' may be specified to play a tone to both
- channels. The old 'yes' option is still accepted as a way of playing the
- tone to Channel2 only.
-
- * The AMI 'Status' response event to the AMI Status action replaces the
- 'BridgedChannel' and 'BridgedUniqueid' headers with the 'BridgeID' header to
- indicate what bridge the channel is currently in.
-
- * The AMI 'Hold' event has been moved out of individual channel drivers, into
- core, and is now two events: 'Hold' and 'Unhold'. The status field has been
- removed.
-
- * The AMI events in app_queue have been made more consistent with each other.
- Events that reference channels (QueueCaller* and Agent*) will show
- information about each channel. The (infamous) 'Join' and 'Leave' AMI
- events have been changed to 'QueueCallerJoin' and 'QueueCallerLeave'.
-
- * The 'MCID' AMI event now publishes a channel snapshot when available and
- its non-channel-snapshot parameters now use either the "MCallerID" or
- 'MConnectedID' prefixes with Subaddr*, Name*, and Num* suffixes instead
- of 'CallerID' and 'ConnectedID' to avoid confusion with similarly named
- parameters in the channel snapshot.
-
- * The AMI events 'Agentlogin' and 'Agentlogoff' have been renamed
- 'AgentLogin' and 'AgentLogoff' respectively.
-
- * The 'Channel' key used in the 'AlarmClear', 'Alarm', and 'DNDState' has been
- renamed "DAHDIChannel" since it does not convey an Asterisk channel name.
-
- * 'ChannelUpdate' events have been removed.
-
- * All AMI events now contain a 'SystemName' field, if available.
-
- * Local channel optimization is now conveyed in two events:
- 'LocalOptimizationBegin' and 'LocalOptimizationEnd'. The Begin event is sent
- when the Local channel driver begins attempting to optimize itself out of
- the media path; the End event is sent after the channel halves have
- successfully optimized themselves out of the media path.
-
- * Local channel information in events is now prefixed with 'LocalOne' and
- 'LocalTwo'. This replaces the suffix of '1' and '2' for the two halves of
- the Local channel. This affects the 'LocalBridge', 'LocalOptimizationBegin',
- and 'LocalOptimizationEnd' events.
-
- * The option 'allowmultiplelogin' can now be set or overriden in a particular
- account. When set in the general context, it will act as the default
- setting for defined accounts.
-
- * The 'BridgeAction' event was removed. It technically added no value, as the
- Bridge Action already receives confirmation of the bridge through a
- successful completion Event.
-
- * The 'BridgeExec' events were removed. These events duplicated the events that
- occur in the Bridging API, and are conveyed now through BridgeCreate,
- BridgeEnter, and BridgeLeave events.
-
- * The 'RTCPSent'/'RTCPReceived' events have been significantly modified from
- previous versions. They now report all SR/RR packets sent/received, and
- have been restructured to better reflect the data sent in a SR/RR. In
- particular, the event structure now supports multiple report blocks.
-
- * Added 'BlindTransfer' and 'AttendedTransfer' events. These events are
- raised when a blind transfer/attended transfer completes successfully.
- They contain information about the transfer that just completed, including
- the location of the transfered channel.
-
- * Added a 'security' class to AMI which outputs the required fields for
- security messages similar to the log messages from res_security_log
-
- * The AMI event 'ExtensionStatus' now contains a 'StatusText' field
- that describes the status value in a human readable string.
-
-CDR (Call Detail Records)
-------------------
- * Significant changes have been made to the behavior of CDRs. The CDR engine
- was effectively rewritten and built on the Stasis message bus. For a full
- definition of CDR behavior in Asterisk 12, please read the specification
- on the Asterisk wiki (wiki.asterisk.org).
-
- * CDRs will now be created between all participants in a bridge. For each
- pair of channels in a bridge, a CDR is created to represent the path of
- communication between those two endpoints. This lets an end user choose who
- to bill for what during bridge operations with multiple parties.
-
- * The duration, billsec, start, answer, and end times now reflect the times
- associated with the current CDR for the channel, as opposed to a cumulative
- measurement of all CDRs for that channel.
-
- * When a CDR is dispatched, user defined CDR variables from both parties are
- included in the resulting CDR. If both parties have the same variable, only
- the Party A value is provided.
-
- * Added a new option to cdr.conf, 'debug'. When enabled, significantly more
- information regarding the CDR engine is logged as verbose messages. This
- option should only be used if the behavior of the CDR engine needs to be
- debugged.
-
- * Added CLI command 'cdr set debug {on|off}'. This toggles the 'debug' setting
- normally configured in cdr.conf.
-
- * Added CLI command 'cdr show active {channel}'. When {channel} is not
- specified, this command provides a summary of the channels with CDR
- information and their statistics. When {channel} is specified, it shows
- detailed information about all records associated with {channel}.
-
-CEL (Channel Event Logging)
-------------------
- * CEL has undergone significant rework in Asterisk 12, and is now built on the
- Stasis message bus. Please see the specification for CEL on the Asterisk
- wiki at https://wiki.asterisk.org/wiki/x/4ICLAQ for more detailed
- information.
-
- * The 'extra' field of all CEL events that use it now consists of a JSON blob
- with key/value pairs which are defined in the Asterisk 12 CEL documentation.
-
- * BLINDTRANSFER events now report the transferee bridge unique
- identifier, extension, and context in a JSON blob as the extra string
- instead of the transferee channel name as the peer.
-
- * ATTENDEDTRANSFER events now report the peer as NULL and additional
- information in the 'extra' string as a JSON blob. For transfers that occur
- between two bridged channels, the 'extra' JSON blob contains the primary
- bridge unique identifier, the secondary channel name, and the secondary
- bridge unique identifier. For transfers that occur between a bridged channel
- and a channel running an app, the 'extra' JSON blob contains the primary
- bridge unique identifier, the secondary channel name, and the app name.
-
- * LOCAL_OPTIMIZE events have been added to convey local channel
- optimizations with the record occurring for the semi-one channel and
- the semi-two channel name in the peer field.
-
- * BRIDGE_START, BRIDGE_END, BRIDGE_UPDATE, 3WAY_START, 3WAY_END, CONF_ENTER,
- CONF_EXIT, CONF_START, and CONF_END events have all been removed. These
- events have been replaced by BRIDGE_ENTER/BRIDGE_EXIT. The BRIDGE_ENTER
- and BRIDGE_EXIT events are raised when a channel enters/exits any bridge,
- regardless of whether or not that bridge happens to contain multiple
- parties.
-
-CLI
--------------------
- * When compiled with '--enable-dev-mode', the astobj2 library will now add
- several CLI commands that allow for inspection of ao2 containers that
- register themselves with astobj2. The CLI commands are 'astobj2 container
- dump', 'astobj2 container stats', and 'astobj2 container check'.
-
- * Added specific CLI commands for bridge inspection. This includes 'bridge
- show all', which lists all bridges in the system, and 'bridge show {id}',
- which provides specific information about a bridge.
-
- * Added CLI command 'bridge destroy'. This will destroy the specified bridge,
- ejecting the channels currently in the bridge. If the channels cannot
- continue in the dialplan or application that put them in the bridge, they
- will be hung up.
-
- * Added command 'bridge kick'. This will eject a single channel from a bridge.
-
- * Added commands to inspect and manipulate the registered bridge technologies.
- This include 'bridge technology show', which lists the registered bridge
- technologies, as well as 'bridge technology {suspend|unsuspend} {tech}',
- which controls whether or not a registered bridge technology can be used
- during smart bridge operations. If a technology is suspended, it will not
- be used when a bridge technology is picked for channels; when unsuspended,
- it can be used again.
-
- * The command 'config show help {module} {type} {option}' will show
- configuration documentation for modules with XML configuration
- documentation. When {module}, {type}, and {option} are omitted, a listing
- of all modules with registered documentation is displayed. When {module}
- is specified, a listing of all configuration types for that module is
- displayed, along with their synopsis. When {module} and {type} are
- specified, a listing of all configuration options for that type are
- displayed along with their synopsis. When {module}, {type}, and {option}
- are specified, detailed information for that configuration option is
- displayed.
-
- * Added 'core show sounds' and 'core show sound' CLI commands. These display
- a listing of all installed media sounds available on the system and
- detailed information about a sound, respectively.
-
- * 'xmldoc dump' has been added. This CLI command will dump the XML
- documentation DOM as a string to the specified file. The Asterisk core
- will populate certain XML elements pulled from the source files with
- additional run-time information; this command lets a user produce the
- XML documentation with all information.
-
-Features
--------------------
- * Parking has been pulled from core and placed into a separate module called
- res_parking. See Parking changes below for more details. Configuration for
- parking should now be performed in res_parking.conf. Configuration for
- parking in features.conf is now unsupported.
-
- * Core attended transfers now have several new options. While performing an
- attended transfer, the transferer now has the following options:
- - *1 - cancel the attended transfer (configurable via atxferabort)
- - *2 - complete the attended transfer, dropping out of the call
- (configurable via atxfercomplete)
- - *3 - complete the attended transfer, but stay in the call. This will turn
- the call into a multi-party bridge (configurable via atxferthreeway)
- - *4 - swap to the other party. Once an attended transfer has begun, this
- options may be used multiple times (configurable via atxferswap)
-
- * For DTMF blind and attended transfers, the channel variable TRANSFER_CONTEXT
- must be on the channel initiating the transfer to have any effect.
-
- * The BRIDGE_FEATURES channel variable would previously only set features for
- the calling party and would set this feature regardless of whether the
- feature was in caps or in lowercase. Use of a caps feature for a letter
- will now apply the feature to the calling party while use of a lowercase
- letter will apply that feature to the called party.
-
- * Add support for automixmon to the BRIDGE_FEATURES channel variable.
-
- * The channel variable DYNAMIC_PEERNAME is redundant with BRIDGEPEER and is
- removed. The more useful DYNAMIC_WHO_ACTIVATED gives the channel name that
- activated the dynamic feature.
-
- * The channel variables DYNAMIC_FEATURENAME and DYNAMIC_WHO_ACTIVATED are set
- only on the channel executing the dynamic feature. Executing a dynamic
- feature on the bridge peer in a multi-party bridge will execute it on all
- peers of the activating channel.
-
- * You can now have the settings for a channel updated using the FEATURE()
- and FEATUREMAP() functions inherited to child channels by setting
- FEATURE(inherit)=yes.
-
- * automixmon now supports additional channel variables from automon including:
- TOUCH_MIXMONITOR_PREFIX, TOUCH_MIXMONITOR_MESSAGE_START,
- and TOUCH_MIXMONITOR_MESSAGE_STOP
-
- * A new general features.conf option 'recordingfailsound' has been added which
- allowssetting a failure sound for a user tries to invoke a recording feature
- such as automon or automixmon and it fails.
-
- * It is no longer necessary (or possible) to define the ATXFER_NULL_TECH in
- features.c for atxferdropcall=no to work properly. This option now just
- works.
-
-Logging
--------------------
- * Added log rotation strategy 'none'. If set, no log rotation strategy will
- be used. Given that this can cause the Asterisk log files to grow quickly,
- this option should only be used if an external mechanism for log management
- is preferred.
-
-Realtime
-------------------
- * Dynamic realtime tables for SIP Users can now include a 'path' field. This
- will store the path information for that peer when it registers. Realtime
- tables can also use the 'supportpath' field to enable Path header support.
-
- * LDAP realtime configurations for SIP Users now have the AstAccountPathSupport
- objectIdentifier. This maps to the supportpath option in sip.conf.
-
-Sorcery
-------------------
- * Sorcery is a new data abstraction and object persistence API in Asterisk. It
- provides modules a useful abstraction on top of the many storage mechanisms
- in Asterisk, including the Asterisk Database, static configuration files,
- static Realtime, and dynamic Realtime. It also provides a caching service.
- Users can configure a hierarchy of data storage layers for specific modules
- in sorcery.conf.
-
- * All future modules which utilize Sorcery for object persistence must have a
- column named "id" within their schema when using the Sorcery realtime module.
- This column must be able to contain a string of up to 128 characters in length.
-
-Security Events Framework
-------------------
- * Security Event timestamps now use ISO 8601 formatted date/time instead of
- the "seconds-microseconds" format that it was using previously.
-
-Stasis Message Bus
-------------------
- * The Stasis message bus is a publish/subscribe message bus internal to
- Asterisk. Many services in Asterisk are built on the Stasis message bus,
- including AMI, ARI, CDRs, and CEL. Parameters controlling the operation of
- Stasis can be configured in stasis.conf. Note that these parameters operate
- at a very low level in Asterisk, and generally will not require changes.
-
-Channel Drivers
-------------------
- * When a channel driver is configured to enable jiterbuffers, they are now
- applied unconditionally when a channel joins a bridge. If a jitterbuffer
- is already set for that channel when it enters, such as by the JITTERBUFFER
- function, then the existing jitterbuffer will be used and the one set by
- the channel driver will not be applied.
-
-chan_agent
-------------------
- * chan_agent has been removed and replaced with AgentLogin and AgentRequest
- dialplan applications provided by the app_agent_pool module. Agents are
- connected with callers using the new AgentRequest dialplan application.
- The Agents:<agent-id> device state is available to monitor the status of an
- agent. See agents.conf.sample for valid configuration options.
-
- * The updatecdr option has been removed. Altering the names of channels on a
- CDR is not supported - the name of the channel is the name of the channel,
- and pretending otherwise helps no one. The AGENTUPDATECDR channel variable
- has also been removed, for the same reason.
-
- * The endcall and enddtmf configuration options are removed. Use the
- dialplan function CHANNEL(dtmf_features) to set DTMF features on the agent
- channel before calling AgentLogin.
-
-chan_bridge
-------------------
- * chan_bridge has been removed. Its functionality has been incorporated
- directly into the ConfBridge application itself.
-
-chan_dahdi
-------------------
- * Added the CLI command 'pri destroy span'. This will destroy the D-channel
- of the specified span and its B-channels. Note that this command should
- only be used if you understand the risks it entails.
-
- * The CLI command 'dahdi destroy channel' is now 'dahdi destroy channels'.
- A range of channels can be specified to be destroyed. Note that this command
- should only be used if you understand the risks it entails.
-
- * Added the CLI command 'dahdi create channels'. A range of channels can be
- specified to be created, or the keyword 'new' can be used to add channels
- not yet created.
-
- * The script specified by the chan_dahdi.conf mwimonitornotify option now gets
- the exact configured mailbox name. For app_voicemail mailboxes this is
- mailbox@context.
-
- * Added mwi_vm_boxes that also must be configured for ISDN MWI to be enabled.
-
-chan_iax2
-------------------
- * IPv6 support has been added. We are now able to bind to and
- communicate using IPv6 addresses.
-
-chan_local
-------------------
- * The /b option has been removed.
-
- * chan_local moved into the system core and is no longer a loadable module.
-
-chan_mobile
-------------------
- * Added general support for busy detection.
-
- * Added ECAM command support for Sony Ericsson phones.
-
-chan_pjsip
-------------------
- * A new SIP channel driver for Asterisk, chan_pjsip is built on the PJSIP
- SIP stack. A collection of resource modules provides the bulk of the SIP
- functionality. For more information on the new SIP channel driver, see
- https://wiki.asterisk.org/wiki/x/JYGLAQ
-
-chan_sip
-------------------
- * Added support for RFC 3327 "Path" headers. This can be enabled in sip.conf
- using the 'supportpath' setting, either on a global basis or on a peer basis.
- This setting enables Asterisk to route outgoing out-of-dialog requests via a
- set of proxies by using a pre-loaded route-set defined by the Path headers in
- the REGISTER request. See Realtime updates for more configuration information.
-
- * The SIP_CODEC family of variables may now specify more than one codec. Each
- codec must be separated by a comma. The first codec specified is the
- preferred codec for the offer. This allows a dialplan writer to specify both
- audio and video codecs, e.g., Set(SIP_CODEC=ulaw,h264)
-
- * The 'callevents' parameter has been removed. Hold AMI events are now raised
- in the core, and can be filtered out using the 'eventfilter' parameter
- in manager.conf.
-
- * Added 'ignore_requested_pref'. When enabled, this will use the preferred
- codecs configured for a peer instead of the requested codec.
-
- * The option "register_retry_403" has been added to chan_sip to work around
- servers that are known to erroneously send 403 in response to valid
- REGISTER requests and allows Asterisk to continue attepmting to connect.
-
-chan_skinny
-------------------
- * Added the 'immeddialkey' parameter. If set, when the user presses the
- configured key the already entered number will be immediately dialed. This
- is useful when the dialplan allows for variable length pattern matching.
- Valid options are '*' and '#'.
-
- * Added the 'callfwdtimeout' parameter. This configures the amount of time (in
- milliseconds) before a call forward is considered to not be answered.
-
- * The 'serviceurl' parameter allows Service URLs to be attached to line
- buttons.
-
-
-Functions
-------------------
-
-AGENT
-------------------
- * The password option has been disabled, as the AgentLogin application no
- longer provides authentication.
-
-AUDIOHOOK_INHERIT
-------------------
- * Due to changes in the Asterisk core, this function is no longer needed to
- preserve a MixMonitor on a channel during transfer operations and dialplan
- execution. It is effectively obsolete.
-
-CDR (function)
-------------------
- * The 'amaflags' and 'accountcode' attributes for the CDR function are
- deprecated. Use the CHANNEL function instead to access these attributes.
-
- * The 'l' option has been removed. When reading a CDR attribute, the most
- recent record is always used. When writing a CDR attribute, all non-finalized
- CDRs are updated.
-
- * The 'r' option has been removed, for the same reason as the 'l' option.
-
- * The 's' option has been removed, as LOCKED semantics no longer exist in the
- CDR engine.
-
-CDR_PROP
-------------------
- * A new function CDR_PROP has been added. This function lets you set properties
- on a channel's active CDRs. This function is write-only. Properties accept
- boolean values to set/clear them on the channel's CDRs. Valid properties
- include:
- - 'party_a' - make this channel the preferred Party A in any CDR between two
- channels. If two channels have this property set, the creation time of the
- channel is used to determine who is Party A. Note that dialed channels are
- never Party A in a CDR.
- - 'disable' - disable CDRs on this channel. This is analogous to the NoCDR
- application when set to True, and analogous to the 'e' option in ResetCDR
- when set to False.
-
-CHANNEL
-------------------
- * Added the argument 'dtmf_features'. This sets the DTMF features that will be
- enabled on a channel when it enters a bridge. Allowed values are 'T', 'K',
- 'H', 'W', and 'X', and are analogous to the parameters passed to the Dial
- application.
-
- * Added the argument 'after_bridge_goto'. This can be set to a parseable Goto
- string, i.e., [[context],extension],priority. If set on a channel, if a
- channel leaves a bridge but is not hung up it will resume dialplan execution
- at that location.
-
-JITTERBUFFER
-------------------
- * JITTERBUFFER now accepts an argument of 'disabled' which can be used
- to remove jitterbuffers previously set on a channel with JITTERBUFFER.
- The value of this setting is ignored when disabled is used for the argument.
-
-PJSIP_DIAL_CONTACTS
-------------------
- * A new function provided by chan_pjsip, this function can be used in
- conjunction with the Dial application to construct a dial string that will
- dial all contacts on an Address of Record associated with a chan_pjsip
- endpoint.
-
-PJSIP_MEDIA_OFFER
-------------------
- * Provided by chan_pjsip, this function sets the codecs to be offered on the
- outbound channel prior to dialing.
-
-REDIRECTING
-------------------
- * Redirecting reasons can now be set to arbitrary strings. This means
- that the REDIRECTING dialplan function can be used to set the redirecting
- reason to any string. It also allows for custom strings to be read as the
- redirecting reason from SIP Diversion headers.
-
-SPEECH_ENGINE
-------------------
- * The SPEECH_ENGINE function now supports read operations. When read from, it
- will return the current value of the requested attribute.
-
-VMCOUNT:
-------------------
- * Mailboxes defined by app_voicemail MUST be referenced by the rest of the
- system as mailbox@context. The rest of the system cannot add @default
- to mailbox identifiers for app_voicemail that do not specify a context
- any longer. It is a mailbox identifier format that should only be
- interpreted by app_voicemail.
-
-
-Resources
-------------------
-
-res_agi (Asterisk Gateway Interface)
-------------------
- * The manager event AGIExec has been split into AGIExecStart and AGIExecEnd.
-
- * The manager event AsyncAGI has been split into AsyncAGIStart, AsyncAGIExec,
- and AsyncAGIEnd.
-
- * The CONTROL STREAM FILE command now accepts an offsetms parameter. This
- will start the playback of the audio at the position specified. It will
- also return the final position of the file in 'endpos'.
-
- * The CONTROL STREAM FILE command will now populate the CPLAYBACKSTATUS
- channel variable if the user stopped the file playback or if a remote
- entity stopped the playback. If neither stopped the playback, it will
- indicate the overall success/failure of the playback. If stopped early,
- the final offset of the file will be set in the CPLAYBACKOFFSET channel
- variable.
-
- * The SAY ALPHA command now accepts an additional parameter to control
- whether it specifies the case of uppercase, lowercase, or all letters to
- provide functionality similar to SayAlphaCase.
-
-res_ari (Asterisk RESTful Interface) (and others)
-------------------
- * The Asterisk RESTful Interface (ARI) provides a mechanism to expose and
- control telephony primitives in Asterisk by remote client. This includes
- channels, bridges, endpoints, media, and other fundamental concepts. Users
- of ARI can develop their own communications applications, controlling
- multiple channels using an HTTP RESTful interface and receiving JSON events
- about the objects via a WebSocket connection. ARI can be configured in
- Asterisk via ari.conf. For more information on ARI, see
- https://wiki.asterisk.org/wiki/x/0YCLAQ
-
-res_parking
--------------------
- * Parking has been extracted from the Asterisk core as a loadable module,
- res_parking. Configuration for parking is now provided by res_parking.conf.
- Configuration through features.conf is no longer supported.
-
- * res_parking uses the configuration framework. If an invalid configuration is
- supplied, res_parking will fail to load or fail to reload. Previously,
- invalid configurations would generally be accepted, with certain errors
- resulting in individually disabled parking lots.
-
- * Parked calls are now placed in bridges. While this is largely an
- architectural change, it does have implications on how channels in a parking
- lot are viewed. For example, commands that display channels in bridges will
- now also display the channels in a parking lot.
-
- * The order of arguments for the new parking applications have been modified.
- Timeout and return context/exten/priority are now implemented as options,
- while the name of the parking lot is now the first parameter. See the
- application documentation for Park, ParkedCall, and ParkAndAnnounce for more
- in-depth information as well as syntax.
-
- * Extensions are by default no longer automatically created in the dialplan to
- park calls or pickup parked calls. Generation of dialplan extensions can be
- enabled using the 'parkext' configuration option.
-
- * ADSI functionality for parking is no longer supported. The 'adsipark'
- configuration option has been removed as a result.
-
- * The PARKINGSLOT channel variable has been deprecated in favor of
- PARKING_SPACE to match the naming scheme of the new system.
-
- * PARKING_SPACE and PARKEDLOT channel variables will now be set for a parked
- channel even when the configuration option 'comebactoorigin' is enabled.
-
- * A new CLI command 'parking show' has been added. This allows a user to
- inspect the parking lots that are currently in use.
- 'parking show <parkinglot>' will also show the parked calls in a specific
- parking lot.
-
- * The CLI command 'parkedcalls' is now deprecated in favor of
- 'parking show <parkinglot>'.
-
- * The AMI command 'ParkedCalls' will now accept a 'ParkingLot' argument which
- can be used to get a list of parked calls for a specific parking lot.
-
- * The AMI command 'Park' field 'Channel2' has been deprecated and replaced
- with 'TimeoutChannel'. If both 'Channel2' and 'TimeoutChannel' are
- specified, 'TimeoutChannel' will be used. The field 'TimeoutChannel' is no
- longer a required argument.
-
- * The ParkAndAnnounce application is now provided through res_parking instead
- of through the separate app_parkandannounce module.
-
- * ParkAndAnnounce will no longer go to the next position in dialplan on timeout
- by default. Instead, it will follow the timeout rules of the parking lot. The
- old behavior can be reproduced by using the 'c' option.
-
- * Dynamic parking lots will now fail to be created under the following
- conditions:
- - if the parking lot specified by PARKINGDYNAMIC does not exist
- - if they require exclusive park and parkedcall extensions which overlap
- with existing parking lots.
-
- * Dynamic parking lots will be cleared on reload for dynamic parking lots that
- currently contain no calls. Dynamic parking lots containing parked calls
- will persist through the reloads without alteration.
-
- * If 'parkext_exclusive' is set for a parking lot and that extension is
- already in use when that parking lot tries to register it, this is now
- considered a parking system configuration error. Configurations which do
- this will be rejected.
-
- * Added channel variable PARKER_FLAT. This contains the name of the extension
- that would be used if 'comebacktoorigin' is enabled. This can be useful when
- comebacktoorigin is disabled, but the dialplan or an external control
- mechanism wants to use the extension in the park-dial context that was
- generated to re-dial the parker on timeout.
-
-res_pjsip (and many others)
-------------------
- * A large number of resource modules make up the SIP stack based on pjsip.
- The chan_pjsip channel driver users these resource modules to provide
- various SIP functionality in Asterisk. The majority of configuration for
- these modules is performed in pjsip.conf. Other modules may use their
- own configuration files.
-
- * Added 'set_var' option for an endpoint. For each variable specified that
- variable gets set upon creation of a channel involving the endpoint.
-
-res_rtp_asterisk
-------------------
- * ICE/STUN/TURN support in res_rtp_asterisk has been made optional. To enable
- them, an Asterisk-specific version of PJSIP needs to be installed.
- Tarballs are available from https://github.com/asterisk/pjproject/tags/.
-
-res_statsd/res_chan_stats
-------------------
- * A new resource module, res_statsd, has been added, which acts as a statsd
- client. This module allows Asterisk to publish statistics to a statsd
- server. In conjunction with res_chan_stats, it will publish statistics about
- channels to the statsd server. It can be configured via res_statsd.conf.
-
-res_xmpp
-------------------
- * Device state for XMPP buddies is now available using the following format:
- XMPP/<client name>/<buddy address>
- If any resource is available the device state is considered to be not in use.
- If no resources exist or all are unavailable the device state is considered
- to be unavailable.
-
-
-Scripts
-------------------
-
-Realtime/Database Scripts
-------------------
- * Asterisk previously included example db schemas in the contrib/realtime/
- directory of the source tree. This has been replaced by a set of database
- migrations using the Alembic framework. This allows you to use alembic to
- initialize the database for you. It will also serve as a database migration
- tool when upgrading Asterisk in the future.
-
- See contrib/ast-db-manage/README.md for more details.
-
-sip_to_res_pjsip.py
--------------------
- * A new script has been added in the contrib/scripts/sip_to_res_pjsip folder.
- This python script will convert an existing sip.conf file to a
- pjsip.conf file, for use with the chan_pjsip channel driver. This script
- is meant to be an aid in converting an existing chan_sip configuration to
- a chan_pjsip configuration, but it is expected that configuration beyond
- what the script provides will be needed.
-
-------------------------------------------------------------------------------
---- Functionality changes from Asterisk 10 to Asterisk 11 --------------------
-------------------------------------------------------------------------------
-
-Build System
--------------------
- * The Asterisk build system will now build and install a shared library
- (libasteriskssl.so) used to wrap various initialization and shutdown functions
- from the libssl and libcrypto libraries provided by OpenSSL. This is done so
- that Asterisk can ensure that these functions do *not* get called by any
- modules that are loaded into Asterisk, since they should only be called once
- in any single process. If desired, this feature can be disabled by supplying
- the "--disable-asteriskssl" option to the configure script.
-
- * A new make target, 'full', has been added to the Makefile. This performs
- the same compilation actions as make all, but will also scan the entirety of
- each source file for documentation. This option is needed to generate AMI
- event documentation. Note that your system must have Python in order for
- this make target to succeed.
-
- * The optimization portion of the build system has been reworked to avoid
- broken builds on certain architectures. All architecture-specific
- optimization has been removed in favor of using -march=native to allow gcc
- to detect the environment in which it is running when possible. This can
- be toggled as BUILD_NATIVE under "Compiler Flags" in menuselect.
-
- * BUILD_CFLAGS and BUILD_LDFLAGS can now be passed to menuselect, e.g.,
- make BUILD_CFLAGS="whatever" BUILD_LDFLAGS="whatever"
-
- * Remove "asterisk/version.h" in favor of "asterisk/ast_version.h". If you
- previously parsed the header file to obtain the version of Asterisk, you
- will now have to go through Asterisk to get the version information.
-
-
-Applications
--------------------
-
-Bridge
--------------------
- * Added 'F()' option. Similar to the dial option, this can be supplied with
- arguments indicating where the callee should go after the caller is hung up,
- or without options specified, the priority after the Queue will be used.
-
-
-ConfBridge
--------------------
- * Added menu action admin_toggle_mute_participants. This will mute / unmute
- all non-admin participants on a conference. The confbridge configuration
- file also allows for the default sounds played to all conference users when
- this occurs to be overriden using sound_participants_unmuted and
- sound_participants_muted.
-
- * Added menu action participant_count. This will playback the number of
- current participants in a conference.
-
- * Added announcement configuration option to user profile. If set the sound
- file will be played to the user, and only the user, upon joining the
- conference bridge.
-
- * Added record_file_append option that defaults to "yes", but if set to no
- will create a new file between each start/stop recording.
-
-
-Dial
--------------------
- * Added 'b' and 'B' options to Dial that execute a Gosub on callee and caller
- channels respectively before the callee channels are called.
-
-
-ExternalIVR
--------------------
- * Added support for IPv6.
-
- * Add interrupt ('I') command to ExternalIVR. Sending this command from an
- external process will cause the current playlist to be cleared, including
- stopping any audio file that is currently playing. This is useful when you
- want to interrupt audio playback only when specific DTMF is entered by the
- caller.
-
-
-FollowMe
--------------------
- * A new option, 'I' has been added to app_followme. By setting this option,
- Asterisk will not update the caller with connected line changes when they
- occur. This is similar to app_dial and app_queue.
-
- * The 'N' option is now ignored if the call is already answered.
-
- * Added 'b' and 'B' options to FollowMe that execute a Gosub on callee
- and caller channels respectively before the callee channels are called.
-
- * The winning FollowMe outgoing call is now put on hold if the caller put it on
- hold.
-
-
-MixMonitor
-------------------
- * MixMonitor hooks now have IDs associated with them which can be used to
- assign a target to StopMixMonitor. Use of MixMonitor's i(variable) option
- will allow storage of the MixMonitor ID in a channel variable. StopMixmonitor
- now accepts that ID as an argument.
-
- * Added 'm' option, which stores a copy of the recording as a voicemail in the
- indicated mailboxes.
-
-
-MySQL
--------------------
- * The connect action in app_mysql now allows you to specify a port number to
- connect to. This is useful if you run a MySQL server on a non-standard
- port number.
-
-
-OSP Applications
--------------------
- * Increased the default number of allowed destinations from 5 to 12.
-
-
-Page
--------------------
- * The app_page application now no longer depends on DAHDI or app_meetme. It
- has been re-architected to use app_confbridge internally.
-
-
-Queue
--------------------
- * Added queue options autopausebusy and autopauseunavail for automatically
- pausing a queue member when their device reports busy or congestion.
-
- * The 'ignorebusy' option for queue members has been deprecated in favor of
- the option 'ringinuse. Also a 'queue set ringinuse' CLI command has been
- added as well as an AMI action 'QueueMemberRingInUse' to set this variable on a
- per interface basis. Individual ringinuse values can now be set in
- queues.conf via an argument to member definitions. Lastly, the queue
- 'ringinuse' setting now only determines defaults for the per member
- 'ringinuse' setting and does not override per member settings like it does
- in earlier versions.
-
- * Added 'F()' option. Similar to the dial option, this can be supplied with
- arguments indicating where the callee should go after the caller is hung up,
- or without options specified, the priority after the Queue will be used.
-
- * Added new option log_member_name_as_agent, which will cause the membername to
- be logged in the agent field for ADDMEMBER and REMOVEMEMBER queue events if a
- state_interface has been set.
-
- * Add queue monitoring hints. exten => 8501,hint,Queue:markq.
-
- * App_queue will now play periodic announcements for the caller that
- holds the first position in the queue while waiting for answer.
-
-SayUnixTime
-------------------
- * Added 'j' option to SayUnixTime. SayUnixTime no longer auto jumps to extension
- when receiving DTMF. Use the 'j' option to enable extension jumping. Also
- changed arguments to SayUnixTime so that every option is truly optional even
- when using multiple options (so that j option could be used without having to
- manually specify timezone and format) There are other benefits, e.g., format
- can now be used without specifying time zone as well.
-
-
-Voicemail
-------------------
- * Addition of the VM_INFO function - see Function changes.
-
- * The imapserver, imapport, and imapflags configuration options can now be
- overriden on a user by user basis.
-
- * When voicemail plays a message's envelope with saycid set to yes, when
- reaching the caller id field it will play a recording of a file with the same
- base name as the sender's callerid if there is a similarly named file in
- <astspooldir>/recordings/callerids/
-
- * Voicemails now contains a unique message identifier "msg_id", which is stored
- in the message envelope with the sound files. IMAP backends will now store
- the message identifiers with a header of "X-Asterisk-VM-Message-ID". ODBC
- backends will store the message identifier in a "msg_id" column. See
- UPGRADE.txt for more information.
-
- * Added VoiceMailPlayMsg application. This application will play a single
- voicemail message from a mailbox. The result of the application, SUCCESS or
- FAILED, is stored in the channel variable VOICEMAIL_PLAYBACKSTATUS.
-
-
-Functions
-------------------
- * Hangup handlers can be attached to channels using the CHANNEL() function.
- Hangup handlers will run when the channel is hung up similar to the h
- extension. The hangup_handler_push option will push a GoSub compatible
- location in the dialplan onto the channel's hangup handler stack. The
- hangup_handler_pop option will remove the last added location, and optionally
- replace it with a new GoSub compatible location. The hangup_handler_wipe
- option will remove all locations on the stack, and optionally add a new
- location.
-
- * The expression parser now recognizes the ABS() absolute value function,
- which will convert negative floating point values to positive values.
-
- * FAXOPT(faxdetect) will enable a generic fax detect framehook for dialplan
- control of faxdetect.
-
- * Addition of the VM_INFO function that can be used to retrieve voicemail
- user information, such as the email address and full name.
- The MAILBOX_EXISTS dialplan function has been deprecated in favour of
- VM_INFO.
-
- * The REDIRECTING function now supports the redirecting original party id
- and reason.
-
- * Two new functions have been added: FEATURE() and FEATUREMAP(). FEATURE()
- lets you set some of the configuration options from the [general] section
- of features.conf on a per-channel basis. FEATUREMAP() lets you customize
- the key sequence used to activate built-in features, such as blindxfer,
- and automon. See the built-in documentation for details.
-
- * MESSAGE(from) for incoming SIP messages now returns "display-name" <uri>
- instead of simply the uri. This is the format that MessageSend() can use
- in the from parameter for outgoing SIP messages.
-
- * Added the PRESENCE_STATE function. This allows retrieving presence state
- information from any presence state provider. It also allows setting
- presence state information from a CustomPresence presence state provider.
- See AMI/CLI changes for related commands.
-
- * Added the AMI_CLIENT function to make manager account attributes available
- to the dialplan. It currently supports returning the current number of
- active sessions for a given account.
-
- * Added support for private party ID information to CALLERID, CONNECTEDLINE,
- and the REDIRECTING functions.
-
-
-Channel Drivers
-------------------
-
-chan_local
-------------------
- * Added a manager event "LocalBridge" for local channel call bridges between
- the two pseudo-channels created.
-
-
-chan_dahdi
-------------------
- * Added dialtone_detect option for analog ports to disconnect incoming
- calls when dialtone is detected.
-
- * Added option colp_send to send ISDN connected line information. Allowed
- settings are block, to not send any connected line information; connect, to
- send connected line information on initial connect; and update, to send
- information on any update during a call. Default is update.
-
- * Add options namedcallgroup and namedpickupgroup to support installations
- where a higher number of groups (>64) is required.
-
- * Added support to use private party ID information with PRI calls.
-
-
-chan_motif
-------------------
- * A new channel driver named chan_motif has been added which provides support for
- Google Talk and Jingle in a single channel driver. This new channel driver includes
- support for both audio and video, RFC2833 DTMF, all codecs supported by Asterisk,
- hold, unhold, and ringing notification. It is also compliant with the current Jingle
- specification, current Google Jingle specification, and the original Google Talk
- protocol.
-
-
-chan_ooh323
-------------------
- * Added NAT support for RTP. Setting in config is 'nat', which can be set
- globally and overriden on a peer by peer basis.
-
- * Direct media functionality has been added. Options in config are:
- directmedia (directrtp) and directrtpsetup (earlydirect)
-
- * ChannelUpdate events now contain a CallRef header.
-
-
-chan_sip
-------------------
- * Asterisk will no longer substitute CID number for CID name in the display
- name field if CID number exists without a CID name. This change improves
- compatibility with certain device features such as Avaya IP500's directory
- lookup service.
-
- * A new setting for autocreatepeer (autocreatepeer=persistent) allows peers
- created using that setting to not be removed during SIP reload.
-
- * Added settings recordonfeature and recordofffeature. When receiving an INFO
- request with a "Record:" header, this will turn the requested feature on/off.
- Allowed values are 'automon', 'automixmon', and blank to disable. Note that
- dynamic features must be enabled and configured properly on the requesting
- channel for this to function properly.
-
- * Add support to realtime for the 'callbackextension' option.
-
- * When multiple peers exist with the same address, but differing
- callbackextension options, incoming requests that are matched by address
- will be matched to the peer with the matching callbackextension if it is
- available.
-
- * Two new NAT options, auto_force_rport and auto_comedia, have been added
- which set the force_rport and comedia options automatically if Asterisk
- detects that an incoming SIP request crossed a NAT after being sent by
- the remote endpoint.
-
- * The default global nat setting in sip.conf has been changed from force_rport
- to auto_force_rport.
-
- * NAT settings are now a combinable list of options. The equivalent of the
- deprecated nat=yes is nat=force_rport,comedia. nat=no behaves as before.
-
- * Adds an option send_diversion which can be disabled to prevent
- diversion headers from automatically being added to INVITE requests.
-
- * Add support for lightweight NAT keepalive. If enabled a blank packet will
- be sent to the remote host at a given interval to keep the NAT mapping open.
- This can be enabled using the keepalive configuration option.
-
- * Add option 'tonezone' to specify country code for indications. This option
- can be set both globally and overridden for specific peers.
-
- * The SIP Security Events Framework now supports IPv6.
-
- * Add a new setting for directmedia, 'outgoing', to alleviate INVITE glares
- between multiple user agents. When set, for directmedia reinvites,
- Asterisk will not send an immediate reinvite on an incoming call leg. This
- option is useful when peered with another SIP user agent that is known to
- send immediate direct media reinvites upon call establishment.
-
- * Add support for WebSocket transport. This can be configured using 'ws' or 'wss'
- as the transport.
-
- * Add options subminexpiry and submaxexpiry to set limits of subscription
- timer independently from registration timer settings. The setting of the
- registration timer limits still is done by options minexpiry, maxexpiry
- and defaultexpiry. For backwards compatibility the setting of minexpiry
- and maxexpiry also is used to configure the subscription timer limits if
- subminexpiry and submaxexpiry are not set in sip.conf.
-
- * Set registration timer limits to default values when reloading sip
- configuration and values are not set by configuration.
-
- * Add options namedcallgroup and namedpickupgroup to support installations
- where a higher number of groups (>64) is required.
-
- * When a MESSAGE request is received, the address the request was received from
- is now saved in the SIP_RECVADDR variable.
-
- * Add ANI2/OLI parsing for SIP. The "From" header in INVITE requests is now
- parsed for the presence of "isup-oli", "ss7-oli", or "oli" tags. If present,
- the ANI2/OLI information is set on the channel, which can be retrieved using
- the CALLERID function.
-
- * Peers can now be configured to support negotiation of ICE candidates using
- the setting icesupport. See res_rtp_asterisk changes for more information.
-
- * Added support for format attribute negotiation. See the Codecs changes for
- more information.
-
- * Extra headers specified with SIPAddHeader are sent with the REFER message
- when using Transfer application. See refer_addheaders in sip.conf.sample.
-
- * Added support to use private party ID information with calls.
-
- * Adds an option discard_remote_hold_retrieval that when set stops telling
- the peer to start music on hold.
-
-
-chan_skinny
-------------------
- * Added skinny version 17 protocol support.
-
-
-chan_unistim
---------------------
- * Added option 'dtmf_duration' allowing playback time of DTMF tones to be set
-
- * Modified option 'date_format' to allow options to display date in 31Jan and Jan31
- formats as options 0 and 1. The previous options 0 and 1 now map to options 2 and 3
- as per the UNISTIM protocol.
-
- * Fixed issues with dialtone not matching indications.conf and mute stopping rx
- as well as tx. Also fixed issue with call "Timer" displaying as French "Dur\E9e"
-
- * Added ability to use multiple lines for a single phone. This allows multiple
- calls to occur on a single phone, using callwaiting and switching between calls.
-
- * Added option 'sharpdial' allowing end dialing by pressing # key
-
- * Added option 'interdigit_timer' to control phone dial timeout
-
- * Added options 'cwstyle', 'cwvolume' controlling callwaiting appearance
-
- * Added global 'debug' option, that enables debug in channel driver
-
- * Added ability to translate on-screen menu in multiple languages. Tested on
- Russian languages. Supported encodings: ISO 8859-1, ISO 8859-2, ISO 8859-4,
- ISO 8859-5, ISO 2022-JP. Language controlled by 'language' and on-screen
- menu of phone
-
- * In addition to English added French and Russian languages for on-screen menus
-
- * Reworked dialing number input: added dialing by timeout, immediate dial on
- on dialplan compare, phone number length now not limited by screen size
-
- * Added ability to pickup a call using features.conf defined value and
- on-screen key
-
-
-chan_mISDN:
-------------------
- * Add options namedcallgroup and namedpickupgroup to support installations
- where a higher number of groups (>64) is required.
-
- * Added support to use private party ID information with calls.
-
-
-Core
-------------------
- * The minimum DTMF duration can now be configured in asterisk.conf
- as "mindtmfduration". The default value is (as before) set to 80 ms.
- (previously it was only available in source code)
-
- * Named ACLs can now be specified in acl.conf and used in configurations that
- use ACLs. As a general rule, if some derivative of 'permit' or 'deny' is
- used to specify an ACL, a similar form of 'acl' will add a named ACL to the
- working ACL. In addition, some CLI commands have been added to provide
- show information and allow for module reloading - see CLI Changes.
-
- * Rules in ACLs (specified using 'permit' and 'deny') can now contain multiple
- items (separated by commas), and items in the rule can be negated by prefixing
- them with '!'. This simplifies Asterisk Realtime configurations, since it is no
- longer necessray to control the order that the 'permit' and 'deny' columns are
- returned from queries.
-
- * DUNDi now allows the built in variables ${NUMBER}, ${IPADDR} and ${SECRET} to
- be used within the dynamic weight attribute when specifying a mapping.
-
- * CEL backends can now be configured to show "USER_DEFINED" in the EventName
- header, instead of putting the user defined event name there. When enabled
- the UserDefType header is added for user defined events. This feature is
- enabled with the setting show_user_defined.
-
- * Macro has been deprecated in favor of GoSub. For redirecting and connected
- line purposes use the following variables instead of their macro equivalents:
- REDIRECTING_SEND_SUB, REDIRECTING_SEND_SUB_ARGS, CONNECTED_LINE_SEND_SUB,
- CONNECTED_LINE_SEND_SUB_ARGS. For CCSS, use cc_callback_sub instead of
- cc_callback_macro in channel configurations.
-
- * Asterisk can now use a system-provided NetBSD editline library (libedit) if it
- is available.
-
- * Call files now support the "early_media" option to connect with an outgoing
- extension when early media is received.
-
- * Added support to use private party ID information with calls.
-
-
-AGI
-------------------
- * A new channel variable, AGIEXITONHANGUP, has been added which allows
- Asterisk to behave like it did in Asterisk 1.4 and earlier where the
- AGI application would exit immediately after a channel hangup is detected.
-
- * IPv6 addresses are now supported when using FastAGI (agi://). Hostnames
- are resolved and each address is attempted in turn until one succeeds or
- all fail.
-
-
-AMI (Asterisk Manager Interface)
-------------------
- * The originate action now has an option "EarlyMedia" that enables the
- call to bridge when we get early media in the call. Previously,
- early media was disregarded always when originating calls using AMI.
-
- * Added setvar= option to manager accounts (much like sip.conf)
-
- * Originate now generates an error response if the extension given is not found
- in the dialplan
-
- * MixMonitor will now show IDs associated with the mixmonitor upon creating
- them if the i(variable) option is used. StopMixMonitor will accept
- MixMonitorID as an option to close specific MixMonitors.
-
- * The SIPshowpeer manager action response field "SIP-Forcerport" has been
- updated to include information about peers configured with
- nat=auto_force_rport by returning "A" if auto_force_rport is set and nat is
- detected, and "a" if it is set and nat is not detected. "Y" and "N" are still
- returned if auto_force_rport is not enabled.
-
- * Added SIPpeerstatus manager command which will generate PeerStatus events
- similar to the existing PeerStatus events found in chan_sip on demand.
-
- * Hangup now can take a regular expression as the Channel option. If you want
- to hangup multiple channels, use /regex/ as the Channel option. Existing
- behavior to hanging up a single channel is unchanged, but if you pass a regex,
- the manager will send you a list of channels back that were hung up.
-
- * Support for IPv6 addresses has been added.
-
- * AMI Events can now be documented in the Asterisk source. Note that AMI event
- documentation is only generated when Asterisk is compiled using 'make full'.
- See the CLI section for commands to display AMI event information.
-
- * The AMI Hangup event now includes the AccountCode header so you can easily
- correlate with AMI Newchannel events.
-
- * The QueueMemberStatus, QueueMemberAdded, and QueueMember events now include
- the StateInterface of the queue member.
-
- * Added AMI event SessionTimeout in the Call category that is issued when a
- call is terminated due to either RTP stream inactivity or SIP session timer
- expiration.
-
- * CEL events can now contain a user defined header UserDefType. See core
- changes for more information.
-
- * OOH323 ChannelUpdate events now contain a CallRef header.
-
- * Added PresenceState command. This command will report the presence state for
- the given presence provider.
-
- * Added Parkinglots command. This will list all parking lots as a series of
- AMI Parkinglot events.
-
- * Added MessageSend command. This behaves in the same manner as the
- MessageSend application, and is a technolgoy agnostic mechanism to send out
- of call text messages.
-
- * Added "message" class authorization. This grants an account permission to
- send out of call messages. Write-only.
-
-
-CLI
--------------------
- * The "dialplan add include" command has been modified to create context a context
- if one does not already exist. For instance, "dialplan add include foo into bar"
- will create context "bar" if it does not already exist.
-
- * A "dialplan remove context" command has been added to remove a context from
- the dialplan
-
- * The "mixmonitor list <channel>" command will now show MixMonitor ID, and the
- filenames of all running mixmonitors on a channel.
-
- * The debug level of "pri set debug" is now a bitmask ranging from 0 to 15 if
- numeric instead of 0, 1, or 2.
-
- * "stun show status" will show a table describing how the STUN client is
- behaving.
-
- * "acl show [named acl]" will show information regarding a Named ACL. The
- acl module can be reloaded with "reload acl".
-
- * Added CLI command to display AMI event information - "manager show events",
- which shows a list of all known and documented AMI events, and "manager show
- event [event name]", which shows detail information about a specific AMI
- event.
-
- * The result of the CLI command "queue show" now includes the state interface
- information of the queue member.
-
- * The command "core set verbose" will now set a separate level of logging for
- each remote console without affecting any other console.
-
- * Added command "cdr show pgsql status" to check connection status
-
- * "sip show channel" will now display the complete route set.
-
- * Added "presencestate list" command. This command will list all custom
- presence states that have been set by using the PRESENCE_STATE dialplan
- function.
-
- * Added "presencestate change <entity> <state>[,<subtype>[,message[,options]]]"
- command. This changes a custom presence to a new state.
-
-
-Codecs
--------------------
- * Codec lists may now be modified by the '!' character, to allow succinct
- specification of a list of codecs allowed and disallowed, without the
- requirement to use two different keywords. For example, to specify all
- codecs except g729 and g723, one need only specify allow=all,!g729,!g723.
-
- * Add support for parsing SDP attributes, generating SDP attributes, and
- passing it through. This support includes codecs such as H.263, H.264, SILK,
- and CELT. You are able to set up a call and have attribute information pass.
- This should help considerably with video calls.
-
- * The iLBC codec can now use a system-provided iLBC library if one is installed,
- just like the GSM codec.
-
-DUNDi changes
--------------
- * Added CLI commands dundi show hints and dundi show cache which will list DUNDi
- 'DONTASK' hints in the cache and list all DUNDi cache entires respectively.
-
-Logging
--------------------
- * Asterisk version and build information is now logged at the beginning of a
- log file.
-
- * Threads belonging to a particular call are now linked with callids which get
- added to any log messages produced by those threads. Log messages can now be
- easily identified as involved with a certain call by looking at their call id.
- Call ids may also be attached to log messages for just about any case where
- it can be determined to be related to a particular call.
-
- * Each logging destination and console now have an independent notion of the
- current verbosity level. Logger.conf now allows an optional argument to
- the 'verbose' specifier, indicating the level of verbosity sent to that
- particular logging destination. Additionally, remote consoles now each
- have their own verbosity level. The command 'core set verbose' will now set
- a separate level for each remote console without affecting any other
- console.
-
-
-Music On Hold
--------------------
- * Added 'announcement' option which will play at the start of MOH and between
- songs in modes of MOH that can detect transitions between songs (eg.
- files, mp3, etc).
-
-
-Parking
--------------------
- * New per parking lot options: comebackcontext and comebackdialtime. See
- configs/features.conf.sample for more details.
-
- * Channel variable PARKER is now set when comebacktoorigin is disabled in
- a parking lot.
-
- * Channel variable PARKEDCALL is now set with the name of the parking lot
- when a timeout occurs.
-
-
-CDRs
--------------------
-
-CDR Postgresql Driver
--------------------
- * Added command "cdr show pgsql status" to check connection status
-
-
-CDR Adaptive ODBC Driver
--------------------
- * Added schema option for databases that support specifying a schema.
-
-
-Resource Modules
--------------------
-
-Calendars
--------------------
- * A CALENDAR_SUCCESS=1/0 channel variable is now set to show whether or not
- CALENDAR_WRITE has completed successfully.
-
-
-res_rtp_asterisk
--------------------
- * A new option, 'probation' has been added to rtp.conf
- RTP in strictrtp mode can now require more than 1 packet to exit learning
- mode with a new source (and by default requires 4). The probation option
- allows the user to change the required number of packets in sequence to any
- desired value. Use a value of 1 to essentially restore the old behavior.
- Also, with strictrtp on, Asterisk will now drop all packets until learning
- mode has successfully exited. These changes are based on how pjmedia handles
- media sources and source changes.
-
- * Add support for ICE/STUN/TURN in res_rtp_asterisk. This option can be
- enabled or disabled using the icesupport setting. A variety of other
- settings have been introduced to configure STUN/TURN connections.
-
-
-res_corosync
--------------------
- * A new module, res_corosync, has been introduced. This module uses the
- Corosync cluster engineer (http://www.corosync.org) to allow a local cluster
- of Asterisk servers to both Message Waiting Indication (MWI) and/or
- Device State (presence) information. This module is very similar to, and
- is a replacement for the res_ais module that was in previous releases of
- Asterisk.
-
-
-res_xmpp
--------------------
- * This module adds a cleaned up, drop-in replacement for res_jabber called
- res_xmpp. This provides the same externally facing functionality but is
- implemented differently internally. res_jabber has been deprecated in favor
- of res_xmpp; please see the UPGRADE.txt file for more information.
-
-
-Scripts
--------------------
- * The safe_asterisk script has been updated to allow several of its parameters
- to be set from environment variables. This also enables a custom run
- directory of Asterisk to be specified, instead of defaulting to /tmp.
-
- * The live_ast script will now look for the LIVE_AST_BASE_DIR variable and use
- its value to determine the directory to assume is the top-level directory of
- the source tree. If the variable is not set, it defaults to the current
- behavior and uses the current working directory.
-
-------------------------------------------------------------------------------
---- Functionality changes from Asterisk 1.8 to Asterisk 10 -------------------
-------------------------------------------------------------------------------
-
-Text Messaging
---------------
- * Asterisk now has protocol independent support for processing text messages
- outside of a call. Messages are routed through the Asterisk dialplan.
- SIP MESSAGE and XMPP are currently supported. There are options in
- jabber.conf and sip.conf to allow enabling these features.
- -> jabber.conf: see the "sendtodialplan" and "context" options.
- -> sip.conf: see the "accept_outofcall_message", "auth_message_requests"
- and "outofcall_message_context" options.
- The MESSAGE() dialplan function and MessageSend() application have been
- added to go along with this functionality. More detailed usage information
- can be found on the Asterisk wiki (http://wiki.asterisk.org/).
- * If real-time text support (T.140) is negotiated, it will be preferred for
- sending text via the SendText application. For example, via SIP, messages
- that were once sent via the SIP MESSAGE request would be sent via RTP if
- T.140 text is negotiated for a call.
-
-Parking
--------
- * parkedmusicclass can now be set for non-default parking lots.
-
-Asterisk Manager Interface
---------------------------
- * PeerStatus now includes Address and Port.
- * Added Hold events for when the remote party puts the call on and off hold
- for chan_dahdi ISDN channels.
- * Added new action MeetmeListRooms to list active conferences (shows same
- data as "meetme list" at the CLI).
- * DAHDIShowChannels, SIPshowpeer, SIPpeers, and IAXpeers now contains a
- Description field that is set by 'description' in the channel configuration
- file.
- * Added Uniqueid header to UserEvent.
- * Added new action FilterAdd to control event filters for the current session.
- This requires the system permission and uses the same filter syntax as
- filters that can be defined in manager.conf
- * The Unlink event is now a Bridge event with Bridgestatus: Unlink. Previous
- versions had some instances of the event converted, but others were left
- as-is. All Unlink events should now be converted to Bridge events. The AMI
- protocol version number was incremented to 1.2 as a result of this change.
-
-Asterisk HTTP Server
---------------------------
- * The HTTP Server can bind to IPv6 addresses.
-
-chan_dahdi
---------------------------
- * Busy tone patterns featuring 2 silence and 2 tone lengths can now be used
- with busydetect. usage example: busypattern=200,200,200,600
-
-CLI Changes
---------------------------
- * New 'gtalk show settings' command showing the current settings loaded from
- gtalk.conf.
- * The 'logger reload' command now supports an optional argument, specifying an
- alternate configuration file to use.
- * 'dialplan add extension' command will now automatically create a context if
- the specified context does not exist with a message indicated it did so.
- * 'sip show peers', 'iax show peers', and 'dahdi show peers' now contains a
- Description field which can be populated with 'description' in the channel
- configuration files (sip.conf, iax2.conf, and chan_dahdi.conf).
-
-CDR
---------------------------
- * The filter option in cdr_adaptive_odbc now supports negating the argument,
- thus allowing records which do NOT match the specified filter.
- * Added ability to log CONGESTION calls to CDR
-
-CODECS
---------------------------
- * Ability to define custom SILK formats in codecs.conf.
- * Addition of speex32 audio format with translation.
- * CELT codec pass-through support and ability to define
- custom CELT formats in codecs.conf.
- * Ability to read raw signed linear files with sample rates
- ranging from 8khz - 192khz. The new file extensions introduced
- are .sln12, .sln24, .sln32, .sln44, .sln48, .sln96, .sln192.
- * Due to protocol limitations, channel drivers other than SIP (eg. IAX2, MGCP,
- Skinny, H.323, etc) can still only support the following codecs:
- Audio: ulaw, alaw, slin, slin16, g719, g722, g723, g726, g726aal2, g729, gsm,
- siren7, siren14, speex, speex16, ilbc, lpc10, adpcm
- Video: h261, h263, h263p, h264, mpeg4
- Image: jpeg, png
- Text: red, t140
-
-ConfBridge
---------------------------
- * New highly optimized and customizable ConfBridge application capable of
- mixing audio at sample rates ranging from 8khz-96khz.
- * CONFBRIDGE dialplan function capable of creating dynamic ConfBridge user
- and bridge profiles on a channel.
- * CONFBRIDGE_INFO dialplan function capable of retrieving information
- about a conference such as locked status and number of parties, admins,
- and marked users.
- * Addition of video_mode option in confbridge.conf for adding video support
- into a bridge profile.
- * Addition of the follow_talker video_mode in confbridge.conf. This video
- mode dynamically switches the video feed to always display the loudest talker
- supplying video in the conference.
-
-Dialplan Variables
-------------------
- * Added ASTETCDIR, ASTMODDIR, ASTVARLIBDIR, ASTDBDIR, ASTKEYDIR, ASTDATADIR,
- ASTAGIDIR, ASTSPOOLDIR, ASTRUNDIR, ASTLOGDIR which hold the equivalent
- variables from asterisk.conf.
-
-Dialplan Functions
-------------------
- * Addition of the JITTERBUFFER dialplan function. This function allows
- for jitterbuffering to occur on the read side of a channel. By using
- this function conference applications such as ConfBridge and MeetMe can
- have the rx streams jitterbuffered before conference mixing occurs.
- * Added DB_KEYS, which lists the next set of keys in the Asterisk database
- hierarchy.
- * Added STRREPLACE function. This function let's the user search a variable
- for a given string to replace with another string as many times as the
- user specifies or just throughout the whole string.
- * Added option to CHANNEL(pickupgroup) allow reading and setting the pickupgroup of channel.
- * Mark VALID_EXTEN() deprecated in favor of DIALPLAN_EXISTS()
- * Added extensions to chan_ooh323 in function CHANNEL()
-
-libpri channel driver (chan_dahdi) DAHDI changes
---------------------------
- * Added moh_signaling option to specify what to do when the channel's bridged
- peer puts the ISDN channel on hold.
- * Added display_send and display_receive options to control how the display ie
- is handled. To send display text from the dialplan use the SendText()
- application when the option is enabled.
- * Added mcid_send option to allow sending a MCID request on a span.
-
-Calendaring
---------------------------
- * Added setvar option to calendar.conf to allow setting channel variables on
- notification channels.
- * Added "calendar show types" CLI command to list registered calendar
- connectors.
-
-MixMonitor
---------------------------
- * Added two new options, r and t with file name arguments to record
- single direction (unmixed) audio recording separate from the bidirectional
- (mixed) recording. The mixed file name argument is optional now as long
- as at least one recording option is used.
-
-FollowMe
---------------------------
- * Added a new option, l, which will disable local call optimization for
- channels involved with the FollowMe thread. Use this option to improve
- compatability for a FollowMe call with certain dialplan apps, options, and
- functions.
-
-Meetme
---------------------------
- * Added option "k" that will automatically close the conference when there's
- only one person left when a user exits the conference.
-
-CEL
---------------------------
- * cel_pgsql now supports the 'extra' column for data added using the
- CELGenUserEvent() application.
-
-pbx_lua
---------------------------
- * Support for defining hints has been added to pbx_lua. See the 'hints' table
- in the sample extensions.lua file for syntax details.
- * Applications that perform jumps in the dialplan such as Goto will now
- execute properly. When pbx_lua detects that the context, extension, or
- priority we are executing on has changed it will immediately return control
- to the asterisk PBX engine. Currently the engine cannot detect a Goto to
- the priority after the currently executing priority.
- * An autoservice is now started by default for pbx_lua channels. It can be
- stopped and restarted using the autoservice_stop() and autoservice_start()
- functions.
-
-res_fax
---------------------------
- * The ReceiveFAXStatus and SendFAXStatus manager events have been consolidated
- into a FAXStatus event with an 'Operation' header that will be either
- 'send', 'receive', and 'gateway'.
- * T.38 gateway functionality has been added to res_fax (and res_fax_spandsp).
- Set FAXOPT(gateway)=yes to enable this functionality on a channel. This
- feature will handle converting a fax call between an audio T.30 fax terminal
- and an IFP T.38 fax terminal.
-
-SIP Changes
------------
- * Add T38 support for REJECTED state where T.38 Negotiation is explicitly rejected.
- * Add option encryption_taglen to set auth taglen only 32 and 80 are supported currently.
- * SIP now generates security events using the Security Events Framework for REGISTER and INVITE.
-
-Queue changes
--------------
- * Added general option negative_penalty_invalid default off. when set
- members are seen as invalid/logged out when there penalty is negative.
- for realtime members when set remove from queue will set penalty to -1.
- * Added queue option autopausedelay when autopause is enabled it will be
- delayed for this number of seconds since last successful call if there
- was no prior call the agent will be autopaused immediately.
- * Added member option ignorebusy this when set and ringinuse is not
- will allow per member control of multiple calls as ringinuse does for
- the Queue.
-
-Applications
-------------
- * Added 'v' option to MeetMe to play voicemail greetings when a user joins/leaves
- a MeetMe conference
- * Added 'k' option to MeetMe to automatically kill the conference when there's only
- one participant left (much like a normal call bridge)
- * Added extra argument to Originate to set timeout.
-
-Asterisk Database
------------------
- * The internal Asterisk database has been switched from Berkeley DB 1.86 to
- SQLite 3. An existing Berkeley astdb file can be converted with the astdb2sqlite3
- utility in the UTILS section of menuselect. If an existing astdb is found and no
- astdb.sqlite3 exists, astdb2sqlite3 will be compiled automatically. Asterisk will
- convert an existing astdb to the SQLite3 version automatically at runtime.
-
-Asterisk Modules
-----------------
- * Modules marked as deprecated are no longer marked as building by default. Enabling
- these modules is still available via menuselect.
-
-IAX2 Changes
-------------
- * authdebug is now disabled by default. To enable this functionality again
- set authdebug = yes in iax.conf.
-
-RTP Changes
------------
- * The rtp.conf setting "strictrtp" is now enabled by default. In previous
- releases it was disabled.
-
-PBX Core
---------
- * The PBX core previously made a call with a non-existing extension test for
- extension s@default and jump there if the extension existed.
- This was a bad default behaviour and violated the principle of least surprise.
- It has therefore been changed in this release. It may affect some
- applications and configurations that rely on this behaviour. Most channel
- drivers have avoided this for many releases by testing whether the extension
- called exists before starting the PBX and generating a local error.
- This behaviour still exists and works as before.
-
- Extension "s" is used when no extension is given in a channel driver,
- like immediate answer in DAHDI or calling to a domain with no user part
- in a SIP uri.
-
-------------------------------------------------------------------------------
---- Functionality changes from Asterisk 1.6.2 to Asterisk 1.8 ----------------
-------------------------------------------------------------------------------
-
-SIP Changes
------------
- * Due to potential username discovery vulnerabilities, the 'nat' setting in sip.conf
- now defaults to force_rport. It is very important that phones requiring nat=no be
- specifically set as such instead of relying on the default setting. If at all
- possible, all devices should have nat settings configured in the general section as
- opposed to configuring nat per-device.
- * Added preferred_codec_only option in sip.conf. This feature limits the joint
- codecs sent in response to an INVITE to the single most preferred codec.
- * Added SIP_CODEC_OUTBOUND dialplan variable which can be used to set the codec
- to be used for the outgoing call. It must be one of the codecs configured
- for the device.
- * Added tlsprivatekey option to sip.conf. This allows a separate .pem file
- to be used for holding a private key. If tlsprivatekey is not specified,
- tlscertfile is searched for both public and private key.
- * Added tlsclientmethod option to sip.conf. This allows the protocol for
- outbound client connections to be specified.
- * The sendrpid parameter has been expanded to include the options
- 'rpid' and 'pai'. Setting sendrpid to 'rpid' will cause Remote-Party-ID
- header to be sent (equivalent to setting sendrpid=yes) and setting
- sendrpid to 'pai' will cause P-Asserted-Identity header to be sent.
- * The 'ignoresdpversion' behavior has been made automatic when the SDP received
- is in response to a T.38 re-INVITE that Asterisk initiated. In this situation,
- since the call will fail if Asterisk does not process the incoming SDP, Asterisk
- will accept the SDP even if the SDP version number is not properly incremented,
- but will generate a warning in the log indicating that the SIP peer that sent
- the SDP should have the 'ignoresdpversion' option set.
- * The 'nat' option has now been been changed to have yes, no, force_rport, and
- comedia as valid values. Setting it to yes forces RFC 3581 behavior and enables
- symmetric RTP support. Setting it to no only enables RFC 3581 behavior if the
- remote side requests it and disables symmetric RTP support. Setting it to
- force_rport forces RFC 3581 behavior and disables symmetric RTP support.
- Setting it to comedia enables RFC 3581 behavior if the remote side requests it
- and enables symmetric RTP support.
- * Slave SIP channels now set HASH(SIP_CAUSE,<slave-channel-name>) on each
- response. This permits the master channel to know how each channel dialled
- in a multi-channel setup resolved in an individual way. This carries a
- performance penalty and can be disabled in sip.conf using the
- 'storesipcause' option.
- * Added 'externtcpport' and 'externtlsport' options to allow custom port
- configuration for the externip and externhost options when tcp or tls is used.
- * Added support for message body (stored in content variable) to SIP NOTIFY message
- accessible via AMI and CLI.
- * Added 'media_address' configuration option which can be used to explicitly specify
- the IP address to use in the SDP for media (audio, video, and text) streams.
- * Added 'unsolicited_mailbox' configuration option which specifies the virtual mailbox
- that the new/old count should be stored on if an unsolicited MWI NOTIFY message is
- received.
- * Added 'use_q850_reason' configuration option for generating and parsing
- if available Reason: Q.850;cause=<cause code> header. It is implemented
- in some gateways for better passing PRI/SS7 cause codes via SIP.
- * When dialing SIP peers, a new component may be added to the end of the dialstring
- to indicate that a specific remote IP address or host should be used when dialing
- the particular peer. The dialstring format is SIP/peer/exten/host_or_IP.
- * SRTP SDES support for encrypting calls to/from Asterisk over SIP. The
- ability to selectively force bridged channels to also be encrypted is also
- implemented. Branching in the dialplan can be done based on whether or not
- a channel has secure media and/or signaling.
- * Added directmediapermit/directmediadeny to limit which peers can send direct media
- to each other
- * Added the 'snom_aoc_enabled' option to turn on support for sending Advice of
- Charge messages to snom phones.
- * Added support for G.719 media streams.
- * Added support for 16khz signed linear media streams.
- * SIP is now able to bind to and communicate with IPv6 addresses. In addition,
- RTP has been outfitted with the same abilities.
- * Added support for setting the Max-Forwards: header in SIP requests. Setting is
- available in device configurations as well as in the dial plan.
- * Addition of the 'subscribe_network_change' option for turning on and off
- res_stun_monitor module support in chan_sip.
- * Addition of the 'auth_options_requests' option for turning on and off
- authentication for OPTIONS requests in chan_sip.
-
-Configuration files
--------------------
- * Add #tryinclude statement for config files. This provides the same
- functionality as the #include statement however an asterisk module will
- still load if the filename does not exist. Using the #include statement
- Asterisk will not allow the module to load.
-
-IAX2 Changes
------------
- * Added rtsavesysname option into iax.conf to allow the systname to be saved
- on realtime updates.
- * Added the ability for chan_iax2 to inform the dialplan whether or not
- encryption is being used. This interoperates with the SIP SRTP implementation
- so that a secure SIP call can be bridged to a secure IAX call when the
- dialplan requires bridged channels to be "secure".
- * Addition of the 'subscribe_network_change' option for turning on and off
- res_stun_monitor module support in chan_iax.
-
-
-MGCP Changes
-------------
- * Added ability to preset channel variables on indicated lines with the setvar
- configuration option. Also, clearvars=all resets the list of variables back
- to none.
- * PacketCable NCS 1.0 support has been added for Docsis/Eurodocsis Networks.
- See configs/res_pktccops.conf for more information.
-
-XMPP Google Talk/Jingle changes
--------------------------------
- * Added the externip option to gtalk.conf.
- * Added the stunaddr option to gtalk.conf which allows for the automatic
- retrieval of the external ip from a stun server.
-
-Applications
-------------
- * Added 'p' option to PickupChan() to allow for picking up channel by the first
- match to a partial channel name.
- * Added .m3u support for Mp3Player application.
- * Added progress option to the app_dial D() option. When progress DTMF is
- present, those values are sent immediately upon receiving a PROGRESS message
- regardless if the call has been answered or not.
- * Added functionality to the app_dial F() option to continue with execution
- at the current location when no parameters are provided.
- * Added the 'a' option to app_dial to answer the calling channel before any
- announcements or macros are executed.
- * Modified app_dial to set answertime when the called channel answers even if
- the called channel hangs up during playback of an announcement.
- * Modified app_dial 'r' option to support an additional parameter to play an
- indication tone from indications.conf
- * Added c() option to app_chanspy. This option allows custom DTMF to be set
- to cycle through the next available channel. By default this is still '*'.
- * Added x() option to app_chanspy. This option allows DTMF to be set to
- exit the application.
- * The Voicemail application has been improved to automatically ignore messages
- that only contain silence.
- * If you set maxmsg to 0 in voicemail.conf, Voicemail will consider the
- associated mailbox(es) to be greetings-only.
- * The ChanSpy application now has the 'S' option, which makes the application
- automatically exit once it hits a point where no more channels are available
- to spy on.
- * The ChanSpy application also now has the 'E' option, which spies on a single
- channel and exits when that channel hangs up.
- * The MeetMe application now turns on the DENOISE() function by default, for
- each participant. In our tests, this has significantly decreased background
- noise (especially noisy data centers).
- * Voicemail now permits storage of secrets in a separate file, located in the
- spool directory of each individual user. The control for this is located in
- the "passwordlocation" option in voicemail.conf. Please see the sample
- configuration for more information.
- * The ChanIsAvail application now exposes the returned cause code using a separate
- variable, AVAILCAUSECODE, instead of overwriting the device state in AVAILSTATUS.
- * Added 'd' option to app_followme. This option disables the "Please hold"
- announcement.
- * Added 'y' option to app_record. This option enables a mode where any DTMF digit
- received will terminate recording.
- * Voicemail now supports per mailbox settings for folders when using IMAP storage.
- Previously the folder could only be set per context, but has now been extended
- using the imapfolder option.
- * Voicemail now supports per mailbox settings for nextaftercmd and minsecs.
- * Voicemail now allows the pager date format to be specified separately from the
- email date format.
- * New applications JabberJoin, JabberLeave, and JabberSendGroup have been added
- to allow joining, leaving, and sending text to group chats.
- * MeetMe has a new option 'G' to play an announcement before joining a conference.
- * Page has a new option 'A(x)' which will playback an announcement simultaneously
- to all paged phones (and optionally excluding the caller's one using the new
- option 'n') before the call is bridged.
- * The 'f' option to Dial has been augmented to take an optional argument. If no
- argument is provided, the 'f' option works as it always has. If an argument is
- provided, then the connected party information of all outgoing channels created
- during the Dial will be set to the argument passed to the 'f' option.
- * Dial now inherits the GOSUB_RETVAL from the peer, when the U() option runs a
- Gosub on the peer.
- * The OSP lookup application adds in/outbound network ID, optional security,
- number portability, QoS reporting, destination IP port, custom info and service
- type features.
- * Added new application VMSayName that will play the recorded name of the voicemail
- user if it exists, otherwise will play the mailbox number.
- * Added custom device states to ConfBridge bridges. Use 'confbridge:<name>' to
- retrieve state for a particular bridge, where <name> is the conference name
- * app_directory now allows exiting at any time using the operator or pound key.
- * Voicemail now supports setting a locale per-mailbox.
- * Two new applications are provided for declining counting phrases in multiple
- languages. See the application notes for SayCountedNoun and SayCountedAdj for
- more information.
- * Voicemail now runs the externnotify script when pollmailboxes is activated and
- notices a change.
- * Voicemail now includes rdnis within msgXXXX.txt file.
- * ExternalIVR now supports IPv6 addresses.
- * Added 'D' command to ExternalIVR. Details are available on the Asterisk wiki
- at https://wiki.asterisk.org/wiki/x/oQBB
- * ParkedCall and Park can now specify the parking lot to use.
-
-Dialplan Functions
-------------------
- * SRVQUERY and SRVRESULT functions added. This can be used to query and iterate
- over SRV records associated with a specific service. From the CLI, type
- 'core show function SRVQUERY' and 'core show function SRVRESULT' for more
- details on how these may be used.
- * PITCH_SHIFT dialplan function added. This function can be used to modify the
- pitch of a channel's tx and rx audio streams.
- * Added new dialplan functions CONNECTEDLINE and REDIRECTING which permits
- setting various connected line and redirecting party information.
- * CALLERID and CONNECTEDLINE dialplan functions have been extended to
- support ISDN subaddressing.
- * The CHANNEL() function now supports the "name" and "checkhangup" options.
- * For DAHDI channels, the CHANNEL() dialplan function now allows
- the dialplan to request changes in the configuration of the active
- echo canceller on the channel (if any), for the current call only.
- The syntax is:
-
- exten => s,n,Set(CHANNEL(echocan_mode)=off)
-
- The possible values are:
-
- on - normal mode (the echo canceller is actually reinitialized)
- off - disabled
- fax - FAX/data mode (NLP disabled if possible, otherwise completely
- disabled)
- voice - voice mode (returns from FAX mode, reverting the changes that
- were made when FAX mode was requested)
- * Added new dialplan function MASTER_CHANNEL(), which permits retrieving
- and setting variables on the channel which created the current channel.
- Administrators should take care to avoid naming conflicts, when multiple
- channels are dialled at once, especially when used with the Local channel
- construct (which all could set variables on the master channel). Usage
- of the HASH() dialplan function, with the key set to the name of the slave
- channel, is one approach that will avoid conflicts.
- * Added new dialplan function MUTEAUDIO() for muting inbound and/or outbound
- audio in a channel.
- * func_odbc now allows multiple row results to be retrieved without using
- mode=multirow. If rowlimit is set, then additional rows may be retrieved
- from the same query by using the name of the function which retrieved the
- first row as an argument to ODBC_FETCH().
- * Added JABBER_RECEIVE, which permits receiving XMPP messages from the
- dialplan. This function returns the content of the received message.
- * Added REPLACE, which searches a given variable name for a set of characters,
- then either replaces them with a single character or deletes them.
- * Added PASSTHRU, which literally passes the same argument back as its return
- value. The intent is to be able to use a literal string argument to
- functions that currently require a variable name as an argument.
- * HASH-associated variables now can be inherited across channel creation, by
- prefixing the name of the hash at assignment with the appropriate number of
- underscores, just like variables.
- * GROUP_MATCH_COUNT has been improved to allow regex matching on category
- * CHANNEL(secure_bridge_signaling) and CHANNEL(secure_bridge_media) to set/get
- whether or not channels that are bridged to the current channel will be
- required to have secure signaling and/or media.
- * CHANNEL(secure_signaling) and CHANNEL(secure_media) to get whether or not
- the current channel has secure signaling and/or media.
- * For DAHDI/ISDN channels, the CHANNEL() dialplan function now supports the
- "no_media_path" option.
- Returns "0" if there is a B channel associated with the call.
- Returns "1" if no B channel is associated with the call. The call is either
- on hold or is a call waiting call.
- * Added option to dialplan function CDR(), the 'f' option
- allows for high resolution times for billsec and duration fields.
- * FILE() now supports line-mode and writing.
- * Added FIELDNUM(), which returns the 1-based offset of a field in a list.
- * FRAME_TRACE(), for tracking internal ast_frames on a channel.
-
-Dialplan Variables
-------------------
- * Added DYNAMIC_FEATURENAME which holds the last triggered dynamic feature.
- * Added DYNAMIC_PEERNAME which holds the unique channel name on the other side
- and is set when a dynamic feature is triggered.
- * Added PARKINGLOT which can be used with parkeddynamic feature.conf option
- to dynamically create a new parking lot matching the value this varible is
- set to.
- * Added PARKINGDYNAMIC which represents the template parkinglot defined in
- features.conf that should be the base for dynamic parkinglots.
- * Added PARKINGDYNCONTEXT which tells what context a newly created dynamic
- parkinglot should have.
- * Added PARKINGDYNEXTEN which tells what parking exten a newly created dynamic
- parkinglot should have.
- * Added PARKINGDYNPOS which holds what parking positions a dynamic parkinglot
- should have.
-
-Queue changes
--------------
- * Added "ready" option to QUEUE_MEMBER counting to count free agents whose wrap-up
- timeout has expired.
- * Added 'R' option to app_queue. This option stops moh and indicates ringing
- to the caller when an Agent's phone is ringing. This can be used to indicate
- to the caller that their call is about to be picked up, which is nice when
- one has been on hold for an extened period of time.
- * A new config option, penaltymemberslimit, has been added to queues.conf.
- When set this option will disregard penalty settings when a queue has too
- few members.
- * A new option, 'I' has been added to both app_queue and app_dial.
- By setting this option, Asterisk will not update the caller with
- connected line changes or redirecting party changes when they occur.
- * A 'relative-periodic-announce' option has been added to queues.conf. When
- enabled, this option will cause periodic announce times to be calculated
- from the end of announcements rather than from the beginning.
- * The autopause option in queues.conf can be passed a new value, "all." The
- result is that if a member becomes auto-paused, he will be paused in all
- queues for which he is a member, not just the queue that failed to reach
- the member.
- * Added dialplan function QUEUE_EXISTS to check if a queue exists
- * The queue logger now allows events to optionally propagate to a file,
- even when realtime logging is turned on. Additionally, realtime logging
- supports sending the event arguments to 5 individual fields, although it
- will fallback to the previous data definition, if the new table layout is
- not found.
-
-mISDN channel driver (chan_misdn) changes
-----------------------------------------
- * Added display_connected parameter to misdn.conf to put a display string
- in the CONNECT message containing the connected name and/or number if
- the presentation setting permits it.
- * Added display_setup parameter to misdn.conf to put a display string
- in the SETUP message containing the caller name and/or number if the
- presentation setting permits it.
- * Made misdn.conf parameters localdialplan and cpndialplan take a -1 to
- indicate the dialplan settings are to be obtained from the asterisk
- channel.
- * Made misdn.conf parameter callerid accept the "name" <number> format
- used by the rest of the system.
- * Made use the nationalprefix and internationalprefix misdn.conf
- parameters to prefix any received number from the ISDN link if that
- number has the corresponding Type-Of-Number. NOTE: This includes
- comparing the incoming call's dialed number against the MSN list.
- * Added the following new parameters: unknownprefix, netspecificprefix,
- subscriberprefix, and abbreviatedprefix in misdn.conf to prefix any
- received number from the ISDN link if that number has the corresponding
- Type-Of-Number.
- * Added new dialplan application misdn_command which permits controlling
- the CCBS/CCNR functionality.
- * Added new dialplan function mISDN_CC which permits retrieval of various
- values from an active call completion record.
- * For PTP, you should manually send the COLR of the redirected-to party
- for an incomming redirected call if the incoming call could experience
- further redirects. Just set the REDIRECTING(to-num,i) = ${EXTEN} and
- set the REDIRECTING(to-pres) to the COLR. A call has been redirected
- if the REDIRECTING(from-num) is not empty.
- * For outgoing PTP redirected calls, you now need to use the inhibit(i)
- option on all of the REDIRECTING statements before dialing the
- redirected-to party. You still have to set the REDIRECTING(to-xxx,i)
- and the REDIRECTING(from-xxx,i) values. The PTP call will update the
- redirecting-to presentation (COLR) when it becomes available.
- * Added outgoing_colp parameter to misdn.conf to filter outgoing COLP
- information.
-
-thirdparty mISDN enhancements
------------------------------
-mISDN has been modified by Digium, Inc. to greatly expand facility message
-support to allow:
- * Enhanced COLP support for call diversion and transfer.
- * CCBS/CCNR support.
-
-The latest modified mISDN v1.1.x based version is available at:
-http://svn.digium.com/svn/thirdparty/mISDN/trunk
-http://svn.digium.com/svn/thirdparty/mISDNuser/trunk
-
-Tagged versions of the modified mISDN code are available under:
-http://svn.digium.com/svn/thirdparty/mISDN/tags
-http://svn.digium.com/svn/thirdparty/mISDNuser/tags
-
-libpri channel driver (chan_dahdi) DAHDI changes
--------------------------------------------
- * The channel variable PRIREDIRECTREASON is now just a status variable
- and it is also deprecated. Use the REDIRECTING(reason) dialplan function
- to read and alter the reason.
- * For Q.SIG and ETSI PRI/BRI-PTP, you should manually send the COLR of the
- redirected-to party for an incomming redirected call if the incoming call
- could experience further redirects. Just set the
- REDIRECTING(to-num,i) = CALLERID(dnid) and set the REDIRECTING(to-pres)
- to the COLR. A call has been redirected if the REDIRECTING(count) is not
- zero.
- * For outgoing Q.SIG and ETSI PRI/BRI-PTP redirected calls, you need to
- use the inhibit(i) option on all of the REDIRECTING statements before
- dialing the redirected-to party. You still have to set the
- REDIRECTING(to-xxx,i) and the REDIRECTING(from-xxx,i) values. The call
- will update the redirecting-to presentation (COLR) when it becomes available.
- * Added the ability to ignore calls that are not in a Multiple Subscriber
- Number (MSN) list for PTMP CPE interfaces.
- * Added dynamic range compression support for dahdi channels. It is
- configured via the rxdrc and txdrc parameters in chan_dahdi.conf.
- * Added support for ISDN calling and called subaddress with partial support
- for connected line subaddress.
- * Added support for BRI PTMP NT mode. (Requires latest LibPRI.)
- * Added handling of received HOLD/RETRIEVE messages and the optional ability
- to transfer a held call on disconnect similar to an analog phone.
- * Added CallRerouting/CallDeflection support for Q.SIG, ETSI PTP, ETSI PTMP.
- Will reroute/deflect an outgoing call when receive the message.
- Can use the DAHDISendCallreroutingFacility to send the message for the
- supported switches.
- * Added standard location to add options to chan_dahdi dialing:
- Dial(DAHDI/g1[/extension[/options]])
- Current options:
- K(<keypad_digits>)
- R Reverse charging indication
- * Added Reverse Charging Indication (Collect calls) send/receive option.
- Send reverse charging in SETUP message with the chan_dahdi R dialing option.
- Dial(DAHDI/g1/extension/R)
- Access received reverse charge in SETUP message by: ${CHANNEL(reversecharge)}
- (requires latest LibPRI)
- * Added ability to send/receive keypad digits in the SETUP message.
- Send keypad digits in SETUP message with the chan_dahdi K(<keypad_digits>)
- dialing option. Dial(DAHDI/g1/[extension]/K(<keypad_digits>))
- Access any received keypad digits in SETUP message by: ${CHANNEL(keypad_digits)}
- (requires latest LibPRI)
- * Added ability to send and receive ETSI Explicit Call Transfer (ECT) messages
- to eliminate tromboned calls. A tromboned call goes out an interface and comes
- back into the same interface. Tromboned calls happen because of call routing,
- call deflection, call forwarding, and call transfer.
- * Added the ability to send and receive ETSI Advice-Of-Charge messages.
- * Added the ability to support call waiting calls. (The SETUP has no B channel
- assigned.)
- * Added Malicious Call ID (MCID) event to the AMI call event class.
- * Added Message Waiting Indication (MWI) support for ISDN PTMP endpoints (phones).
-
-Asterisk Manager Interface
---------------------------
- * The Hangup action now accepts a Cause header which may be used to
- set the channel's hangup cause.
- * sslprivatekey option added to manager.conf and http.conf. Adds the ability
- to specify a separate .pem file to hold a private key. By default sslcert
- is used to hold both the public and private key.
- * Options in manager.conf and http.conf with the 'ssl' prefix have been replaced
- for options containing the 'tls' prefix. For example, 'sslenable' is now
- 'tlsenable'. This has been done in effort to keep ssl and tls options consistent
- across all .conf files. All affected sample.conf files have been modified to
- reflect this change. Previous options such as 'sslenable' still work,
- but options with the 'tls' prefix are preferred.
- * Added a MuteAudio AMI action for muting inbound and/or outbound audio
- in a channel. (res_mutestream.so)
- * The configuration file manager.conf now supports a channelvars option, which
- specifies a list of channel variables to include in each channel-oriented
- event.
- * The redirect command now has new parameters ExtraContext, ExtraExtension,
- and ExtraPriority to allow redirecting the second channel to a different
- location than the first.
- * Added new event "JabberStatus" in the Jabber module to monitor buddies
- status.
- * Added a "MixMonitorMute" AMI action for muting inbound and/or outbound audio
- in a MixMonitor recording.
- * The 'iax2 show peers' output is now similar to the expected output of
- 'sip show peers'.
- * Added Advice-Of-Charge events (AOC-S, AOC-D, and AOC-E) in the new
- aoc event class.
- * Added Advice-Of-Charge manager action, AOCMessage, for generating AOC-D and
- AOC-E messages on a channel.
- * A DBGetComplete event now follows a DBGetResponse, to make the DBGet action
- conform more closely to similar events.
- * Added a new eventfilter option per user to allow whitelisting and blacklisting
- of events.
- * Added optional parkinglot variable for park command.
- * Added ConnectedLineNum and ConnectedLineName headers to AMI events/responses
- if CallerIDNum and CallerIDName headers are also present.
-
-Channel Event Logging
----------------------
- * A new interface, CEL, is introduced here. CEL logs single events, much like
- the AMI, but it differs from the AMI in that it logs to db backends much
- like CDR does; is based on the event subsystem introduced by Russell, and
- can share in all its benefits; allows multiple backends to operate like CDR;
- is specialized to event data that would be of concern to billing systems,
- like CDR. Backends for logging and accounting calls have been produced,
- but a new CDR backend is still in development.
-
-CDR
----
- * 'linkedid' and 'peeraccount' are new CDR fields available to CDR aficionados.
- linkedid is based on uniqueID, but spreads to other channels as transfers, dials,
- etc are performed. Thus the pieces of CDR can be grouped into multilegged sets.
- * Multiple files and formats can now be specified in cdr_custom.conf.
- * cdr_syslog has been added which allows CDRs to be written directly to syslog.
- See configs/cdr_syslog.conf.sample for more information.
- * A 'sequence' field has been added to CDRs which can be combined with
- linkedid or uniqueid to uniquely identify a CDR.
- * Handling of billsec and duration field has changed. If your table definition
- specifies those fields as float,double or similar they will now be logged with
- microsecond accuracy instead of a whole integer.
-
-Calendaring for Asterisk
-------------------------
- * A new set of modules were added supporting calendar integration with Asterisk.
- Dialplan functions for reading from and writing to calendars are included,
- as well as the ability to execute dialplan logic upon calendar event notifications.
- iCalendar, CalDAV, and Exchange Server calendars (via res_calendar_exchange for
- Exchange Server 2003 with no write or attendee support, and res_calendar_ews for
- Exchange Server 2007+ with full write and attendee support) are supported (Exchange
- 2003 support does not support forms-based authentication).
-
-Call Completion Supplementary Services for Asterisk
----------------------------------------------------
- * Call completion support has been added for SIP, DAHDI/ISDN, and DAHDI/analog.
- DAHDI/ISDN supports call completion for the following switch types:
- EuroIsdn(ETSI) for PTP and PTMP modes, and Qsig.
- See https://wiki.asterisk.org/wiki/x/2ABQ for details.
-
-Multicast RTP Support
----------------------
- * A new RTP engine and channel driver have been added which supports Multicast RTP.
- The channel driver can be used with the Page application to perform multicast RTP
- paging. The dial string format is: MulticastRTP/<type>/<destination>/<control address>
- Type can be either basic or linksys.
- Destination is the IP address and port for the RTP packets.
- Control address is specific to the linksys type and is used for sending the control
- packets unique to them.
-
-Security Events Framework
--------------------------
- * Asterisk has a new C API for reporting security events. The module res_security_log
- sends these events to the "security" logger level. Currently, AMI is the only
- Asterisk component that reports security events. However, SIP support will be
- coming soon. For more information on the security events framework, see the
- "Asterisk Security Framework" section of the Asterisk wiki at
- https://wiki.asterisk.org/wiki/x/wgBQ
- * SIP support was added in Asterisk 10
- * This API now supports IPv6 addresses
-
-Fax
----
- * A technology independent fax frontend (res_fax) has been added to Asterisk.
- * A spandsp based fax backend (res_fax_spandsp) has been added.
- * The app_fax module has been deprecated in favor of the res_fax module and
- the new res_fax_spandsp backend.
- * The SendFAX and ReceiveFAX applications now send their log messages to a
- 'fax' logger level, instead of to the generic logger levels. To see these
- messages, the system's logger.conf file will need to direct the 'fax' logger
- level to one or more destinations; the logger.conf.sample file includes an
- example of how to do this. Note that if the 'fax' logger level is *not*
- directed to at least one destination, log messages generated by these
- applications will be lost, and that if the 'fax' logger level is directed to
- the console, the 'core set verbose' and 'core set debug' CLI commands will
- have no effect on whether the messages appear on the console or not.
-
-Miscellaneous
--------------
- * The transmit_silence_during_record option in asterisk.conf.sample has been removed.
- Now, in order to enable transmitting silence during record the transmit_silence
- option should be used. transmit_silence_during_record remains a valid option, but
- defaults to the behavior of the transmit_silence option.
- * Addition of the Unit Test Framework API for managing registration and execution
- of unit tests with the purpose of verifying the operation of C functions.
- * SendText is now implemented in chan_gtalk and chan_jingle. It will simply send
- XMPP text messages to the remote JID.
- * Modules.conf has a new option - "require" - that marks a module as critical for
- the execution of Asterisk.
- If one of the required modules fail to load, Asterisk will exit with a return
- code set to 2.
- * An 'X' option has been added to the asterisk application which enables #exec support.
- This allows #exec to be used in asterisk.conf.
- * jabber.conf supports a new option auth_policy that toggles auto user registration.
- * A new lockconfdir option has been added to asterisk.conf to protect the
- configuration directory (/etc/asterisk by default) during reloads.
- * The parkeddynamic option has been added to features.conf to enable the creation
- of dynamic parkinglots.
- * chan_dahdi now supports reporting alarms over AMI either by channel or span via
- the reportalarms config option.
- * chan_dahdi supports dialing configuring and dialing by device file name.
- DAHDI/span-name!local!1 will use /dev/dahdi/span-name/local/1 . Likewise
- it may appear in chan_dahdi.conf as 'channel => span-name!local!1'.
- * A new options for chan_dahdi.conf: 'ignore_failed_channels'. Boolean.
- False by default. If set, chan_dahdi will ignore failed 'channel' entries.
- Handy for the above name-based syntax as it does not depend on
- initialization order.
- * The Realtime dialplan switch now caches entries for 1 second. This provides a
- significant increase in performance (about 3X) for installations using this switchtype.
- * Distributed devicestate now supports the use of the XMPP protocol, in addition to
- AIS. For more information, please see the Distributed Device State section of the
- Asterisk wiki at https://wiki.asterisk.org/wiki/x/jw4iAQ
- * The addition of G.719 pass-through support.
- * Added support for 16khz Speex audio. This can be enabled by using 'allow=speex16'
- during device configuration.
- * The UNISTIM channel driver (chan_unistim) has been updated to support devices that
- have less than 3 lines on the LCD.
- * Realtime now supports database failover. See the sample extconfig.conf for details.
- * The addition of improved translation path building for wideband codecs. Sample
- rate changes during translation are now avoided unless absolutely necessary.
- * The addition of the res_stun_monitor module for monitoring and reacting to network
- changes while behind a NAT.
- * DTMF: Normal and Reverse Twist acceptance values can be set in dsp.conf.
- DTMF Valid/Invalid number of hits/misses can be set in dsp.conf.
- These allow support for any Administration. Default is AT&T values.
-
-CLI Changes
------------
- * The 'core set debug' and 'core set verbose' commands, in previous versions, could
- optionally accept a filename, to apply the setting only to the code generated from
- that source file when Asterisk was built. However, there are some modules in Asterisk
- that are composed of multiple source files, so this did not result in the behavior
- that users expected. In this version, 'core set debug' and 'core set verbose'
- can optionally accept *module* names instead (with or without the .so extension),
- which applies the setting to the entire module specified, regardless of which source
- files it was built from.
- * New 'manager show settings' command showing the current settings loaded from
- manager.conf.
- * Added 'all' keyword to the CLI command "channel request hangup" so that you can send
- the channel hangup request to all channels.
- * Added a "core reload" CLI command that executes a global reload of Asterisk.
-
-------------------------------------------------------------------------------
---- Functionality changes from Asterisk 1.6.1 to Asterisk 1.6.2 -------------
-------------------------------------------------------------------------------
-
-SIP Changes
------------
- * Added support for SUBSCRIBE/NOTIFY with dialog-info based call pickups.
- Snom phones use this for call pickup of extensions that the phone is
- subscribed to.
- * Added support for setting the domain in the URI for caller of an
- outbound call by using the SIPFROMDOMAIN channel variable.
- * Added a new configuration option "remotesecret" for authentication to
- remote services. For backwards compatibility, "secret" still has the
- same function as before, but now you can configure both a remote secret and a
- local secret for mutual authentication.
- * If the channel variable ATTENDED_TRANSFER_COMPLETE_SOUND is set,
- the sound will be played to the target of an attended transfer
- * Added two new configuration options, "qualifygap" and "qualifypeers", which allow
- finer control over how many peers Asterisk will qualify and the gap between them
- when all peers need to be qualified at the same time.
- * Added a new 'ignoresdpversion' option to sip.conf. When this is enabled
- (either globally or for a specific peer), chan_sip will treat any SDP data
- it receives as new data and update the media stream accordingly. By
- default, Asterisk will only modify the media stream if the SDP session
- version received is different from the current SDP session version. This
- option is required to interoperate with devices that have non-standard SDP
- session version implementations (observed with Microsoft OCS). This option
- is disabled by default.
- * The parsing of register => lines in sip.conf has been modified to allow a port
- to be present in the "user" portion. Please see the sip.conf.sample file for more
- information
- * Added support for subscribing to MWI on a remote server and making the status available
- as a mailbox. Please see the sip.conf.sample file for more information.
- * Added a function to remove SIP headers added in the dialplan before the
- first INVITE is generated - SIPRemoveHeader()
- * Channel variables set with setvar= in a device configuration is now
- set both for inbound and outbound calls.
- * Added support for ITU G.722.1 and G.722.1C (Siren7 and Siren14) media streams.
-
-IAX2 changes
-------------
- * Added immediate option to iax.conf
- * Added forceencryption option to iax.conf
- * Added Encryption and Trunk status to manager command "iaxpeers"
-
-Skinny Changes
---------------
- * The configuration file now holds separate sections for devices and lines.
- Please have a look at configs/skinny.conf.sample and change your skinny.conf
- accordingly.
-
-DAHDI Changes
--------------
- * chan_dahdi now supports MFC/R2 signaling when Asterisk is compiled with
- support for LibOpenR2. http://www.libopenr2.org/
- * The UK option waitfordialtone has been added for use with BT analog
- lines.
- * Added a 'faxbuffers' configuration option to chan_dahdi.conf. This option
- is used in conjunction with the 'faxdetect' configuration option. When
- 'faxbuffers' is used and fax tones are detected, the channel will dynamically
- switch to the configured faxbuffers policy. For example, to use 6 buffers
- and a 'full' buffer policy for a fax transmission, add:
- faxbuffers=>6,full
- The faxbuffers configuration will be in affect until the call is torn down.
- * Added service message support for 4ESS/5ESS switches.
-
-Dialplan Functions
-------------------
- * For DAHDI channels, the CHANNEL() dialplan function now
- supports changing the channel's buffer policy (for the current
- call only), using this syntax:
-
- exten => s,n,Set(CHANNEL(buffers)=6,full)
-
- This would change the channel to the 'full' buffer policy and
- 6 (six) buffers. Possible options for this setting are the same
- as those in chan_dahdi.conf.
- * Added a new dialplan function, CURLOPT, which permits setting various
- options that may be useful with the CURL dialplan function, such as
- cookies, proxies, connection timeouts, passwords, etc.
- * Permit the syntax and synopsis fields of the corresponding dialplan
- functions to be individually set from func_odbc.conf.
- * Added debugging CLI functions to func_odbc, 'odbc read' and 'odbc write'.
- * func_odbc now may specify an insert query to execute, when the write query
- affects 0 rows (usually indicating that no such row exists).
- * Added a new dialplan function, LISTFILTER, which permits removing elements
- from a set list, by name. Uses the same general syntax as the existing CUT
- and FIELDQTY dialplan functions, which also manage lists.
- * Added REALTIME_FIELD and REALTIME_HASH, which should aid users in better
- obtaining realtime data from the dialplan.
- * Added LOCAL_PEEK, which allows access to variables in any stack frame within
- a subroutine when using the GoSub() and Return() applications.
- * Added AUDIOHOOK_INHERIT. For information on its use, please see the output
- of "core show function AUDIOHOOK_INHERIT" from the CLI
- * Added AES_ENCRYPT. For information on its use, please see the output
- of "core show function AES_ENCRYPT" from the CLI
- * Added AES_DECRYPT. For information on its use, please see the output
- of "core show function AES_DECRYPT" from the CLI
- * func_odbc now supports database transactions across multiple queries.
-
-Applications
-------------
- * Scheduled meetme conferences may now have their end times extended by
- using MeetMeAdmin.
- * app_authenticate now gives the ability to select a prompt other than
- the default.
- * app_directory now pays attention to the searchcontexts setting in
- voicemail.conf and will look through all contexts, if no context is
- specified in the initial argument.
- * A new application, Originate, has been introduced, that allows asynchronous
- call origination from the dialplan.
- * Voicemail now permits setting the emailsubject and emailbody per mailbox,
- in addition to the setting in the "general" context.
- * Added ConfBridge dialplan application which does conference bridges without
- DAHDI. For information on its use, please see the output of
- "core show application ConfBridge" from the CLI.
-
-Miscellaneous
--------------
- * The Asterisk CLI has a new command, "channel redirect", which is similar in
- operation to the AMI Redirect action.
- * extensions.conf now allows you to use keyword "same" to define an extension
- without actually specifying an extension. It uses exactly the same pattern
- as previously used on the last "exten" line. For example:
- exten => 123,1,NoOp(something)
- same => n,SomethingElse()
- * musiconhold.conf classes of type 'files' can now use relative directory paths,
- which are interpreted as relative to the astvarlibdir setting in asterisk.conf.
- * All deprecated CLI commands are removed from the sourcecode. They are now handled
- by the new clialiases module. See cli_aliases.conf.sample file.
- * Times within timespecs are now accurate down to the minute. This is a change
- from historical Asterisk, which only provided timespecs rounded to the nearest
- even (read: evenly divisible by 2) minute mark.
- * The realtime switch now supports an option flag, 'p', which disables searches for
- pattern matches.
- * In addition to a time range and date range, timespecs now accept a 5th optional
- argument, timezone. This allows you to perform time checks on alternate
- timezones, especially if those daylight savings time ranges vary from your
- machine's native timezone. See GotoIfTime, ExecIfTime, IFTIME(), and timed
- includes.
- * The contrib/scripts/ directory now has a script called sip_nat_settings that will
- give you the correct output for an asterisk box behind nat. It will give you the
- externhost and localnet settings.
- * The Asterisk core now supports ITU G.722.1 and G.722.1C media streams, and
- can connect calls in passthrough mode, as well as record and play back files.
- * Successful and unsuccessful call pickup can now be alerted through sounds, by
- using pickupsound and pickupfailsound in features.conf.
- * ASTVARRUNDIR is now set to $(localstatedir)/run/asterisk by default.
- This means the asterisk pid file will now be in /var/run/asterisk/asterisk.pid on LINUX
- instead of the /var/run/asterisk.pid where it used to be. This will make
- installs as non-root easier to manage.
-
-CDR
----
-
-* The cdr.conf file must exist and be correctly programmed in order for CDR records to
- be written; they will no longer be explicitly written.
-
-Asterisk Manager Interface
---------------------------
- * When using the AMI over HTTP, you can now include a 'SuppressEvents' header (with
- a non-empty value) in your request. If you do this, any pending AMI events will
- *not* be included in the response to your request as they would normally, but
- will be left in the event queue for the next request you make to retrieve. For
- some applications, this will allow you to guarantee that you will only see
- events in responses to 'WaitEvent' actions, and can better know when to expect them.
- To know whether the Asterisk server supports this header or not, your client can
- inspect the first response back from the server to see if it includes this header:
-
- Pragma: SuppressEvents
-
- If this is included, the server supports event suppression.
-
- * Added 4 new Actions to list skinny device(s) and line(s)
- SKINNYdevices
- SKINNYshowdevice
- SKINNYlines
- SKINNYshowline
-
-LDAP Schema File Additions
---------------------------
- * Added AsteriskDialplan, AsteriskAccount and AsteriskMailbox objectClasses
- to allow standalone dialplan, account and mailbox entries (STRUCTURAL)
- * Added new Fields:
- - AstAccountLanguage, AstAccountTransport, AstAccountPromiscRedir,
- - AstAccountAccountCode, AstAccountSetVar, AstAccountAllowOverlap,
- - AstAccountVideoSupport, AstAccountIgnoreSDPVersion
- * Removed redundant IPaddr (there's already IPAddress)
- - Gives more configuration Flags for SIP-Users available (tested)
- - Allows to create Asterisk Attributes in defined Asterisk ObjectClasses
- without extensibleObject (which really should be the last resort); gives
- also additional possibilities for LDAP-filter
-
-------------------------------------------------------------------------------
---- Functionality changes from Asterisk 1.6.0 to Asterisk 1.6.1 -------------
-------------------------------------------------------------------------------
-
-Device State Handling
----------------------
- * The event infrastructure in Asterisk got another big update to help support
- distributed events. It currently supports distributed device state and
- distributed Voicemail MWI (Message Waiting Indication). A new module has
- been merged, res_ais, which facilitates communicating events between servers.
- It uses the SAForum AIS (Service Availability Forum Application Interface
- Specification) CLM (Cluster Management) and EVT (Event) services to maintain
- a cluster of Asterisk servers, and to share events between them. For more
- information on setting this up, refer to the Distributed Device State section
- of the Asterisk wiki at https://wiki.asterisk.org/wiki/x/jw4iAQ
-
-Dialplan Functions
-------------------
- * Added a new dialplan function, AST_CONFIG(), which allows you to access
- variables from an Asterisk configuration file.
- * The JACK_HOOK function now has a c() option to supply a custom client name.
- * Added two new dialplan functions from libspeex for audio gain control and
- denoise, AGC() and DENOISE(). Both functions can be applied to the tx and
- rx directions of a channel from the dialplan.
- * The SMDI_MSG_RETRIEVE function now has the ability to search for SMDI messages
- based on other parameters. The default is still to search based on the
- forwarding station ID. However, there are new options that allow you to search
- based on the message desk terminal ID, or the message desk number.
- * TIMEOUT() has been modified to be accurate down to the millisecond.
- * ENUM*() functions now include the following new options:
- - 'u' returns the full URI and does not strip off the URI-scheme.
- - 's' triggers ISN specific rewriting
- - 'i' looks for branches into an Infrastructure ENUM tree
- - 'd' for a direct DNS lookup without any flipping of digits.
- * TXCIDNAME() has a new zone-suffix parameter (which defaults to 'e164.arpa')
- * CHANNEL() now has options for the maximum, minimum, and standard or normal
- deviation of jitter, rtt, and loss for a call using chan_sip.
-
-DAHDI channel driver (chan_dahdi) Changes
-----------------------------------------
- * Channels can now be configured using named sections in chan_dahdi.conf, just
- like other channel drivers, including the use of templates.
- * The default for pridialplan has changed from 'national' to 'unknown'.
-
-PBX Changes
------------
- * It is now possible to specify a pattern match as a hint. Once a phone subscribes
- to something that matches the pattern a hint will be created using the contents
- and variables evaluated.
- * Dialplan matching has been extended to allow an extension to return to the
- PBX core to wait for more digits. This is done by using the new dialplan
- application called "Incomplete". This will permit a whole new level of
- extension control, by giving the administrator more control over early
- matches employing one of the short-circuit pattern match operators. Note
- that custom applications can trigger this same behavior by returning the
- special value AST_PBX_INCOMPLETE.
-
-Application Changes
--------------------
- * Directory now permits both first and last names to be matched at the same
- time. In addition, the number of digits to enter of the name can be set in
- the arguments to Directory; previously, you could enter only 3, regardless
- of how many names are in your company. For large companies, this should be
- quite helpful.
- * Voicemail now permits a mailbox setting to wrap around from first to last
- messages, if the "messagewrap" option is set to a true value.
- * Voicemail now permits an external script to be run, for password validation.
- The script should output "VALID" or "INVALID" on stdout, depending upon the
- wish to validate or invalidate the password given. Arguments are:
- "mailbox" "context" "oldpass" "newpass". See the sample voicemail.conf for
- more details
- * Dial has a new option: F(context^extension^pri), which permits a callee to
- continue in the dialplan, at the specified label, if the caller hangs up.
- * ChanSpy and ExtenSpy have a new option, 's' which suppresses speaking the
- technology name (e.g. SIP, IAX, etc) of the channel being spied on.
- * The Jack application now has a c() option to supply a custom client name.
- * Chanspy has a new option, 'B', which can be used to "barge" on a call. This is
- like the pre-existing whisper mode, except that the spy can also talk to the
- participant on the bridged channel as well.
- * Chanspy has a new option, 'n', which will allow for the spied-on party's name
- to be spoken instead of the channel name or number. For more information on the
- use of this option, issue the command "core show application ChanSpy" from the
- Asterisk CLI.
- * Chanspy has a new option, 'd', which allows the spy to use DTMF to swap between
- spy modes. Use of this feature overrides the typical use of numeric DTMF. In other
- words, if using the 'd' option, it is not possible to enter a number to append to
- the first argument to Chanspy(). Pressing 4 will change to spy mode, pressing 5 will
- change to whisper mode, and pressing 6 will change to barge mode.
- * ExternalIVR now takes several options that affect the way it performs, as
- well as having several new commands. Please see the External IVR page on the Asterisk
- wiki for complete documentation: https://wiki.asterisk.org/wiki/x/oQBB
- * Added ability to communicate over a TCP socket instead of forking a child process for the
- ExternalIVR application.
- * ChanIsAvail has a new option, 'a', which will return all available channels instead
- of just the first one if you give the function more then one channel to check.
- * PrivacyManager now takes an option where you can specify a context where the
- given number will be matched. This way you have more control over who is allowed
- and it stops the people who blindly enter 10 digits.
- * ForkCDR has new options: 'a' updates the answer time on the new CDR; 'A' locks
- answer times, disposition, on orig CDR against updates; 'D' Copies the disposition
- from the orig CDR to the new CDR after reset; 'e' sets the 'end' time on the
- original CDR; 'R' prevents the new CDR from being reset; 's(var=val)' adds/changes
- the 'var' variable on the original CDR; 'T' forces ast_cdr_end(), ast_cdr_answer(),
- obey the LOCKED flag on cdr's in the chain, and also the ast_cdr_setvar() func.
- * The Dial() application no longer copies the language used by the caller to the callee's
- channel. If you desire for the caller's channel's language to be used for file playback
- to the callee, then the file specified may be prepended with "${CHANNEL(language)}/" .
- * SendImage() no longer hangs up the channel on error; instead, it sets the
- status variable SENDIMAGESTATUS to one of 'SUCCESS', 'FAILURE', or
- 'UNSUPPORTED'. This change makes SendImage() more consistent with other
- applications.
- * Park has a new option, 's', which silences the announcement of the parking space number.
- * A non-numeric, zero, or negative timeout specified to Dial() will now be interpreted as
- invalid input and will be assumed to mean that no timeout is desired.
-
-SIP Changes
------------
- * Added DNS manager support to registrations for peers referencing peer entries.
- DNS manager runs in the background which allows DNS lookups to be run asynchronously
- as well as periodically updating the IP address. These properties allow for
- better performance as well as recovery in the event of an IP change.
- * Performance improvements via using hash tables (astobj2) and doubly-linked lists to improve
- load/reload of large numbers of peers/users by ~40x (for large lists of peers).
- These changes also provide performance improvements for call setup and tear down.
- * Added ability to specify registration expiry time on a per registration basis in
- the register line.
- * Added support for T140 RED - redundancy in T.140 to prevent text loss due to
- lost packets.
- * Added t38pt_usertpsource option. See sip.conf.sample for details.
- * Added SIPnotify AMI command, for sending arbitrary SIP notify commands.
- * 'sip show peers' and 'sip show users' display their entries sorted in
- alphabetical order, as opposed to the order they were in, in the config
- file or database.
- * Videosupport now supports an additional option, "always", which always sets
- up video RTP ports, even on clients that don't support it. This helps with
- callfiles and certain transfers to ensure that if two video phones are
- connected, they will always share video feeds.
-
-IAX Changes
------------
- * Existing DNS manager lookups extended to check for SRV records.
- * IAX2 encryption support has been improved to support periodic key rotation
- within a call for enhanced security. The option "keyrotate" has been
- provided to disable this functionality to preserve backwards compatibility
- with older versions of IAX2 that do not support key rotation.
-
-CLI Changes
------------
- * New CLI command, "data get <path> [<search> [<filter>]]" which retrieves the
- data tree based on the given <path>.
- * New CLI command "data show providers" that will display all the registered
- callbacks.
- * New CLI command, "config reload <file.conf>" which reloads any module that
- references that particular configuration file. Also added "config list"
- which shows which configuration files are in use.
- * New CLI commands, "pri show version" and "ss7 show version" that will
- display which version of libpri and libss7 are being used, respectively.
- A new API call was added so trunk will now have to be compiled against
- a versions of libpri and libss7 that have them or it will not know that
- these libraries exist.
- * The commands "core show globals", "core set global" and "core set chanvar" has
- been deprecated in favor of the more semantically correct "dialplan show globals",
- "dialplan set chanvar" and "dialplan set global".
- * New CLI command "dialplan show chanvar" to list all variables associated
- with a given channel.
-
-DNS manager changes
--------------------
- * Addresses managed by DNS manager now can check to see if there is a DNS
- SRV record for a given domain and will use that hostname/port if present.
-
-AMI - The manager (TCP/TLS/HTTP)
---------------------------------
- * The Status command now takes an optional list of variables to display
- along with channel status.
- * The QueueEntry event now also includes the channel's uniqueid
-
-ODBC Changes
-------------
- * res_odbc no longer has a limit of 1023 total possible unshared connections,
- as some people were running into this limit. This limit has been increased
- to 4.2 billion.
-
-Queue changes
--------------
- * The TRANSFER queue log entry now includes the the caller's original
- position in the transferred-from queue.
- * A new configuration option, "timeoutpriority" has been added. Please see the section labeled
- "QUEUE TIMING OPTIONS" in configs/queues.conf.sample for a detailed explanation of the option
- as well as an explanation about timeout options in general
- * Added a new option - C - for forcing the "answered elsewhere" flag on
- cancellation of calls in to members of the queue. This is to avoid the
- call to a member of a queue having the call listed as a "missed call".
-
-Realtime changes
-----------------
- * Several (ODBC, Postgres, MySQL, SQLite) realtime drivers have been given
- adaptive capabilities. What this means in practical terms is that if your
- realtime table lacks critical fields, Asterisk will now emit warnings to
- that effect. Also, some of the realtime drivers have the ability (if
- configured) to automatically add those columns to the table with the
- correct type and length.
-
-Miscellaneous
--------------
- * The channel variable ATTENDED_TRANSFER_COMPLETE_SOUND can now be set using
- the 'setvar' option to cause a given audio file to be played upon completion
- of an attended transfer. Currently it works for DAHDI, IAX2, SIP, and
- Skinny channels only.
- * You can now compile Asterisk against the Hoard Memory Allocator, see the
- Hoard page on the Asterisk wiki for more information:
- https://wiki.asterisk.org/wiki/x/pQBB
- * Config file variables may now be appended to, by using the '+=' append
- operator. This is most helpful when working with long SQL queries in
- func_odbc.conf, as the queries no longer need to be specified on a single
- line.
- * CDR config file, cdr.conf, has an added option, "initiatedseconds",
- which will add a second to the billsec when the ending
- time is set, if the number in the microseconds field of the end time is
- greater than the number of microseconds in the answer time. This allows
- users to count the 'initiated' seconds in their billing records.
-
-------------------------------------------------------------------------------
---- Functionality changes from Asterisk 1.4.X to Asterisk 1.6.0 -------------
-------------------------------------------------------------------------------
-
-AMI - The manager (TCP/TLS/HTTP)
---------------------------------
- * Manager has undergone a lot of changes, all of them documented
- on the Asterisk wiki at https://wiki.asterisk.org/wiki/x/tQBB
- * Manager version has changed to 1.1
- * Added a new action 'CoreShowChannels' to list currently defined channels
- and some information about them.
- * Added a new action 'SIPshowregistry' to list SIP registrations.
- * Added TLS support for the manager interface and HTTP server
- * Added the URI redirect option for the built-in HTTP server
- * The output of CallerID in Manager events is now more consistent.
- CallerIDNum is used for number and CallerIDName for name.
- * Enable https support for builtin web server.
- See configs/http.conf.sample for details.
- * Added a new action, GetConfigJSON, which can return the contents of an
- Asterisk configuration file in JSON format. This is intended to help
- improve the performance of AJAX applications using the manager interface
- over HTTP.
- * SIP and IAX manager events now use "ChannelType" in all cases where we
- indicate channel driver. Previously, we used a mixture of "Channel"
- and "ChannelDriver" headers.
- * Added a "Bridge" action which allows you to bridge any two channels that
- are currently active on the system.
- * Added a "ListAllVoicemailUsers" action that allows you to get a list of all
- the voicemail users setup.
- * Added 'DBDel' and 'DBDelTree' manager commands.
- * cdr_manager now reports events via the "cdr" level, separating it from
- the very verbose "call" level.
- * Manager users are now stored in memory. If you change the manager account
- list (delete or add accounts) you need to reload manager.
- * Added Masquerade manager event for when a masquerade happens between
- two channels.
- * Added "manager reload" command for the CLI
- * Lots of commands that only provided information are now allowed under the
- Reporting privilege, instead of only under Call or System.
- * The IAX* commands now require either System or Reporting privilege, to
- mirror the privileges of the SIP* commands.
- * Added ability to retrieve list of categories in a config file.
- * Added ability to retrieve the content of a particular category.
- * Added ability to empty a context.
- * Created new action to create a new file.
- * Updated delete action to allow deletion by line number with respect to category.
- * Added new action insert to add new variable to category at specified line.
- * Updated action newcat to allow new category to be inserted in file above another
- existing category.
- * Added new event "JitterBufStats" in the IAX2 channel
- * Originate now requires the Originate privilege and, if you want to call out
- to a subshell, it requires the System privilege, as well. This was done to
- enhance manager security.
- * Originate now accepts codec settings with "Codecs: alaw, ulaw, h264"
- * New command: Atxfer. See https://wiki.asterisk.org/wiki/x/uABB for more details
- or manager show command Atxfer from the CLI
- * New command: IAXregistry. See https://wiki.asterisk.org/wiki/x/uABB for more
- details or manager show command IAXregistry from the CLI
-
-Dialplan functions
-------------------
- * Added the DEVICE_STATE() dialplan function which allows retrieving any device
- state in the dialplan, as well as creating custom device states that are
- controllable from the dialplan.
- * Extend CALLERID() function with "pres" and "ton" parameters to
- fetch string representation of calling number presentation indicator
- and numeric representation of type of calling number value.
- * MailboxExists converted to dialplan function
- * A new option to Dial() for telling IP phones not to count the call
- as "missed" when dial times out and cancels.
- * Added LOCK(), TRYLOCK(), and UNLOCK(), which provide a single level dialplan
- mutex. No deadlocks are possible, as LOCK() only allows a single lock to be
- held for any given channel. Also, locks are automatically freed when a
- channel is hung up.
- * Added HINT() dialplan function that allows retrieving hint information.
- Hints are mappings between extensions and devices for the sake of
- determining the state of an extension. This function can retrieve the list
- of devices or the name associated with a hint.
- * Added EXTENSION_STATE() dialplan function which allows retrieving the state
- of any extension.
- * Added SYSINFO() dialplan function which allows retrieval of system information
- * Added a new dialplan function, DIALPLAN_EXISTS(), which allows you to check for
- the existence of a dialplan target.
- * Added two new dialplan functions, TOUPPER and TOLOWER, which convert a string to
- upper and lower case, respectively.
- * When bridging, Asterisk sets the BRIDGEPVTCALLID to the channel drivers unique
- ID for the call (not the Asterisk call ID or unique ID), provided that the
- channel driver supports this. For SIP, you get the SIP call-ID for the
- bridged channel which you can store in the CDR with a custom field.
-
-CLI Changes
------------
- * Added CLI permissions, config file: cli_permissions.conf
- default is to allow all commands for every local user/group.
- Also this new feature added three new CLI commands:
- - cli check permissions {<username>|@<groupname>|<username>@<groupname>} [<command>]
- - cli reload permissions
- - cli show permissions
- * New CLI command "core show hint" (usage: core show hint <exten>)
- * New CLI command "core show settings"
- * Added 'core show channels count' CLI command.
- * Added the ability to set the core debug and verbose values on a per-file basis.
- * Added 'queue pause member' and 'queue unpause member' CLI commands
- * Ability to set process limits ("ulimit") without restarting Asterisk
- * Enhanced "agi debug" to print the channel name as a prefix to the debug
- output to make debugging on busy systems much easier.
- * New CLI commands "dialplan set extenpatternmatching true/false"
- * New CLI command: "core set chanvar" to set a channel variable from the CLI.
- * Added an easy way to execute Asterisk CLI commands at startup. Any commands
- listed in the startup_commands section of cli.conf will get executed.
- * Added a CLI command, "devstate change", which allows you to set custom device
- states from the func_devstate module that provides the DEVICE_STATE() function
- and handling of the "Custom:" devices.
- * New CLI command: "sip show sched" which shows all ast_sched entries for sip,
- sorted into the different possible callbacks, with the number of entries
- currently scheduled for each. Gives you a feel for how busy the sip channel
- driver is.
- * Added 'skinny show lines verbose' CLI command. This will show the subs for every channel.
- * Cleanup another bunch of CLI commands. Now all modules follow the same schema.
- (Done by lmadsen, junky and mvanbaak during the devcon 2008)
-
-SIP changes
------------
- * Added a new 'faxdetect=yes|no' configuration option to sip.conf. When this
- option is enabled, Asterisk will watch for a CNG tone in the incoming audio
- for a received call. If it is detected, the channel will jump to the
- 'fax' extension in the dialplan.
- * The default SIP useragent= identifier now includes the Asterisk version
- * A new option, match_auth_username in sip.conf changes the matching of incoming requests.
- If set, and the incoming request carries authentication info,
- the username to match in the users list is taken from the Digest header
- rather than from the From: field. This feature is considered experimental.
- * The "musiconhold" and "musicclass" settings in sip.conf are now removed,
- since they where replaced by "mohsuggest" and "mohinterpret" in version 1.4
- * The "localmask" setting was removed in version 1.2 and the reminder about it
- being removed is now also removed.
- * A new option "busylevel" for setting a level of calls where asterisk reports
- a device as busy, to separate it from call-limit. This value is also added
- to the SIP_PEER dialplan function.
- * A new realtime family called "sipregs" is now supported to store SIP registration
- data. If this family is defined, "sippeers" will be used for configuration and
- "sipregs" for registrations. If it's not defined, "sippeers" will be used for
- registration data, as before.
- * The SIPPEER function have new options for port address, call and pickup groups
- * Added support for T.140 realtime text in SIP/RTP
- * The "checkmwi" option has been removed from sip.conf, as it is no longer
- required due to the restructuring of how MWI is handled. See the descriptions
- in this file of the "pollmailboxes" and "pollfreq" options to voicemail.conf
- for more information.
- * Added rtpdest option to CHANNEL() dialplan function.
- * Added SIPREFERRINGCONTEXT and SIPREFERREDBYHDR variables which are set when a transfer takes place.
- * SIP now adds a header to the CANCEL if the call was answered by another phone
- in the same dial command, or if the new c option in dial() is used.
- * The new default is that 100 Trying is not sent on REGISTER attempts as the RFC specifically
- states it is not needed. For phones, however, that do require it the "registertrying" option
- has been added so it can be enabled.
- * A new option called "callcounter" (global/peer/user level) enables call counters needed
- for better status reports needed for queues and SIP subscriptions. (Call-Limit was previously
- used to enable this functionality).
- * New settings for timer T1 and timer B on a global level or per device. This makes it
- possible to force timeout faster on non-responsive SIP servers. These settings are
- considered advanced, so don't use them unless you have a problem.
- * Added a dial string option to be able to set the To: header in an INVITE to any
- SIP uri.
- * Added a new global and per-peer option, qualifyfreq, which allows you to configure
- the qualify frequency.
- * Added SIP Session Timers support (RFC 4028). This prevents stuck SIP sessions that
- were not properly torn down due to network or endpoint failures during an established
- SIP session.
- * Added experimental TCP and TLS support for SIP. See https://wiki.asterisk.org/wiki/x/ygBB
- and configs/sip.conf.sample for more information on how it is used.
- * Added a new configuration option "authfailureevents" that enables manager events when
- a peer can't authenticate properly.
- * Added DNS manager support to registrations for peers not referencing a peer entry.
-
-IAX2 changes
-------------
- * Added the trunkmaxsize configuration option to chan_iax2.
- * Added the srvlookup option to iax.conf
- * Added support for OSP. The token is set and retrieved through the CHANNEL()
- dialplan function.
-
-XMPP Google Talk/Jingle changes
--------------------------------
- * Added the bindaddr option to gtalk.conf.
-
-Skinny changes
--------------
- * Added skinny show device, skinny show line, and skinny show settings CLI commands.
- * Proper codec support in chan_skinny.
- * Added settings for IP and Ethernet QoS requests
-
-MGCP changes
-------------
- * Added separate settings for media QoS in mgcp.conf
-
-Console Channel Driver changes
-------------------------------
- * Added experimental support for video send & receive to chan_oss.
- This requires SDL and ffmpeg/avcodec, plus Video4Linux or X11 to act as
- a video source.
-
-Phone channel changes (chan_phone)
-----------------------------------
- * Added G729 passthrough support to chan_phone for Sigma Designs boards.
-
-H.323 channel Changes
----------------------
- * H323 remote hold notification support added (by NOTIFY message
- and/or H.450 supplementary service)
-
-Local channel changes
----------------------
- * The device state functionality in the Local channel driver has been updated
- to indicate INUSE or NOT_INUSE when a Local channel is being used as opposed
- to just UNKNOWN if the extension exists.
- * Added jitterbuffer support for chan_local. This allows you to use the
- generic jitterbuffer on incoming calls going to Asterisk applications.
- For example, this would allow you to use a jitterbuffer for an incoming
- SIP call to Voicemail by putting a Local channel in the middle. This
- feature is enabled by using the 'j' option in the Dial string to the Local
- channel in conjunction with the existing 'n' option for local channels.
- * A 'b' option has been added which causes chan_local to return the actual channel
- that is behind it when queried. This is useful for transfer scenarios as the
- actual channel will be transferred, not the Local channel.
-
-Agent channel changes
-----------------------
- * The ackcall and endcall options are now supplemented with options acceptdtmf
- and enddtmf. These allow for the DTMF keypress to be configurable. The options
- default to their old hard-coded values ('#' and '*' respectively) so this should
- not break any existing agent installations.
-
-DAHDI channel driver (chan_dahdi) Changes
-----------------------------------------
- * SS7 support (via libss7 library)
- * In India, some carriers transmit CID via dtmf. Some code has been added
- that will handle some situations. The cidstart=polarity_IN choice has been added for
- those carriers that transmit CID via dtmf after a polarity change.
- * CID matching information is now shown when doing 'dialplan show'.
- * Added dahdi show version CLI command.
- * Added setvar support to chan_dahdi.conf channel entries.
- * Added two new options: mwimonitor and mwimonitornotify. These options allow
- you to enable MWI monitoring on FXO lines. When the MWI state changes,
- the script specified in the mwimonitornotify option is executed. An internal
- event indicating the new state of the mailbox is also generated, so that
- the normal MWI facilities in Asterisk work as usual.
- * Added signalling type 'auto', which attempts to use the same signalling type
- for a channel as configured in DAHDI. This is primarily designed for analog
- ports, but will also work for digital ports that are configured for FXS or FXO
- signalling types. This mode is also the default now, so if your chan_dahdi.conf
- does not specify signalling for a channel (which is unlikely as the sample
- configuration file has always recommended specifying it for every channel) then
- the 'auto' mode will be used for that channel if possible.
- * Added a 'dahdi set dnd' command to allow CLI control of the Do-Not-Disturb
- state for a channel; also ensured that the DNDState Manager event is
- emitted no matter how the DND state is set or cleared.
-
-New Channel Drivers
--------------------
- * Added a new channel driver, chan_unistim. See the Asterisk wiki at
- https://wiki.asterisk.org/wiki/x/vgsiAQ and configs/unistim.conf.sample
- for details. This new channel driver allows you to use Nortel i2002,
- i2004, and i2050 phones with Asterisk.
- * Added a new channel driver, chan_console, which uses portaudio as a cross
- platform audio interface. It was written as a channel driver that would
- work with Mac CoreAudio, but portaudio supports a number of other audio
- interfaces, as well. Note that this channel driver requires v19 or higher
- of portaudio; older versions have a different API.
-
-DUNDi changes
--------------
- * Added the ability to specify arguments to the Dial application when using
- the DUNDi switch in the dialplan.
- * Added the ability to set weights for responses dynamically. This can be
- done using a global variable or a dialplan function. Using the SHELL()
- function would allow you to have an external script set the weight for
- each response.
- * Added two new dialplan functions, DUNDIQUERY and DUNDIRESULT. These
- functions will allow you to initiate a DUNDi query from the dialplan,
- find out how many results there are, and access each one.
- * Added the ability to specify a port for a dundi peer.
-
-ENUM changes
-------------
- * Added two new dialplan functions, ENUMQUERY and ENUMRESULT. These
- functions will allow you to initiate an ENUM lookup from the dialplan,
- and Asterisk will cache the results. ENUMRESULT can be used to access
- the results without doing multiple DNS queries.
-
-Voicemail Changes
------------------
- * Added the ability to customize which sound files are used for some of the
- prompts within the Voicemail application by changing them in voicemail.conf
- * Added the ability for the "voicemail show users" CLI command to show users
- configured by the dynamic realtime configuration method.
- * MWI (Message Waiting Indication) handling has been significantly
- restructured internally to Asterisk. It is now totally event based
- instead of polling based. The voicemail application will notify other
- modules that have subscribed to MWI events when something in the mailbox
- changes.
- This also means that if any other entity outside of Asterisk is changing
- the contents of mailboxes, then the voicemail application still needs to
- poll for changes. Examples of situations that would require this option
- are web interfaces to voicemail or an email client in the case of using
- IMAP storage. So, two new options have been added to voicemail.conf
- to account for this: "pollmailboxes" and "pollfreq". See the sample
- configuration file for details.
- * Added "tw" language support
- * Added support for storage of greetings using an IMAP server
- * Added ability to customize forward, reverse, stop, and pause keys for message playback
- * SMDI is now enabled in voicemail using the smdienable option.
- * A "lockmode" option has been added to asterisk.conf to configure the file
- locking method used for voicemail, and potentially other things in the
- future. The default is the old behavior, lockfile. However, there is a
- new method, "flock", that uses a different method for situations where the
- lockfile will not work, such as on SMB/CIFS mounts.
- * Added the ability to backup deleted messages, to ease recovery in the case
- that a user accidentally deletes a message, and discovers that they need it.
- * Reworked the SMDI interface in Asterisk. The new way to access SMDI information
- is through the new functions, SMDI_MSG_RETRIEVE() and SMDI_MSG(). The file
- smdi.conf can now be configured with options to map SMDI station IDs to Asterisk
- voicemail boxes. The SMDI interface can also poll for MWI changes when some
- outside entity is modifying the state of the mailbox (such as IMAP storage or
- a web interface of some kind).
- * Added the support for marking messages as "urgent." There are two methods to accomplish
- this. One is to pass the 'U' option to VoiceMail(). Another way to mark a message as urgent
- is to specify "review=yes" in voicemail.conf. Doing this will cause allow the user to mark
- the message as urgent after he has recorded a voicemail by following the voice instructions.
- When listening to voicemails using VoiceMailMain urgent messages will be presented before other
- messages
- * Added "is" language support
-
-Queue changes
--------------
- * Added the general option 'shared_lastcall' so that member's wrapuptime may be
- used across multiple queues.
- * Added QUEUE_VARIABLES function to set queue variables added setqueuevar and
- setqueueentryvar options for each queue, see queues.conf.sample for details.
- * Added keepstats option to queues.conf which will keep queue
- statistics during a reload.
- * setinterfacevar option in queues.conf also now sets a variable
- called MEMBERNAME which contains the member's name.
- * Added 'Strategy' field to manager event QueueParams which represents
- the queue strategy in use.
- * Added option to run macro when a queue member is connected to a caller,
- see queues.conf.sample for details.
- * app_queue now has a 'loose' option which is almost exactly like 'strict' except it
- does not count paused queue members as unavailable.
- * Added min-announce-frequency option to queues.conf which allows you to control the
- minimum amount of time between queue announcements for use when the caller's queue
- position changes frequently.
- * Added additional information to EXITWITHTIMEOUT and EXITWITHKEY events in the
- queue log.
- * Added ability for non-realtime queues to have realtime members
- * Added the "linear" strategy to queues.
- * Added the "wrandom" strategy to queues.
- * Added new channel variable QUEUE_MIN_PENALTY
- * QUEUE_MAX_PENALTY and QUEUE_MIN_PENALTY may be adjusted in mid-call by defining
- rules in queuerules.conf. See configs/queuerules.conf.sample for details
- * Added a new parameter for member definition, called state_interface. This may be
- used so that a member may be called via one interface but have a different interface's
- device state reported.
- * Added new CLI and Manager commands relating to reloading queues. From the CLI, see
- "queue reload", "queue reset stats". Also see "manager show command QueueReload" and
- "manager show command QueueReset."
- * New configuration option: randomperiodicannounce. If a list of periodic announcements is
- specified by the periodic-announce option, then one will be chosen randomly when it is time
- to play a periodic announcment
- * New configuration options: announce-position now takes two more values in addition to "yes" and
- "no." Two new options, "limit" and "more," are allowed. These are tied to another option,
- announce-position-limit. By setting announce-position to "limit" callers will only have their
- position announced if their position is less than what is specified by announce-position-limit.
- If announce-position is set to "more" then callers beyond the position specified by announce-position-limit
- will be told that their are more than announce-position-limit callers waiting.
- * Two new queue log events have been added. An ADDMEMBER event will be logged
- when a realtime queue member is added and a REMOVEMEMBER event will be logged
- when a realtime queue member is removed. Since there is no calling channel associated
- with these events, the string "REALTIME" is placed where the channel's unique id
- is typically placed.
- * The configuration method for the "joinempty" and "leavewhenempty" options has
- changed to a comma-separated list of methods of determining member availability
- instead of vague terms such as "yes," "loose," "no," and "strict." These old four
- values are still accepted for backwards-compatibility, though.
- * The average talktime is now calculated on queues. This information is reported via the
- CLI commands "queue show" and "queues show"; through the AMI events AgentComplete, QueueSummary,
- and QueueParams; and through the channelvariable QUEUETALKTIME if setinterfacevar=yes is set for
- the queue.
-
-MeetMe Changes
---------------
- * The 'o' option to provide an optimization has been removed and its functionality
- has been enabled by default.
- * When a conference is created, the UNIQUEID of the channel that caused it to be
- created is stored. Then, every channel that joins the conference will have the
- MEETMEUNIQUEID channel variable set with this ID. This can be used to relate
- callers that come and go from long standing conferences.
- * Added a new application, MeetMeChannelAdmin, which is similar to MeetMeAdmin,
- except it does operations on a channel by name, instead of number in a conference.
- This is a very useful feature in combination with the 'X' option to ChanSpy.
- * Added 'C' option to Meetme which causes a caller to continue in the dialplan
- when kicked out.
- * Added new RealTime functionality to provide support for scheduled conferencing.
- This includes optional messages to the caller if they attempt to join before
- the schedule start time, or to allow the caller to join the conference early.
- Also included is optional support for limiting the number of callers per
- RealTime conference.
- * Added the S() and L() options to the MeetMe application. These are pretty
- much identical to the S() and L() options to Dial(). They let you set
- timeouts for the conference, as well as have warning sounds played to
- let the caller know how much time is left, and when it is running out.
- * Added the ability to do "meetme concise" with the "meetme" CLI command.
- This extends the concise capabilities of this CLI command to include
- listing all conferences, instead of an addition to the other sub commands
- for the "meetme" command.
- * Added the ability to specify the music on hold class used to play into the
- conference when there is only one member and the M option is used.
- * Added MEETME_INFO dialplan function which provides a way to query
- various properties of a Meetme conference.
- * Added new admin features: *81: Roll call, *82: eject all, *83: mute all,
- and *84: record in-conf
-
-Other Dialplan Application Changes
-----------------------------------
- * Argument support for Gosub application
- * From the to-do lists: straighten out the app timeout args:
- Wait() app now really does 0.3 seconds- was truncating arg to an int.
- WaitExten() same as Wait().
- Congestion() - Now takes floating pt. argument.
- Busy() - now takes floating pt. argument.
- Read() - timeout now can be floating pt.
- WaitForRing() now takes floating pt timeout arg.
- SpeechBackground() -- clarified in the docstrings that the timeout is an integer seconds.
- * Added 's' option to Page application.
- * Added an optional timeout argument to the Page application.
- * Added 'E', 'V', and 'P' commands to ExternalIVR.
- * Added 'o' and 'X' options to Chanspy.
- * Added a new dialplan application, Bridge, which allows you to bridge the
- calling channel to any other active channel on the system.
- * Added the ability to specify a music on hold class to play instead of ringing
- for the SLATrunk application.
- * The Read application no longer exits the dialplan on error. Instead, it sets
- READSTATUS to ERROR, which you can catch and handle separately.
- * Added 'm' option to Directory, which lists out names, 8 at a time, instead
- of asking for verification of each name, one at a time.
- * Privacy() no longer uses privacy.conf, as all options are specifiable as
- direct options to the app.
- * AMD() has a new "maximum word length" option. "show application AMD" from the CLI
- for more details
- * GotoIfTime() now may branch based on a "false" condition, like other Goto-related applications
- * The ChannelRedirect application no longer exits the dialplan if the given channel
- does not exist. It will now set the CHANNELREDIRECT_STATUS variable to SUCCESS upon success
- or NOCHANNEL if the given channel was not found.
- * The silencethreshold setting that was previously configurable in multiple
- applications is now settable globally via dsp.conf.
-
-Music On Hold Changes
----------------------
- * A new option, "digit", has been added for music on hold classes in
- musiconhold.conf. If this is set for a music on hold class, a caller
- listening to music on hold can press this digit to switch to listening
- to this music on hold class.
- * Support for realtime music on hold has been added.
- * In conjunction with the realtime music on hold, a general section has
- been added to musiconhold.conf, its sole variable is cachertclasses. If this
- is set, then music on hold classes found in realtime will be cached in memory.
-
-AEL Changes
------------
- * AEL upgraded to use the Gosub with Arguments instead
- of Macro application, to hopefully reduce the problems
- seen with the artificially low stack ceiling that
- Macro bumps into. Macros can only call other Macros
- to a depth of 7. Tests run using gosub, show depths
- limited only by virtual memory. A small test demonstrated
- recursive call depths of 100,000 without problems.
- -- in addition to this, all apps that allowed a macro
- to be called, as in Dial, queues, etc, are now allowing
- a gosub call in similar fashion.
- * AEL now generates LOCAL(argname) declarations when it
- Set()'s the each arg name to the value of ${ARG1}, ${ARG2),
- etc. That makes the arguments local in scope. The user
- can define their own local variables in macros, now,
- by saying "local myvar=someval;" or using Set() in this
- fashion: Set(LOCAL(myvar)=someval); ("local" is now
- an AEL keyword).
- * utils/conf2ael introduced. Will convert an extensions.conf
- file into extensions.ael. Very crude and unfinished, but
- will be improved as time goes by. Should be useful for a
- first pass at conversion.
- * aelparse will now read extensions.conf to see if a referenced
- macro or context is there before issuing a warning.
- * AEL parser sets a local channel variable ~~EXTEN~~, to
- preserve the value of ${EXTEN} thru switch statements.
- * New operator in $[...] expressions: the ~~ operator serves
- as a concatenation operator. AT THE MOMENT, it is really only
- necessary and useful in AEL, especially in if() expressions.
- Operation: ${a} ~~ ${b| with force both a and b to strings, strip
- any enclosing double-quotes, and evaluate to the value of a
- concatenated with the value of b. For example if a is set to
- "xyz" and b has the value "abc", then ${a} ~~ ${b| would
- evaluate to xyzabc .
-
-
-Call Features (res_features) Changes
-------------------------------------
- * Added the parkedcalltransfers option to features.conf
- * Added parkedcallparking option to control one touch parking w/ parking
- pickup
- * Added parkedcallhangup option to control disconnect feature w/ parking
- pickup
- * Added parkedcallrecording option to control one-touch record w/ parking
- pickup
- * Added parkedcallparking, parkedcallhangup, parkedcallrecording, and
- parkedcalltransfers option support for multiple parking lots.
- * Added BRIDGE_FEATURES variable to set available features for a channel
- * The built-in method for doing attended transfers has been updated to
- include some new options that allow you to have the transferee sent
- back to the person that did the transfer if the transfer is not successful.
- See the options "atxferdropcall", "atxferloopdelay", and "atxfercallbackretries"
- in features.conf.sample.
- * Added support for configuring named groups of custom call features in
- features.conf. This means that features can be written a single time, and
- then mapped into groups of features for different key mappings or easier
- access control.
- * Updated the ParkedCall application to allow you to not specify a parking
- extension. If you don't specify a parking space to pick up, it will grab
- the first one available.
- * Added cli command 'features reload' to reload call features from features.conf
- * Moved into core asterisk binary.
- * Changed the default setting for featuredigittimeout to 2000 ms from 500 ms.
- * Added the ability for custom parking lots to be configured with their own
- parking extension with the parkext option.
-
-Language Support Changes
-------------------------
- * Brazilian Portuguese (pt-BR) in VM, and say.c was added
- * Added support for the Hungarian language for saying numbers, dates, and times.
-
-AGI Changes
------------
- * Added SPEECH commands for speech recognition. A complete listing can be found
- using agi show.
- * If app_stack is loaded, GOSUB is a native AGI command that may be used to
- invoke subroutines in the dialplan. Note that calling EXEC with Gosub
- does not behave as expected; the native command needs to be used, instead.
- * Added the ability to perform SRV lookups on fast AGI calls. To use this
- feature, simply use hagi: instead of agi: as the protocol portion
- of the URI parameter to the AGI function call in your dial plan. Also note
- that specifying a port number in the AGI URI will disable SRV lookups,
- even if you use the hagi: protocol.
- * No longer support MSG_OOB flag on HANGUP.
-
-Logger changes
---------------
- * Added rotatestrategy option to logger.conf, along with two new options:
- "timestamp" which will use the time to name the logger files instead of
- sequence number; and "rotate", which rotates the names of the log files,
- similar to the way syslog rotates files.
- * Added exec_after_rotate option to logger.conf, which allows a system
- command to be run after rotation. This is primarily useful with
- rotatestrategy=rotate, to allow a limit on the number of log files kept
- and to ensure that the oldest log file gets deleted.
- * Added realtime support for the queue log
-
-Call Detail Records
--------------------
- * The cdr_manager module has a [mappings] feature, like cdr_custom,
- to add fields to the manager event from the CDR variables.
- * Added cdr_adaptive_odbc, a new module that adapts to the structure of your
- backend database CDR table. Specifically, additional, non-standard
- columns are supported, merely by setting the corresponding CDR variable in
- your dialplan. In addition, you may alias any column to another name (for
- example, if you want the 'src' CDR variable to be column 'ANI' in the DB,
- simply "alias src => ANI" in the configuration file). Records may be
- posted to more than one backend, simply by specifying multiple categories
- in the configuration file. And finally, you may filter which CDRs get
- posted to each backend, by specifying a filter (which the record must
- match) for the particular category. Filters are additive (meaning all
- rules must match to post that CDR).
- * The Postgres CDR module now supports some features of the cdr_adaptive_odbc
- module. Specifically, you may add additional columns into the table and
- they will be set, if you set the corresponding CDR variable name. Also,
- if you omit columns in your database table, they will be silently skipped
- (but a record will still be inserted, based on what columns remain). Note
- that the other two features from cdr_adaptive_odbc (alias and filter) are
- not currently supported.
- * The ResetCDR application now has an 'e' option that re-enables a CDR if it
- has been disabled using the NoCDR application.
-
-Miscellaneous New Modules
--------------------------
- * Added a new CDR module, cdr_sqlite3_custom.
- * Added a new realtime configuration module, res_config_sqlite
- * Added a new codec translation module, codec_resample, which re-samples
- signed linear audio between 8 kHz and 16 kHz to help support wideband
- codecs.
- * Added a new module, res_phoneprov, which allows auto-provisioning of phones
- based on configuration templates that use Asterisk dialplan function and
- variable substitution. It should be possible to create phone profiles and
- templates that work for the majority of phones provisioned over http. It
- is currently only intended to provision a single user account per phone.
- An example profile and set of templates for Polycom phones is provided.
- NOTE: Polycom firmware is not included, but should be placed in
- AST_DATA_DIR/phoneprov/configs to match up with the included templates.
- * Added a new module, app_jack, which provides interfaces to JACK, the Jack
- Audio Connection Kit (http://www.jackaudio.org/). Two interfaces are
- provided; there is a JACK() application, and a JACK_HOOK() function. Both
- interfaces create an input and output JACK port. The application makes
- these ports the endpoint of the call. The audio coming from the channel
- goes out the output port and whatever comes back in on the input port is
- what gets sent to the channel. The JACK_HOOK() function turns on a JACK
- audiohook on the channel. This lets you run the audio coming from a
- channel through JACK, and whatever comes back in is what gets forwarded
- on as the channel's audio. This is very useful for building custom
- vocoders or doing recording or analysis of the channel's audio in another
- application.
- * Added a new module, res_config_curl, which permits using a HTTP POST url
- to retrieve, create, update, and delete realtime information from a remote
- web server. Note that this module requires func_curl.so to be loaded for
- backend functionality.
- * Added a new module, res_config_ldap, which permits the use of an LDAP
- server for realtime data access.
- * Added support for writing and running your dialplan in lua using the pbx_lua
- module. See configs/extensions.lua.sample for examples of how to do this.
-
-Miscellaneous
--------------
- * Ability to use libcap to set high ToS bits when non-root
- on Linux. If configure is unable to find libcap then you
- can use --with-cap to specify the path.
- * Added maxfiles option to options section of asterisk.conf which allows you to specify
- what Asterisk should set as the maximum number of open files when it loads.
- * Added the jittertargetextra configuration option.
- * Added support for setting the CoS for VLAN traffic (802.1p). See the sample
- configuration files for the IP channel drivers. The new option is "cos".
- This information is also documented on the Asterisk wiki at
- https://wiki.asterisk.org/wiki/x/EYBG
- * When originating a call using AMI or pbx_spool that fails the reason for failure
- will now be available in the failed extension using the REASON dialplan variable.
- * Added support for reading the TOUCH_MONITOR_PREFIX channel variable.
- It allows you to configure a prefix for auto-monitor recordings.
- * A new extension pattern matching algorithm, based on a trie, is introduced
- here, that could noticeably speed up mid-sized to large dialplans.
- It is NOT used by default, as duplicating the behaviour of the old pattern
- matcher is still under development. A config file option, in extensions.conf,
- in the [general] section, called "extenpatternmatchingnew", is by default
- set to false; setting that to true will force the use of the new algorithm.
- Also, the cli commands "dialplan set extenpatternmatchingnew true/false" can
- be used to switch the algorithms at run time.
- * A new option when starting a remote asterisk (rasterisk, asterisk -r) for
- specifying which socket to use to connect to the running Asterisk daemon
- (-s)
- * Performance enhancements to the sched facility, which is used in
- the channel drivers, etc. Added hashtabs and doubly-linked lists
- to speed up deletion; start at the beginning or end of list to
- speed up insertion.
- * Added Doubly-linked lists after the fashion of linkedlists.h. They are in
- dlinkedlists.h. Doubly-linked lists feature fast deletion times.
- Added regression tests to the tests/ dir, also.
- * Added a refcount trace feature to astobj2 for those trying to balance
- object creation, deletion; work, play; space and time. See the
- notes in astobj2.h. Also, see utils/refcounter as well, as a
- quick way to find unbalanced refcounts in what could be a sea
- of objects that were balanced.
- * Added logging to 'make update' command. See update.log
- * Added strictrtp option to rtp.conf. If enabled this will drop RTP packets that
- do not come from the remote party.
- * Added the 'n' option to the SpeechBackground application to tell it to not
- answer the channel if it has not already been answered.
- * Added a compiler flag, CHANNEL_TRACE, which permits channel tracing to be
- turned on, via the CHANNEL(trace) dialplan function. Could be useful for
- dialplan debugging.
- * iLBC source code no longer included (see UPGRADE.txt for details)
- * If compiled with DETECT_DEADLOCKS enabled and if you have glibc, then if
- deadlock is detected, a backtrace of the stack which led to the lock calls
- will be output to the CLI.
- * If compiled with DEBUG_THREADS enabled and if you have glibc, then issuing
- the "core show locks" CLI command will give lock information output as well
- as a backtrace of the stack which led to the lock calls.
- * users.conf now sports an optional alternateexts property, which permits
- allocation of additional extensions which will reach the specified user.
- * A new option for the configure script, --enable-internal-poll, has been added
- for use with systems which may have a buggy implementation of the poll system
- call. If you notice odd behavior such as the CLI being unresponsive on remote
- consoles, you may want to try using this option. This option is enabled by default
- on Darwin systems since it is known that the Darwin poll() implementation has
- odd issues.
-
-Timer Changes
---------------------
-* In addition to timing from DAHDI, there is a new timing module called
- res_timing_timerfd. In order to use this, you must be running Linux with
- a kernel version 2.6.25 or newer as well as glibc 2.8 or newer. The configure
- script will be able to tell if you have the requirements. From menuselect, select
- res_timing_timerfd from the Resource Modules menu.
+++ /dev/null
-===========================================================
-===
-=== THIS FILE IS AUTOMATICALLY GENERATED DURING THE RELEASE
-=== PROCESS. DO NOT MAKE CHANGES HERE. INSTEAD, REFER TO
-=== doc/UPGRADE-staging/README.md FOR MORE DETAILS.
-===
-=== Information for upgrading between Asterisk versions
-===
-=== This file documents all the changes that MUST be taken
-=== into account when upgrading between certain Asterisk
-=== versions. These changes may require that you modify
-=== your configuration files, dialplan or (in some cases)
-=== source code if you have your own Asterisk modules or
-=== patches. This file also includes advance notice of any
-=== functionality that has been marked as 'deprecated' and
-=== may be removed in a future release, along with the
-=== suggested replacement functionality.
-===
-===========================================================
-
-------------------------------------------------------------------------------
---- New functionality introduced in Asterisk 20.0.0 --------------------------
-------------------------------------------------------------------------------
-
-res_monitor
-------------------
- * This module is no longer built by default in
- accordance with the Module Deprecation Policy.
- If you require this functionality you will need
- to enable it for building in menuselect. Note
- that in the future res_monitor will be removed.
-
-------------------------------------------------------------------------------
---- Functionality changes from Asterisk 19.0.0 to Asterisk 20.0.0 ------------
-------------------------------------------------------------------------------
-
-AMI
-------------------
- * The XML Manager Event Interface (amxml) now generates attribute names
- that are compliant with the XML 1.1 specification. Previously, an
- attribute name that started with a digit would be rendered as-is, even
- though attribute names must not begin with a digit. We now prefix
- attribute names that start with a digit with an underscore ('_') to
- prevent XML validation failures.
-
-STIR/SHAKEN
-------------------
- * The STIR/SHAKEN configuration option has been split into
- 4 different choices: off, attest, verify, and on. Off and
- on behave the same way as before. Attest will only perform
- attestation on the endpoint, and verify will only perform
- verification on the endpoint.
-
-chan_iax2
-------------------
- * Encryption is now supported for RSA authentication.
-
- Currently, these auth configurations will cause a crash:
- auth = md5,rsa
- auth = plaintext,md5,rsa
-
- With a patched peer, the following will cause a crash:
- auth = rsa
- auth = md5,rsa
- auth = plaintext,md5,rsa
-
- If both the peer and user are patches, no crash occurs.
- Existing good configurations should continue to work.
-
-res_http_media_cache
-------------------
- * When fetching a file for playback from a URL, Asterisk will now first
- use the value of the Content-Type header in the HTTP response to
- determine the format of the audio data, and only if it is unable to do
- that will it attempt to parse the URL and extract the extension from
- the path portion. Previously Asterisk would first look at the end of
- the URL, which may have included query string parameters or a URL
- fragment, which was error prone.
-
-res_pjsip
-------------------
- * The 'async_operations' setting on transports is no longer
- obeyed and instead is always set to 1. This is due to the
- functionality not being applicable to Asterisk and causing
- excess unnecessary memory usage. This setting will now be
- ignored but can also be removed from the configuration file.
-
-------------------------------------------------------------------------------
---- New functionality introduced in Asterisk 19.0.0 --------------------------
-------------------------------------------------------------------------------
-
-Log Rotate
-------------------
- * The sample logger files have been changed to have .log as their file
- extension. This was done so that when attached to issues on the issue
- tracker, they are able to be opened in the browser for convenience.
- Because of this, the asterisk.logrotate script has been updated to look
- for .log extensions instead of no extension for files such as full
- and messages.
-
-chan_sip
-------------------
- * chan_sip is no longer built by default. To build it, make sure to
- enable it when running 'make menuselect'
-
-------------------------------------------------------------------------------
---- Functionality changes from Asterisk 18.0.0 to Asterisk 19.0.0 ------------
-------------------------------------------------------------------------------
-
-STIR/SHAKEN
-------------------
- * The configuration option public_key_url in stir_shaken.conf
- has been renamed to public_cert_url to better fit what it
- contains. Only the name has changed - functionality is the
- same.
-
- * STIR/SHAKEN originally needed an origid to be specified in
- stir_shaken.conf under the certificate config object in
- order to work. Now, one is automatically created by
- generating a UUID, as recommended by RFC8588. Any origid
- you have in your stir_shaken.conf will need to be removed
- for the module to read in certificates.
-
-menuselect
-------------------
- * menuselect --enable, --disable, --enable-category and --disable-category will
- now fail with a non-zero exit code instead of silently failing if an invalid
- option or category is specified.
-
-res_srtp
-------------------
- * SRTP replay protection has been added to res_srtp and
- a new configuration option "srtpreplayprotection" has
- been added to the rtp.conf config file. For security
- reasons, the default setting is "yes". Buggy clients
- may not handle this correctly which could result in
- no, or one way, audio and Asterisk error messages like
- "replay check failed".
-
-------------------------------------------------------------------------------
---- New functionality introduced in Asterisk 18.0.0 --------------------------
-------------------------------------------------------------------------------
-
-Core
-------------------
- * The ast_format_cap_from_stream_topology() function has been renamed
- to ast_stream_topology_get_formats().
-
-app_bridgeaddchan
-------------------
- * The BridgeAdd application now behaves more like the Bridge application.
- The application now sets the BRIDGERESULT channel variable to indicate
- what happened when the channel resumes in dialplan. This is instead of
- hanging up the channel on failure conditions.
-
-app_mixmonitor
-------------------
- * In Asterisk 13.29, a new option flag was added to MixMonitor (the 'S'
- option) that when combined with the r() or t() options would inject
- silence into these files if audio was going to be written to one and
- not that other. This allowed the files specified by r() and t() to
- subsequently be mixed outside of Asterisk and be appropriately
- synchronized. This behavior is now the default, and a new option has
- been added to disable this behavior if desired (the 'n' option).
-
-app_queue
-------------------
- * The 'Reason' header in the QueueMemberPause AMI Event has been
- removed. The 'PausedReason' header should be used instead.
-
- * If they are not specified in [general], "shared_lastcall" and "autofill"
- now always default to OFF. Before this version, they would be off ('no') if
- queues.conf did not have a [general] section, but on ('yes') if it did.
-
-app_voicemail
-------------------
- * The MessageExists dialplan application and the MESSAGE_EXISTS dialplan
- function were removed. The were deprecated in Asterisk 1.6.0 and
- Asterisk 11.0.0 respectively. The VM_INFO() dialplan function is the
- supported mechanism to query the status of a given mailbox.
-
-------------------------------------------------------------------------------
---- Functionality changes from Asterisk 17.0.0 to Asterisk 18.0.0 ------------
-------------------------------------------------------------------------------
-
-AMI
-------------------
- * The AMI Originate action, which optionally takes a dialplan application as
- an argument, no longer accepts "Originate" as the application due to
- security concerns.
-
-ARI
-------------------
- * The "TextMessageReceived" event used to include a list of "TextMessageVariable"
- objects as part of its output. Due to a couple of bugs in Asterisk a list of
- received variables was never included even if ones were available. However,
- variables set to send would be (which they should have not been), but would
- fail validation due to the bad formatting.
-
- So basically there was no way to get a "TextMessageReceived" event with
- variables. Due to this the API has changed. The "TextMessageVariable" object
- no longer exists. "TextMessageReceived" now returns a JSON object of key/value
- pairs. So for instance instead of a list of "TextMessageVariable" objects:
-
- [ TextMessageVariable, TextMessageVariable, TextMessageVariable]
-
- where a TextMessageVariable was supposed to be:
-
- { "key": "<var name>", "value":, "<var value>" }
-
- The output is now just:
-
- { "<var name>": "<var value>" }
-
- This aligns more with how variables are specified when sending a message, as
- well as other variable lists in ARI.
-
-Core
-------------------
- * The streams API function ast_stream_get_formats is
- now defined as returning the format capabilities const.
- This has always been the case but was never enforced
- through the API itself. Any consumer of this API that
- is not treating the formats as immutable should update
- their code to create a new format capabilities and set
- it on the stream instead.
-
-res_stasis
-------------------
- * The "TextMessageReceived" event used to include a list of "TextMessageVariable"
- objects as part of its output. Due to a couple of bugs in Asterisk a list of
- received variables was never included even if ones were available. However,
- variables set to send would be (which they should have not been), but would
- fail validation due to the bad formatting.
-
- So basically there was no way to get a "TextMessageReceived" event with
- variables. Due to this the API has changed. The "TextMessageVariable" object
- no longer exists. "TextMessageReceived" now returns a JSON object of key/value
- pairs. So for instance instead of a list of "TextMessageVariable" objects:
-
- [ TextMessageVariable, TextMessageVariable, TextMessageVariable]
-
- where a TextMessageVariable was supposed to be:
-
- { "key": "<var name>", "value":, "<var value>" }
-
- The output is now just:
-
- { "<var name>": "<var value>" }
-
- This aligns more with how variables are specified when sending a message, as
- well as other variable lists in ARI.
-
-res_stir_shaken
-------------------
- * A new directory has been added under the default (e.g., /var/lib/asterisk) -
- inside the 'keys' directory - named 'stir_shaken'. This directory will
- hold public keys that have been downloaded for STIR/SHAKEN verification.
-
-------------------------------------------------------------------------------
---- New functionality introduced in Asterisk 17.0.0 --------------------------
-------------------------------------------------------------------------------
-
-Applications
-------------------
- * The JabberStatus application, deprecated in Asterisk 12, has been removed.
-
-Bridging
-------------------
- * The bridging core no longer uses the stasis cache for bridge
- snapshots. The latest bridge snapshot is now stored on the
- ast_bridge structure itself.
-
- The following APIs are no longer available since the stasis cache
- is no longer used:
- ast_bridge_topic_cached()
- ast_bridge_topic_all_cached()
-
- A topic pool is now used for individual bridge topics.
-
- The ast_bridge_cache() function was removed since there's no
- longer a separate container of snapshots.
-
- A new function "ast_bridges()" was created to retrieve the
- container of all bridges. Users formerly calling
- ast_bridge_cache() can use the new function to iterate over
- bridges and retrieve the latest snapshot directly from the
- bridge.
-
- The ast_bridge_snapshot_get_latest() function was renamed to
- ast_bridge_get_snapshot_by_uniqueid().
-
- A new function "ast_bridge_get_snapshot()" was created to retrieve
- the bridge snapshot directly from the bridge structure.
-
- The ast_bridge_topic_all() function now returns a normal topic
- not a cached one so you can't use stasis cache functions on it
- either.
-
- The ast_bridge_snapshot_type() stasis message now has the
- ast_bridge_snapshot_update structure as it's data. It contains
- the last snapshot and the new one.
-
-Build
-------------------
- * Asterisk headers are no longer installed and uninstalled automatically when
- performing a "make install" or a "make uninstall". To install/uninstall the
- headers, use "make install-headers" and "make uninstall-headers". The headers
- also continue to be uninstalled when performing a "make uninstall-all".
-
-Channels
-------------------
- * The core no longer uses the stasis cache for channels snapshots.
- The following APIs are no longer available:
- ast_channel_topic_cached()
- ast_channel_topic_all_cached()
- The ast_channel_cache_all() and ast_channel_cache_by_name() functions
- now returns an ao2_container of ast_channel_snapshots rather than a
- container of stasis_messages therefore you can't call stasis_cache
- functions on it.
- The ast_channel_topic_all() function now returns a normal topic,
- not a cached one so you can't use stasis cache functions on it either.
- The ast_channel_snapshot_type() stasis message now has the
- ast_channel_snapshot_update structure as it's data.
- ast_channel_snapshot_get_latest() still returns the latest snapshot.
-
-chan_sip
-------------------
- * The chan_sip module is now deprecated, users should migrate to the
- replacement module chan_pjsip. See guides at the Asterisk Wiki:
- https://wiki.asterisk.org/wiki/x/tAHOAQ
- https://wiki.asterisk.org/wiki/x/hYCLAQ
-
-func_callerid
-------------------
- * The CALLERPRES() dialplan function, deprecated in Asterisk 1.8, has been
- removed.
-
-res_parking
-------------------
- * The PARKINGSLOT channel variable, deprecated in Asterisk 12 in favor of the
- PARKING_SPACE channel variable, will no longer be set.
-
-res_xmpp
-------------------
- * The JabberStatus application, deprecated in Asterisk 12, has been removed.
-
-------------------------------------------------------------------------------
---- Functionality changes from Asterisk 16.0.0 to Asterisk 17.0.0 ------------
-------------------------------------------------------------------------------
-
-Core
-------------------
- * res_pjsip_pubsub is now required so call transfer progress can be monitored
- and reported in the channel variable TRANSFERSTATUS.
-
-app_voicemail.c
-------------------
- * The "Voicemail Build Options" section of menuselect has been removed along with
- the FILE_STORAGE, ODBC_STORAGE and IMAP_STORAGE menuselect options. All 3 variants
- of the voicemail app can now be built at the same by enabling app_voicemail,
- app_voicemail_imap, and app_voicemail_odbc under the "Applications" section.
- By default, only app_voicemail is enabled. Also, the modules.conf sample has
- been updated to "noload" app_voicemail_imap and app_voicemail_odbc should they
- all be built. Packagers must update their build scripts appropriately.
-
-chan_pjsip
-------------------
- * res_pjsip_pubsub is now required so call transfer progress can be monitored
- and reported in the channel variable TRANSFERSTATUS.
-
-New in 16.0.0:
-
-app_fax:
- - The app_fax module is now deprecated, users should migrate to the
- replacement module res_fax.
-
-app_macro:
- - The app_macro module is now deprecated and by default it is no longer
- built. Users should migrate to app_stack (Gosub). A warning is logged
- the first time any Macro is used.
-
-AMI:
- - The ContactStatus and Status fields for the manager events ContactStatus
- and ContactStatusDetail are now set to "NonQualified" when a contact exists
- but has not been qualified.
- - The ContactStatus event will no longer be sent by PJSIP when a device
- refreshes its registration.
- - The "Newexten" event is now part of the "dialplan" class. The documentation
- for Asterisk 15 already specified this, but the implementation was actually
- using the "call" class instead.
-
-ARI:
- - The ContactInfo event's contact_status field is now set to "NonQualified"
- when a contact exists but has not been qualified.
-
-Build System:
- - MALLOC_DEBUG no longer has an effect on Asterisk's ABI. Asterisk built
- with MALLOC_DEBUG can now successfully load binary modules built without
- MALLOC_DEBUG and vice versa. Third-party pre-compiled modules no longer
- need to have a special build with it enabled.
-
- - Asterisk now depends on libjansson >= 2.11. If this version is not
- available on your distro you can use `./configure --with-jansson-bundled`.
-
-chan_dahdi:
- - Timeouts for reading digits from analog phones are now configurable in
- chan_dahdi.conf: firstdigit_timeout, interdigit_timeout, matchdigit_timeout.
-
-cdr_syslog:
- - The cdr_syslog module is now deprecated and by default it is no longer
- built.
-
-res_config_sqlite:
- - The res_config_sqlite module is now deprecated, users should migrate to the
- replacement module res_config_sqlite3.
-
-res_monitor:
- - The res_monitor module is now deprecated, users should migrate to the
- replacement module app_mixmonitor.
-
-Core:
- - libedit is no longer available as an embedded library and must be provided
- by the system.
- - The module loader now enforces inter-module dependencies. This ensures that
- a module is not started before another it depends on, even if preload is used.
- If a dependency is not available or fails to startup this will block any
- dependants from startup.
- - Parts of the Asterisk core which can load configuration from realtime are now
- built-in modules. It is no longer necessary to preload realtime drivers as
- they are always initialized before the built-in modules.
-
-From 15.2.0 to 15.3.0:
-
-res_pjsip
-------------------
- * Users who are matching endpoints by SIP header need to reevaluate their
- global "endpoint_identifier_order" option in light of the "ip" endpoint
- identifier method split into the "ip" and "header" endpoint identifier
- methods.
-
-res_pjsip_endpoint_identifier_ip
-------------------
- * The endpoint identifier "ip" method previously recognized endpoints either
- by IP address or a matching SIP header. The "ip" endpoint identifier method
- is now split into the "ip" and "header" endpoint identifier methods. The
- "ip" endpoint identifier method only matches by IP address and the "header"
- endpoint identifier method only matches by SIP header. The split allows the
- user to control the relative priority of the IP address and the SIP header
- identification methods in the global "endpoint_identifier_order" option.
- e.g., If you have two type=identify sections where one matches by IP address
- for endpoint alice and the other matches by SIP header for endpoint bob then
- you can now predict which endpoint is matched when a request comes in that
- matches both.
-
-New in 15.0.0:
-
-Build System:
- - '--with-pjproject-bundled' is now the default when running ./configure
- It can be disabled with '--without-pjproject-bundled'.
-
-Core:
- - Multi-stream support has been added so a channel can have multiple
- streams of the same type such as audio and video.
-
- - The 'Data Retrieval API' has been removed. This API was not actively
- maintained, was not added to new modules (such as res_pjsip), and there
- exist better alternatives to acquire the same information, such as the
- ARI. As a result, the 'DataGet' AMI action as well as the 'data get'
- CLI command have been removed.
-
-From 14.6.0 to 14.7.0:
-
-Core:
- - ast_app_parse_timelen now returns an error if it encounters extra characters
- at the end of the string to be parsed.
-
-From 14.4.0 to 14.5.0:
-
-Core:
- - Support for embedded modules has been removed. This has not worked in
- many years. LOADABLE_MODULES menuselect option is also removed as
- loadable module support is now always enabled.
-
-From 14.3.0 to 14.4.0:
-
-res_rtp_asterisk:
- - The RTP layer of Asterisk now has support for RFC 5761: "Multiplexing RTP
- Data and Control Packets on a Single Port." For the PJSIP channel driver,
- chan_pjsip, you can set "rtcp_mux = yes" on a PJSIP endpoint in pjsip.conf
- to enable the feature. For chan_sip you can set "rtcp_mux = yes" either
- globally or on a per-peer basis in sip.conf.
-
-New in 14.0.0
-
-ARI:
- - The policy for when to send "Dial" events has changed. Previously, "Dial"
- events were sent on the calling channel's topic. However, starting in Asterisk
- 14, if there is no calling channel on which to send the event, the event is
- instead sent on the called channel's topic. Note that for the ARI channels
- resource's dial operation, this means that the "Dial" events will always be
- sent on the called channel's topic.
-
-Channel Drivers:
-
-chan_dahdi:
- - For users using the FXO port (FXS signaling) distinctive ring detection
- feature, you will need to adjust the dringX count values. The count
- values now only record ring end events instead of any DAHDI event. A
- ring-ring-ring pattern would exceed the pattern limits and stop
- Caller-ID detection.
-
-chan_sip:
- - The SIP dial string has been extended past the [!dnid] option by another
- exclamation mark: [!dnid[!fromuri]. An exclamation mark in the To-URI
- will now mean changes to the From-URI.
-
-Core:
- - The REF_DEBUG compiler flag is now used to enable refdebug by default.
- The setting can be overridden in asterisk.conf by setting refdebug in
- the options category. No recompile is required to enable/disable it.
-
- - Modified processing of command-line options to first parse only what
- is necessary to read asterisk.conf. Once asterisk.conf is fully loaded,
- the remaining options are processed. The -X option now applies to
- asterisk.conf only. To enable #exec for other config files you must
- set execincludes=yes in asterisk.conf. Any other option set on the
- command-line will now override the equivalent setting from asterisk.conf.
-
-AMI:
- - The 'ModuleCheck' Action's Version key will no longer show the module
- version. The value will always be blank.
-
-CLI:
- - The 'core show file version' command has been removed. When Asterisk
- moved to Git, the source control version support was removed. As a
- result, the CLi command was no longer useful and was removed as well.
-
-Logging:
- - The first callid created is now 1 instead of 0. The value 0
- is now reserved to represent a lack of callid.
-
-AMI:
- - The Command action now sends the output from the CLI command as a series
- of Output headers for each line instead of as a block of text with the
- --END COMMAND-- delimiter to match the output from other actions.
-
- Commands that fail to execute (no such command, invalid syntax etc.) now
- return an Error response instead of Success.
-
-app_amd:
- - The 'maximum_number_of_words' configuration option and parameter to the AMD
- application previously did not match the documented functionality + variable
- name. In Asterisk 13, a value of '3' would mean that if '3' words were detected,
- the result would be detection as a 'MACHINE'. As of this version, the value
- reflects the maximum words that if EXCEEDED (rather than reached), would
- result in detection as a machine. This means that you should update this
- value to be one higher than your previos value, if your previous value
- was working well for you.
-
-From 12 to 13:
-
-General Asterisk Changes:
- - The asterisk command line -I option and the asterisk.conf internal_timing
- option are removed and always enabled if any timing module is loaded.
-
- - The per console verbose level feature as previously implemented caused a
- large performance penalty. The fix required some minor incompatibilities
- if the new rasterisk is used to connect to an earlier version. If the new
- rasterisk connects to an older Asterisk version then the root console verbose
- level is always affected by the "core set verbose" command of the remote
- console even though it may appear to only affect the current console. If
- an older version of rasterisk connects to the new version then the
- "core set verbose" command will have no effect.
-
- - The asterisk compatibility options in asterisk.conf have been removed.
- These options enabled certain backwards compatibility features for
- pbx_realtime, res_agi, and app_set that made their behaviour similar to
- Asterisk 1.4. Users who used these backwards compatibility settings should
- update their dialplans to use ',' instead of '|' as a delimiter, and should
- use the Set dialplan application instead of the MSet dialplan application.
-
-Build System:
- - Sample config files have been moved from configs/ to a subfolder of that
- directory, 'samples'.
-
- - The menuselect utility has been pulled into the Asterisk repository. As a
- result, the libxml2 development library is now a required dependency for
- Asterisk.
-
- - Added a new Compiler Flag, REF_DEBUG. When enabled, reference counted
- objects will emit additional debug information to the refs log file located
- in the standard Asterisk log file directory. This log file is useful in
- tracking down object leaks and other reference counting issues. Prior to
- this version, this option was only available by modifying the source code
- directly. This change also includes a new script, refcounter.py, in the
- contrib folder that will process the refs log file.
-
-Applications:
-
-ConfBridge:
- - The sound_place_into_conference sound used in Confbridge is now deprecated
- and is no longer functional since it has been broken since its inception
- and the fix involved using a different method to achieve the same goal. The
- new method to achieve this functionality is by using sound_begin to play
- a sound to the conference when waitmarked users are moved into the conference.
-
- - Added 'Admin' header to ConfbridgeJoin, ConfbridgeLeave, ConfbridgeMute,
- ConfbridgeUnmute, and ConfbridgeTalking AMI events.
-
-ControlPlayback:
- - The ControlPlayback and 'control stream file' AGI command will no longer
- implicitly answer the channel. If you do not answer the channel prior to
- using either this application or AGI command, you must send Progress
- first.
-
-Queue:
- - Queue rules provided in queuerules.conf can no longer be named "general".
-
-SetMusicOnHold:
- - The SetMusicOnHold dialplan application was deprecated and has been removed.
- Users of the application should use the CHANNEL function's musicclass
- setting instead.
-
-WaitMusicOnHold:
- - The WaitMusicOnHold dialplan application was deprecated and has been
- removed. Users of the application should use MusicOnHold with a duration
- parameter instead.
-
-CDR Backends:
- - The cdr_sqlite module was deprecated and has been removed. Users of this
- module should use the cdr_sqlite3_custom module instead.
-
-Channel Drivers:
-
-chan_dahdi:
- - SS7 support now requires libss7 v2.0 or later.
-
- - Added the inband_on_setup_ack compatibility option to chan_dahdi.conf to
- deal with switches that don't send an inband progress indication in the
- SETUP ACKNOWLEDGE message.
- Default is now no.
-
-chan_gtalk
- - This module was deprecated and has been removed. Users of chan_gtalk
- should use chan_motif.
-
-chan_h323
- - This module was deprecated and has been removed. Users of chan_h323
- should use chan_ooh323.
-
-chan_jingle
- - This module was deprecated and has been removed. Users of chan_jingle
- should use chan_motif.
-
-chan_pjsip:
- - Added a 'force_avp' option to chan_pjsip which will force the usage of
- 'RTP/AVP', 'RTP/AVPF', 'RTP/SAVP', or 'RTP/SAVPF' as the media transport type
- in SDP offers depending on settings, even when DTLS is used for media
- encryption.
-
- - Added a 'media_use_received_transport' option to chan_pjsip which will
- cause the SDP answer to use the media transport as received in the SDP
- offer.
-
-chan_sip:
- - Made set SIPREFERREDBYHDR as inheritable for better chan_pjsip
- interoperability.
-
- - The SIPPEER dialplan function no longer supports using a colon as a
- delimiter for parameters. The parameters for the function should be
- delimited using a comma.
-
- - The SIPCHANINFO dialplan function was deprecated and has been removed. Users
- of the function should use the CHANNEL function instead.
-
- - Added a 'force_avp' option for chan_sip. When enabled this option will
- cause the media transport in the offer or answer SDP to be 'RTP/AVP',
- 'RTP/AVPF', 'RTP/SAVP', or 'RTP/SAVPF' even if a DTLS stream has been
- configured. This option can be set to improve interoperability with WebRTC
- clients that don't use the RFC defined transport for DTLS.
-
- - The 'dtlsverify' option in chan_sip now has additional values besides
- 'yes' and 'no'. If 'yes' is specified both the certificate and fingerprint
- will be verified. If 'no' is specified then neither the certificate or
- fingerprint is verified. If 'certificate' is specified then only the
- certificate is verified. If 'fingerprint' is specified then only the
- fingerprint is verified.
-
- - A 'dtlsfingerprint' option has been added to chan_sip which allows the
- hash to be specified for the DTLS fingerprint placed in SDP. Supported
- values are 'sha-1' and 'sha-256' with 'sha-256' being the default.
-
- - The 'progressinband=never' option is now more zealous in the persecution of
- progress messages coming from Asterisk. Channels bridged with a SIP channel
- that has 'progressinband=never' set will not be able to forward their
- progress indications through to the SIP device. chan_sip will now turn such
- progress indications into a 180 Ringing (if a 180 has not yet been
- transmitted) if 'progressinband=never'.
-
- - The codec preference order in an SDP during an offer is slightly different
- than previous releases. Prior to Asterisk 13, the preference order of
- codecs used to be:
- (1) Our preferred codec
- (2) Our configured codecs
- (3) Any non-audio joint codecs
-
- One of the ways the new media format architecture in Asterisk 13 improves
- performance is by reference counting formats, such that they can be reused
- in many places without additional allocation. To not require a large
- amount of locking, an instance of a format is immutable by convention.
- This works well except for formats with attributes. Since a media format
- with an attribute is a different object than the same format without an
- attribute, we have to carry over the formats with attributes from an
- inbound offer so that the correct attributes are offered in an outgoing
- INVITE request. This requires some subtle tweaks to the preference order
- to ensure that the media format with attributes is offered to a remote
- peer, as opposed to the same media format (but without attributes) that
- may be stored in the peer object.
-
- All of this means that our offer offer list will now be:
- (1) Our preferred codec
- (2) Any joint codecs offered by the inbound offer
- (3) All other codecs that are not the preferred codec and not a joint
- codec offered by the inbound offer
-
-chan_unistim:
- - The unistim.conf 'dateformat' has changed meaning of options values to conform
- values used inside Unistim protocol
-
- - Added 'dtmf_duration' option with changing default operation to disable
- received dtmf playback on unistim phone
-
-Core:
-
-Account Codes:
- - accountcode behavior changed somewhat to add functional peeraccount
- support. The main change is that local channels now cross accountcode
- and peeraccount across the special bridge between the ;1 and ;2 channels
- just like channels between normal bridges. See the CHANGES file for
- more information.
-
-ARI:
- - The ARI version has been changed to 1.5.0. This is to reflect backwards
- compatible changes made since 12.0.0 was released.
-
- - Added a new ARI resource 'mailboxes' which allows the creation and
- modification of mailboxes managed by external MWI. Modules res_mwi_external
- and res_stasis_mailbox must be enabled to use this resource.
-
- - Added new events for externally initiated transfers. The event
- BridgeBlindTransfer is now raised when a channel initiates a blind transfer
- of a bridge in the ARI controlled application to the dialplan; the
- BridgeAttendedTransfer event is raised when a channel initiates an
- attended transfer of a bridge in the ARI controlled application to the
- dialplan.
-
- - Channel variables may now be specified as a body parameter to the
- POST /channels operation. The 'variables' key in the JSON is interpreted
- as a sequence of key/value pairs that will be added to the created channel
- as channel variables. Other parameters in the JSON body are treated as
- query parameters of the same name.
-
- - A bug fix in bridge creation has caused a behavioural change in how
- subscriptions are created for bridges. A bridge created through ARI, does
- not, by itself, have a subscription created for any particular Stasis
- application. When a channel in a Stasis application joins a bridge, an
- implicit event subscription is created for that bridge as well. Previously,
- when a channel left such a bridge, the subscription was leaked; this allowed
- for later bridge events to continue to be pushed to the subscribed
- applications. That leak has been fixed; as a result, bridge events that were
- delivered after a channel left the bridge are no longer delivered. An
- application must subscribe to a bridge through the applications resource if
- it wishes to receive all events related to a bridge.
-
-AMI:
- - The AMI version has been changed to 2.5.0. This is to reflect backwards
- compatible changes made since 12.0.0 was released.
-
- - The DialStatus field in the DialEnd event can now have additional values.
- This includes ABORT, CONTINUE, and GOTO.
-
- - The res_mwi_external_ami module can, if loaded, provide additional AMI
- actions and events that convey MWI state within Asterisk. This includes
- the MWIGet, MWIUpdate, and MWIDelete actions, as well as the MWIGet and
- MWIGetComplete events that occur in response to an MWIGet action.
-
- - AMI now contains a new class authorization, 'security'. This is used with
- the following new events: FailedACL, InvalidAccountID, SessionLimit,
- MemoryLimit, LoadAverageLimit, RequestNotAllowed, AuthMethodNotAllowed,
- RequestBadFormat, SuccessfulAuth, UnexpectedAddress, ChallengeResponseFailed,
- InvalidPassword, ChallengeSent, and InvalidTransport.
-
- - Bridge related events now have two additional fields: BridgeName and
- BridgeCreator. BridgeName is a descriptive name for the bridge;
- BridgeCreator is the name of the entity that created the bridge. This
- affects the following events: ConfbridgeStart, ConfbridgeEnd,
- ConfbridgeJoin, ConfbridgeLeave, ConfbridgeRecord, ConfbridgeStopRecord,
- ConfbridgeMute, ConfbridgeUnmute, ConfbridgeTalking, BlindTransfer,
- AttendedTransfer, BridgeCreate, BridgeDestroy, BridgeEnter, BridgeLeave
-
- - MixMonitor AMI actions now require users to have authorization classes.
- * MixMonitor - system
- * MixMonitorMute - call or system
- * StopMixMonitor - call or system
-
- - Removed the undocumented manager.conf block-sockets option. It interferes with
- TCP/TLS inactivity timeouts.
-
- - The response to the PresenceState AMI action has historically contained two
- Message keys. The first of these is used as an informative message regarding
- the success/failure of the action; the second contains a Presence state
- specific message. Having two keys with the same unique name in an AMI
- message is cumbersome for some client; hence, the Presence specific Message
- has been deprecated. The message will now contain a PresenceMessage key
- for the presence specific information; the Message key containing presence
- information will be removed in the next major version of AMI.
-
- - The manager.conf 'eventfilter' now takes an "extended" regular expression
- instead of a "basic" one.
-
-CDRs:
- - The "endbeforehexten" setting now defaults to "yes", instead of "no".
- When set to "no", yhis setting will cause a new CDR to be generated when a
- channel enters into hangup logic (either the 'h' extension or a hangup
- handler subroutine). In general, this is not the preferred default: this
- causes extra CDRs to be generated for a channel in many common dialplans.
-
-CLI commands:
- - "core show settings" now lists the current console verbosity in addition
- to the root console verbosity.
-
- - "core set verbose" has not been able to support the by module verbose
- logging levels since verbose logging levels were made per console. That
- syntax is now removed and a silence option added in its place.
-
-Logging:
- - The 'verbose' setting in logger.conf still takes an optional argument,
- specifying the verbosity level for each logging destination. However,
- the default is now to once again follow the current root console level.
- As a result, using the AMI Command action with "core set verbose" could
- again set the root console verbose level and affect the verbose level
- logged.
-
-HTTP:
- - Added http.conf session_inactivity timer option to close HTTP connections
- that aren't doing anything.
-
- - Added support for persistent HTTP connections. To enable persistent
- HTTP connections configure the keep alive time between HTTP requests. The
- keep alive time between HTTP requests is configured in http.conf with the
- session_keep_alive parameter.
-
-Realtime Configuration:
- - WARNING: The database migration script that adds the 'extensions' table for
- realtime had to be modified due to an error when installing for MySQL. The
- 'extensions' table's 'id' column was changed to be a primary key. This could
- potentially cause a migration problem. If so, it may be necessary to
- manually alter the affected table/column to bring it back in line with the
- migration scripts.
-
- - New columns have been added to realtime tables for 'support_path' on
- ps_registrations and ps_aors and for 'path' on ps_contacts for the new
- SIP Path support in chan_pjsip.
-
- - The following new tables have been added for pjsip realtime: 'ps_systems',
- 'ps_globals', 'ps_tranports', 'ps_registrations'.
-
- - The following columns were added to the 'ps_aors' realtime table:
- 'maximum_expiration', 'outbound_proxy', and 'support_path'.
-
- - The following columns were added to the 'ps_contacts' realtime table:
- 'outbound_proxy', 'user_agent', and 'path'.
-
- - New columns have been added to the ps_endpoints realtime table for the
- 'media_address', 'redirect_method' and 'set_var' options. Also the
- 'mwi_fromuser' column was renamed to 'mwi_from_user'. A new column
- 'message_context' was added to let users configure how MESSAGE requests are
- routed to the dialplan.
-
- - A new column was added to the 'ps_globals' realtime table for the 'debug'
- option.
-
- - PJSIP endpoint columns 'tos_audio' and 'tos_video' have been changed from
- yes/no enumerators to string values. 'cos_audio' and 'cos_video' have been
- changed from yes/no enumerators to integer values. PJSIP transport column
- 'tos' has been changed from a yes/no enumerator to a string value. 'cos' has
- been changed from a yes/no enumerator to an integer value.
-
- - The 'queues' and 'queue_members' realtime tables have been added to the
- config Alembic scripts.
-
- - A new set of Alembic scripts has been added for CDR tables. This will create
- a 'cdr' table with the default schema that Asterisk expects.
-
- - A new upgrade script has been added that adds a 'queue_rules' table for
- app_queue. Users of app_queue can store queue rules in a database. It is
- important to note that app_queue only looks for this table on module load or
- module reload; for more information, see the CHANGES file.
-
-Resources:
-
-res_odbc:
-- The compatibility setting, allow_empty_string_in_nontext, has been removed.
- Empty column values will be stored as empty strings during realtime updates.
-
-res_jabber:
- - This module was deprecated and has been removed. Users of this module should
- use res_xmpp instead.
-
-res_http_websocket:
- - Added a compatibility option to ari.conf, sip.conf, and pjsip.conf
- 'websocket_write_timeout'. When a websocket connection exists where Asterisk
- writes a substantial amount of data to the connected client, and the connected
- client is slow to process the received data, the socket may be disconnected.
- In such cases, it may be necessary to adjust this value.
- Default is 100 ms.
-Scripts:
-
-safe_asterisk:
- - The safe_asterisk script was previously not installed on top of an existing
- version. This caused bug-fixes in that script not to be deployed. If your
- safe_asterisk script is customized, be sure to keep your changes. Custom
- values for variables should be created in *.sh file(s) inside
- ASTETCDIR/startup.d/. See ASTERISK-21965.
-
- - Changed a log message in safe_asterisk and the $NOTIFY mail subject. If
- you use tools to parse either of them, update your parse functions
- accordingly. The changed strings are:
- - "Exited on signal $EXITSIGNAL" => "Asterisk exited on signal $EXITSIGNAL."
- - "Asterisk Died" => "Asterisk on $MACHINE died (sig $EXITSIGNAL)"
-
-Utilities:
- - The refcounter program has been removed in favor of the refcounter.py script
- in contrib/scripts.
-
-From 11 to 12:
-
-There are many significant architectural changes in Asterisk 12. It is
-recommended that you not only read through this document for important
-changes that affect an upgrade, but that you also read through the CHANGES
-document in depth to better understand the new options available to you.
-
-Additional information on the architectural changes made in Asterisk can be
-found on the Asterisk wiki (https://wiki.asterisk.org)
-
-Of particular note, the following systems in Asterisk underwent significant
-changes. Documentation for the changes and a specification for their
-behavior in Asterisk 12 is also available on the Asterisk wiki.
- - AMI: Many events were changed, and the semantics of channels and bridges
- were defined. In particular, how channels and bridges behave under
- transfer scenarios and situations involving multiple parties has
- changed significantly. See https://wiki.asterisk.org/wiki/x/dAFRAQ
- for more information.
- - CDR: CDR logic was extracted from the many locations it existed in across
- Asterisk and implemented as a consumer of Stasis message bus events.
- As a result, consistency of records has improved significantly and the
- behavior of CDRs in transfer scenarios has been defined in the CDR
- specification. However, significant behavioral changes in CDRs resulted
- from the transition. The most significant change is the addition of
- CDR entries when a channel who is the Party A in a CDR leaves a bridge.
- See https://wiki.asterisk.org/wiki/x/pwpRAQ for more information.
- - CEL: Much like CDRs, CEL was removed from the many locations it existed in
- across Asterisk and implemented as a consumer of Stasis message bus
- events. It now closely follows the Bridging API model of channels and
- bridges, and has a much closer consistency of conveyed events as AMI.
- For the changes in events, see https://wiki.asterisk.org/wiki/x/4ICLAQ.
-
-Build System:
- - Removed the CHANNEL_TRACE development mode build option. Certain aspects of
- the CHANNEL_TRACE build option were incompatible with the new bridging
- architecture.
-
- - Asterisk now depends on libjansson, libuuid and optionally (but recommended)
- libxslt and uriparser.
-
- - The new SIP stack and channel driver uses a particular version of PJSIP.
- Please see https://wiki.asterisk.org/wiki/x/J4GLAQ for more information on
- configuring and installing PJSIP for use with Asterisk.
-
-AgentLogin and chan_agent:
- - Along with AgentRequest, this application has been modified to be a
- replacement for chan_agent. The chan_agent module and the Agent channel
- driver have been removed from Asterisk, as the concept of a channel driver
- proxying in front of another channel driver was incompatible with the new
- architecture (and has had numerous problems through past versions of
- Asterisk). The act of a channel calling the AgentLogin application places the
- channel into a pool of agents that can be requested by the AgentRequest
- application. Note that this application, as well as all other agent related
- functionality, is now provided by the app_agent_pool module.
-
- - This application no longer performs agent authentication. If authentication
- is desired, the dialplan needs to perform this function using the
- Authenticate or VMAuthenticate application or through an AGI script before
- running AgentLogin.
-
- - The agents.conf schema has changed. Rather than specifying agents on a
- single line in comma delineated fashion, each agent is defined in a separate
- context. This allows agents to use the power of context templates in their
- definition.
-
- - A number of parameters from agents.conf have been removed. This includes
- maxloginretries, autologoffunavail, updatecdr, goodbye, group, recordformat,
- urlprefix, and savecallsin. These options were obsoleted by the move from
- a channel driver model to the bridging/application model provided by
- app_agent_pool.
-
- - The AGENTUPDATECDR channel variable has also been removed, for the same
- reason as the updatecdr option.
-
- - The endcall and enddtmf configuration options are removed. Use the
- dialplan function CHANNEL(dtmf_features) to set DTMF features on the agent
- channel before calling AgentLogin.
-
-AgentMonitorOutgoing
- - This application has been removed. It was a holdover from when
- AgentCallbackLogin was removed.
-
-Answer
- - It is no longer possible to bypass updating the CDR when answering a
- channel. CDRs are based on the channel state and will be updated when
- the channel is Answered.
-
-ControlPlayback
- - The channel variable CPLAYBACKSTATUS may now return the value
- 'REMOTESTOPPED' when playback is stopped by an external entity.
-
-DISA
- - This application now has a dependency on the app_cdr module. It uses this
- module to hide the CDR created prior to execution of the DISA application.
-
-DumpChan:
- - The output of DumpChan no longer includes the DirectBridge or IndirectBridge
- fields. Instead, if a channel is in a bridge, it includes a BridgeID field
- containing the unique ID of the bridge that the channel happens to be in.
-
-ForkCDR:
- - Nearly every parameter in ForkCDR has been updated and changed to reflect
- the changes in CDRs. Please see the documentation for the ForkCDR
- application, as well as the CDR specification on the Asterisk wiki.
-
-NoCDR:
- - The NoCDR application has been deprecated. Please use the CDR_PROP function
- to disable CDRs on a channel.
-
-ParkAndAnnounce:
- - The app_parkandannounce module has been removed. The application
- ParkAndAnnounce is now provided by the res_parking module. See the
- Parking changes for more information.
-
-ResetCDR:
- - The 'w' and 'a' options have been removed. Dispatching CDRs to registered
- backends occurs on an as-needed basis in order to preserve linkedid
- propagation and other needed behavior.
- - The 'e' option is deprecated. Please use the CDR_PROP function to enable
- CDRs on a channel that they were previously disabled on.
- - The ResetCDR application is no longer a part of core Asterisk, and instead
- is now delivered as part of app_cdr.
-
-Queues:
- - Queue strategy rrmemory now has a predictable order similar to strategy
- rrordered. Members will be called in the order that they are added to the
- queue.
-
- - Removed the queues.conf check_state_unknown option. It is no longer
- necessary.
-
- - It is now possible to play the Queue prompts to the first user waiting in a
- call queue. Note that this may impact the ability for agents to talk with
- users, as a prompt may still be playing when an agent connects to the user.
- This ability is disabled by default but can be enabled on an individual
- queue using the 'announce-to-first-user' option.
-
- - The configuration options eventwhencalled and eventmemberstatus have been
- removed. As a result, the AMI events QueueMemberStatus, AgentCalled,
- AgentConnect, AgentComplete, AgentDump, and AgentRingNoAnswer will always be
- sent. The "Variable" fields will also no longer exist on the Agent* events.
- These events can be filtered out from a connected AMI client using the
- eventfilter setting in manager.conf.
-
- - The queue log now differentiates between blind and attended transfers. A
- blind transfer will result in a BLINDTRANSFER message with the destination
- context and extension. An attended transfer will result in an
- ATTENDEDTRANSFER message. This message will indicate the method by which
- the attended transfer was completed: "BRIDGE" for a bridge merge, "APP"
- for running an application on a bridge or channel, or "LINK" for linking
- two bridges together with local channels. The queue log will also now detect
- externally initiated blind and attended transfers and record the transfer
- status accordingly.
-
- - When performing queue pause/unpause on an interface without specifying an
- individual queue, the PAUSEALL/UNPAUSEALL event will only be logged if at
- least one member of any queue exists for that interface.
-
-SetAMAFlags
- - This application is deprecated in favor of CHANNEL(amaflags).
-
-VoiceMail:
- - Mailboxes defined by app_voicemail MUST be referenced by the rest of the
- system as mailbox@context. The rest of the system cannot add @default
- to mailbox identifiers for app_voicemail that do not specify a context
- any longer. It is a mailbox identifier format that should only be
- interpreted by app_voicemail.
-
- - The voicemail.conf configuration file now has an 'alias' configuration
- parameter for use with the Directory application. The voicemail realtime
- database table schema has also been updated with an 'alias' column. Systems
- using voicemail with realtime should update their schemas accordingly.
-
-Channel Drivers:
- - When a channel driver is configured to enable jiterbuffers, they are now
- applied unconditionally when a channel joins a bridge. If a jitterbuffer
- is already set for that channel when it enters, such as by the JITTERBUFFER
- function, then the existing jitterbuffer will be used and the one set by
- the channel driver will not be applied.
-
-chan_bridge
- - chan_bridge is removed and its functionality is incorporated into ConfBridge
- itself.
-
-chan_dahdi:
- - Analog port dialing and deferred DTMF dialing for PRI now distinguishes
- between 'w' and 'W'. The 'w' pauses dialing for half a second. The 'W'
- pauses dialing for one second.
-
- - The default for inband_on_proceeding has changed to no.
-
- - The CLI command 'dahdi destroy channel' is now 'dahdi destroy channels'.
- A range of channels can be specified to be destroyed. Note that this command
- should only be used if you understand the risks it entails.
-
- - The script specified by the chan_dahdi.conf mwimonitornotify option now gets
- the exact configured mailbox name. For app_voicemail mailboxes this is
- mailbox@context.
-
- - Added mwi_vm_boxes that also must be configured for ISDN MWI to be enabled.
-
- - ignore_failed_channels now defaults to True: the channel will continue to
- be configured even if configuring it has failed. This is generally a
- better setup for systems with not more than one DAHDI device or with DAHDI
- >= 2.8.0 .
-
-chan_local:
- - The /b option has been removed.
-
- - chan_local moved into the system core and is no longer a loadable module.
-
-chan_sip:
- - The 'callevents' parameter has been removed. Hold AMI events are now raised
- in the core, and can be filtered out using the 'eventfilter' parameter
- in manager.conf.
-
- - Dynamic realtime tables for SIP Users can now include a 'path' field. This
- will store the path information for that peer when it registers. Realtime
- tables can also use the 'supportpath' field to enable Path header support.
-
- - LDAP realtime configurations for SIP Users now have the AstAccountPathSupport
- objectIdentifier. This maps to the supportpath option in sip.conf.
-
-Core:
- - Masquerades as an operation inside Asterisk have been effectively hidden
- by the migration to the Bridging API. As such, many 'quirks' of Asterisk
- no longer occur. This includes renaming of channels, "<ZOMBIE>" channels,
- dropping of frame/audio hooks, and other internal implementation details
- that users had to deal with. This fundamental change has large implications
- throughout the changes documented for this version. For more information
- about the new core architecture of Asterisk, please see the Asterisk wiki.
-
- - The following channel variables have changed behavior which is described in
- the CHANGES file: TRANSFER_CONTEXT, BRIDGEPEER, BRIDGEPVTCALLID,
- ATTENDED_TRANSFER_COMPLETE_SOUND, DYNAMIC_FEATURENAME, and DYNAMIC_PEERNAME.
-
-AMI (Asterisk Manager Interface):
- - Version 1.4 - The details of what happens to a channel when a masquerade
- happens (transfers, parking, etc) have changed.
- - The Masquerade event now includes the Uniqueid's of the clone and original
- channels.
- - Channels no longer swap Uniqueid's as a result of the masquerade.
- - Instead of a shell game of renames, there's now a single rename, appending
- <ZOMBIE> to the name of the original channel.
-
- - *Major* changes were made to both the syntax as well as the semantics of the
- AMI protocol. In particular, AMI events have been substantially modified
- and improved in this version of Asterisk. The major event changes are listed
- below.
- - NewPeerAccount has been removed. NewAccountCode is raised instead.
- - Reload events have been consolidated and standardized.
- - ModuleLoadReport has been removed.
- - FaxSent is now SendFAX; FaxReceived is now ReceiveFAX. This standardizes
- app_fax and res_fax events.
- - MusicOnHold has been replaced with MusicOnHoldStart and MusicOnHoldStop.
- - JabberEvent has been removed.
- - Hold is now in the core and will now raise Hold and Unhold events.
- - Join is now QueueCallerJoin.
- - Leave is now QueueCallerLeave.
- - Agentlogin/Agentlogoff is now AgentLogin/AgentLogoff, respectively.
- - ChannelUpdate has been removed.
- - Local channel optimization is now conveyed via LocalOptimizationBegin and
- LocalOptimizationEnd.
- - BridgeAction and BridgeExec have been removed.
- - BlindTransfer and AttendedTransfer events were added.
- - Dial is now DialBegin and DialEnd.
- - DTMF is now DTMFBegin and DTMFEnd.
- - Bridge has been replaced with BridgeCreate, BridgeEnter, BridgeLeave, and
- BridgeDestroy
- - MusicOnHold has been replaced with MusicOnHoldStart and MusicOnHoldStop
- - AGIExec is now AGIExecStart and AGIExecEnd
- - AsyncAGI is now AsyncAGIStart, AsyncAGIExec, and AsyncAGIEnd
-
- - The 'MCID' AMI event now publishes a channel snapshot when available and
- its non-channel-snapshot parameters now use either the "MCallerID" or
- 'MConnectedID' prefixes with Subaddr*, Name*, and Num* suffixes instead
- of 'CallerID' and 'ConnectedID' to avoid confusion with similarly named
- parameters in the channel snapshot.
-
- - The 'Channel' key used in the 'AlarmClear', 'Alarm', and 'DNDState' has been
- renamed "DAHDIChannel" since it does not convey an Asterisk channel name.
-
- - All AMI events now contain a 'SystemName' field, if available.
-
- - Local channel information in events is now prefixed with 'LocalOne' and
- 'LocalTwo'. This replaces the suffix of '1' and '2' for the two halves of
- the Local channel. This affects the 'LocalBridge', 'LocalOptimizationBegin',
- and 'LocalOptimizationEnd' events.
-
- - The 'RTCPSent'/'RTCPReceived' events have been significantly modified from
- previous versions. They now report all SR/RR packets sent/received, and
- have been restructured to better reflect the data sent in a SR/RR. In
- particular, the event structure now supports multiple report blocks.
-
- - The deprecated use of | (pipe) as a separator in the channelvars setting in
- manager.conf has been removed.
-
- - The SIP SIPqualifypeer action now sends a response indicating it will qualify
- a peer once a peer has been found to qualify. Once the qualify has been
- completed it will now issue a SIPqualifypeerdone event.
-
- - The AMI event 'Newexten' field 'Extension' is deprecated, and may be removed
- in a future release. Please use the common 'Exten' field instead.
-
- - The AMI events 'ParkedCall', 'ParkedCallTimeOut', 'ParkedCallGiveUp', and
- 'UnParkedCall' have changed significantly in the new res_parking module.
- - The 'Channel' and 'From' headers are gone. For the channel that was parked
- or is coming out of parking, a 'Parkee' channel snapshot is issued and it
- has a number of fields associated with it. The old 'Channel' header relayed
- the same data as the new 'ParkeeChannel' header.
- - The 'From' field was ambiguous and changed meaning depending on the event.
- for most of these, it was the name of the channel that parked the call
- (the 'Parker'). There is no longer a header that provides this channel name,
- however the 'ParkerDialString' will contain a dialstring to redial the
- device that parked the call.
- - On UnParkedCall events, the 'From' header would instead represent the
- channel responsible for retrieving the parkee. It receives a channel
- snapshot labeled 'Retriever'. The 'from' field is is replaced with
- 'RetrieverChannel'.
- - Lastly, the 'Exten' field has been replaced with 'ParkingSpace'.
-
- - The AMI event 'Parkinglot' (response to 'Parkinglots' command) in a similar
- fashion has changed the field names 'StartExten' and 'StopExten' to
- 'StartSpace' and 'StopSpace' respectively.
-
- - The AMI 'Status' response event to the AMI Status action replaces the
- 'BridgedChannel' and 'BridgedUniqueid' headers with the 'BridgeID' header to
- indicate what bridge the channel is currently in.
-
-CDR (Call Detail Records)
- - Significant changes have been made to the behavior of CDRs. The CDR engine
- was effectively rewritten and built on the Stasis message bus. For a full
- definition of CDR behavior in Asterisk 12, please read the specification
- on the Asterisk wiki (wiki.asterisk.org).
-
- - CDRs will now be created between all participants in a bridge. For each
- pair of channels in a bridge, a CDR is created to represent the path of
- communication between those two endpoints. This lets an end user choose who
- to bill for what during bridge operations with multiple parties.
-
- - The duration, billsec, start, answer, and end times now reflect the times
- associated with the current CDR for the channel, as opposed to a cumulative
- measurement of all CDRs for that channel.
-
-CEL:
- - The Uniqueid field for a channel is now a stable identifier, and will not
- change due to transfers, parking, etc.
-
- - CEL has undergone significant rework in Asterisk 12, and is now built on the
- Stasis message bus. Please see the specification for CEL on the Asterisk
- wiki at https://wiki.asterisk.org/wiki/x/4ICLAQ for more detailed
- information. A summary of the affected events is below:
- - BRIDGE_START, BRIDGE_END, BRIDGE_UPDATE, 3WAY_START, 3WAY_END, CONF_ENTER,
- CONF_EXIT, CONF_START, and CONF_END events have all been removed. These
- events have been replaced by BRIDGE_ENTER/BRIDGE_EXIT.
- - BLINDTRANSFER/ATTENDEDTRANSFER events now report the peer as NULL and
- additional information in the extra string field.
-
-Dialplan Functions:
-
- - Certain dialplan functions have been marked as 'dangerous', and may only be
- executed from the dialplan. Execution from extenal sources (AMI's GetVar and
- SetVar actions; etc.) may be inhibited by setting live_dangerously in the
- [options] section of asterisk.conf to no. SHELL(), channel locking, and
- direct file read/write functions are marked as dangerous. DB_DELETE() and
- REALTIME_DESTROY() are marked as dangerous for reads, but can now safely
- accept writes (which ignore the provided value).
- - The default value for live_dangerously was changed from yes (in Asterisk 11
- and earlier) to no (in Asterisk 12 and greater).
-
-Dialplan:
- - All channel and global variable names are evaluated in a case-sensitive
- manner. In previous versions of Asterisk, variables created and evaluated in
- the dialplan were evaluated case-insensitively, but built-in variables and
- variable evaluation done internally within Asterisk was done
- case-sensitively.
-
- - Asterisk has always had code to ignore dash '-' characters that are not
- part of a character set in the dialplan extensions. The code now
- consistently ignores these characters when matching dialplan extensions.
-
- - BRIDGE_FEATURES channel variable is now casesensitive for feature letter
- codes. Uppercase variants apply them to the calling party while lowercase
- variants apply them to the called party.
-
-Features:
- - The features.conf [applicationmap] <FeatureName> ActivatedBy option is
- no longer honored. The feature is always activated by the channel that has
- DYNAMIC_FEATURES defined on it when it enters the bridge. Use predial to set
- different values of DYNAMIC_FEATURES on the channels
-
- - Executing a dynamic feature on the bridge peer in a multi-party bridge will
- execute it on all peers of the activating channel.
-
- - There is no longer an explicit 'features reload' CLI command. Features can
- still be reloaded using 'module reload features'.
-
- - It is no longer necessary (or possible) to define the ATXFER_NULL_TECH in
- features.c for atxferdropcall=no to work properly. This option now just
- works.
-
-Parking:
- - Parking has been extracted from the Asterisk core as a loadable module,
- res_parking.
-
- - Configuration is found in res_parking.conf. It is no longer supported in
- features.conf
-
- - The arguments for the Park, ParkedCall, and ParkAndAnnounce applications
- have been modified significantly. See the application documents for
- specific details.
-
- - Numerous changes to Parking related applications, AMI and CLI commands and
- internal inter-workings have been made. Please read the CHANGES file for
- the detailed list.
-
-Security Events Framework:
- - Security Event timestamps now use ISO 8601 formatted date/time instead of
- the "seconds-microseconds" format that it was using previously.
-
-AGENT:
- - The password option has been disabled, as the AgentLogin application no
- longer provides authentication.
-
-AUDIOHOOK_INHERIT:
- - Due to changes in the Asterisk core, this function is no longer needed to
- preserve a MixMonitor on a channel during transfer operations and dialplan
- execution. It is effectively obsolete.
-
-CDR: (function)
- - The 'amaflags' and 'accountcode' attributes for the CDR function are
- deprecated. Use the CHANNEL function instead to access these attributes.
-
- - The 'l' option has been removed. When reading a CDR attribute, the most
- recent record is always used. When writing a CDR attribute, all non-finalized
- CDRs are updated.
-
- - The 'r' option has been removed, for the same reason as the 'l' option.
-
- - The 's' option has been removed, as LOCKED semantics no longer exist in the
- CDR engine.
-
-VMCOUNT:
- - Mailboxes defined by app_voicemail MUST be referenced by the rest of the
- system as mailbox@context. The rest of the system cannot add @default
- to mailbox identifiers for app_voicemail that do not specify a context
- any longer. It is a mailbox identifier format that should only be
- interpreted by app_voicemail.
-
-res_rtp_asterisk:
- - ICE/STUN/TURN support in res_rtp_asterisk has been made optional. To enable
- them, an Asterisk-specific version of PJSIP needs to be installed.
- Tarballs are available from https://github.com/asterisk/pjproject/tags/.
-
-From 11.6 to 11.7:
-ConfBridge
- - ConfBridge now has the ability to set the language of announcements to the
- conference. The language can be set on a bridge profile in confbridge.conf
- or by the dialplan function CONFBRIDGE(bridge,language)=en.
-chan_sip - Clarify The "sip show peers" Forcerport Column And Add Comedia
- - Under the "Forcerport" column, the "N" used to mean NAT (i.e. Yes). With
- the additon of auto_* NAT settings, the meaning changed and there was a
- certain combination of letters added to indicate the current setting. The
- combination of using "Y", "N", "A" or "a", can be confusing. Therefore, we
- now display clearly what the current Forcerport setting is: "Yes", "No",
- "Auto (Yes)", "Auto (No)".
- - Since we are clarifying the Forcerport column, we have added a column to
- display the Comedia setting since this is useful information as well. We
- no longer have a simple "NAT" setting like other versions before 11.
-
-From 11.5 to 11.6:
-* res_agi will now properly indicate if there was an error in streaming an
- audio file. The result code will be -1 and the result returned from the
- the function will be RESULT_FAILURE instead of the prior behavior of always
- returning RESULT_SUCCESS even if there was an error.
-
-From 11.4 to 11.5:
-* The default settings for chan_sip are now overriden properly by the general
- settings in sip.conf. Please look over your settings upon upgrading.
-
-From 11.3 to 11.4:
-* Added the 'n' option to MeetMe to prevent application of the DENOISE function
- to a channel joining a conference. Some channel drivers that vary the number
- of audio samples in a voice frame will experience significant quality problems
- if a denoiser is attached to the channel; this option gives them the ability
- to remove the denoiser without having to unload func_speex.
-
-* The Registry AMI event for SIP registrations will now always include the
- Username field. A previous bug fix missed an instance where it was not
- included; that has been corrected in this release.
-
-From 11.2.0 to 11.2.1:
-* Asterisk would previously not output certain error messages when a remote
- console attempted to connect to Asterisk and no instance of Asterisk was
- running. This error message is displayed on stderr; as a result, some
- initialization scripts that used remote consoles to test for the presence
- of a running Asterisk instance started to display erroneous error messages.
- The init.d scripts and the safe_asterisk have been updated in the contrib
- folder to account for this.
-
-From 11.2 to 11.3:
-
-* Now by default, when Asterisk is installed in a path other than /usr, the
- Asterisk binary will search for shared libraries in ${libdir} in addition to
- searching system libraries. This allows Asterisk to find its shared
- libraries without having to specify LD_LIBRARY_PATH. This can be disabled by
- passing --disable-rpath to configure.
-
-From 10 to 11:
-
-Voicemail:
- - All voicemails now have a "msg_id" which uniquely identifies a message. For
- users of filesystem and IMAP storage of voicemail, this should be transparent.
- For users of ODBC, you will need to add a "msg_id" column to your voice mail
- messages table. This should be a string capable of holding at least 32 characters.
- All messages created in old Asterisk installations will have a msg_id added to
- them when required. This operation should be transparent as well.
-
-Parking:
- - The comebacktoorigin setting must now be set per parking lot. The setting in
- the general section will not be applied automatically to each parking lot.
- - The BLINDTRANSFER channel variable is deleted from a channel when it is
- bridged to prevent subtle bugs in the parking feature. The channel
- variable is used by Asterisk internally for the Park application to work
- properly. If you were using it for your own purposes, copy it to your
- own channel variable before the channel is bridged.
-
-res_ais:
- - Users of res_ais in versions of Asterisk prior to Asterisk 11 must change
- to use the res_corosync module, instead. OpenAIS is deprecated, but
- Corosync is still actively developed and maintained. Corosync came out of
- the OpenAIS project.
-
-Dialplan Functions:
- - MAILBOX_EXISTS has been deprecated. Use VM_INFO with the 'exists' parameter
- instead.
- - Macro has been deprecated in favor of GoSub. For redirecting and connected
- line purposes use the following variables instead of their macro equivalents:
- REDIRECTING_SEND_SUB, REDIRECTING_SEND_SUB_ARGS,
- CONNECTED_LINE_SEND_SUB, CONNECTED_LINE_SEND_SUB_ARGS.
- - The REDIRECTING function now supports the redirecting original party id
- and reason.
- - The HANGUPCAUSE and HANGUPCAUSE_KEYS functions have been introduced to
- provide a replacement for the SIP_CAUSE hash. The HangupCauseClear
- application has also been introduced to remove this data from the channel
- when necessary.
-
-
-func_enum:
- - ENUM query functions now return a count of -1 on lookup error to
- differentiate between a failed query and a successful query with 0 results
- matching the specified type.
-
-CDR:
- - cdr_adaptive_odbc now supports specifying a schema so that Asterisk can
- connect to databases that use schemas.
-
-Configuration Files:
- - Files listed below have been updated to be more consistent with how Asterisk
- parses configuration files. This makes configuration files more consistent
- with what is expected across modules.
-
- - cdr.conf: [general] and [csv] sections
- - dnsmgr.conf
- - dsp.conf
-
- - The 'verbose' setting in logger.conf now takes an optional argument,
- specifying the verbosity level for each logging destination. The default,
- if not otherwise specified, is a verbosity of 3.
-
-AMI:
- - DBDelTree now correctly returns an error when 0 rows are deleted just as
- the DBDel action does.
- - The IAX2 PeerStatus event now sends a 'Port' header. In Asterisk 10, this was
- erroneously being sent as a 'Post' header.
-
-CCSS:
- - Macro is deprecated. Use cc_callback_sub instead of cc_callback_macro
- in channel configurations.
-
-app_meetme:
- - The 'c' option (announce user count) will now work even if the 'q' (quiet)
- option is enabled.
-
-app_followme:
- - Answered outgoing calls no longer get cut off when the next step is started.
- You now have until the last step times out to decide if you want to accept
- the call or not before being disconnected.
-
-chan_gtalk:
- - chan_gtalk has been deprecated in favor of the chan_motif channel driver. It is recommended
- that users switch to using it as it is a core supported module.
-
-chan_jingle:
- - chan_jingle has been deprecated in favor of the chan_motif channel driver. It is recommended
- that users switch to using it as it is a core supported module.
-
-SIP
-===
- - A new option "tonezone" for setting default tonezone for the channel driver
- or individual devices
- - A new manager event, "SessionTimeout" has been added and is triggered when
- a call is terminated due to RTP stream inactivity or SIP session timer
- expiration.
- - SIP_CAUSE is now deprecated. It has been modified to use the same
- mechanism as the HANGUPCAUSE function. Behavior should not change, but
- performance should be vastly improved. The HANGUPCAUSE function should now
- be used instead of SIP_CAUSE. Because of this, the storesipcause option in
- sip.conf is also deprecated.
- - The sip paramater for Originating Line Information (oli, isup-oli, and
- ss7-oli) is now parsed out of the From header and copied into the channel's
- ANI2 information field. This is readable from the CALLERID(ani2) dialplan
- function.
- - ICE support has been added and is enabled by default. Some endpoints may have
- problems with the ICE candidates within the SDP. If this is the case ICE support
- can be disabled globally or on a per-endpoint basis using the icesupport
- configuration option. Symptoms of this include one way media or no media flow.
-
-chan_unistim
- - Due to massive update in chan_unistim phone keys functions and on-screen
- information changed.
-
-users.conf:
- - A defined user with hasvoicemail=yes now finally uses a Gosub to stdexten
- as documented in extensions.conf.sample since v1.6.0 instead of a Macro as
- documented in v1.4. Set the asterisk.conf stdexten=macro parameter to
- invoke the stdexten the old way.
-
-res_jabber
- - This module has been deprecated in favor of the res_xmpp module. The res_xmpp
- module is backwards compatible with the res_jabber configuration file, dialplan
- functions, and AMI actions. The old CLI commands can also be made available using
- the res_clialiases template for Asterisk 11.
-
-From 1.8 to 10:
-
-cel_pgsql:
- - This module now expects an 'extra' column in the database for data added
- using the CELGenUserEvent() application.
-
-ConfBridge
- - ConfBridge's dialplan arguments have changed and are not
- backwards compatible.
-
-File Interpreters
- - The format interpreter formats/format_sln16.c for the file extension
- '.sln16' has been removed. The '.sln16' file interpreter now exists
- in the formats/format_sln.c module along with new support for sln12,
- sln24, sln32, sln44, sln48, sln96, and sln192 file extensions.
-
-HTTP:
- - A bindaddr must be specified in order for the HTTP server
- to run. Previous versions would default to 0.0.0.0 if no
- bindaddr was specified.
-
-Gtalk:
- - The default value for 'context' and 'parkinglots' in gtalk.conf has
- been changed to 'default', previously they were empty.
-
-chan_dahdi:
- - The mohinterpret=passthrough setting is deprecated in favor of
- moh_signaling=notify.
-
-pbx_lua:
- - Execution no longer continues after applications that do dialplan jumps
- (such as app.goto). Now when an application such as app.goto() is called,
- control is returned back to the pbx engine and the current extension
- function stops executing.
- - the autoservice now defaults to being on by default
- - autoservice_start() and autoservice_start() no longer return a value.
-
-Queue:
- - Mark QUEUE_MEMBER_PENALTY Deprecated it never worked for realtime members
- - QUEUE_MEMBER is now R/W supporting setting paused, ignorebusy and penalty.
-
-Asterisk Database:
- - The internal Asterisk database has been switched from Berkeley DB 1.86 to
- SQLite 3. An existing Berkeley astdb file can be converted with the astdb2sqlite3
- utility in the UTILS section of menuselect. If an existing astdb is found and no
- astdb.sqlite3 exists, astdb2sqlite3 will be compiled automatically. Asterisk will
- convert an existing astdb to the SQLite3 version automatically at runtime. If
- moving back from Asterisk 10 to Asterisk 1.8, the astdb2bdb utility can be used
- to create a Berkeley DB copy of the SQLite3 astdb that Asterisk 10 uses.
-
-Manager:
- - The AMI protocol version was incremented to 1.2 as a result of changing two
- instances of the Unlink event to Bridge events. This change was documented
- as part of the AMI 1.1 update, but two Unlink events were inadvertently left
- unchanged.
-
-Module Support Level
- - All modules in the addons, apps, bridge, cdr, cel, channels, codecs,
- formats, funcs, pbx, and res have been updated to include MODULEINFO data
- that includes <support_level> tags with a value of core, extended, or deprecated.
- More information is available on the Asterisk wiki at
- https://wiki.asterisk.org/wiki/display/AST/Asterisk+Module+Support+States
-
- Deprecated modules are now marked to not build by default and must be explicitly
- enabled in menuselect.
-
-chan_sip:
- - Setting of HASH(SIP_CAUSE,<slave-channel-name>) on channels is now disabled
- by default. It can be enabled using the 'storesipcause' option. This feature
- has a significant performance penalty.
-
-UDPTL:
- - The default UDPTL port range in udptl.conf.sample differed from the defaults
- in the source. If you didn't have a config file, you got 4500 to 4599. Now the
- default is 4000 to 4999.
-
-From 10.4 to 10.5:
-
-* The complex processor detection and optimization has been removed from
- the makefile in favor of using native optimization support when available.
- BUILD_NATIVE can be disabled via menuselect under "Compiler Flags".
-
-From 10.2 to 10.3:
-
-* If no transport is specified in sip.conf, transport will default to UDP.
- Also, if multiple transport= lines are used, only the last will be used.
-
-From 1.8 to 10:
-
-cel_pgsql:
- - This module now expects an 'extra' column in the database for data added
- using the CELGenUserEvent() application.
-
-ConfBridge
- - ConfBridge's dialplan arguments have changed and are not
- backwards compatible.
-
-File Interpreters
- - The format interpreter formats/format_sln16.c for the file extension
- '.sln16' has been removed. The '.sln16' file interpreter now exists
- in the formats/format_sln.c module along with new support for sln12,
- sln24, sln32, sln44, sln48, sln96, and sln192 file extensions.
-
-HTTP:
- - A bindaddr must be specified in order for the HTTP server
- to run. Previous versions would default to 0.0.0.0 if no
- bindaddr was specified.
-
-Gtalk:
- - The default value for 'context' and 'parkinglots' in gtalk.conf has
- been changed to 'default', previously they were empty.
-
-chan_dahdi:
- - The mohinterpret=passthrough setting is deprecated in favor of
- moh_signaling=notify.
-
-pbx_lua:
- - Execution no longer continues after applications that do dialplan jumps
- (such as app.goto). Now when an application such as app.goto() is called,
- control is returned back to the pbx engine and the current extension
- function stops executing.
- - the autoservice now defaults to being on by default
- - autoservice_start() and autoservice_start() no longer return a value.
-
-Queue:
- - Mark QUEUE_MEMBER_PENALTY Deprecated it never worked for realtime members
- - QUEUE_MEMBER is now R/W supporting setting paused, ignorebusy and penalty.
-
-Asterisk Database:
- - The internal Asterisk database has been switched from Berkeley DB 1.86 to
- SQLite 3. An existing Berkeley astdb file can be converted with the astdb2sqlite3
- utility in the UTILS section of menuselect. If an existing astdb is found and no
- astdb.sqlite3 exists, astdb2sqlite3 will be compiled automatically. Asterisk will
- convert an existing astdb to the SQLite3 version automatically at runtime.
-
-Module Support Level
- - All modules in the addons, apps, bridge, cdr, cel, channels, codecs,
- formats, funcs, pbx, and res have been updated to include MODULEINFO data
- that includes <support_level> tags with a value of core, extended, or deprecated.
- More information is available on the Asterisk wiki at
- https://wiki.asterisk.org/wiki/display/AST/Asterisk+Module+Support+States
-
- Deprecated modules are now marked to not build by default and must be explicitly
- enabled in menuselect.
-
-From 1.8.13 to 1.8.14:
-* permitdirectmedia/denydirectmedia now controls whether peers can be
- bridged via directmedia by comparing the ACL to the bridging peer's
- address rather than its own address.
-
-From 1.8.12 to 1.8.13:
-* The complex processor detection and optimization has been removed from
- the makefile in favor of using native optimization support when available.
- BUILD_NATIVE can be disabled via menuselect under "Compiler Flags".
-
-From 1.8.10 to 1.8.11:
-
-* If no transport is specified in sip.conf, transport will default to UDP.
- Also, if multiple transport= lines are used, only the last will be used.
-
-From 1.6.2 to 1.8:
-
-* chan_sip no longer sets HASH(SIP_CAUSE,<chan name>) on channels by default.
- This must now be enabled by setting 'sipstorecause' to 'yes' in sip.conf.
- This carries a performance penalty.
-
-* Asterisk now requires libpri 1.4.11+ for PRI support.
-
-* A couple of CLI commands in res_ais were changed back to their original form:
- "ais show clm members" --> "ais clm show members"
- "ais show evt event channels" --> "ais evt show event channels"
-
-* The default value for 'autofill' and 'shared_lastcall' in queues.conf has
- been changed to 'yes'.
-
-* The default value for the alwaysauthreject option in sip.conf has been changed
- from "no" to "yes".
-
-* The behavior of the 'parkedcallstimeout' has changed slightly. The formulation
- of the extension name that a timed out parked call is delivered to when this
- option is set to 'no' was modified such that instead of converting '/' to '0',
- the '/' is converted to an underscore '_'. See the updated documentation in
- features.conf.sample for more information on the behavior of the
- 'parkedcallstimeout' option.
-
-* Asterisk-addons no longer exists as an independent package. Those modules
- now live in the addons directory of the main Asterisk source tree. They
- are not enabled by default. For more information about why modules live in
- addons, see README-addons.txt.
-
-* The rarely used 'event_log' and LOG_EVENT channel have been removed; the few
- users of this channel in the tree have been converted to LOG_NOTICE or removed
- (in cases where the same message was already generated to another channel).
-
-* The usage of RTP inside of Asterisk has now become modularized. This means
- the Asterisk RTP stack now exists as a loadable module, res_rtp_asterisk.
- If you are not using autoload=yes in modules.conf you will need to ensure
- it is set to load. If not, then any module which uses RTP (such as chan_sip)
- will not be able to send or receive calls.
-
-* The app_dahdiscan.c file has been removed, but the dialplan app DAHDIScan still
- remains. It now exists within app_chanspy.c and retains the exact same
- functionality as before.
-
-* The default behavior for Set, AGI, and pbx_realtime has been changed to implement
- 1.6 behavior by default, if there is no [compat] section in asterisk.conf. In
- prior versions, the behavior defaulted to 1.4 behavior, to assist in upgrades.
- Specifically, that means that pbx_realtime and res_agi expect you to use commas
- to separate arguments in applications, and Set only takes a single pair of
- a variable name/value. The old 1.4 behavior may still be obtained by setting
- app_set, pbx_realtime, and res_agi each to 1.4 in the [compat] section of
- asterisk.conf.
-
-* The PRI channels in chan_dahdi can no longer change the channel name if a
- different B channel is selected during call negotiation. To prevent using
- the channel name to infer what B channel a call is using and to avoid name
- collisions, the channel name format is changed.
- The new channel naming for PRI channels is:
- DAHDI/i<span>/<number>[:<subaddress>]-<sequence-number>
-
-* Added CHANNEL(dahdi_span), CHANNEL(dahdi_channel), and CHANNEL(dahdi_type)
- so the dialplan can determine the B channel currently in use by the channel.
- Use CHANNEL(no_media_path) to determine if the channel even has a B channel.
-
-* Added AMI event DAHDIChannel to associate a DAHDI channel with an Asterisk
- channel so AMI applications can passively determine the B channel currently
- in use. Calls with "no-media" as the DAHDIChannel do not have an associated
- B channel. No-media calls are either on hold or call-waiting.
-
-* The ChanIsAvail application has been changed so the AVAILSTATUS variable
- no longer contains both the device state and cause code. The cause code
- is now available in the AVAILCAUSECODE variable. If existing dialplan logic
- is written to expect AVAILSTATUS to contain the cause code it needs to be
- changed to use AVAILCAUSECODE.
-
-* ExternalIVR will now send Z events for invalid or missing files, T events
- now include the interrupted file and bugs in argument parsing have been
- fixed so there may be arguments specified in incorrect ways that were
- working that will no longer work. Please see
- https://wiki.asterisk.org/wiki/display/AST/External+IVR+Interface for details.
-
-* OSP lookup application changes following variable names:
- OSPPEERIP to OSPINPEERIP
- OSPTECH to OSPOUTTECH
- OSPDEST to OSPDESTINATION
- OSPCALLING to OSPOUTCALLING
- OSPCALLED to OSPOUTCALLED
- OSPRESULTS to OSPDESTREMAILS
-
-* The Manager event 'iax2 show peers' output has been updated. It now has a
- similar output of 'sip show peers'.
-
-* VoiceMailMain and VMAuthenticate, if a '*' is entered in the first position
- of a Mailbox or Password, will, if it exists, jump to the 'a' extension in
- the current dialplan context.
-
-* The CALLERPRES() dialplan function is deprecated in favor of
- CALLERID(num-pres) and CALLERID(name-pres).
-
-* Environment variables that start with "AST_" are reserved to the system and
- may no longer be set from the dialplan.
-
-* When a call is redirected inside of a Dial, the app and appdata fields of the
- CDR will now be set to "AppDial" and "(Outgoing Line)" instead of being blank.
-
-* The CDR handling of billsec and duration field has changed. If your table
- definition specifies those fields as float,double or similar they will now
- be logged with microsecond accuracy instead of a whole integer.
-
-* chan_sip will no longer set up a local call forward when receiving a
- 482 Loop Detected response. The dialplan will just continue from where it
- left off.
-
-* The 'stunaddr' option has been removed from chan_sip. This feature did not
- behave as expected, had no correct use case, and was not RFC compliant. The
- removal of this feature will hopefully be followed by a correct RFC compliant
- STUN implementation in chan_sip in the future.
-
-* The default value for the pedantic option in sip.conf has been changed
- from "no" to "yes".
-
-* The ConnectedLineNum and ConnectedLineName headers were added to many AMI
- events/responses if the CallerIDNum/CallerIDName headers were also present.
- The addition of connected line support changes the behavior of the channel
- caller ID somewhat. The channel caller ID value no longer time shares with
- the connected line ID on outgoing call legs. The timing of some AMI
- events/responses output the connected line ID as caller ID. These party ID's
- are now separate.
-
-* The Dial application d and H options do not automatically answer the call
- anymore. It broke DTMF attended transfers. Since many SIP and ISDN phones
- cannot send DTMF before a call is connected, you need to answer the call
- leg to those phones before using Dial with these options for them to have
- any effect before the dialed party answers.
-
-* The outgoing directory (where .call files are read) now uses inotify to
- detect file changes instead of polling the directory on a regular basis.
- If your outgoing folder is on a NFS mount or another network file system,
- changes to the files will not be detected. You can revert to polling the
- directory by specifying --without-inotify to configure before compiling.
-
-* The 'sipusers' realtime table has been removed completely. Use the 'sippeers'
- table with type 'user' for user type objects.
-
-* The sip.conf allowoverlap option now accepts 'dtmf' as a value. If you
- are using the early media DTMF overlap dialing method you now need to set
- allowoverlap=dtmf.
-
-From 1.6.1 to 1.6.2:
-
-* SIP no longer sends the 183 progress message for early media by
- default. Applications requiring early media should use the
- progress() dialplan app to generate the progress message.
-
-* The firmware for the IAXy has been removed from Asterisk. It can be
- downloaded from http://downloads.digium.com/pub/iaxy/. To have Asterisk
- install the firmware into its proper location, place the firmware in the
- contrib/firmware/iax/ directory in the Asterisk source tree before running
- "make install".
-
-* T.38 FAX error correction mode can no longer be configured in udptl.conf;
- instead, it is configured on a per-peer (or global) basis in sip.conf, with
- the same default as was present in udptl.conf.sample.
-
-* T.38 FAX maximum datagram size can no longer be configured in updtl.conf;
- instead, it is either supplied by the application servicing the T.38 channel
- (for a FAX send or receive) or calculated from the bridged endpoint's
- maximum datagram size (for a T.38 FAX passthrough call). In addition, sip.conf
- allows for overriding the value supplied by a remote endpoint, which is useful
- when T.38 connections are made to gateways that supply incorrectly-calculated
- maximum datagram sizes.
-
-* There have been some changes to the IAX2 protocol to address the security
- concerns documented in the security advisory AST-2009-006. Please see the
- IAX2 security document, doc/IAX2-security.pdf, for information regarding
- backwards compatibility with versions of Asterisk that do not contain these
- changes to IAX2.
-
-* The 'canreinvite' option support by the SIP, MGCP and Skinny channel drivers
- has been renamed to 'directmedia', to better reflect what it actually does.
- In the case of SIP, there are still re-INVITEs issued for T.38 negotiation,
- starting and stopping music-on-hold, and other reasons, and the 'canreinvite'
- option never had any effect on these cases, it only affected the re-INVITEs
- used for direct media path setup. For MGCP and Skinny, the option was poorly
- named because those protocols don't even use INVITE messages at all. For
- backwards compatibility, the old option is still supported in both normal
- and Realtime configuration files, but all of the sample configuration files,
- Realtime/LDAP schemas, and other documentation refer to it using the new name.
-
-* The default console now will use colors according to the default background
- color, instead of forcing the background color to black. If you are using a
- light colored background for your console, you may wish to use the option
- flag '-W' to present better color choices for the various messages. However,
- if you'd prefer the old method of forcing colors to white text on a black
- background, the compatibility option -B is provided for this purpose.
-
-* SendImage() no longer hangs up the channel on transmission error or on
- any other error; in those cases, a FAILURE status is stored in
- SENDIMAGESTATUS and dialplan execution continues. The possible
- return values stored in SENDIMAGESTATUS are: SUCCESS, FAILURE, and
- UNSUPPORTED. ('OK' has been replaced with 'SUCCESS', and 'NOSUPPORT'
- has been replaced with 'UNSUPPORTED'). This change makes the
- SendImage application more consistent with other applications.
-
-* skinny.conf now has separate sections for lines and devices.
- Please have a look at configs/skinny.conf.sample and update
- your skinny.conf.
-
-* Queue names previously were treated in a case-sensitive manner,
- meaning that queues with names like "sales" and "sALeS" would be
- seen as unique queues. The parsing logic has changed to use
- case-insensitive comparisons now when originally hashing based on
- queue names, meaning that now the two queues mentioned as examples
- earlier will be seen as having the same name.
-
-* The SPRINTF() dialplan function has been moved into its own module,
- func_sprintf, and is no longer included in func_strings. If you use this
- function and do not use 'autoload=yes' in modules.conf, you will need
- to explicitly load func_sprintf for it to be available.
-
-* The res_indications module has been removed. Its functionality was important
- enough that most of it has been moved into the Asterisk core.
- Two applications previously provided by res_indications, PlayTones and
- StopPlayTones, have been moved into a new module, app_playtones.
-
-* Support for Taiwanese was incorrectly supported with the "tw" language code.
- In reality, the "tw" language code is reserved for the Twi language, native
- to Ghana. If you were previously using the "tw" language code, you should
- switch to using either "zh" (for Mandarin Chinese) or "zh_TW" for Taiwan
- specific localizations. Additionally, "mx" should be changed to "es_MX",
- Georgian was incorrectly specified as "ge" but should be "ka", and Czech is
- "cs", not "cz".
-
-* DAHDISendCallreroutingFacility() parameters are now comma-separated,
- instead of the old pipe.
-
-* res_jabber: autoprune has been disabled by default, to avoid misconfiguration
- that would end up being interpreted as a bug once Asterisk started removing
- the contacts from a user list.
-
-* The cdr.conf file must exist and be configured correctly in order for CDR
- records to be written.
-
-* cdr_pgsql now assumes the encoding of strings it is handed are in LATIN9,
- which should cover most uses of the extended ASCII set. If your strings
- use a different encoding in Asterisk, the "encoding" parameter may be set
- to specify the correct character set.
-
-From 1.6.0.1 to 1.6.1:
-
-* The ast_agi_register_multiple() and ast_agi_unregister_multiple()
- API calls were added in 1.6.0, so that modules that provide multiple
- AGI commands could register/unregister them all with a single
- step. However, these API calls were not implemented properly, and did
- not allow the caller to know whether registration or unregistration
- succeeded or failed. They have been redefined to now return success
- or failure, but this means any code using these functions will need
- be recompiled after upgrading to a version of Asterisk containing
- these changes. In addition, the source code using these functions
- should be reviewed to ensure it can properly react to failure
- of registration or unregistration of its API commands.
-
-* The ast_agi_fdprintf() API call has been renamed to ast_agi_send()
- to better match what it really does, and the argument order has been
- changed to be consistent with other API calls that perform similar
- operations.
-
-From 1.6.0.x to 1.6.1:
-
-* In previous versions of Asterisk, due to the way objects were arranged in
- memory by chan_sip, the order of entries in sip.conf could be adjusted to
- control the behavior of matching against peers and users. The way objects
- are managed has been significantly changed for reasons involving performance
- and stability. A side effect of these changes is that the order of entries
- in sip.conf can no longer be relied upon to control behavior.
-
-* The following core commands dealing with dialplan have been deprecated: 'core
- show globals', 'core set global' and 'core set chanvar'. Use the equivalent
- 'dialplan show globals', 'dialplan set global' and 'dialplan set chanvar'
- instead.
-
-* In the dialplan expression parser, the logical value of spaces
- immediately preceding a standalone 0 previously evaluated to
- true. It now evaluates to false. This has confused a good many
- people in the past (typically because they failed to realize the
- space had any significance). Since this violates the Principle of
- Least Surprise, it has been changed.
-
-* While app_directory has always relied on having a voicemail.conf or users.conf file
- correctly set up, it now is dependent on app_voicemail being compiled as well.
-
-* SIP: All of the functionality in SIPCHANINFO() has been implemented in CHANNEL(),
- and you should start using that function instead for retrieving information about
- the channel in a technology-agnostic way.
-
-* If you have any third party modules which use a config file variable whose
- name ends in a '+', please note that the append capability added to this
- version may now conflict with that variable naming scheme. An easy
- workaround is to ensure that a space occurs between the '+' and the '=',
- to differentiate your variable from the append operator. This potential
- conflict is unlikely, but is documented here to be thorough.
-
-* The "Join" event from app_queue now uses the CallerIDNum header instead of
- the CallerID header to indicate the CallerID number.
-
-* If you use ODBC storage for voicemail, there is a new field called "flag"
- which should be a char(8) or larger. This field specifies whether or not a
- message has been designated to be "Urgent", "PRIORITY", or not.
-
-From 1.4 to 1.6:
-
-AEL:
-
-* Macros are now implemented underneath with the Gosub() application.
- Heaven Help You if you wrote code depending on any aspect of this!
- Previous to 1.6, macros were implemented with the Macro() app, which
- provided a nice feature of auto-returning. The compiler will do its
- best to insert a Return() app call at the end of your macro if you did
- not include it, but really, you should make sure that all execution
- paths within your macros end in "return;".
-
-* The conf2ael program is 'introduced' in this release; it is in a rather
- crude state, but deemed useful for making a first pass at converting
- extensions.conf code into AEL. More intelligence will come with time.
-
-Core:
-
-* The 'languageprefix' option in asterisk.conf is now deprecated, and
- the default sound file layout for non-English sounds is the 'new
- style' layout introduced in Asterisk 1.4 (and used by the automatic
- sound file installer in the Makefile).
-
-* The ast_expr2 stuff has been modified to handle floating-point numbers.
- Numbers of the format D.D are now acceptable input for the expr parser,
- Where D is a string of base-10 digits. All math is now done in "long double",
- if it is available on your compiler/architecture. This was half-way between
- a bug-fix (because the MATH func returns fp by default), and an enhancement.
- Also, for those counting on, or needing, integer operations, a series of
- 'functions' were also added to the expr language, to allow several styles
- of rounding/truncation, along with a set of common floating point operations,
- like sin, cos, tan, log, pow, etc. The ability to call external functions
- like CDR(), etc. was also added, without having to use the ${...} notation.
-
-* The delimiter passed to applications has been changed to the comma (','), as
- that is what people are used to using within extensions.conf. If you are
- using realtime extensions, you will need to translate your existing dialplan
- to use this separator. To use a literal comma, you need merely to escape it
- with a backslash ('\'). Another possible side effect is that you may need to
- remove the obscene level of backslashing that was necessary for the dialplan
- to work correctly in 1.4 and previous versions. This should make writing
- dialplans less painful in the future, albeit with the pain of a one-time
- conversion. If you would like to avoid this conversion immediately, set
- pbx_realtime=1.4 in the [compat] section of asterisk.conf. After
- transitioning, set pbx_realtime=1.6 in the same section.
-
-* For the same purpose as above, you may set res_agi=1.4 in the [compat]
- section of asterisk.conf to continue to use the '|' delimiter in the EXEC
- arguments of AGI applications. After converting to use the ',' delimiter,
- change this option to res_agi=1.6.
-
-* As a side effect of the application delimiter change, many places that used
- to need quotes in order to get the proper meaning are no longer required.
- You now only need to quote strings in configuration files if you literally
- want quotation marks within a string.
-
-* Any applications run that contain the pipe symbol but not a comma symbol will
- get a warning printed to the effect that the application delimiter has changed.
- However, there are legitimate reasons why this might be useful in certain
- situations, so this warning can be turned off with the dontwarn option in
- asterisk.conf.
-
-* The logger.conf option 'rotatetimestamp' has been deprecated in favor of
- 'rotatestrategy'. This new option supports a 'rotate' strategy that more
- closely mimics the system logger in terms of file rotation.
-
-* The concise versions of various CLI commands are now deprecated. We recommend
- using the manager interface (AMI) for application integration with Asterisk.
-
-Voicemail:
-
-* The voicemail configuration values 'maxmessage' and 'minmessage' have
- been changed to 'maxsecs' and 'minsecs' to clarify their purpose and
- to make them more distinguishable from 'maxmsgs', which sets folder
- size. The old variables will continue to work in this version, albeit
- with a deprecation warning.
-
-* If you use any interface for modifying voicemail aside from the built in
- dialplan applications, then the option "pollmailboxes" *must* be set in
- voicemail.conf for message waiting indication (MWI) to work properly. This
- is because Voicemail notification is now event based instead of polling
- based. The channel drivers are no longer responsible for constantly manually
- checking mailboxes for changes so that they can send MWI information to users.
- Examples of situations that would require this option are web interfaces to
- voicemail or an email client in the case of using IMAP storage.
-
-Applications:
-
-
-* ChanIsAvail() now has a 't' option, which allows the specified device
- to be queried for state without consulting the channel drivers. This
- performs mostly a 'ChanExists' sort of function.
-
-* ChannelRedirect() will not terminate the channel that fails to do a
- channelredirect as it has done previously. Instead CHANNELREDIRECT_STATUS
- will reflect if the attempt was successful of not.
-
-* SetCallerPres() has been replaced with the CALLERPRES() dialplan function
- and is now deprecated.
-
-* DISA()'s fifth argument is now an options argument. If you have previously
- used 'NOANSWER' in this argument, you'll need to convert that to the new
- option 'n'.
-
-* Macro() is now deprecated. If you need subroutines, you should use the
- Gosub()/Return() applications. To replace MacroExclusive(), we have
- introduced dialplan functions LOCK(), TRYLOCK(), and UNLOCK(). You may use
- these functions in any location where you desire to ensure that only one
- channel is executing that path at any one time. The Macro() applications
- are deprecated for performance reasons. However, since Macro() has been
- around for a long time and so many dialplans depend heavily on it, for the
- sake of backwards compatibility it will not be removed . It is also worth
- noting that using both Macro() and GoSub() at the same time is _heavily_
- discouraged.
-
-* Read() now sets a READSTATUS variable on exit. It does NOT automatically
- return -1 (and hangup) anymore on error. If you want to hangup on error,
- you need to do so explicitly in your dialplan.
-
-* Privacy() no longer uses privacy.conf, so any options must be specified
- directly in the application arguments.
-
-* MusicOnHold application now has duration parameter which allows specifying
- timeout in seconds.
-
-* WaitMusicOnHold application is now deprecated in favor of extended MusicOnHold.
-
-* SetMusicOnHold is now deprecated. You should use Set(CHANNEL(musicclass)=...)
- instead.
-
-* The arguments in ExecIf changed a bit, to be more like other applications.
- The syntax is now ExecIf(<cond>?appiftrue(args):appiffalse(args)).
-
-* The behavior of the Set application now depends upon a compatibility option,
- set in asterisk.conf. To use the old 1.4 behavior, which allowed Set to take
- multiple key/value pairs, set app_set=1.4 in [compat] in asterisk.conf. To
- use the new behavior, which permits variables to be set with embedded commas,
- set app_set=1.6 in [compat] in asterisk.conf. Note that you can have both
- behaviors at the same time, if you switch to using MSet if you want the old
- behavior.
-
-Dialplan Functions:
-
-* QUEUE_MEMBER_COUNT() has been deprecated in favor of the QUEUE_MEMBER() function. For
- more information, issue a "show function QUEUE_MEMBER" from the CLI.
-
-CDR:
-
-* The cdr_sqlite module has been marked as deprecated in favor of
- cdr_sqlite3_custom. It will potentially be removed from the tree
- after Asterisk 1.6 is released.
-
-* The cdr_odbc module now uses res_odbc to manage its connections. The
- username and password parameters in cdr_odbc.conf, therefore, are no
- longer used. The dsn parameter now points to an entry in res_odbc.conf.
-
-* The uniqueid field in the core Asterisk structure has been changed from a
- maximum 31 character field to a 149 character field, to account for all
- possible values the systemname prefix could be. In the past, if the
- systemname was too long, the uniqueid would have been truncated.
-
-* The cdr_tds module now supports all versions of FreeTDS that contain
- the db-lib frontend. It will also now log the userfield variable if
- the target database table contains a column for it.
-
-Formats:
-
-* format_wav: The GAIN preprocessor definition and source code that used it
- is removed. This change was made in response to user complaints of
- choppiness or the clipping of loud signal peaks. To increase the volume
- of voicemail messages, use the 'volgain' option in voicemail.conf
-
-Channel Drivers:
-
-* SIP: a small upgrade to support the "Record" button on the SNOM360,
- which sends a sip INFO message with a "Record: on" or "Record: off"
- header. If Asterisk is set up (via features.conf) to accept "One Touch Monitor"
- requests (by default, via '*1'), then the user-configured dialpad sequence
- is generated, and recording can be started and stopped via this button. The
- file names and formats are all controlled via the normal mechanisms. If the
- user has not configured the automon feature, the normal "415 Unsupported media type"
- is returned, and nothing is done.
-
-* SIP: The "call-limit" option is marked as deprecated. It still works in this version of
- Asterisk, but will be removed in the following version. Please use the groupcount functions
- in the dialplan to enforce call limits. The "limitonpeer" configuration option is
- now renamed to "counteronpeer".
-
-* SIP: The "username" option is now renamed to "defaultuser" to match "defaultip".
- These are used only before registration to call a peer with the uri
- sip:defaultuser@defaultip
- The "username" setting still work, but is deprecated and will not work in
- the next version of Asterisk.
-
-* SIP: The old "insecure" options, deprecated in 1.4, have been removed.
- "insecure=very" should be changed to "insecure=port,invite"
- "insecure=yes" should be changed to "insecure=port"
- Be aware that some telephony providers show the invalid syntax in their
- sample configurations.
-
-* chan_local.c: the comma delimiter inside the channel name has been changed to a
- semicolon, in order to make the Local channel driver compatible with the comma
- delimiter change in applications.
-
-* H323: The "tos" setting has changed name to "tos_audio" and "cos" to "cos_audio"
- to be compatible with settings in sip.conf. The "tos" and "cos" configuration
- is deprecated and will stop working in the next release of Asterisk.
-
-* Console: A new console channel driver, chan_console, has been added to Asterisk.
- This new module can not be loaded at the same time as chan_alsa or chan_oss. The
- default modules.conf only loads one of them (chan_oss by default). So, unless you
- have modified your modules.conf to not use the autoload option, then you will need
- to modify modules.conf to add another "noload" line to ensure that only one of
- these three modules gets loaded.
-
-* DAHDI: The chan_zap module that supported PSTN interfaces using
- Zaptel has been renamed to chan_dahdi, and only supports the DAHDI
- telephony driver package for PSTN interfaces. See the
- Zaptel-to-DAHDI.txt file for more details on this transition.
-
-* DAHDI: The "msdstrip" option has been deprecated, as it provides no value over
- the method of stripping digits in the dialplan using variable substring syntax.
-
-Configuration:
-
-* pbx_dundi.c: tos parameter changed to use new values. Old values like lowdelay,
- lowcost and other is not acceptable now. Look into qos.tex for description of
- this parameter.
-
-* queues.conf: the queue-lessthan sound file option is no longer available, and the
- queue-round-seconds option no longer takes '1' as a valid parameter.
-
-Manager:
-
-* Manager has been upgraded to version 1.1 with a lot of changes.
- Please check doc/manager_1_1.txt for information
-
-* The IAXpeers command output has been changed to more closely resemble the
- output of the SIPpeers command.
-
-* cdr_manager now reports at the "cdr" level, not at "call" You may need to
- change your manager.conf to add the level to existing AMI users, if they
- want to see the CDR events generated.
-
-* The Originate command now requires the Originate write permission. For
- Originate with the Application parameter, you need the additional System
- privilege if you want to do anything that calls out to a subshell.
-
-iLBC Codec:
-
-* Previously, the Asterisk source code distribution included the iLBC
- encoder/decoder source code, from Global IP Solutions
- (http://www.gipscorp.com). This code is not licensed for
- distribution, and thus has been removed from the Asterisk source
- code distribution. If you wish to use codec_ilbc to support iLBC
- channels in Asterisk, you can run the contrib/scripts/get_ilbc_source.sh
- script to download the source and put it in the proper place in
- the Asterisk build tree. Once that is done you can follow your normal
- steps of building Asterisk. You will need to run 'menuselect' and enable
- the iLBC codec in the 'Codec Translators' category.
-
-From 1.2 to 1.4:
-
-Build Process (configure script):
-
-Asterisk now uses an autoconf-generated configuration script to learn how it
-should build itself for your system. As it is a standard script, running:
-
-$ ./configure --help
-
-will show you all the options available. This script can be used to tell the
-build process what libraries you have on your system (if it cannot find them
-automatically), which libraries you wish to have ignored even though they may
-be present, etc.
-
-You must run the configure script before Asterisk will build, although it will
-attempt to automatically run it for you with no options specified; for most
-users, that will result in a similar build to what they would have had before
-the configure script was added to the build process (except for having to run
-'make' again after the configure script is run). Note that the configure script
-does NOT need to be re-run just to rebuild Asterisk; you only need to re-run it
-when your system configuration changes or you wish to build Asterisk with
-different options.
-
-Build Process (module selection):
-
-The Asterisk source tree now includes a basic module selection and build option
-selection tool called 'menuselect'. Run 'make menuselect' to make your choices.
-In this tool, you can disable building of modules that you don't care about,
-turn on/off global options for the build and see which modules will not
-(and cannot) be built because your system does not have the required external
-dependencies installed.
-
-The resulting file from menuselect is called 'menuselect.makeopts'. Note that
-the resulting menuselect.makeopts file generally contains which modules *not*
-to build. The modules listed in this file indicate which modules have unmet
-dependencies, a present conflict, or have been disabled by the user in the
-menuselect interface. Compiler Flags can also be set in the menuselect
-interface. In this case, the resulting file contains which CFLAGS are in use,
-not which ones are not in use.
-
-If you would like to save your choices and have them applied against all
-builds, the file can be copied to '~/.asterisk.makeopts' or
-'/etc/asterisk.makeopts'.
-
-Build Process (Makefile targets):
-
-The 'valgrind' and 'dont-optimize' targets have been removed; their functionality
-is available by enabling the DONT_OPTIMIZE setting in the 'Compiler Flags' menu
-in the menuselect tool.
-
-It is now possible to run most make targets against a single subdirectory; from
-the top level directory, for example, 'make channels' will run 'make all' in the
-'channels' subdirectory. This also is true for 'clean', 'distclean' and 'depend'.
-
-Sound (prompt) and Music On Hold files:
-
-Beginning with Asterisk 1.4, the sound files and music on hold files supplied for
-use with Asterisk have been replaced with new versions produced from high quality
-master recordings, and are available in three languages (English, French and
-Spanish) and in five formats (WAV (uncompressed), mu-Law, a-Law, GSM and G.729).
-In addition, the music on hold files provided by opsound.org Music are now available
-in the same five formats, but no longer available in MP3 format.
-
-The Asterisk 1.4 tarball packages will only include English prompts in GSM format,
-(as were supplied with previous releases) and the opsound.org MOH files in WAV format.
-All of the other variations can be installed by running 'make menuselect' and
-selecting the packages you wish to install; when you run 'make install', those
-packages will be downloaded and installed along with the standard files included
-in the tarball.
-
-If for some reason you expect to not have Internet access at the time you will be
-running 'make install', you can make your package selections using menuselect and
-then run 'make sounds' to download (only) the sound packages; this will leave the
-sound packages in the 'sounds' subdirectory to be used later during installation.
-
-WARNING: Asterisk 1.4 supports a new layout for sound files in multiple languages;
-instead of the alternate-language files being stored in subdirectories underneath
-the existing files (for French, that would be digits/fr, letters/fr, phonetic/fr,
-etc.) the new layout creates one directory under /var/lib/asterisk/sounds for the
-language itself, then places all the sound files for that language under that
-directory and its subdirectories. This is the layout that will be created if you
-select non-English languages to be installed via menuselect, HOWEVER Asterisk does
-not default to this layout and will not find the files in the places it expects them
-to be. If you wish to use this layout, make sure you put 'languageprefix=yes' in your
-/etc/asterisk/asterisk.conf file, so that Asterisk will know how the files were
-installed.
-
-PBX Core:
-
-* The (very old and undocumented) ability to use BYEXTENSION for dialing
- instead of ${EXTEN} has been removed.
-
-* Builtin (res_features) transfer functionality attempts to use the context
- defined in TRANSFER_CONTEXT variable of the transferer channel first. If
- not set, it uses the transferee variable. If not set in any channel, it will
- attempt to use the last non macro context. If not possible, it will default
- to the current context.
-
-* The autofallthrough setting introduced in Asterisk 1.2 now defaults to 'yes';
- if your dialplan relies on the ability to 'run off the end' of an extension
- and wait for a new extension without using WaitExten() to accomplish that,
- you will need set autofallthrough to 'no' in your extensions.conf file.
-
-Command Line Interface:
-
-* 'show channels concise', designed to be used by applications that will parse
- its output, previously used ':' characters to separate fields. However, some
- of those fields can easily contain that character, making the output not
- parseable. The delimiter has been changed to '!'.
-
-Applications:
-
-* In previous Asterisk releases, many applications would jump to priority n+101
- to indicate some kind of status or error condition. This functionality was
- marked deprecated in Asterisk 1.2. An option to disable it was provided with
- the default value set to 'on'. The default value for the global priority
- jumping option is now 'off'.
-
-* The applications Cut, Sort, DBGet, DBPut, SetCIDNum, SetCIDName, SetRDNIS,
- AbsoluteTimeout, DigitTimeout, ResponseTimeout, SetLanguage, GetGroupCount,
- and GetGroupMatchCount were all deprecated in version 1.2, and therefore have
- been removed in this version. You should use the equivalent dialplan
- function in places where you have previously used one of these applications.
-
-* The application SetGlobalVar has been deprecated. You should replace uses
- of this application with the following combination of Set and GLOBAL():
- Set(GLOBAL(name)=value). You may also access global variables exclusively by
- using the GLOBAL() dialplan function, instead of relying on variable
- interpolation falling back to globals when no channel variable is set.
-
-* The application SetVar has been renamed to Set. The syntax SetVar was marked
- deprecated in version 1.2 and is no longer recognized in this version. The
- use of Set with multiple argument pairs has also been deprecated. Please
- separate each name/value pair into its own dialplan line.
-
-* app_read has been updated to use the newer options codes, using "skip" or
- "noanswer" will not work. Use s or n. Also there is a new feature i, for
- using indication tones, so typing in skip would give you unexpected results.
-
-* OSPAuth is added to authenticate OSP tokens in in_bound call setup messages.
-
-* The CONNECT event in the queue_log from app_queue now has a second field
- in addition to the holdtime field. It contains the unique ID of the
- queue member channel that is taking the call. This is useful when trying
- to link recording filenames back to a particular call from the queue.
-
-* The old/current behavior of app_queue has a serial type behavior
- in that the queue will make all waiting callers wait in the queue
- even if there is more than one available member ready to take
- calls until the head caller is connected with the member they
- were trying to get to. The next waiting caller in line then
- becomes the head caller, and they are then connected with the
- next available member and all available members and waiting callers
- waits while this happens. This cycle continues until there are
- no more available members or waiting callers, whichever comes first.
- The new behavior, enabled by setting autofill=yes in queues.conf
- either at the [general] level to default for all queues or
- to set on a per-queue level, makes sure that when the waiting
- callers are connecting with available members in a parallel fashion
- until there are no more available members or no more waiting callers,
- whichever comes first. This is probably more along the lines of how
- one would expect a queue should work and in most cases, you will want
- to enable this new behavior. If you do not specify or comment out this
- option, it will default to "no" to keep backward compatability with the old
- behavior.
-
-* Queues depend on the channel driver reporting the proper state
- for each member of the queue. To get proper signalling on
- queue members that use the SIP channel driver, you need to
- enable a call limit (could be set to a high value so it
- is not put into action) and also make sure that both inbound
- and outbound calls are accounted for.
-
- Example:
-
- [general]
- limitonpeer = yes
-
- [peername]
- type=friend
- call-limit=10
-
-
-* The app_queue application now has the ability to use MixMonitor to
- record conversations queue members are having with queue callers. Please
- see configs/queues.conf.sample for more information on this option.
-
-* The app_queue application strategy called 'roundrobin' has been deprecated
- for this release. Users are encouraged to use 'rrmemory' instead, since it
- provides more 'true' round-robin call delivery. For the Asterisk 1.6 release,
- 'rrmemory' will be renamed 'roundrobin'.
-
-* The app_queue application option called 'monitor-join' has been deprecated
- for this release. Users are encouraged to use 'monitor-type=mixmonitor' instead,
- since it provides the same functionality but is not dependent on soxmix or some
- other external program in order to mix the audio.
-
-* app_meetme: The 'm' option (monitor) is renamed to 'l' (listen only), and
- the 'm' option now provides the functionality of "initially muted".
- In practice, most existing dialplans using the 'm' flag should not notice
- any difference, unless the keypad menu is enabled, allowing the user
- to unmute themselves.
-
-* ast_play_and_record would attempt to cancel the recording if a DTMF
- '0' was received. This behavior was not documented in most of the
- applications that used ast_play_and_record and the return codes from
- ast_play_and_record weren't checked for properly.
- ast_play_and_record has been changed so that '0' no longer cancels a
- recording. If you want to allow DTMF digits to cancel an
- in-progress recording use ast_play_and_record_full which allows you
- to specify which DTMF digits can be used to accept a recording and
- which digits can be used to cancel a recording.
-
-* ast_app_messagecount has been renamed to ast_app_inboxcount. There is now a
- new ast_app_messagecount function which takes a single context/mailbox/folder
- mailbox specification and returns the message count for that folder only.
- This addresses the deficiency of not being able to count the number of
- messages in folders other than INBOX and Old.
-
-* The exit behavior of the AGI applications has changed. Previously, when
- a connection to an AGI server failed, the application would cause the channel
- to immediately stop dialplan execution and hangup. Now, the only time that
- the AGI applications will cause the channel to stop dialplan execution is
- when the channel itself requests hangup. The AGI applications now set an
- AGISTATUS variable which will allow you to find out whether running the AGI
- was successful or not.
-
- Previously, there was no way to handle the case where Asterisk was unable to
- locally execute an AGI script for some reason. In this case, dialplan
- execution will continue as it did before, but the AGISTATUS variable will be
- set to "FAILURE".
-
- A locally executed AGI script can now exit with a non-zero exit code and this
- failure will be detected by Asterisk. If an AGI script exits with a non-zero
- exit code, the AGISTATUS variable will be set to "FAILURE" as opposed to
- "SUCCESS".
-
-* app_voicemail: The ODBC_STORAGE capability now requires the extended table format
- previously used only by EXTENDED_ODBC_STORAGE. This means that you will need to update
- your table format using the schema provided in doc/odbcstorage.txt
-
-* app_waitforsilence: Fixes have been made to this application which changes the
- default behavior with how quickly it returns. You can maintain "old-style" behavior
- with the addition/use of a third "timeout" parameter.
- Please consult the application documentation and make changes to your dialplan
- if appropriate.
-
-Manager:
-
-* After executing the 'status' manager action, the "Status" manager events
- included the header "CallerID:" which was actually only the CallerID number,
- and not the full CallerID string. This header has been renamed to
- "CallerIDNum". For compatibility purposes, the CallerID parameter will remain
- until after the release of 1.4, when it will be removed. Please use the time
- during the 1.4 release to make this transition.
-
-* The AgentConnect event now has an additional field called "BridgedChannel"
- which contains the unique ID of the queue member channel that is taking the
- call. This is useful when trying to link recording filenames back to
- a particular call from the queue.
-
-* app_userevent has been modified to always send Event: UserEvent with the
- additional header UserEvent: <userspec>. Also, the Channel and UniqueID
- headers are not automatically sent, unless you specify them as separate
- arguments. Please see the application help for the new syntax.
-
-* app_meetme: Mute and Unmute events are now reported via the Manager API.
- Native Manager API commands MeetMeMute and MeetMeUnmute are provided, which
- are easier to use than "Action Command:". The MeetMeStopTalking event has
- also been deprecated in favor of the already existing MeetmeTalking event
- with a "Status" of "on" or "off" added.
-
-* OriginateFailure and OriginateSuccess events were replaced by event
- OriginateResponse with a header named "Response" to indicate success or
- failure
-
-Variables:
-
-* The builtin variables ${CALLERID}, ${CALLERIDNAME}, ${CALLERIDNUM},
- ${CALLERANI}, ${DNID}, ${RDNIS}, ${DATETIME}, ${TIMESTAMP}, ${ACCOUNTCODE},
- and ${LANGUAGE} have all been deprecated in favor of their related dialplan
- functions. You are encouraged to move towards the associated dialplan
- function, as these variables will be removed in a future release.
-
-* The CDR-CSV variables uniqueid, userfield, and basing time on GMT are now
- adjustable from cdr.conf, instead of recompiling.
-
-* OSP applications exports several new variables, ${OSPINHANDLE},
- ${OSPOUTHANDLE}, ${OSPINTOKEN}, ${OSPOUTTOKEN}, ${OSPCALLING},
- ${OSPINTIMELIMIT}, and ${OSPOUTTIMELIMIT}
-
-* Builtin transfer functionality sets the variable ${TRANSFERERNAME} in the new
- created channel. This variables holds the channel name of the transferer.
-
-* The dial plan variable PRI_CAUSE will be removed from future versions
- of Asterisk.
- It is replaced by adding a cause value to the hangup() application.
-
-Functions:
-
-* The function ${CHECK_MD5()} has been deprecated in favor of using an
- expression: $[${MD5(<string>)} = ${saved_md5}].
-
-* The 'builtin' functions that used to be combined in pbx_functions.so are
- now built as separate modules. If you are not using 'autoload=yes' in your
- modules.conf file then you will need to explicitly load the modules that
- contain the functions you want to use.
-
-* The ENUMLOOKUP() function with the 'c' option (for counting the number of
- records), but the lookup fails to match any records, the returned value will
- now be "0" instead of blank.
-
-* The REALTIME() function is now available in version 1.4 and app_realtime has
- been deprecated in favor of the new function. app_realtime will be removed
- completely with the version 1.6 release so please take the time between
- releases to make any necessary changes
-
-* The QUEUEAGENTCOUNT() function has been deprecated in favor of
- QUEUE_MEMBER_COUNT().
-
-The IAX2 channel:
-
-* It is possible that previous configurations depended on the order in which
- peers and users were specified in iax.conf for forcing the order in which
- chan_iax2 matched against them. This behavior is going away and is considered
- deprecated in this version. Avoid having ambiguous peer and user entries and
- to make things easy on yourself, always set the "username" option for users
- so that the remote end can match on that exactly instead of trying to infer
- which user you want based on host.
-
- If you would like to go ahead and use the new behavior which doesn't use the
- order in the config file to influence matching order, then change the
- MAX_PEER_BUCKETS define in chan_iax2.c to a value greater than one. An
- example is provided there. By changing this, you will get *much* better
- performance on systems that do a lot of peer and user lookups as they will be
- stored in memory in a much more efficient manner.
-
-* The "mailboxdetail" option has been deprecated. Previously, if this option
- was not enabled, the 2 byte MSGCOUNT information element would be set to all
- 1's to indicate there there is some number of messages waiting. With this
- option enabled, the number of new messages were placed in one byte and the
- number of old messages are placed in the other. This is now the default
- (and the only) behavior.
-
-The SIP channel:
-
-* The "incominglimit" setting is replaced by the "call-limit" setting in
- sip.conf.
-
-* OSP support code is removed from SIP channel to OSP applications. ospauth
- option in sip.conf is removed to osp.conf as authpolicy. allowguest option
- in sip.conf cannot be set as osp anymore.
-
-* The Asterisk RTP stack has been changed in regards to RFC2833 reception
- and transmission. Packets will now be sent with proper duration instead of all
- at once. If you are receiving calls from a pre-1.4 Asterisk installation you
- will want to turn on the rfc2833compensate option. Without this option your
- DTMF reception may act poorly.
-
-* The $SIPUSERAGENT dialplan variable is deprecated and will be removed
- in coming versions of Asterisk. Please use the dialplan function
- SIPCHANINFO(useragent) instead.
-
-* The ALERT_INFO dialplan variable is deprecated and will be removed
- in coming versions of Asterisk. Please use the dialplan application
- sipaddheader() to add the "Alert-Info" header to the outbound invite.
-
-* The "canreinvite" option has changed. canreinvite=yes used to disable
- re-invites if you had NAT=yes. In 1.4, you need to set canreinvite=nonat
- to disable re-invites when NAT=yes. This is propably what you want.
- The settings are now: "yes", "no", "nonat", "update". Please consult
- sip.conf.sample for detailed information.
-
-The Zap channel:
-
-* Support for MFC/R2 has been removed, as it has not been functional for some
- time and it has no maintainer.
-
-The Agent channel:
-
-* Callback mode (AgentCallbackLogin) is now deprecated, since the entire function
- it provided can be done using dialplan logic, without requiring additional
- channel and module locks (which frequently caused deadlocks). An example of
- how to do this using AEL dialplan is in doc/queues-with-callback-members.txt.
-
-The G726-32 codec:
-
-* It has been determined that previous versions of Asterisk used the wrong codeword
- packing order for G726-32 data. This version supports both available packing orders,
- and can transcode between them. It also now selects the proper order when
- negotiating with a SIP peer based on the codec name supplied in the SDP. However,
- there are existing devices that improperly request one order and then use another;
- Sipura and Grandstream ATAs are known to do this, and there may be others. To
- be able to continue to use these devices with this version of Asterisk and the
- G726-32 codec, a configuration parameter called 'g726nonstandard' has been added
- to sip.conf, so that Asterisk can use the packing order expected by the device (even
- though it requested a different order). In addition, the internal format number for
- G726-32 has been changed, and the old number is now assigned to AAL2-G726-32. The
- result of this is that this version of Asterisk will be able to interoperate over
- IAX2 with older versions of Asterisk, as long as this version is told to allow
- 'g726aal2' instead of 'g726' as the codec for the call.
-
-Installation:
-
-* On BSD systems, the installation directories have changed to more "FreeBSDish"
- directories. On startup, Asterisk will look for the main configuration in
- /usr/local/etc/asterisk/asterisk.conf
- If you have an old installation, you might want to remove the binaries and
- move the configuration files to the new locations. The following directories
- are now default:
- ASTLIBDIR /usr/local/lib/asterisk
- ASTVARLIBDIR /usr/local/share/asterisk
- ASTETCDIR /usr/local/etc/asterisk
- ASTBINDIR /usr/local/bin/asterisk
- ASTSBINDIR /usr/local/sbin/asterisk
-
-Music on Hold:
-
-* The music on hold handling has been changed in some significant ways in hopes
- to make it work in a way that is much less confusing to users. Behavior will
- not change if the same configuration is used from older versions of Asterisk.
- However, there are some new configuration options that will make things work
- in a way that makes more sense.
-
- Previously, many of the channel drivers had an option called "musicclass" or
- something similar. This option set what music on hold class this channel
- would *hear* when put on hold. Some people expected (with good reason) that
- this option was to configure what music on hold class to play when putting
- the bridged channel on hold. This option has now been deprecated.
-
- Two new music on hold related configuration options for channel drivers have
- been introduced. Some channel drivers support both options, some just one,
- and some support neither of them. Check the sample configuration files to see
- which options apply to which channel driver.
-
- The "mohsuggest" option specifies which music on hold class to suggest to the
- bridged channel when putting them on hold. The only way that this class can
- be overridden is if the bridged channel has a specific music class set that
- was done in the dialplan using Set(CHANNEL(musicclass)=something).
-
- The "mohinterpret" option is similar to the old "musicclass" option. It
- specifies which music on hold class this channel would like to listen to when
- put on hold. This music class is only effective if this channel has no music
- class set on it from the dialplan and the bridged channel putting this one on
- hold had no "mohsuggest" setting.
-
- The IAX2 and Zap channel drivers have an additional feature for the
- "mohinterpret" option. If this option is set to "passthrough", then these
- channel drivers will pass through the HOLD message in signalling instead of
- starting music on hold on the channel. An example for how this would be
- useful is in an enterprise network of Asterisk servers. When one phone on one
- server puts a phone on a different server on hold, the remote server will be
- responsible for playing the hold music to its local phone that was put on
- hold instead of the far end server across the network playing the music.
-
-CDR Records:
-
-* The behavior of the "clid" field of the CDR has always been that it will
- contain the callerid ANI if it is set, or the callerid number if ANI was not
- set. When using the "callerid" option for various channel drivers, some
- would set ANI and some would not. This has been cleared up so that all
- channel drivers set ANI. If you would like to change the callerid number
- on the channel from the dialplan and have that change also show up in the
- CDR, then you *must* set CALLERID(ANI) as well as CALLERID(num).
-
-API:
-
-* There are some API functions that were not previously prefixed with the 'ast_'
- prefix but now are; these include the ADSI, ODBC and AGI interfaces. If you
- have a module that uses the services provided by res_adsi, res_odbc, or
- res_agi, you will need to add ast_ prefixes to the functions that you call
- from those modules.
-
-Formats:
-
-* format_wav: The GAIN preprocessor definition has been changed from 2 to 0
- in Asterisk 1.4. This change was made in response to user complaints of
- choppiness or the clipping of loud signal peaks. The GAIN preprocessor
- definition will be retained in Asterisk 1.4, but will be removed in a
- future release. The use of GAIN for the increasing of voicemail message
- volume should use the 'volgain' option in voicemail.conf
-
-From 1.0 to 1.2:
-
-Compiling:
-
-* The Asterisk 1.2 source code now uses C language features
- supported only by 'modern' C compilers. Generally, this means GCC
- version 3.0 or higher, although some GCC 2.96 releases will also
- work. Some non-GCC compilers that support C99 and the common GCC
- extensions (including anonymous structures and unions) will also
- work. All releases of GCC 2.95 do _not_ have the requisite feature
- support; systems using that compiler will need to be upgraded to
- a more recent compiler release.
-
-Dialplan Expressions:
-
-* The dialplan expression parser (which handles $[ ... ] constructs)
- has gone through a major upgrade, but has one incompatible change:
- spaces are no longer required around expression operators, including
- string comparisons. However, you can now use quoting to keep strings
- together for comparison. For more details, please read the
- doc/README.variables file, and check over your dialplan for possible
- problems.
-
-Agents:
-
-* The default for ackcall has been changed to "no" instead of "yes"
- because of a bug which caused the "yes" behavior to generally act like
- "no". You may need to adjust the value if your agents behave
- differently than you expect with respect to acknowledgement.
-
-* The AgentCallBackLogin application now requires a second '|' before
- specifying an extension@context. This is to distinguish the options
- string from the extension, so that they do not conflict. See
- 'show application AgentCallbackLogin' for more details.
-
-Parking:
-
-* Parking behavior has changed slightly; when a parked call times out,
- Asterisk will attempt to deliver the call back to the extension that
- parked it, rather than the 's' extension. If that extension is busy
- or unavailable, the parked call will be lost.
-
-Dialing:
-
-* The Caller*ID of the outbound leg is now the extension that was
- called, rather than the Caller*ID of the inbound leg of the call. The
- "o" flag for Dial can be used to restore the original behavior if
- desired. Note that if you are looking for the originating callerid
- from the manager event, there is a new manager event "Dial" which
- provides the source and destination channels and callerid.
-
-IAX:
-
-* The naming convention for IAX channels has changed in two ways:
- 1. The call number follows a "-" rather than a "/" character.
- 2. The name of the channel has been simplified to IAX2/peer-callno,
- rather than IAX2/peer@peer-callno or even IAX2/peer@peer/callno.
-
-SIP:
-
-* The global option "port" in 1.0.X that is used to set which port to
- bind to has been changed to "bindport" to be more consistent with
- the other channel drivers and to avoid confusion with the "port"
- option for users/peers.
-
-* The "Registry" event now uses "Username" rather than "User" for
- consistency with IAX.
-
-Applications:
-
-* With the addition of dialplan functions (which operate similarly
- to variables), the SetVar application has been renamed to Set.
-
-* The CallerPres application has been removed. Use SetCallerPres
- instead. It accepts both numeric and symbolic names.
-
-* The applications GetGroupCount, GetGroupMatchCount, SetGroup, and
- CheckGroup have been deprecated in favor of functions. Here is a
- table of their replacements:
-
- GetGroupCount([groupname][@category] GROUP_COUNT([groupname][@category]) Set(GROUPCOUNT=${GROUP_COUNT()})
- GroupMatchCount(groupmatch[@category]) GROUP_MATCH_COUNT(groupmatch[@category]) Set(GROUPCOUNT=${GROUP_MATCH_COUNT(SIP/.*)})
- SetGroup(groupname[@category]) GROUP([category])=groupname Set(GROUP()=test)
- CheckGroup(max[@category]) N/A GotoIf($[ ${GROUP_COUNT()} > 5 ]?103)
-
- Note that CheckGroup does not have a direct replacement. There is
- also a new function called GROUP_LIST() which will return a space
- separated list of all of the groups set on a channel. The GROUP()
- function can also return the name of the group set on a channel when
- used in a read environment.
-
-* The applications DBGet and DBPut have been deprecated in favor of
- functions. Here is a table of their replacements:
-
- DBGet(foo=family/key) Set(foo=${DB(family/key)})
- DBPut(family/key=${foo}) Set(DB(family/key)=${foo})
-
-* The application SetLanguage has been deprecated in favor of the
- function LANGUAGE().
-
- SetLanguage(fr) Set(LANGUAGE()=fr)
-
- The LANGUAGE function can also return the currently set language:
-
- Set(MYLANG=${LANGUAGE()})
-
-* The applications AbsoluteTimeout, DigitTimeout, and ResponseTimeout
- have been deprecated in favor of the function TIMEOUT(timeouttype):
-
- AbsoluteTimeout(300) Set(TIMEOUT(absolute)=300)
- DigitTimeout(15) Set(TIMEOUT(digit)=15)
- ResponseTimeout(15) Set(TIMEOUT(response)=15)
-
- The TIMEOUT() function can also return the currently set timeouts:
-
- Set(DTIMEOUT=${TIMEOUT(digit)})
-
-* The applications SetCIDName, SetCIDNum, and SetRDNIS have been
- deprecated in favor of the CALLERID(datatype) function:
-
- SetCIDName(Joe Cool) Set(CALLERID(name)=Joe Cool)
- SetCIDNum(2025551212) Set(CALLERID(number)=2025551212)
- SetRDNIS(2024561414) Set(CALLERID(RDNIS)=2024561414)
-
-* The application Record now uses the period to separate the filename
- from the format, rather than the colon.
-
-* The application VoiceMail now supports a 'temporary' greeting for each
- mailbox. This greeting can be recorded by using option 4 in the
- 'mailbox options' menu, and 'change your password' option has been
- moved to option 5.
-
-* The application VoiceMailMain now only matches the 'default' context if
- none is specified in the arguments. (This was the previously
- documented behavior, however, we didn't follow that behavior.) The old
- behavior can be restored by setting searchcontexts=yes in voicemail.conf.
-
-Queues:
-
-* A queue is now considered empty not only if there are no members but if
- none of the members are available (e.g. agents not logged on). To
- restore the original behavior, use "leavewhenempty=strict" or
- "joinwhenempty=strict" instead of "=yes" for those options.
-
-* It is now possible to use multi-digit extensions in the exit context
- for a queue (although you should not have overlapping extensions,
- as there is no digit timeout). This means that the EXITWITHKEY event
- in queue_log can now contain a key field with more than a single
- character in it.
-
-Extensions:
-
-* By default, there is a new option called "autofallthrough" in
- extensions.conf that is set to yes. Asterisk 1.0 (and earlier)
- behavior was to wait for an extension to be dialed after there were no
- more extensions to execute. "autofallthrough" changes this behavior
- so that the call will immediately be terminated with BUSY,
- CONGESTION, or HANGUP based on Asterisk's best guess. If you are
- writing an extension for IVR, you must use the WaitExten application
- if "autofallthrough" is set to yes.
-
-AGI:
-
-* AGI scripts did not always get SIGHUP at the end, previously. That
- behavior has been fixed. If you do not want your script to terminate
- at the end of AGI being called (e.g. on a hangup) then set SIGHUP to
- be ignored within your application.
-
-* CallerID is reported with agi_callerid and agi_calleridname instead
- of a single parameter holding both.
-
-Music On Hold:
-
-* The preferred format for musiconhold.conf has changed; please see the
- sample configuration file for the new format. The existing format
- is still supported but will generate warnings when the module is loaded.
-
-chan_modem:
-
-* All the chan_modem channel drivers (aopen, bestdata and i4l) are deprecated
- in this release, and will be removed in the next major Asterisk release.
- Please migrate to chan_misdn for ISDN interfaces; there is no upgrade
- path for aopen and bestdata modem users.
-
-MeetMe:
-
-* The conference application now allows users to increase/decrease their
- speaking volume and listening volume (independently of each other and
- other users); the 'admin' and 'user' menus have changed, and new sound
- files are included with this release. However, if a user calling in
- over a Zaptel channel that does NOT have hardware DTMF detection
- increases their speaking volume, it is likely they will no longer be
- able to enter/exit the menu or make any further adjustments, as the
- software DTMF detector will not be able to recognize the DTMF coming
- from their device.
-
-GetVar Manager Action:
-
-* Previously, the behavior of the GetVar manager action reported the value
- of a variable in the following manner:
- > name: value
- This has been changed to a manner similar to the SetVar action and is now
- > Variable: name
- > Value: value