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-04-22 14:58:53 +00:00
"swaggerVersion" : "1.1" ,
2014-09-20 23:41:17 +00:00
"basePath" : "http://localhost:8088/ari" ,
2013-04-22 14:58:53 +00:00
"resourcePath" : "/api-docs/bridges.{format}" ,
"apis" : [
{
"path" : "/bridges" ,
"description" : "Active bridges" ,
"operations" : [
{
"httpMethod" : "GET" ,
2013-10-16 14:02:06 +00:00
"summary" : "List all active bridges in Asterisk." ,
2013-11-07 21:10:31 +00:00
"nickname" : "list" ,
2013-04-22 14:58:53 +00:00
"responseClass" : "List[Bridge]"
} ,
{
"httpMethod" : "POST" ,
"summary" : "Create a new bridge." ,
"notes" : "This bridge persists until it has been shut down, or Asterisk has been shut down." ,
2013-11-07 21:10:31 +00:00
"nickname" : "create" ,
2013-04-22 14:58:53 +00:00
"responseClass" : "Bridge" ,
"parameters" : [
{
"name" : "type" ,
2014-03-19 12:54:25 +00:00
"description" : "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media)." ,
2013-04-22 14:58:53 +00:00
"paramType" : "query" ,
"required" : false ,
"allowMultiple" : false ,
2014-03-19 12:54:25 +00:00
"dataType" : "string"
2013-12-17 23:25:49 +00:00
} ,
2014-03-07 15:47:55 +00:00
{
"name" : "bridgeId" ,
"description" : "Unique ID to give to the bridge being created." ,
"paramType" : "query" ,
"required" : false ,
"allowMultiple" : false ,
"dataType" : "string"
} ,
2013-12-17 23:25:49 +00:00
{
"name" : "name" ,
"description" : "Name to give to the bridge being created." ,
"paramType" : "query" ,
"required" : false ,
"allowMultiple" : false ,
"dataType" : "string"
2013-04-22 14:58:53 +00:00
}
]
}
]
} ,
{
"path" : "/bridges/{bridgeId}" ,
"description" : "Individual bridge" ,
"operations" : [
2014-03-07 15:47:55 +00:00
{
"httpMethod" : "POST" ,
"summary" : "Create a new bridge or updates an existing one." ,
"notes" : "This bridge persists until it has been shut down, or Asterisk has been shut down." ,
2015-01-27 17:20:23 +00:00
"nickname" : "createWithId" ,
2014-03-07 15:47:55 +00:00
"responseClass" : "Bridge" ,
"parameters" : [
{
"name" : "type" ,
2014-03-19 12:54:25 +00:00
"description" : "Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media) to set." ,
2014-03-07 15:47:55 +00:00
"paramType" : "query" ,
"required" : false ,
"allowMultiple" : false ,
2014-03-19 12:54:25 +00:00
"dataType" : "string"
2014-03-07 15:47:55 +00:00
} ,
{
"name" : "bridgeId" ,
"description" : "Unique ID to give to the bridge being created." ,
"paramType" : "path" ,
"required" : true ,
"allowMultiple" : false ,
"dataType" : "string"
} ,
{
"name" : "name" ,
"description" : "Set the name of the bridge." ,
"paramType" : "query" ,
"required" : false ,
"allowMultiple" : false ,
"dataType" : "string"
}
]
} ,
2013-04-22 14:58:53 +00:00
{
"httpMethod" : "GET" ,
"summary" : "Get bridge details." ,
2013-11-07 21:10:31 +00:00
"nickname" : "get" ,
2013-04-22 14:58:53 +00:00
"responseClass" : "Bridge" ,
"parameters" : [
{
"name" : "bridgeId" ,
"description" : "Bridge's id" ,
"paramType" : "path" ,
"required" : true ,
"allowMultiple" : false ,
"dataType" : "string"
}
2013-07-03 16:32:41 +00:00
] ,
"errorResponses" : [
{
"code" : 404 ,
"reason" : "Bridge not found"
}
2013-04-22 14:58:53 +00:00
]
} ,
{
"httpMethod" : "DELETE" ,
2013-06-10 13:07:11 +00:00
"summary" : "Shut down a bridge." ,
2013-04-22 14:58:53 +00:00
"notes" : "If any channels are in this bridge, they will be removed and resume whatever they were doing beforehand." ,
2013-11-07 21:10:31 +00:00
"nickname" : "destroy" ,
2013-04-22 14:58:53 +00:00
"responseClass" : "void" ,
"parameters" : [
{
"name" : "bridgeId" ,
"description" : "Bridge's id" ,
"paramType" : "path" ,
"required" : true ,
"allowMultiple" : false ,
"dataType" : "string"
}
2013-07-03 16:32:41 +00:00
] ,
"errorResponses" : [
{
"code" : 404 ,
"reason" : "Bridge not found"
}
2013-04-22 14:58:53 +00:00
]
}
]
} ,
{
"path" : "/bridges/{bridgeId}/addChannel" ,
"description" : "Add a channel to a bridge" ,
"operations" : [
{
"httpMethod" : "POST" ,
"summary" : "Add a channel to a bridge." ,
2013-11-07 21:10:31 +00:00
"nickname" : "addChannel" ,
2013-04-22 14:58:53 +00:00
"responseClass" : "void" ,
"parameters" : [
{
"name" : "bridgeId" ,
"description" : "Bridge's id" ,
"paramType" : "path" ,
"required" : true ,
"allowMultiple" : false ,
"dataType" : "string"
} ,
{
"name" : "channel" ,
2013-08-02 14:36:32 +00:00
"description" : "Ids of channels to add to bridge" ,
2013-04-22 14:58:53 +00:00
"paramType" : "query" ,
"required" : true ,
"allowMultiple" : true ,
"dataType" : "string"
2013-08-05 16:59:13 +00:00
} ,
{
"name" : "role" ,
"description" : "Channel's role in the bridge" ,
"paramType" : "query" ,
"required" : false ,
"allowMultiple" : false ,
"dataType" : "string"
2013-04-22 14:58:53 +00:00
}
2013-07-03 16:32:41 +00:00
] ,
"errorResponses" : [
2013-08-23 17:19:02 +00:00
{
"code" : 400 ,
"reason" : "Channel not found"
} ,
2013-07-03 16:32:41 +00:00
{
"code" : 404 ,
"reason" : "Bridge not found"
} ,
{
"code" : 409 ,
2013-12-13 16:38:57 +00:00
"reason" : "Bridge not in Stasis application; Channel currently recording"
2013-07-03 16:32:41 +00:00
} ,
{
"code" : 422 ,
2013-08-23 17:19:02 +00:00
"reason" : "Channel not in Stasis application"
2013-07-03 16:32:41 +00:00
}
2013-04-22 14:58:53 +00:00
]
}
]
} ,
{
"path" : "/bridges/{bridgeId}/removeChannel" ,
"description" : "Remove a channel from a bridge" ,
"operations" : [
{
"httpMethod" : "POST" ,
"summary" : "Remove a channel from a bridge." ,
2013-11-07 21:10:31 +00:00
"nickname" : "removeChannel" ,
2013-04-22 14:58:53 +00:00
"responseClass" : "void" ,
"parameters" : [
{
"name" : "bridgeId" ,
"description" : "Bridge's id" ,
"paramType" : "path" ,
"required" : true ,
"allowMultiple" : false ,
"dataType" : "string"
} ,
{
"name" : "channel" ,
2013-08-02 14:36:32 +00:00
"description" : "Ids of channels to remove from bridge" ,
2013-04-22 14:58:53 +00:00
"paramType" : "query" ,
"required" : true ,
"allowMultiple" : true ,
"dataType" : "string"
}
2013-08-23 17:19:02 +00:00
] ,
"errorResponses" : [
{
"code" : 400 ,
"reason" : "Channel not found"
} ,
{
"code" : 404 ,
"reason" : "Bridge not found"
} ,
{
"code" : 409 ,
"reason" : "Bridge not in Stasis application"
} ,
{
"code" : 422 ,
"reason" : "Channel not in this bridge"
}
2013-04-22 14:58:53 +00:00
]
}
]
} ,
2013-08-23 00:26:19 +00:00
{
2013-10-16 00:12:36 +00:00
"path" : "/bridges/{bridgeId}/moh" ,
2013-08-23 00:26:19 +00:00
"description" : "Play music on hold to a bridge" ,
"operations" : [
{
"httpMethod" : "POST" ,
"summary" : "Play music on hold to a bridge or change the MOH class that is playing." ,
2013-11-07 21:10:31 +00:00
"nickname" : "startMoh" ,
2013-08-23 00:26:19 +00:00
"responseClass" : "void" ,
"parameters" : [
{
"name" : "bridgeId" ,
"description" : "Bridge's id" ,
"paramType" : "path" ,
"required" : true ,
"allowMultiple" : false ,
"dataType" : "string"
} ,
{
"name" : "mohClass" ,
"description" : "Channel's id" ,
"paramType" : "query" ,
"required" : false ,
"allowMultiple" : false ,
"dataType" : "string"
}
] ,
"errorResponses" : [
{
"code" : 404 ,
"reason" : "Bridge not found"
} ,
{
"code" : 409 ,
"reason" : "Bridge not in Stasis application"
}
]
2013-11-07 21:10:31 +00:00
} ,
2013-08-23 00:26:19 +00:00
{
2013-10-16 00:12:36 +00:00
"httpMethod" : "DELETE" ,
2013-08-23 00:26:19 +00:00
"summary" : "Stop playing music on hold to a bridge." ,
2013-11-07 21:10:31 +00:00
"notes" : "This will only stop music on hold being played via POST bridges/{bridgeId}/moh." ,
"nickname" : "stopMoh" ,
2013-08-23 00:26:19 +00:00
"responseClass" : "void" ,
"parameters" : [
{
"name" : "bridgeId" ,
"description" : "Bridge's id" ,
"paramType" : "path" ,
"required" : true ,
"allowMultiple" : false ,
"dataType" : "string"
}
] ,
"errorResponses" : [
{
"code" : 404 ,
"reason" : "Bridge not found"
} ,
{
"code" : 409 ,
"reason" : "Bridge not in Stasis application"
}
]
}
]
} ,
2013-07-19 19:35:21 +00:00
{
"path" : "/bridges/{bridgeId}/play" ,
"description" : "Play media to the participants of a bridge" ,
"operations" : [
{
"httpMethod" : "POST" ,
"summary" : "Start playback of media on a bridge." ,
2014-04-17 21:57:36 +00:00
"notes" : "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)" ,
2013-11-07 21:10:31 +00:00
"nickname" : "play" ,
2013-07-19 19:35:21 +00:00
"responseClass" : "Playback" ,
"parameters" : [
{
"name" : "bridgeId" ,
"description" : "Bridge's id" ,
"paramType" : "path" ,
"required" : true ,
"allowMultiple" : false ,
"dataType" : "string"
} ,
{
"name" : "media" ,
"description" : "Media's URI to play." ,
"paramType" : "query" ,
"required" : true ,
"allowMultiple" : false ,
"dataType" : "string"
} ,
{
"name" : "lang" ,
"description" : "For sounds, selects language for sound." ,
"paramType" : "query" ,
"required" : false ,
"allowMultiple" : false ,
"dataType" : "string"
} ,
{
"name" : "offsetms" ,
"description" : "Number of media to skip before playing." ,
"paramType" : "query" ,
"required" : false ,
"allowMultiple" : false ,
"dataType" : "int" ,
"defaultValue" : 0 ,
"allowableValues" : {
"valueType" : "RANGE" ,
"min" : 0
}
} ,
{
"name" : "skipms" ,
"description" : "Number of milliseconds to skip for forward/reverse operations." ,
"paramType" : "query" ,
"required" : false ,
"allowMultiple" : false ,
"dataType" : "int" ,
"defaultValue" : 3000 ,
"allowableValues" : {
"valueType" : "RANGE" ,
"min" : 0
}
2014-04-18 20:09:24 +00:00
} ,
{
"name" : "playbackId" ,
"description" : "Playback Id." ,
"paramType" : "query" ,
"required" : false ,
"allowMultiple" : false ,
"dataType" : "string"
2013-07-19 19:35:21 +00:00
}
] ,
"errorResponses" : [
{
"code" : 404 ,
"reason" : "Bridge not found"
} ,
{
"code" : 409 ,
"reason" : "Bridge not in a Stasis application"
}
]
}
]
} ,
2014-04-18 20:09:24 +00:00
{
"path" : "/bridges/{bridgeId}/play/{playbackId}" ,
"description" : "Play media to a bridge" ,
"operations" : [
{
"httpMethod" : "POST" ,
"summary" : "Start playback of media on a bridge." ,
2015-01-27 17:20:23 +00:00
"notes" : "The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)" ,
2014-04-18 20:09:24 +00:00
"nickname" : "playWithId" ,
"responseClass" : "Playback" ,
"parameters" : [
{
"name" : "bridgeId" ,
"description" : "Bridge's id" ,
"paramType" : "path" ,
"required" : true ,
"allowMultiple" : false ,
"dataType" : "string"
} ,
{
"name" : "playbackId" ,
"description" : "Playback ID." ,
"paramType" : "path" ,
"required" : true ,
"allowMultiple" : false ,
"dataType" : "string"
} ,
{
"name" : "media" ,
"description" : "Media's URI to play." ,
"paramType" : "query" ,
"required" : true ,
"allowMultiple" : false ,
"dataType" : "string"
} ,
{
"name" : "lang" ,
"description" : "For sounds, selects language for sound." ,
"paramType" : "query" ,
"required" : false ,
"allowMultiple" : false ,
"dataType" : "string"
} ,
{
"name" : "offsetms" ,
"description" : "Number of media to skip before playing." ,
"paramType" : "query" ,
"required" : false ,
"allowMultiple" : false ,
"dataType" : "int" ,
"defaultValue" : 0 ,
"allowableValues" : {
"valueType" : "RANGE" ,
"min" : 0
}
} ,
{
"name" : "skipms" ,
"description" : "Number of milliseconds to skip for forward/reverse operations." ,
"paramType" : "query" ,
"required" : false ,
"allowMultiple" : false ,
"dataType" : "int" ,
"defaultValue" : 3000 ,
"allowableValues" : {
"valueType" : "RANGE" ,
"min" : 0
}
}
] ,
"errorResponses" : [
{
"code" : 404 ,
"reason" : "Bridge not found"
} ,
{
"code" : 409 ,
"reason" : "Bridge not in a Stasis application"
}
]
}
]
} ,
2013-04-22 14:58:53 +00:00
{
"path" : "/bridges/{bridgeId}/record" ,
"description" : "Record audio on a bridge" ,
"operations" : [
{
"httpMethod" : "POST" ,
"summary" : "Start a recording." ,
"notes" : "This records the mixed audio from all channels participating in this bridge." ,
2013-11-07 21:10:31 +00:00
"nickname" : "record" ,
2013-04-22 14:58:53 +00:00
"responseClass" : "LiveRecording" ,
"parameters" : [
{
"name" : "bridgeId" ,
"description" : "Bridge's id" ,
"paramType" : "path" ,
"required" : true ,
"allowMultiple" : false ,
"dataType" : "string"
} ,
{
"name" : "name" ,
"description" : "Recording's filename" ,
"paramType" : "query" ,
"required" : true ,
"allowMultiple" : false ,
"dataType" : "string"
} ,
2013-07-19 19:35:21 +00:00
{
"name" : "format" ,
"description" : "Format to encode audio in" ,
"paramType" : "query" ,
"required" : true ,
2013-08-02 14:36:32 +00:00
"allowMultiple" : false ,
2013-07-19 19:35:21 +00:00
"dataType" : "string"
} ,
2013-04-22 14:58:53 +00:00
{
"name" : "maxDurationSeconds" ,
"description" : "Maximum duration of the recording, in seconds. 0 for no limit." ,
"paramType" : "query" ,
"required" : false ,
"allowMultiple" : false ,
"dataType" : "int" ,
2013-07-19 19:35:21 +00:00
"defaultValue" : 0 ,
"allowableValues" : {
"valueType" : "RANGE" ,
"min" : 0
}
2013-04-22 14:58:53 +00:00
} ,
{
"name" : "maxSilenceSeconds" ,
"description" : "Maximum duration of silence, in seconds. 0 for no limit." ,
"paramType" : "query" ,
"required" : false ,
"allowMultiple" : false ,
"dataType" : "int" ,
2013-07-19 19:35:21 +00:00
"defaultValue" : 0 ,
"allowableValues" : {
"valueType" : "RANGE" ,
"min" : 0
}
2013-04-22 14:58:53 +00:00
} ,
{
2013-07-19 19:35:21 +00:00
"name" : "ifExists" ,
"description" : "Action to take if a recording with the same name already exists." ,
2013-04-22 14:58:53 +00:00
"paramType" : "query" ,
"required" : false ,
"allowMultiple" : false ,
2013-07-19 19:35:21 +00:00
"dataType" : "string" ,
"defaultValue" : "fail" ,
"allowableValues" : {
"valueType" : "LIST" ,
"values" : [
"fail" ,
"overwrite" ,
"append"
]
}
2013-04-22 14:58:53 +00:00
} ,
{
"name" : "beep" ,
"description" : "Play beep when recording begins" ,
"paramType" : "query" ,
"required" : false ,
"allowMultiple" : false ,
"dataType" : "boolean" ,
"defaultValue" : false
} ,
{
"name" : "terminateOn" ,
"description" : "DTMF input to terminate recording." ,
"paramType" : "query" ,
"required" : false ,
"allowMultiple" : false ,
"dataType" : "string" ,
"defaultValue" : "none" ,
"allowableValues" : {
"valueType" : "LIST" ,
"values" : [
"none" ,
"any" ,
"*" ,
"#"
]
}
}
2013-10-15 20:03:19 +00:00
] ,
2013-10-25 21:28:32 +00:00
"errorResponses" : [
{
"code" : 400 ,
"reason" : "Invalid parameters"
} ,
{
"code" : 404 ,
"reason" : "Bridge not found"
} ,
{
"code" : 409 ,
"reason" : "Bridge is not in a Stasis application; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail"
2013-10-25 22:01:43 +00:00
} ,
{
"code" : 422 ,
"reason" : "The format specified is unknown on this system"
}
2013-10-25 21:28:32 +00:00
]
2013-04-22 14:58:53 +00:00
}
]
}
] ,
"models" : {
"Bridge" : {
"id" : "Bridge" ,
2013-07-03 16:32:41 +00:00
"description" : "The merging of media from one or more channels.\n\nEveryone on the bridge receives the same audio." ,
2013-04-22 14:58:53 +00:00
"properties" : {
2013-07-03 16:32:41 +00:00
"id" : {
"type" : "string" ,
"description" : "Unique identifier for this bridge" ,
"required" : true
} ,
"technology" : {
"type" : "string" ,
"description" : "Name of the current bridging technology" ,
"required" : true
} ,
"bridge_type" : {
2013-04-22 14:58:53 +00:00
"type" : "string" ,
"description" : "Type of bridge technology" ,
"required" : true ,
2013-07-03 16:32:41 +00:00
"allowableValues" : {
"valueType" : "LIST" ,
2013-04-22 14:58:53 +00:00
"values" : [
2013-06-18 14:30:06 +00:00
"mixing" ,
2013-04-22 14:58:53 +00:00
"holding"
]
}
} ,
2013-07-03 16:32:41 +00:00
"bridge_class" : {
"type" : "string" ,
"description" : "Bridging class" ,
"required" : true
} ,
2013-12-17 23:25:49 +00:00
"creator" : {
"type" : "string" ,
"description" : "Entity that created the bridge" ,
"required" : true
} ,
"name" : {
"type" : "string" ,
"description" : "Name the creator gave the bridge" ,
"required" : true
} ,
2013-04-22 14:58:53 +00:00
"channels" : {
"type" : "List[string]" ,
2013-08-02 14:36:32 +00:00
"description" : "Ids of channels participating in this bridge" ,
2013-04-22 14:58:53 +00:00
"required" : true
}
}
}
}
}