mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-03 03:20:57 +00:00
Update CHANGES and UPGRADE.txt for 18.0.0
This commit is contained in:
@@ -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.
|
Reference in New Issue
Block a user