Upgrading to Asterisk 18
The following lists the breaking change to be aware of when upgrading from Asterisk 17 to Asterisk 18:¶
-
Applications:
+ 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. * 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": "", "value":, "" }
The output is now just:
{ "": "" }
This aligns more with how variables are specified when sending a message, as
well as other variable lists in ARI.
For a complete list of upgrade notes please see the included UPGRADE.txt document.