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 14 to Asterisk 15 --------------------
------------------------------------------------------------------------------
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.
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.
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 ------------
------------------------------------------------------------------------------
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
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
------------------
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
* Plaintext auth mode is deprecated and removed from possible default modes.
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
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.
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 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.
* 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.
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'.
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.
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.
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.
Matt Jordan
committed
* 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 ------------
------------------------------------------------------------------------------
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.
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
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