2013-04-22 14:58:53 +00:00
{
"_copyright" : "Copyright (C) 2012 - 2013, Digium, Inc." ,
"_author" : "David M. Lee, II <dlee@digium.com>" ,
"_svn_revision" : "$Revision$" ,
2015-09-29 14:53:58 -05:00
"apiVersion" : "1.9.0" ,
2013-10-24 20:48:17 +00:00
"swaggerVersion" : "1.2" ,
2014-09-20 23:41:17 +00:00
"basePath" : "http://localhost:8088/ari" ,
2013-04-22 14:58:53 +00:00
"resourcePath" : "/api-docs/events.{format}" ,
"apis" : [
{
"path" : "/events" ,
"description" : "Events from Asterisk to applications" ,
"operations" : [
{
"httpMethod" : "GET" ,
2013-07-03 16:32:00 +00:00
"upgrade" : "websocket" ,
"websocketProtocol" : "ari" ,
2013-04-22 14:58:53 +00:00
"summary" : "WebSocket connection for events." ,
"nickname" : "eventWebsocket" ,
2013-07-05 19:15:27 +00:00
"responseClass" : "Message" ,
2013-04-22 14:58:53 +00:00
"parameters" : [
{
"name" : "app" ,
2013-08-02 14:36:32 +00:00
"description" : "Applications to subscribe to." ,
2013-04-22 14:58:53 +00:00
"paramType" : "query" ,
"required" : true ,
"allowMultiple" : true ,
"dataType" : "string"
2015-09-04 12:25:07 -05:00
},
{
"name" : "subscribeAll" ,
"description" : "Subscribe to all Asterisk events. If provided, the applications listed will be subscribed to all events, effectively disabling the application specific subscriptions. Default is 'false'." ,
"paramType" : "query" ,
"required" : false ,
"allowMultiple" : false ,
"dataType" : "boolean"
2013-04-22 14:58:53 +00:00
}
]
}
]
2014-05-22 16:09:51 +00:00
},
{
"path" : "/events/user/{eventName}" ,
"description" : "Stasis application user events" ,
"operations" : [
{
"httpMethod" : "POST" ,
"summary" : "Generate a user event." ,
"nickname" : "userEvent" ,
"responseClass" : "void" ,
"parameters" : [
{
"name" : "eventName" ,
"description" : "Event name" ,
"paramType" : "path" ,
"required" : true ,
"allowMultiple" : false ,
"dataType" : "string"
},
{
"name" : "application" ,
"description" : "The name of the application that will receive this event" ,
"paramType" : "query" ,
"required" : true ,
"allowMultiple" : false ,
"dataType" : "string"
},
{
"name" : "source" ,
"description" : "URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}/{resource}, deviceState:{deviceName}" ,
"paramType" : "query" ,
"required" : false ,
"allowMultiple" : true ,
"dataType" : "string"
},
{
"name" : "variables" ,
2014-07-03 16:14:39 +00:00
"description" : "The \"variables\" key in the body object holds custom key/value pairs to add to the user event. Ex. { \"variables\": { \"key\": \"value\" } }" ,
2014-05-22 16:09:51 +00:00
"paramType" : "body" ,
"required" : false ,
"allowMultiple" : false ,
"dataType" : "containers"
}
],
"errorResponses" : [
{
"code" : 404 ,
"reason" : "Application does not exist."
},
{
"code" : 422 ,
"reason" : "Event source not found."
},
{
"code" : 400 ,
"reason" : "Invalid even tsource URI or userevent data."
}
]
}
]
2013-04-22 14:58:53 +00:00
}
],
"models" : {
2013-07-05 19:15:27 +00:00
"Message" : {
"id" : "Message" ,
"description" : "Base type for errors and events" ,
2013-07-03 16:32:41 +00:00
"discriminator" : "type" ,
2013-04-22 14:58:53 +00:00
"properties" : {
2013-07-03 16:32:41 +00:00
"type" : {
"type" : "string" ,
"required" : true ,
2013-07-05 19:15:27 +00:00
"description" : "Indicates the type of this message."
}
2013-10-24 20:48:17 +00:00
},
"subTypes" : [
"MissingParams" ,
"Event"
]
2013-07-05 19:15:27 +00:00
},
"MissingParams" : {
"id" : "MissingParams" ,
"description" : "Error event sent when required params are missing." ,
"properties" : {
"params" : {
"required" : true ,
"type" : "List[string]" ,
"description" : "A list of the missing parameters"
}
}
},
"Event" : {
"id" : "Event" ,
"description" : "Base type for asynchronous events from Asterisk." ,
"properties" : {
2013-04-22 14:58:53 +00:00
"application" : {
"type" : "string" ,
"description" : "Name of the application receiving the event." ,
"required" : true
},
2013-07-03 16:32:41 +00:00
"timestamp" : {
"type" : "Date" ,
"description" : "Time at which this event was created." ,
"required" : false
}
2013-10-24 20:48:17 +00:00
},
"subTypes" : [
2013-11-23 17:48:28 +00:00
"DeviceStateChanged" ,
2013-10-24 20:48:17 +00:00
"PlaybackStarted" ,
"PlaybackFinished" ,
2013-11-30 14:12:50 +00:00
"RecordingStarted" ,
"RecordingFinished" ,
"RecordingFailed" ,
2013-10-24 20:48:17 +00:00
"ApplicationReplaced" ,
"BridgeCreated" ,
"BridgeDestroyed" ,
"BridgeMerged" ,
2014-02-01 16:26:57 +00:00
"BridgeBlindTransfer" ,
"BridgeAttendedTransfer" ,
2013-10-24 20:48:17 +00:00
"ChannelCreated" ,
"ChannelDestroyed" ,
"ChannelEnteredBridge" ,
"ChannelLeftBridge" ,
"ChannelStateChange" ,
"ChannelDtmfReceived" ,
"ChannelDialplan" ,
"ChannelCallerId" ,
"ChannelUserevent" ,
"ChannelHangupRequest" ,
"ChannelVarset" ,
2014-05-30 12:42:57 +00:00
"ChannelTalkingStarted" ,
"ChannelTalkingFinished" ,
2015-04-07 15:21:17 +00:00
"ChannelHold" ,
"ChannelUnhold" ,
2015-09-03 21:19:21 -05:00
"ContactStatusChange" ,
2013-10-24 20:48:17 +00:00
"EndpointStateChange" ,
2013-12-14 17:19:41 +00:00
"Dial" ,
2013-10-24 20:48:17 +00:00
"StasisEnd" ,
2014-08-05 21:44:09 +00:00
"StasisStart" ,
2014-12-08 15:49:24 +00:00
"TextMessageReceived" ,
2015-09-03 21:19:21 -05:00
"ChannelConnectedLine" ,
"PeerStatusChange"
2013-10-24 20:48:17 +00:00
]
2013-05-23 20:11:35 +00:00
},
2015-09-03 21:19:21 -05:00
"ContactInfo" : {
"id" : "ContactInfo" ,
"description" : "Detailed information about a contact on an endpoint." ,
"properties" : {
"uri" : {
"type" : "string" ,
"description" : "The location of the contact." ,
"required" : true
},
"contact_status" : {
"type" : "string" ,
"description" : "The current status of the contact." ,
"required" : true ,
"allowableValues" : {
"valueType" : "LIST" ,
"values" : [
"Unreachable" ,
"Reachable" ,
"Unknown" ,
"Created" ,
"Removed"
]
}
},
"aor" : {
"type" : "string" ,
"description" : "The Address of Record this contact belongs to." ,
"required" : true
},
"roundtrip_usec" : {
"type" : "string" ,
"description" : "Current round trip time, in microseconds, for the contact." ,
"required" : false
}
}
},
"Peer" : {
"id" : "Peer" ,
"description" : "Detailed information about a remote peer that communicates with Asterisk." ,
"properties" : {
"peer_status" : {
"type" : "string" ,
"description" : "The current state of the peer. Note that the values of the status are dependent on the underlying peer technology." ,
"required" : true
},
"cause" : {
"type" : "string" ,
"description" : "An optional reason associated with the change in peer_status." ,
"required" : false
},
"address" : {
"type" : "string" ,
"description" : "The IP address of the peer." ,
"required" : false
},
"port" : {
"type" : "string" ,
"description" : "The port of the peer." ,
"required" : false
},
"time" : {
"type" : "string" ,
"description" : "The last known time the peer was contacted." ,
"required" : false
}
}
},
2013-11-23 17:48:28 +00:00
"DeviceStateChanged" : {
"id" : "DeviceStateChanged" ,
"description" : "Notification that a device state has changed." ,
"properties" : {
"device_state" : {
"type" : "DeviceState" ,
"description" : "Device state object" ,
"required" : true
}
}
},
2013-05-23 20:11:35 +00:00
"PlaybackStarted" : {
"id" : "PlaybackStarted" ,
"description" : "Event showing the start of a media playback operation." ,
"properties" : {
"playback" : {
"type" : "Playback" ,
"description" : "Playback control object" ,
"required" : true
}
}
},
"PlaybackFinished" : {
"id" : "PlaybackFinished" ,
"description" : "Event showing the completion of a media playback operation." ,
"properties" : {
"playback" : {
"type" : "Playback" ,
"description" : "Playback control object" ,
"required" : true
}
2013-04-22 14:58:53 +00:00
}
},
2013-10-25 21:28:32 +00:00
"RecordingStarted" : {
"id" : "RecordingStarted" ,
"description" : "Event showing the start of a recording operation." ,
"properties" : {
"recording" : {
"type" : "LiveRecording" ,
"description" : "Recording control object" ,
"required" : true
}
}
},
"RecordingFinished" : {
"id" : "RecordingFinished" ,
"description" : "Event showing the completion of a recording operation." ,
"properties" : {
"recording" : {
"type" : "LiveRecording" ,
"description" : "Recording control object" ,
"required" : true
}
}
},
"RecordingFailed" : {
"id" : "RecordingFailed" ,
"description" : "Event showing failure of a recording operation." ,
"properties" : {
"recording" : {
"type" : "LiveRecording" ,
"description" : "Recording control object" ,
"required" : true
}
}
},
2013-04-22 14:58:53 +00:00
"ApplicationReplaced" : {
"id" : "ApplicationReplaced" ,
2013-07-03 16:32:41 +00:00
"description" : "Notification that another WebSocket has taken over for an application.\n\nAn application may only be subscribed to by a single WebSocket at a time. If multiple WebSockets attempt to subscribe to the same application, the newer WebSocket wins, and the older one receives this event." ,
"properties" : {}
2013-04-22 14:58:53 +00:00
},
2013-05-21 18:00:22 +00:00
"BridgeCreated" : {
"id" : "BridgeCreated" ,
"description" : "Notification that a bridge has been created." ,
"properties" : {
"bridge" : {
"required" : true ,
"type" : "Bridge"
}
}
},
"BridgeDestroyed" : {
"id" : "BridgeDestroyed" ,
"description" : "Notification that a bridge has been destroyed." ,
"properties" : {
"bridge" : {
"required" : true ,
"type" : "Bridge"
}
}
},
2013-06-10 13:07:11 +00:00
"BridgeMerged" : {
"id" : "BridgeMerged" ,
"description" : "Notification that one bridge has merged into another." ,
"properties" : {
"bridge" : {
"required" : true ,
"type" : "Bridge"
},
"bridge_from" : {
"required" : true ,
"type" : "Bridge"
}
}
},
2014-02-01 16:26:57 +00:00
"BridgeBlindTransfer" : {
"id" : "BridgeBlindTransfer" ,
"description" : "Notification that a blind transfer has occurred." ,
"properties" : {
"channel" : {
"description" : "The channel performing the blind transfer" ,
"required" : true ,
"type" : "Channel"
},
2014-08-20 13:04:30 +00:00
"replace_channel" : {
"description" : "The channel that is replacing transferer when the transferee(s) can not be transferred directly" ,
"required" : false ,
"type" : "Channel"
},
2014-08-07 15:30:19 +00:00
"transferee" : {
"description" : "The channel that is being transferred" ,
"required" : false ,
"type" : "Channel"
},
2014-02-01 16:26:57 +00:00
"exten" : {
"description" : "The extension transferred to" ,
"required" : true ,
"type" : "string"
},
"context" : {
"description" : "The context transferred to" ,
"required" : true ,
"type" : "string"
},
"result" : {
"description" : "The result of the transfer attempt" ,
"required" : true ,
"type" : "string"
},
"is_external" : {
"description" : "Whether the transfer was externally initiated or not" ,
"required" : true ,
"type" : "boolean"
},
"bridge" : {
"description" : "The bridge being transferred" ,
"type" : "Bridge"
}
}
},
"BridgeAttendedTransfer" : {
"id" : "BridgeAttendedTransfer" ,
"description" : "Notification that an attended transfer has occurred." ,
"properties" : {
"transferer_first_leg" : {
"description" : "First leg of the transferer" ,
"required" : true ,
"type" : "Channel"
},
"transferer_second_leg" : {
"description" : "Second leg of the transferer" ,
"required" : true ,
"type" : "Channel"
},
2014-08-07 15:30:19 +00:00
"replace_channel" : {
"description" : "The channel that is replacing transferer_first_leg in the swap" ,
"required" : false ,
"type" : "Channel"
},
"transferee" : {
"description" : "The channel that is being transferred" ,
"required" : false ,
"type" : "Channel"
},
"transfer_target" : {
"description" : "The channel that is being transferred to" ,
"required" : false ,
"type" : "Channel"
},
2014-02-01 16:26:57 +00:00
"result" : {
"description" : "The result of the transfer attempt" ,
"required" : true ,
"type" : "string"
},
"is_external" : {
"description" : "Whether the transfer was externally initiated or not" ,
"required" : true ,
"type" : "boolean"
},
"transferer_first_leg_bridge" : {
"description" : "Bridge the transferer first leg is in" ,
"type" : "Bridge"
},
"transferer_second_leg_bridge" : {
"description" : "Bridge the transferer second leg is in" ,
"type" : "Bridge"
},
"destination_type" : {
"description" : "How the transfer was accomplished" ,
"required" : true ,
"type" : "string"
},
"destination_bridge" : {
"description" : "Bridge that survived the merge result" ,
"type" : "string"
},
"destination_application" : {
"description" : "Application that has been transferred into" ,
"type" : "string"
},
"destination_link_first_leg" : {
"description" : "First leg of a link transfer result" ,
"type" : "Channel"
},
"destination_link_second_leg" : {
"description" : "Second leg of a link transfer result" ,
"type" : "Channel"
},
"destination_threeway_channel" : {
"description" : "Transferer channel that survived the threeway result" ,
"type" : "Channel"
},
"destination_threeway_bridge" : {
"description" : "Bridge that survived the threeway result" ,
"type" : "Bridge"
}
}
},
2013-05-10 13:13:06 +00:00
"ChannelCreated" : {
"id" : "ChannelCreated" ,
"description" : "Notification that a channel has been created." ,
2013-04-22 14:58:53 +00:00
"properties" : {
2013-05-10 13:13:06 +00:00
"channel" : {
"required" : true ,
"type" : "Channel"
2013-04-22 14:58:53 +00:00
}
}
},
2013-05-10 13:13:06 +00:00
"ChannelDestroyed" : {
"id" : "ChannelDestroyed" ,
"description" : "Notification that a channel has been destroyed." ,
2013-04-22 14:58:53 +00:00
"properties" : {
2013-05-10 13:13:06 +00:00
"cause" : {
"required" : true ,
"description" : "Integer representation of the cause of the hangup ",
2013-07-03 16:32:41 +00:00
" type ": " int "
2013-05-10 13:13:06 +00:00
},
" cause_txt ": {
" required ": true,
" description ": " Text representation of the cause of the hangup ",
" type ": " string "
2013-04-22 14:58:53 +00:00
},
" channel ": {
2013-05-10 13:13:06 +00:00
" required ": true,
2013-04-22 14:58:53 +00:00
" type ": " Channel "
}
}
},
2013-05-21 18:00:22 +00:00
" ChannelEnteredBridge ": {
" id ": " ChannelEnteredBridge ",
" description ": " Notification that a channel has entered a bridge. ",
" properties ": {
" bridge ": {
" required ": true,
" type ": " Bridge "
},
" channel ": {
" type ": " Channel "
}
}
},
" ChannelLeftBridge ": {
" id ": " ChannelLeftBridge ",
" description ": " Notification that a channel has left a bridge. ",
" properties ": {
" bridge ": {
" required ": true,
" type ": " Bridge "
},
" channel ": {
" required ": true,
" type ": " Channel "
}
}
},
2013-04-22 14:58:53 +00:00
" ChannelStateChange ": {
" id ": " ChannelStateChange ",
" description ": " Notification of a channel's state change. ",
" properties ": {
2013-05-10 13:13:06 +00:00
" channel ": {
" required ": true,
2013-04-22 14:58:53 +00:00
" type ": " Channel "
}
}
},
2013-05-10 13:13:06 +00:00
" ChannelDtmfReceived ": {
" id ": " ChannelDtmfReceived ",
2013-07-03 16:32:41 +00:00
" description ": " DTMF received on a channel.\n\nThis event is sent when the DTMF ends. There is no notification about the start of DTMF ",
2013-04-22 14:58:53 +00:00
" properties ": {
" digit ": {
2013-05-10 13:13:06 +00:00
" required ": true,
2013-04-22 14:58:53 +00:00
" type ": " string ",
" description ": " DTMF digit received ( 0-9 , A-E, # or *) "
},
2013-07-03 16:32:41 +00:00
" duration_ms ": {
" required ": true,
" type ": " int ",
" description ": " Number of milliseconds DTMF was received "
},
2013-04-22 14:58:53 +00:00
" channel ": {
2013-05-10 13:13:06 +00:00
" required ": true,
2013-04-22 14:58:53 +00:00
" type ": " Channel ",
" description ": " The channel on which DTMF was received "
}
}
},
2013-05-10 13:13:06 +00:00
" ChannelDialplan ": {
" id ": " ChannelDialplan ",
" description ": " Channel changed location in the dialplan. ",
" properties ": {
2013-07-03 16:32:41 +00:00
" channel ": {
2013-05-10 13:13:06 +00:00
" required ": true,
2013-07-03 16:32:41 +00:00
" type ": " Channel ",
" description ": " The channel that changed dialplan location. "
2013-05-10 13:13:06 +00:00
},
2013-07-03 16:32:41 +00:00
" dialplan_app ": {
2013-05-10 13:13:06 +00:00
" required ": true,
" type ": " string ",
2013-07-03 16:32:41 +00:00
" description ": " The application about to be executed. "
2013-05-10 13:13:06 +00:00
},
2013-07-03 16:32:41 +00:00
" dialplan_app_data ": {
2013-05-10 13:13:06 +00:00
" required ": true,
2013-07-03 16:32:41 +00:00
" type ": " string ",
" description ": " The data to be passed to the application. "
2013-05-10 13:13:06 +00:00
}
}
},
" ChannelCallerId ": {
" id ": " ChannelCallerId ",
" description ": " Channel changed Caller ID. ",
" properties ": {
" caller_presentation ": {
" required ": true,
2013-07-03 16:32:41 +00:00
" type ": " int ",
2013-05-10 13:13:06 +00:00
" description ": " The integer representation of the Caller Presentation value. "
},
" caller_presentation_txt ": {
" required ": true,
" type ": " string ",
" description ": " The text representation of the Caller Presentation value. "
},
" channel ": {
" required ": true,
" type ": " Channel ",
" description ": " The channel that changed Caller ID. "
}
}
},
" ChannelUserevent ": {
" id ": " ChannelUserevent ",
" description ": " User-generated event with additional user-defined fields in the object. ",
" properties ": {
" eventname ": {
" required ": true,
" type ": " string ",
" description ": " The name of the user event. "
},
" channel ": {
2014-05-22 16:09:51 +00:00
" required ": false,
2013-05-10 13:13:06 +00:00
" type ": " Channel ",
2014-05-22 16:09:51 +00:00
" description ": " A channel that is signaled with the user event. "
},
" bridge ": {
" required ": false,
" type ": " Bridge ",
" description ": " A bridge that is signaled with the user event. "
},
" endpoint ": {
" required ": false,
" type ": " Endpoint ",
" description ": " A endpoint that is signaled with the user event. "
2013-10-04 16:01:48 +00:00
},
" userevent ": {
" required ": true,
" type ": " object ",
" description ": " Custom Userevent data "
2013-05-10 13:13:06 +00:00
}
}
},
" ChannelHangupRequest ": {
" id ": " ChannelHangupRequest ",
" description ": " A hangup was requested on the channel. ",
" properties ": {
" cause ": {
2013-07-03 16:32:41 +00:00
" type ": " int ",
2013-05-10 13:13:06 +00:00
" description ": " Integer representation of the cause of the hangup. "
},
" soft ": {
" type ": " boolean ",
" description ": " Whether the hangup request was a soft hangup request. "
},
" channel ": {
" required ": true,
" type ": " Channel ",
" description ": " The channel on which the hangup was requested. "
}
}
},
" ChannelVarset ": {
" id ": " ChannelVarset ",
" description ": " Channel variable changed. ",
" properties ": {
" variable ": {
" required ": true,
" type ": " string ",
" description ": " The variable that changed. "
},
" value ": {
" required ": true,
" type ": " string ",
" description ": " The new value of the variable. "
},
" channel ": {
2013-07-03 16:32:41 +00:00
" required ": false,
2013-05-10 13:13:06 +00:00
" type ": " Channel ",
2013-07-03 16:32:41 +00:00
" description ": " The channel on which the variable was set.\n\nIf missing , the variable is a global variable. "
2013-05-10 13:13:06 +00:00
}
}
},
2015-04-07 15:21:17 +00:00
" ChannelHold ": {
" id ": " ChannelHold ",
" description ": " A channel initiated a media hold. ",
" properties ": {
" channel ": {
" required ": true,
" type ": " Channel ",
" description ": " The channel that initiated the hold event. "
2015-04-10 14:55:54 +00:00
},
" musicclass ": {
" required ": false,
" type ": " string ",
" description ": " The music on hold class that the initiator requested. "
2015-04-07 15:21:17 +00:00
}
}
},
" ChannelUnhold ": {
" id ": " ChannelUnhold ",
" description ": " A channel initiated a media unhold. ",
" properties ": {
" channel ": {
" required ": true,
" type ": " Channel ",
" description ": " The channel that initiated the unhold event. "
}
}
},
2014-05-30 12:42:57 +00:00
" ChannelTalkingStarted ": {
" id ": " ChannelTalkingStarted ",
" description ": " Talking was detected on the channel. ",
" properties ": {
" channel ": {
" required ": true,
" type ": " Channel ",
" description ": " The channel on which talking started. "
}
}
},
" ChannelTalkingFinished ": {
" id ": " ChannelTalkingFinished ",
" description ": " Talking is no longer detected on the channel. ",
" properties ": {
" channel ": {
" required ": true,
" type ": " Channel ",
" description ": " The channel on which talking completed. "
},
" duration ": {
" required ": true,
" type ": " int ",
" description ": " The length of time , in milliseconds, that talking was detected on the channel "
}
}
},
2015-09-03 21:19:21 -05:00
" ContactStatusChange ": {
" id ": " ContactStatusChange ",
" description ": " The state of a contact on an endpoint has changed. ",
" properties ": {
" endpoint ": {
" required ": true,
" type ": " Endpoint "
},
" contact_info ": {
" required ": true,
" type ": " ContactInfo "
}
}
},
" PeerStatusChange ": {
" id ": " PeerStatusChange ",
" description ": " The state of a peer associated with an endpoint has changed. ",
" properties ": {
" endpoint ": {
" required ": true,
" type ": " Endpoint "
},
" peer ": {
" required ": true,
" type ": " Peer "
}
}
},
2013-10-04 16:01:48 +00:00
" EndpointStateChange ": {
" id ": " EndpointStateChange ",
" description ": " Endpoint state changed. ",
" properties ": {
" endpoint ": {
" required ": true,
" type ": " Endpoint "
}
}
},
2013-12-14 17:19:41 +00:00
" Dial ": {
" id ": " Dial ",
" description ": " Dialing state has changed. ",
" properties ": {
" caller ": {
" required ": false,
" type ": " Channel ",
" description ": " The calling channel. "
},
" peer ": {
" required ": true,
" type ": " Channel ",
" description ": " The dialed channel. "
},
" forward ": {
" required ": false,
" type ": " string ",
" description ": " Forwarding target requested by the original dialed channel. "
},
" forwarded ": {
" required ": false,
" type ": " Channel ",
" description ": " Channel that the caller has been forwarded to. "
},
" dialstring ": {
" required ": false,
" type ": " string ",
" description ": " The dial string for calling the peer channel. "
},
" dialstatus ": {
" required ": true,
" type ": " string ",
" description ": " Current status of the dialing attempt to the peer. "
}
}
},
2013-04-22 14:58:53 +00:00
" StasisEnd ": {
" id ": " StasisEnd ",
2013-11-12 15:27:00 +00:00
" description ": " Notification that a channel has left a Stasis application. ",
2013-04-22 14:58:53 +00:00
" properties ": {
2013-05-10 13:13:06 +00:00
" channel ": {
" required ": true,
2013-04-22 14:58:53 +00:00
" type ": " Channel "
}
}
},
" StasisStart ": {
" id ": " StasisStart ",
2013-11-12 15:27:00 +00:00
" description ": " Notification that a channel has entered a Stasis application. ",
2013-04-22 14:58:53 +00:00
" properties ": {
" args ": {
2013-05-10 13:13:06 +00:00
" required ": true,
2013-04-22 14:58:53 +00:00
" type ": " List [ string ] ",
" description ": " Arguments to the application "
},
2013-05-10 13:13:06 +00:00
" channel ": {
" required ": true,
2013-04-22 14:58:53 +00:00
" type ": " Channel "
2014-08-07 15:30:19 +00:00
},
" replace_channel ": {
" required ": false,
" type ": " Channel "
2013-04-22 14:58:53 +00:00
}
}
2014-08-05 21:44:09 +00:00
},
" TextMessageReceived ": {
" id ": " TextMessageReceived ",
" description ": " A text message was received from an endpoint. ",
" properties ": {
" message ": {
" required ": true,
" type ": " TextMessage "
},
" endpoint ": {
" required ": false,
" type ": " Endpoint "
}
}
2014-12-08 15:49:24 +00:00
},
" ChannelConnectedLine ": {
" id ": " ChannelConnectedLine ",
" description ": " Channel changed Connected Line. ",
" properties ": {
" channel ": {
" required ": true,
" type ": " Channel ",
" description ": " The channel whose connected line has changed."
}
}
2013-04-22 14:58:53 +00:00
}
}
}