This will be the home for the Asterisk 13 upgrade discussion.
Asterisk 13 upgrade notes
The main changes seem to be from version 11 to version 12, which introduces the revamped bridging core, the Stasis bus and many AMI improvements. ARI was also added in 12.
Relevant documentation
AsyncAGI changes
AGIExec is now AGIExecStart and AGIExecEnd. We probably only use this in adhearsion-asterisk.
AsyncAGI is now AsyncAGIStart, AsyncAGIExec, and AsyncAGIEnd. This will affect our basic connection handling.
AMI changes
For the most part, subtypes for events have been removed.
We should not need to track channel name changes any more.
DTMF
The combination of DTMFBegin/DTMFEnd events replaces the removed DTMF event.
Dial
The DialBegin/DialEnd events replace theDial event. Note that the Dial event signaling the end of dialing would not normally be sent until after bridging was complete; this operation will now occur when the dial operation has determined the status of a particular called channel.
The DialEnd event will now contain a Forward header if the dial is ending due to the call being forwarded. The contents of the Forward header is the extension in the number to which the call is being forwarded. (Asterisk 13).
Bridging
There seems to be an entirely new bridging lifecycle, consisting of a few new events.
BridgeCreate when channels are about to enter a bridge
BridgeEnter when a channel is put in a bridge
BridgeLeave when a channel leaves a bridge
All events are always emitted and Asterisk 12 makes sure they are in the correct order, so we can trust that to be true.
Masquerades
They do not exist any more.
Miscellaneous changes
MixMonitor
The AUDIOHOOK_INHERIT function is no longer needed to keep a MixMonitor running during a transfer. If a MixMonitor is started on a channel, the MixMonitor will continue to record the audio passing through the channel even in the presence of transfers.
New options to play a beep when starting a recording and stopping a recording have been added. The option "p" will play a beep to the channel that starts the recording. The option "P" will play a beep to the channel that stops the recording. Introduced in Asterisk 13.
ControlPlayback
New AMI action that should allow us to not have to redirect any more to stop audio.
The ControlPlayback action allows an AMI client to manipulate audio currently being played back on a channel. The supported operations depend on the application being used to send audio to the channel. When the audio playback was initiated using the ControlPlayback application or CONTROL STREAM FILE AGI command, the audio can be paused, stopped, restarted, reversed, or skipped forward. When initiated by other mechanisms (such as the Playback application), the audio can be stopped, reversed, or skipped forward.
BridgeWait
A new application in Asterisk, this will place the calling channel into a holding bridge, optionally entertaining them with some form of media. Channels participating in a holding bridge do not interact with other channels in the same holding bridge. Optionally, however, a channel may join as an announcer. Any media passed from an announcer channel is played to all channels in the holding bridge. Channels leave a holding bridge either when an optional timer expires, or via the ChannelRedirect application or AMI Redirect action.
Hold
The AMI Hold event has been moved out of individual channel drivers, into core, and is now two events: Hold and Unhold. The status field has been removed.
Other changes
- NewPeerAccount has been removed. NewAccountCode is raised instead.
- Reload events have been consolidated and standardized.
- ModuleLoadReport has been removed.
- FaxSent is now SendFAX; FaxReceived is now ReceiveFAX. This standardizes
app_fax and res_fax events.
- MusicOnHold has been replaced with MusicOnHoldStart and MusicOnHoldStop.
- JabberEvent has been removed.
- Hold is now in the core and will now raise Hold and Unhold events.
- Join is now QueueCallerJoin.
- Leave is now QueueCallerLeave.
- Agentlogin/Agentlogoff is now AgentLogin/AgentLogoff, respectively.
- ChannelUpdate has been removed.
- Local channel optimization is now conveyed via LocalOptimizationBegin and
LocalOptimizationEnd.
- BridgeAction and BridgeExec have been removed.
- BlindTransfer and AttendedTransfer events were added.
- Dial is now DialBegin and DialEnd.
- DTMF is now DTMFBegin and DTMFEnd.
- Bridge has been replaced with BridgeCreate, BridgeEnter, BridgeLeave, and
BridgeDestroy
- MusicOnHold has been replaced with MusicOnHoldStart and MusicOnHoldStop
- AGIExec is now AGIExecStart and AGIExecEnd
- AsyncAGI is now AsyncAGIStart, AsyncAGIExec, and AsyncAGIEnd
This will be the home for the Asterisk 13 upgrade discussion.
Asterisk 13 upgrade notes
The main changes seem to be from version 11 to version 12, which introduces the revamped bridging core, the Stasis bus and many AMI improvements. ARI was also added in 12.
Relevant documentation
AsyncAGI changes
AGIExec is now AGIExecStart and AGIExecEnd. We probably only use this in adhearsion-asterisk.
AsyncAGI is now AsyncAGIStart, AsyncAGIExec, and AsyncAGIEnd. This will affect our basic connection handling.
AMI changes
For the most part, subtypes for events have been removed.
We should not need to track channel name changes any more.
DTMF
The combination of
DTMFBegin/DTMFEndevents replaces the removedDTMFevent.Dial
The
DialBegin/DialEndevents replace theDialevent. Note that theDialevent signaling the end of dialing would not normally be sent until after bridging was complete; this operation will now occur when the dial operation has determined the status of a particular called channel.The DialEnd event will now contain a Forward header if the dial is ending due to the call being forwarded. The contents of the Forward header is the extension in the number to which the call is being forwarded. (Asterisk 13).
Bridging
There seems to be an entirely new bridging lifecycle, consisting of a few new events.
BridgeCreatewhen channels are about to enter a bridgeBridgeEnterwhen a channel is put in a bridgeBridgeLeavewhen a channel leaves a bridgeAll events are always emitted and Asterisk 12 makes sure they are in the correct order, so we can trust that to be true.
Masquerades
They do not exist any more.
Miscellaneous changes
MixMonitor
The AUDIOHOOK_INHERIT function is no longer needed to keep a MixMonitor running during a transfer. If a MixMonitor is started on a channel, the MixMonitor will continue to record the audio passing through the channel even in the presence of transfers.
New options to play a beep when starting a recording and stopping a recording have been added. The option "p" will play a beep to the channel that starts the recording. The option "P" will play a beep to the channel that stops the recording. Introduced in Asterisk 13.
ControlPlayback
New AMI action that should allow us to not have to redirect any more to stop audio.
The ControlPlayback action allows an AMI client to manipulate audio currently being played back on a channel. The supported operations depend on the application being used to send audio to the channel. When the audio playback was initiated using the ControlPlayback application or CONTROL STREAM FILE AGI command, the audio can be paused, stopped, restarted, reversed, or skipped forward. When initiated by other mechanisms (such as the Playback application), the audio can be stopped, reversed, or skipped forward.
BridgeWait
A new application in Asterisk, this will place the calling channel into a holding bridge, optionally entertaining them with some form of media. Channels participating in a holding bridge do not interact with other channels in the same holding bridge. Optionally, however, a channel may join as an announcer. Any media passed from an announcer channel is played to all channels in the holding bridge. Channels leave a holding bridge either when an optional timer expires, or via the ChannelRedirect application or AMI Redirect action.
Hold
The AMI Hold event has been moved out of individual channel drivers, into core, and is now two events: Hold and Unhold. The status field has been removed.
Other changes
app_fax and res_fax events.
LocalOptimizationEnd.
BridgeDestroy