Update CHANGES and UPGRADE.txt for 18.0.0

18.0
Asterisk Development Team 5 years ago
parent e4d24f5137
commit 1f5e6805bf

@ -12,6 +12,384 @@
===
==============================================================================
------------------------------------------------------------------------------
--- 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 negotation 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 respectrive 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_PASSTRHOUGH, 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 --------------------------
------------------------------------------------------------------------------

@ -18,6 +18,126 @@
===
===========================================================
------------------------------------------------------------------------------
--- New functionality introduced in Asterisk 18.0.0 --------------------------
------------------------------------------------------------------------------
Core
------------------
* The ast_format_cap_from_stream_topology() function has been renamed
to ast_stream_topology_get_formats().
app_bridgeaddchan
------------------
* The BridgeAdd application now behaves more like the Bridge application.
The application now sets the BRIDGERESULT channel variable to indicate
what happened when the channel resumes in dialplan. This is instead of
hanging up the channel on failure conditions.
app_mixmonitor
------------------
* In Asterisk 13.29, a new option flag was added to MixMonitor (the 'S'
option) that when combined with the r() or t() options would inject
silence into these files if audio was going to be written to one and
not that other. This allowed the files specified by r() and t() to
subsequently be mixed outside of Asterisk and be appropriately
synchronized. This behavior is now the default, and a new option has
been added to disable this behavior if desired (the 'n' option).
app_queue
------------------
* The 'Reason' header in the QueueMemberPause AMI Event has been
removed. The 'PausedReason' header should be used instead.
* If they are not specified in [general], "shared_lastcall" and "autofill"
now always default to OFF. Before this version, they would be off ('no') if
queues.conf did not have a [general] section, but on ('yes') if it did.
app_voicemail
------------------
* The MessageExists dialplan application and the MESSAGE_EXISTS dialplan
function were removed. The were deprecated in Asterisk 1.6.0 and
Asterisk 11.0.0 respectively. The VM_INFO() dialplan function is the
supported mechanism to query the status of a given mailbox.
------------------------------------------------------------------------------
--- Functionality changes from Asterisk 17.0.0 to Asterisk 18.0.0 ------------
------------------------------------------------------------------------------
AMI
------------------
* The AMI Originate action, which optionally takes a dialplan application as
an argument, no longer accepts "Originate" as the application due to
security concerns.
ARI
------------------
* The "TextMessageReceived" event used to include a list of "TextMessageVariable"
objects as part of its output. Due to a couple of bugs in Asterisk a list of
received variables was never included even if ones were available. However,
variables set to send would be (which they should have not been), but would
fail validation due to the bad formatting.
So basically there was no way to get a "TextMessageReceived" event with
variables. Due to this the API has changed. The "TextMessageVariable" object
no longer exists. "TextMessageReceived" now returns a JSON object of key/value
pairs. So for instance instead of a list of "TextMessageVariable" objects:
[ TextMessageVariable, TextMessageVariable, TextMessageVariable]
where a TextMessageVariable was supposed to be:
{ "key": "<var name>", "value":, "<var value>" }
The output is now just:
{ "<var name>": "<var value>" }
This aligns more with how variables are specified when sending a message, as
well as other variable lists in ARI.
Core
------------------
* The streams API function ast_stream_get_formats is
now defined as returning the format capabilities const.
This has always been the case but was never enforced
through the API itself. Any consumer of this API that
is not treating the formats as immutable should update
their code to create a new format capabilities and set
it on the stream instead.
res_stasis
------------------
* The "TextMessageReceived" event used to include a list of "TextMessageVariable"
objects as part of its output. Due to a couple of bugs in Asterisk a list of
received variables was never included even if ones were available. However,
variables set to send would be (which they should have not been), but would
fail validation due to the bad formatting.
So basically there was no way to get a "TextMessageReceived" event with
variables. Due to this the API has changed. The "TextMessageVariable" object
no longer exists. "TextMessageReceived" now returns a JSON object of key/value
pairs. So for instance instead of a list of "TextMessageVariable" objects:
[ TextMessageVariable, TextMessageVariable, TextMessageVariable]
where a TextMessageVariable was supposed to be:
{ "key": "<var name>", "value":, "<var value>" }
The output is now just:
{ "<var name>": "<var value>" }
This aligns more with how variables are specified when sending a message, as
well as other variable lists in ARI.
res_stir_shaken
------------------
* A new directory has been added under the default (e.g., /var/lib/asterisk) -
inside the 'keys' directory - named 'stir_shaken'. This directory will
hold public keys that have been downloaded for STIR/SHAKEN verification.
------------------------------------------------------------------------------
--- New functionality introduced in Asterisk 17.0.0 --------------------------
------------------------------------------------------------------------------

@ -1,44 +0,0 @@
Subject: Core
Master-Only: True
The Streams API becomes the home for the core ACN capabilities.
These include...
* Parsing and formatting of codec negotation 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 respectrive 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.

@ -1,10 +0,0 @@
Subject: 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.

@ -1,4 +0,0 @@
Subject: AMI
You can now specify an optional 'Content-Type' as an argument for the Asterisk
SendText manager action.

@ -1,7 +0,0 @@
Subject: app_bridgeaddchan
Master-Only: true
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.

@ -1,5 +0,0 @@
Subject: 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.

@ -1,5 +0,0 @@
Subject: 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.

@ -1,6 +0,0 @@
Subject: 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.

@ -1,8 +0,0 @@
Subject: app_mixmonitor
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.

@ -1,5 +0,0 @@
Subject: 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.

@ -1,5 +0,0 @@
Subject: 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.

@ -1,5 +0,0 @@
Subject: 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.

@ -1,5 +0,0 @@
Subject: chan_pjsip
A new dialplan function, PJSIP_MOH_PASSTRHOUGH, 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.

@ -1,7 +0,0 @@
Subject: 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.

@ -1,7 +0,0 @@
Subject: app_confbridge
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.

@ -1,14 +0,0 @@
Subject: 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

@ -1,5 +0,0 @@
Subject: func_curl
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.

@ -1,6 +0,0 @@
Subject: 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")

@ -1,6 +0,0 @@
Subject: 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.

@ -1,3 +0,0 @@
Subject: func_volume
Accept decimal number as argument.

@ -1,6 +0,0 @@
Subject: 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.

@ -1,11 +0,0 @@
Subject: 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".

@ -1,4 +0,0 @@
Subject: 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.

@ -1,5 +0,0 @@
Subject: 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.

@ -1,7 +0,0 @@
Subject: 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.

@ -1,5 +0,0 @@
Subject: res_musiconhold
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.

@ -1,21 +0,0 @@
Subject: 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.

@ -1,7 +0,0 @@
Subject: 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.

@ -1,9 +0,0 @@
Subject: 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.

@ -1,8 +0,0 @@
Subject: res_pjsip
Subject: res_pjsip_session
Master-Only: True
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.

@ -1,8 +0,0 @@
Subject: 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.

@ -1,8 +0,0 @@
Subject: 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.

@ -1,18 +0,0 @@
Subject: res_rtp_asterisk
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.

@ -1,7 +0,0 @@
Subject: 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.

@ -1,19 +0,0 @@
Subject: 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.

@ -1,20 +0,0 @@
Subject: 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'.

@ -1,6 +0,0 @@
Subject: taskprocessor.c
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.

@ -1,7 +0,0 @@
Subject: 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.

@ -1,10 +0,0 @@
Subject: 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.

@ -1,5 +0,0 @@
Subject: Core
Master-Only: True
The ast_format_cap_from_stream_topology() function has been renamed
to ast_stream_topology_get_formats().

@ -1,5 +0,0 @@
Subject: AMI
The AMI Originate action, which optionally takes a dialplan application as
an argument, no longer accepts "Originate" as the application due to
security concerns.

@ -1,7 +0,0 @@
Subject: app_bridgeaddchan
Master-Only: true
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.

@ -1,10 +0,0 @@
Subject: app_mixmonitor
Master-Only: true
In Asterisk 13.29, a new option flag was added to MixMonitor (the 'S'
option) that when combined with the r() or t() options would inject
silence into these files if audio was going to be written to one and
not that other. This allowed the files specified by r() and t() to
subsequently be mixed outside of Asterisk and be appropriately
synchronized. This behavior is now the default, and a new option has
been added to disable this behavior if desired (the 'n' option).

@ -1,6 +0,0 @@
Subject: app_queue
Master-Only: true
If they are not specified in [general], "shared_lastcall" and "autofill"
now always default to OFF. Before this version, they would be off ('no') if
queues.conf did not have a [general] section, but on ('yes') if it did.

@ -1,5 +0,0 @@
Subject: app_queue
Master-Only: True
The 'Reason' header in the QueueMemberPause AMI Event has been
removed. The 'PausedReason' header should be used instead.

@ -1,26 +0,0 @@
Subject: ARI
Subject: res_stasis
The "TextMessageReceived" event used to include a list of "TextMessageVariable"
objects as part of its output. Due to a couple of bugs in Asterisk a list of
received variables was never included even if ones were available. However,
variables set to send would be (which they should have not been), but would
fail validation due to the bad formatting.
So basically there was no way to get a "TextMessageReceived" event with
variables. Due to this the API has changed. The "TextMessageVariable" object
no longer exists. "TextMessageReceived" now returns a JSON object of key/value
pairs. So for instance instead of a list of "TextMessageVariable" objects:
[ TextMessageVariable, TextMessageVariable, TextMessageVariable]
where a TextMessageVariable was supposed to be:
{ "key": "<var name>", "value":, "<var value>" }
The output is now just:
{ "<var name>": "<var value>" }
This aligns more with how variables are specified when sending a message, as
well as other variable lists in ARI.

@ -1,5 +0,0 @@
Subject: res_stir_shaken
A new directory has been added under the default (e.g., /var/lib/asterisk) -
inside the 'keys' directory - named 'stir_shaken'. This directory will
hold public keys that have been downloaded for STIR/SHAKEN verification.

@ -1,9 +0,0 @@
Subject: Core
The streams API function ast_stream_get_formats is
now defined as returning the format capabilities const.
This has always been the case but was never enforced
through the API itself. Any consumer of this API that
is not treating the formats as immutable should update
their code to create a new format capabilities and set
it on the stream instead.

@ -1,7 +0,0 @@
Subject: app_voicemail
Master-Only: True
The MessageExists dialplan application and the MESSAGE_EXISTS dialplan
function were removed. The were deprecated in Asterisk 1.6.0 and
Asterisk 11.0.0 respectively. The VM_INFO() dialplan function is the
supported mechanism to query the status of a given mailbox.
Loading…
Cancel
Save