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$" ,
2014-12-08 16:53:39 +00:00
"apiVersion" : "1.6.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"
}
]
}
]
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" ,
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" ,
"ChannelConnectedLine"
2013-10-24 20:48:17 +00:00
]
2013-05-23 20:11:35 +00:00
} ,
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"
}
}
} ,
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
}
}
}