8153 lines
371 KiB
Plaintext
8153 lines
371 KiB
Plaintext
==============================================================================
|
|
===
|
|
=== 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 18.14.0 to Asterisk 18.15.0 ----------
|
|
------------------------------------------------------------------------------
|
|
|
|
Transfer feature
|
|
------------------
|
|
* The following capabilities have been added to the
|
|
transfer feature:
|
|
|
|
- The transfer initiation announcement prompt can
|
|
now be customized in features.conf.
|
|
|
|
- The TRANSFER_EXTEN variable now can be set on the
|
|
transferer's channel in order to allow the transfer
|
|
function to automatically attempt to go to the extension
|
|
contained in this variable, if it exists. The transfer
|
|
context behavior is not changed (TRANSFER_CONTEXT is used
|
|
if it exists; otherwise the default context is used).
|
|
|
|
app_confbridge
|
|
------------------
|
|
* Adds the end_marked_any option which can be used
|
|
to kick users from a conference after any
|
|
marked user leaves (including marked users).
|
|
|
|
locks
|
|
------------------
|
|
* A new AMI event, DeadlockStart, is now available
|
|
when Asterisk is compiled with DETECT_DEADLOCKS,
|
|
and can indicate that a deadlock has occured.
|
|
|
|
res_geolocation
|
|
------------------
|
|
* Added 4 built-in profiles:
|
|
"<prefer_config>"
|
|
"<discard_config>"
|
|
"<prefer_incoming>"
|
|
"<discard_incoming>"
|
|
The profiles are empty except for having their precedence
|
|
set.
|
|
|
|
Added profile parameter "suppress_empty_ca_elements" that
|
|
will cause Civic Address elements that are empty to be
|
|
suppressed from the outgoing PIDF-LO document.
|
|
|
|
You can now specify the location object's format, location_info,
|
|
method, location_source and confidence parameters directly on
|
|
a profile object for simple scenarios where the location
|
|
information isn't common with any other profiles. This is
|
|
mutually exclusive with setting location_reference on the
|
|
profile.
|
|
|
|
Added an 'a' option to the GEOLOC_PROFILE function to allow
|
|
variable lists like location_info_refinement to be appended
|
|
to instead of replacing the entire list.
|
|
|
|
Added an 'r' option to the GEOLOC_PROFILE function to resolve all
|
|
variables before a read operation and after a Set operation.
|
|
|
|
res_musiconhold_answeredonly
|
|
------------------
|
|
* This change adds an option, answeredonly, that will prevent music
|
|
on hold on channels that are not answered.
|
|
|
|
res_pjsip
|
|
------------------
|
|
* TLS transports in res_pjsip can now reload their TLS certificate
|
|
and private key files, provided the filename of them has not
|
|
changed.
|
|
|
|
------------------------------------------------------------------------------
|
|
--- Functionality changes from Asterisk 18.13.0 to Asterisk 18.14.0 ----------
|
|
------------------------------------------------------------------------------
|
|
|
|
res_geolocation
|
|
------------------
|
|
* * Added processing for the 'confidence' element.
|
|
* Added documentation to some APIs.
|
|
* removed a lot of complex code related to the very-off-nominal
|
|
case of needing to process multiple location info sources.
|
|
* Create a new 'ast_geoloc_eprofile_to_pidf' API that just takes
|
|
one eprofile instead of a datastore of multiples.
|
|
* Plugged a huge leak in XML processing that arose from
|
|
insufficient documentation by the libxml/libxslt authors.
|
|
* Refactored stylesheets to be more efficient.
|
|
* Renamed 'profile_action' to 'profile_precedence' to better
|
|
reflect it's purpose.
|
|
* Added the config option for 'allow_routing_use' which
|
|
sets the value of the 'Geolocation-Routing' header.
|
|
* Removed the GeolocProfileCreate and GeolocProfileDelete
|
|
dialplan apps.
|
|
* Changed the GEOLOC_PROFILE dialplan function as follows:
|
|
* Removed the 'profile' argument.
|
|
* Automatically create a profile if it doesn't exist.
|
|
* Delete a profile if 'inheritable' is set to no.
|
|
* Fixed various bugs and leaks
|
|
* Updated Asterisk WiKi documentation.
|
|
|
|
------------------------------------------------------------------------------
|
|
--- Functionality changes from Asterisk 18.13.0 to Asterisk 18.14.0 ----------
|
|
------------------------------------------------------------------------------
|
|
|
|
chan_dahdi
|
|
------------------
|
|
* A POLARITY function is now available that allows
|
|
getting or setting the polarity on a channel
|
|
from the dialplan.
|
|
|
|
db
|
|
------------------
|
|
* The DBPrefixGet AMI action now allows retrieving
|
|
all of the DB keys beginning with a particular
|
|
prefix.
|
|
|
|
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_geolocation
|
|
------------------
|
|
* Added res_geolocation which creates the core capabilities
|
|
to manipulate Geolocation information on SIP INVITEs.
|
|
|
|
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.
|
|
|
|
------------------------------------------------------------------------------
|
|
--- Functionality changes from Asterisk 18.12.0 to Asterisk 18.13.0 ----------
|
|
------------------------------------------------------------------------------
|
|
|
|
app_confbridge
|
|
------------------
|
|
* 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_voicemail
|
|
------------------
|
|
* The r option has been added, which prevents deletion
|
|
of messages from VoiceMailMain, which can be
|
|
useful for shared mailboxes.
|
|
|
|
ari
|
|
------------------
|
|
* Expose channel driver's unique id (which is the Call-ID for SIP/PJSIP)
|
|
to ARI channel resources as 'protocol_id'.
|
|
|
|
ASTERISK-30027
|
|
|
|
res_agi
|
|
------------------
|
|
* Agi command 'exec' can now be enabled
|
|
to evaluate dialplan functions and variables
|
|
by setting the variable AGIEXECFULL to yes.
|
|
|
|
res_parking
|
|
------------------
|
|
* An m option to Park and ParkAndAnnounce now allows
|
|
specifying a music on hold class override.
|
|
|
|
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.11.3 to Asterisk 18.12.0 ----------
|
|
------------------------------------------------------------------------------
|
|
|
|
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.
|
|
|
|
app_queue
|
|
------------------
|
|
* The m option now allows an override music on hold
|
|
class to be specified for the Queue application
|
|
within the dialplan.
|
|
|
|
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.
|
|
|
|
chan_pjsip
|
|
------------------
|
|
* 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
|
|
|
|
cli
|
|
------------------
|
|
* 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_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_evalexten
|
|
------------------
|
|
* This adds the EVAL_EXTEN function which may be
|
|
used to evaluate data at dialplan extensions.
|
|
|
|
------------------------------------------------------------------------------
|
|
--- Functionality changes from Asterisk 18.11.1 to Asterisk 18.11.2 ----------
|
|
------------------------------------------------------------------------------
|
|
|
|
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.
|
|
|
|
------------------------------------------------------------------------------
|
|
--- Functionality changes from Asterisk 18.10.0 to Asterisk 18.11.0 ----------
|
|
------------------------------------------------------------------------------
|
|
|
|
ami
|
|
------------------
|
|
* AMI events can now be globally disabled using
|
|
the disabledevents [general] setting.
|
|
|
|
app_mf
|
|
------------------
|
|
* Adds an option to ReceiveMF to cap the
|
|
number of digits read at a user-specified
|
|
maximum.
|
|
|
|
app_queue
|
|
------------------
|
|
* 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.
|
|
|
|
channel_internal_api
|
|
------------------
|
|
* CHANNEL(lastcontext) and CHANNEL(lastexten)
|
|
are now available for use in the dialplan.
|
|
|
|
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.
|
|
|
|
------------------------------------------------------------------------------
|
|
--- Functionality changes from Asterisk 18.9.0 to Asterisk 18.10.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
|
|
|
|
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.
|
|
|
|
ami
|
|
------------------
|
|
* An AMI event now exists for "Wink".
|
|
|
|
app_mf
|
|
------------------
|
|
* Adds MF receiver and sender applications to support
|
|
the R1 MF signaling protocol, including integration
|
|
with the Dial application.
|
|
|
|
app_queue
|
|
------------------
|
|
* 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
|
|
|
|
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_sendtext
|
|
------------------
|
|
* A ReceiveText application has been added that can be
|
|
used in conjunction with the SendText application.
|
|
|
|
app_voicemail
|
|
------------------
|
|
* 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
|
|
|
|
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_sip.c
|
|
------------------
|
|
* resolve issue with pickup on device that uses "183" and not "180"
|
|
|
|
cli
|
|
------------------
|
|
* The "module refresh" command has been added,
|
|
which allows unloading and then loading a
|
|
module with a single command.
|
|
|
|
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.
|
|
|
|
res_fax_spandsp
|
|
------------------
|
|
* Adds support for spandsp 3.0.0.
|
|
|
|
------------------------------------------------------------------------------
|
|
--- Functionality changes from Asterisk 18.8.0 to Asterisk 18.9.0 ------------
|
|
------------------------------------------------------------------------------
|
|
|
|
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.
|
|
|
|
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
|
|
------------------
|
|
* 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.
|
|
|
|
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.
|
|
|
|
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.
|
|
|
|
chan_iax2
|
|
------------------
|
|
* Both a secret and an outkey may be specified at dial time,
|
|
since encryption is possible with RSA authentication.
|
|
|
|
------------------------------------------------------------------------------
|
|
--- Functionality changes from Asterisk 18.7.0 to Asterisk 18.8.0 ------------
|
|
------------------------------------------------------------------------------
|
|
|
|
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.
|
|
|
|
func_channel
|
|
------------------
|
|
* Adds the CHANNEL_EXISTS function to check for the existence
|
|
of a channel by name or unique ID.
|
|
|
|
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_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.
|
|
|
|
------------------------------------------------------------------------------
|
|
--- Functionality changes from Asterisk 18.6.0 to Asterisk 18.7.0 ------------
|
|
------------------------------------------------------------------------------
|
|
|
|
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.
|
|
|
|
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_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.
|
|
|
|
app_read
|
|
------------------
|
|
* A new option allows the digit '#' to be read literally,
|
|
rather than used exclusively as the input terminator
|
|
character.
|
|
|
|
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.
|
|
|
|
chan_iax2
|
|
------------------
|
|
* ANI2 (OLI) is now transmitted over IAX2 calls
|
|
as an information element.
|
|
|
|
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_framedrop
|
|
------------------
|
|
* New function to selectively drop specified frames
|
|
in either direction on a channel.
|
|
|
|
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.
|
|
|
|
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_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.
|
|
|
|
------------------------------------------------------------------------------
|
|
--- Functionality changes from Asterisk 18.5.0 to Asterisk 18.6.0 ------------
|
|
------------------------------------------------------------------------------
|
|
|
|
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.
|
|
|
|
app_dtmfstore
|
|
------------------
|
|
* New application which collects digits
|
|
dialed and stores them into
|
|
a specified variable.
|
|
|
|
app_queue.c
|
|
------------------
|
|
* Allow multiple files to be streamed for agent announcement.
|
|
|
|
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().
|
|
|
|
------------------------------------------------------------------------------
|
|
--- Functionality changes from Asterisk 18.5.0 to Asterisk 18.5.1 ------------
|
|
------------------------------------------------------------------------------
|
|
|
|
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_dial announcement option
|
|
------------------
|
|
* The A option for Dial now supports
|
|
playing audio to the caller as well
|
|
as the called party.
|
|
|
|
------------------------------------------------------------------------------
|
|
--- Functionality changes from Asterisk 18.4.0 to Asterisk 18.5.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.
|
|
|
|
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.
|
|
|
|
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_voicemail
|
|
------------------
|
|
* You can now customize the "beep" tone or omit it entirely.
|
|
|
|
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_volume now can be read
|
|
------------------
|
|
* The VOLUME function can now also be used
|
|
to read existing values previously set.
|
|
|
|
res_pjsip
|
|
------------------
|
|
* 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.
|
|
|
|
------------------------------------------------------------------------------
|
|
--- Functionality changes from Asterisk 18.3.0 to Asterisk 18.4.0 ------------
|
|
------------------------------------------------------------------------------
|
|
|
|
logger
|
|
------------------
|
|
* 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.'
|
|
|
|
------------------------------------------------------------------------------
|
|
--- Functionality changes from Asterisk 18.2.2 to Asterisk 18.3.0 ------------
|
|
------------------------------------------------------------------------------
|
|
|
|
app_mixmonitor
|
|
------------------
|
|
* app_mixmonitor now sends manager events MixMonitorStart, MixMonitorStop and
|
|
MixMonitorMute when the channel monitoring is started, stopped and muted (or
|
|
unmuted) respectively.
|
|
|
|
chan_iax2
|
|
------------------
|
|
* You can now specify a default "auth" method in the
|
|
[general] section of iax.conf
|
|
|
|
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_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.
|
|
|
|
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".
|
|
|
|
------------------------------------------------------------------------------
|
|
--- Functionality changes from Asterisk 18.1.0 to Asterisk 18.2.0 ------------
|
|
------------------------------------------------------------------------------
|
|
|
|
Core
|
|
------------------
|
|
* 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. To retain
|
|
backwards compatibility, the default location remains /tmp.
|
|
|
|
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.
|
|
|
|
------------------------------------------------------------------------------
|
|
--- Functionality changes from Asterisk 18.0.0 to Asterisk 18.1.0 ------------
|
|
------------------------------------------------------------------------------
|
|
|
|
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.
|
|
|
|
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".
|
|
|
|
------------------------------------------------------------------------------
|
|
--- Functionality changes from Asterisk 17.0.0 to Asterisk 18.0.0 ------------
|
|
------------------------------------------------------------------------------
|
|
|
|
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.
|
|
|
|
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
|
|
|
|
------------------------------------------------------------------------------
|
|
--- 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.
|