summaryrefslogtreecommitdiff
path: root/rest-api
diff options
context:
space:
mode:
authorDavid M. Lee <dlee@digium.com>2013-05-23 20:11:35 +0000
committerDavid M. Lee <dlee@digium.com>2013-05-23 20:11:35 +0000
commit10ba6bf8a8114278ca974861ecebcb3a827d8d5b (patch)
tree1406ede124cf9665cb9f9244f9339b6cb522aa8b /rest-api
parent3464e0919afe398717b93b20fff37560c6d4478f (diff)
This patch implements the REST API's for POST /channels/{channelId}/play
and GET /playback/{playbackId}. This allows an external application to initiate playback of a sound on a channel while the channel is in the Stasis application. /play commands are issued asynchronously, and return immediately with the URL of the associated /playback resource. Playback commands queue up, playing in succession. The /playback resource shows the state of a playback operation as enqueued, playing or complete. (Although the operation will only be in the 'complete' state for a very short time, since it is almost immediately freed up). (closes issue ASTERISK-21283) (closes issue ASTERISK-21586) Review: https://reviewboard.asterisk.org/r/2531/ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@389587 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'rest-api')
-rw-r--r--rest-api/api-docs/channels.json46
-rw-r--r--rest-api/api-docs/events.json26
2 files changed, 71 insertions, 1 deletions
diff --git a/rest-api/api-docs/channels.json b/rest-api/api-docs/channels.json
index c2d77b22c..3b4d4d486 100644
--- a/rest-api/api-docs/channels.json
+++ b/rest-api/api-docs/channels.json
@@ -405,6 +405,14 @@
"required": true,
"allowMultiple": false,
"dataType": "string"
+ },
+ {
+ "name": "lang",
+ "description": "For sounds, selects language for sound",
+ "paramType": "query",
+ "required": false,
+ "allowMultiple": false,
+ "dataType": "string"
}
],
"errorResponses": [
@@ -640,6 +648,44 @@
"description": "Timestamp when channel was created"
}
}
+ },
+ "Playback": {
+ "id": "Playback",
+ "description": "Object representing the playback of media to a channel",
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "ID for this playback operation",
+ "required": true
+ },
+ "media_uri": {
+ "type": "string",
+ "description": "URI for the media to play back.",
+ "required": true
+ },
+ "target_uri": {
+ "type": "string",
+ "description": "URI for the channel or bridge to play the media on",
+ "required": true
+ },
+ "language": {
+ "type": "string",
+ "description": "For media types that support multiple languages, the language requested for playback."
+ },
+ "state": {
+ "type": "string",
+ "description": "Current state of the playback operation.",
+ "required": true,
+ "allowableValues": {
+ "valueType": "LIST",
+ "values": [
+ "queued",
+ "playing",
+ "complete"
+ ]
+ }
+ }
+ }
}
}
}
diff --git a/rest-api/api-docs/events.json b/rest-api/api-docs/events.json
index 4a36da3b8..0e0a822cf 100644
--- a/rest-api/api-docs/events.json
+++ b/rest-api/api-docs/events.json
@@ -69,7 +69,31 @@
"channel_hangup_request": { "type": "ChannelHangupRequest" },
"channel_varset": { "type": "ChannelVarset" },
"stasis_end": { "type": "StasisEnd" },
- "stasis_start": { "type": "StasisStart" }
+ "stasis_start": { "type": "StasisStart" },
+ "playback_started": { "type": "PlaybackStarted" },
+ "playback_finished": { "type": "PlaybackFinished" }
+ }
+ },
+ "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
+ }
}
},
"ApplicationReplaced": {