Newer
Older
==============================================================================
Kevin P. Fleming
committed
===
=== 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 13 to Asterisk 14 --------------------
------------------------------------------------------------------------------
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.
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.
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.
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.
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.
Rodrigo Ramírez Norambuena
committed
CDRs
------------------
cdr_odbc
------------------
* Added a new configuration option, "newcdrcolumns", which enables use of the
post-1.8 CDR columns 'peeraccount', 'linkedid', and 'sequence'.
Rodrigo Ramírez Norambuena
committed
------------------
cdr_csv
------------------
* Added a new configuration option, "newcdrcolumns", which enables use of the
post-1.8 CDR columns 'peeraccount', 'linkedid', and 'sequence'.
Rodrigo Ramírez Norambuena
committed
Channel Drivers
------------------
Richard Mudgett
committed
chan_dahdi
------------------
* The CALLERID(ani2) value for incoming calls is now populated in featdmf
signaling mode. The information was previously discarded.
Richard Mudgett
committed
* 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).
Richard Mudgett
committed
Richard Mudgett
committed
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.
Matthew Jordan
committed
* 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.
Richard Mudgett
committed
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.
Joshua Colp
committed
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 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 then a hint will be automatically created with the name of
the device.
Functions
------------------
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.
Kevin Harwell
committed
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'.
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.
Rodrigo Ramírez Norambuena
committed
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.
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'.
--- Functionality changes from Asterisk 13.9.0 to Asterisk 13.10.0 -----------
------------------------------------------------------------------------------
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 new status Updated to AMI event ContactStatus on update registration
* 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.
Matt Jordan
committed
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.
------------------------------------------------------------------------------
--- 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 ------------
------------------------------------------------------------------------------
George Joseph
committed
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.
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
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.
George Joseph
committed
* 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.
* 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 altert 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 ------------
------------------------------------------------------------------------------
Alexander Traud
committed
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
Matt Jordan
committed
------------------------------------------------------------------------------
--- 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.
Rodrigo Ramírez Norambuena
committed
* 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.
Richard Mudgett
committed
------------------------------------------------------------------------------
--- 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".
George Joseph
committed
* 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.
Matthew Jordan
committed
------------------------------------------------------------------------------
--- 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.
George Joseph
committed
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
George Joseph
committed
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
Mark Michelson
committed
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
Jonathan Rose
committed
------------------------------------------------------------------------------
--- Functionality changes from Asterisk 12 to Asterisk 13 --------------------
------------------------------------------------------------------------------
------------------
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
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
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
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.
------------------
* 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.
SayCountPL
------------------
* This module was deprecated and has been removed. Users of app_saycountpl
should use the Say family of applications.
------------------
* 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 |.
Jonathan Rose
committed
cdr_sqlite
-----------------
* This module was deprecated and has been removed. Users of cdr_sqlite
should use cdr_sqlite3_custom.
Matthew Jordan
committed
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.
Matthew Jordan
committed
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.
chan_dahdi
------------------
* SS7 support now requires libss7 v2.0 or later.