Section | ||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...
Added a new module that provides AMI control over MWI within Asterisk,Anchor res_mwi_external_ami res_mwi_external_ami res_mwi_external_ami
. Note that this module depends onres_mwi_external
; for more information on enabling this module, seeres_mwi_external
. This module provides the MWIGet/MWIUpdate/MWIDelete actions, as well as the MWIGet/MWIGetComplete events.
...
- New DeviceStateChanged and PresenceStateChanged AMI events have been added. These events are emitted whenever a device state or presence state change occurs. The events are controlled by
res_manager_device_state.so
andres_manager_presence_state.so
. If the high frequency of these events is problematic for you, do not load these modules. - New events have been added for the
TALK_DETECT
function. When the function is used on a channel, ChannelTalkingStart/ChannelTalkingStop events will be emitted to connected AMI clients indicating the start/stop of talking on the channel. - The DialStatus field in the DialEnd event can now contain additional statuses that convey how the dial operation terminated. This includes
ABORT
,CONTINUE
, andGOTO
.
...
- Operations that create a resource can now provide the unique identifier as a parameter to the creation request. This includes:
- Channels:
- A channelId can now be provided when creating a channel, either in the request URI (
POST channels/my-channel-id
) or as a query parameter. A Local channel will suffix the second channel id with;2
unless the otherChannelId is provided as a query parameter. - A snoop channel can be started with a snoopId, in the request URI (
POST channels/my-channel-id/snoop/my-snoop-id
) or as a query parameter.
- A channelId can now be provided when creating a channel, either in the request URI (
- Bridges: A bridgeId can now be provided when creating a bridge, either in the request URI (
POST bridges/my-bridge-id
) or as a query parameter. - Playbacks: A playbackId can be provided when starting a playback, either in the request URI (
POST channels/my-channel-id/play/my-playback-id
orPOST bridges/my-bridge-id/play/my-playback-id
) or as a query parameter.
- Channels:
- Bridges: the bridge type used when creating a bridge is now a comma separated list of bridge properties. Valid options are:
mixing
,holding
,dtmf_events
, andproxy_media
. - The LiveRecording object in recording events now contains a target_uri field which contains the URI of what is being recorded.
- Stored recordings now support a new operation, copy. This will take an existing stored recording and copy it to a new location in the recordings directory.
- LiveRecording objects now have three additional fields that can be reported in a RecordingFinished ARI event:
- total_duration: the duration of the recording.
- talking_duration: optional. The duration of talking detected in the recording. This is only available if max_silence_seconds was specified when the recording was started.
- silence_duration: optional. The duration of silence detected in the recording. This is only available if max_silence_seconds was specified when the recording was started.
Users of ARI can now send and receive out of call text messages. Messages can be sent using aAnchor ari_text_message ari_text_message sendMessage
operation either directly to a particular endpoint or to the endpoints resource directly. In the latter case, the destination is derived from the URI scheme. Text messages are passed to ARI clients as TextMessageReceived events. ARI clients can choose to receive text messages by subscribing to the particular endpoint technology or endpoints that they are interested in.- The
applications
resource now supports subscriptions to all endpoints of a particular channel technology. For example, subscribing to aneventSource
ofendpoint:PJSIP
will subscribe to allPJSIP
endpoints. - New event models have been added for the
TALK_DETECT
function. When the function is used on a channel, ChannelTalkingStarted/ChannelTalkingFinished events will be emitted to connected WebSockets subscribed to the channel, indicating the start/stop of talking on the channel. - A new Playback URI
tone
has been added. Tones are specified either as an indication name, e.g.,tone:busy
, from indications.conf or as a tone pattern, e.g.,tone:240/250,0/250
. Tones differ from normal playback URIs in that they must be stopped manually and will continue to occupy a channel's ARI control queue until they are stopped. They also can not be rewound or fast-forwarded. - User events can now be generated from ARI. Events can be signalled with arbitrary JSON variables, and include one or more of
channel
,bridge
, orendpoint
snapshots. An application must be specified which will receive the event message (other applications can subscribe to it). If achannel
is specified, the message will also be delivered to connected AMI clients. Dialplan generated user event messages are still transmitted via thechannel
, and will only be received by a Stasis application they are attached to or if something is subscribed to thechannel
. - The Bridge data model now contains the additional fields name and creator. The name field conveys a descriptive name for the bridge; the creator field conveys the name of the entity that created the bridge. This affects all responses to HTTP requests that return a Bridge data model as well as all event derived data models that contain a Bridge data model. The
POST /bridges
operation may now optionally specify a name to give to the bridge being created.
Added a new ARI resource mailboxes which allows the creation and modification of mailboxes managed by external MWI. ModulesAnchor res_ari_mailboxes res_ari_mailboxes res_mwi_external
andres_stasis_mailbox
must be enabled to use this resource. For more information on external MWI control, seeres_mwi_external
.- Added new events for externally initiated transfers. The event BridgeBlindTransfer is now raised when a channel initiates a blind transfer of a bridge in the ARI controlled application to the dialplan; the BridgeAttendedTransfer event is raised when a channel initiates an attended transfer of a bridge in the ARI controlled application to the dialplan.
- Channel variables may now be specified as a body parameter to the
POST /channels
operation. Thevariables
key in the JSON is interpreted as a sequence of key/value pairs that will be added to the created channel as channel variables. Other parameters in the JSON body are treated as query parameters of the same name.
...
- A new module,
res_mwi_external
, has been added to Asterisk. This module acts as a base framework that other modules can build on top of to allow an external system to control MWI within Asterisk. For implementations that make use ofres_mwi_external
, see theres_mwi_external_ami
notes under the AMI changes andres_ari_mailboxes
notes under the ARI changes. Note thatres_mwi_external
conflicts with other modules that may produce MWI themselves, such asapp_voicemail
.res_mwi_external
and other modules that depend on it cannot be built or loaded withapp_voicemail
present.
...
- Subscriptions can now be persisted via the
subscription_persistence
object inpjsip.conf
. Note that it is up to the configuration insorcery.conf
to determine how the subscription is persisted. - The publish/subscribe core module has been updated to support RFC 4662 Resource Lists, allowing Asterisk to act as a Resource List Server (RLS). Resource lists are configured in
pjsip.conf
under a new object type,resource_list
. Resource lists can contain eithermessage-summary
orpresence
events, can be composed of specific resources that provide the event, or other resource lists. - Inbound publication support is provided by a new object,
inbound-publication
. This configuresres_pjsip_pubsub
to acceptPUBLISH
requests from a particular resource. Which events are accepted is constructed dynamically; seeres_pjsip_publish_asterisk
for more information and Exchanging Device and Mailbox State Using PJSIP for examples on configuring this feature.
...