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-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/channels.{format}" ,
"apis" : [
{
"path" : "/channels" ,
"description" : "Active channels" ,
"operations" : [
{
"httpMethod" : "GET" ,
2013-10-16 14:02:06 +00:00
"summary" : "List all active channels in Asterisk." ,
2013-11-07 21:10:31 +00:00
"nickname" : "list" ,
2013-04-22 14:58:53 +00:00
"responseClass" : "List[Channel]"
},
{
"httpMethod" : "POST" ,
"summary" : "Create a new channel (originate)." ,
2013-10-19 14:45:14 +00:00
"notes" : "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates." ,
2013-04-22 14:58:53 +00:00
"nickname" : "originate" ,
2013-10-21 18:59:51 +00:00
"responseClass" : "Channel" ,
2013-04-22 14:58:53 +00:00
"parameters" : [
{
"name" : "endpoint" ,
2013-06-28 16:23:24 +00:00
"description" : "Endpoint to call." ,
2013-04-22 14:58:53 +00:00
"paramType" : "query" ,
2013-06-28 16:23:24 +00:00
"required" : true ,
2013-04-22 14:58:53 +00:00
"allowMultiple" : false ,
"dataType" : "string"
},
{
"name" : "extension" ,
2015-01-27 17:20:23 +00:00
"description" : "The extension to dial after the endpoint answers. Mutually exclusive with 'app'." ,
2013-04-22 14:58:53 +00:00
"paramType" : "query" ,
"required" : false ,
"allowMultiple" : false ,
"dataType" : "string"
},
{
"name" : "context" ,
2015-01-27 17:20:23 +00:00
"description" : "The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'." ,
2013-06-07 18:39:42 +00:00
"paramType" : "query" ,
"required" : false ,
"allowMultiple" : false ,
"dataType" : "string"
},
{
2013-06-28 16:23:24 +00:00
"name" : "priority" ,
2015-01-27 17:20:23 +00:00
"description" : "The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'." ,
2013-06-07 18:39:42 +00:00
"paramType" : "query" ,
"required" : false ,
"allowMultiple" : false ,
2013-06-28 16:23:24 +00:00
"dataType" : "long"
2013-06-07 18:39:42 +00:00
},
2015-01-07 18:53:16 +00:00
{
"name" : "label" ,
2015-01-27 17:20:23 +00:00
"description" : "The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'." ,
2015-01-07 18:53:16 +00:00
"paramType" : "query" ,
"required" : false ,
"allowMultiple" : false ,
"dataType" : "string"
},
2013-06-07 18:39:42 +00:00
{
2013-06-28 16:23:24 +00:00
"name" : "app" ,
2015-01-27 17:20:23 +00:00
"description" : "The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority', and 'label'." ,
2013-06-07 18:39:42 +00:00
"paramType" : "query" ,
"required" : false ,
"allowMultiple" : false ,
2013-06-28 16:23:24 +00:00
"dataType" : "string"
2013-06-07 18:39:42 +00:00
},
{
2013-06-28 16:23:24 +00:00
"name" : "appArgs" ,
2015-01-27 17:20:23 +00:00
"description" : "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'." ,
2013-06-07 18:39:42 +00:00
"paramType" : "query" ,
2013-06-28 16:23:24 +00:00
"required" : false ,
2013-06-07 18:39:42 +00:00
"allowMultiple" : false ,
"dataType" : "string"
},
{
2013-06-28 16:23:24 +00:00
"name" : "callerId" ,
"description" : "CallerID to use when dialing the endpoint or extension." ,
2013-04-22 14:58:53 +00:00
"paramType" : "query" ,
"required" : false ,
"allowMultiple" : false ,
"dataType" : "string"
2013-06-28 16:23:24 +00:00
},
{
"name" : "timeout" ,
"description" : "Timeout (in seconds) before giving up dialing, or -1 for no timeout." ,
"paramType" : "query" ,
"required" : false ,
"allowMultiple" : false ,
"dataType" : "int" ,
"defaultValue" : 30
2014-01-21 14:27:21 +00:00
},
{
"name" : "variables" ,
2014-07-03 16:14:39 +00:00
"description" : "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }" ,
2014-01-21 14:27:21 +00:00
"paramType" : "body" ,
"required" : false ,
"dataType" : "containers" ,
"allowMultiple" : false
2014-03-07 15:47:55 +00:00
},
{
"name" : "channelId" ,
"description" : "The unique id to assign the channel on creation." ,
"paramType" : "query" ,
"required" : false ,
"allowMultiple" : false ,
"dataType" : "string"
},
{
"name" : "otherChannelId" ,
"description" : "The unique id to assign the second channel when using local channels." ,
"paramType" : "query" ,
"required" : false ,
"allowMultiple" : false ,
"dataType" : "string"
2014-12-09 15:44:05 +00:00
},
{
"name" : "originator" ,
"description" : "The unique id of the channel which is originating this one." ,
"paramType" : "query" ,
"required" : false ,
"allowMultiple" : false ,
"dataType" : "string"
2013-04-22 14:58:53 +00:00
}
2013-07-10 17:13:21 +00:00
],
"errorResponses" : [
{
"code" : 400 ,
"reason" : "Invalid parameters for originating a channel."
}
2013-04-22 14:58:53 +00:00
]
}
]
},
{
"path" : "/channels/{channelId}" ,
"description" : "Active channel" ,
"operations" : [
{
"httpMethod" : "GET" ,
"summary" : "Channel details." ,
2013-11-07 21:10:31 +00:00
"nickname" : "get" ,
2013-04-22 14:58:53 +00:00
"responseClass" : "Channel" ,
"parameters" : [
{
"name" : "channelId" ,
"description" : "Channel's id" ,
"paramType" : "path" ,
"required" : true ,
"allowMultiple" : false ,
"dataType" : "string"
}
],
"errorResponses" : [
{
"code" : 404 ,
"reason" : "Channel not found"
}
]
},
2014-03-07 15:47:55 +00:00
{
"httpMethod" : "POST" ,
"summary" : "Create a new channel (originate with id)." ,
"notes" : "The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates." ,
"nickname" : "originateWithId" ,
"responseClass" : "Channel" ,
"parameters" : [
{
"name" : "channelId" ,
"description" : "The unique id to assign the channel on creation." ,
"paramType" : "path" ,
"required" : true ,
"allowMultiple" : false ,
"dataType" : "string"
},
{
"name" : "endpoint" ,
"description" : "Endpoint to call." ,
"paramType" : "query" ,
"required" : true ,
"allowMultiple" : false ,
"dataType" : "string"
},
{
"name" : "extension" ,
2015-01-27 17:20:23 +00:00
"description" : "The extension to dial after the endpoint answers. Mutually exclusive with 'app'." ,
2014-03-07 15:47:55 +00:00
"paramType" : "query" ,
"required" : false ,
"allowMultiple" : false ,
"dataType" : "string"
},
{
"name" : "context" ,
2015-01-27 17:20:23 +00:00
"description" : "The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'." ,
2014-03-07 15:47:55 +00:00
"paramType" : "query" ,
"required" : false ,
"allowMultiple" : false ,
"dataType" : "string"
},
{
"name" : "priority" ,
2015-01-27 17:20:23 +00:00
"description" : "The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'." ,
2014-03-07 15:47:55 +00:00
"paramType" : "query" ,
"required" : false ,
"allowMultiple" : false ,
"dataType" : "long"
},
2015-01-07 18:53:16 +00:00
{
"name" : "label" ,
2015-01-27 17:20:23 +00:00
"description" : "The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'." ,
2015-01-07 18:53:16 +00:00
"paramType" : "query" ,
"required" : false ,
"allowMultiple" : false ,
"dataType" : "string"
},
2014-03-07 15:47:55 +00:00
{
"name" : "app" ,
2015-01-27 17:20:23 +00:00
"description" : "The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority', and 'label'." ,
2014-03-07 15:47:55 +00:00
"paramType" : "query" ,
"required" : false ,
"allowMultiple" : false ,
"dataType" : "string"
},
{
"name" : "appArgs" ,
2015-01-27 17:20:23 +00:00
"description" : "The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'." ,
2014-03-07 15:47:55 +00:00
"paramType" : "query" ,
"required" : false ,
"allowMultiple" : false ,
"dataType" : "string"
},
{
"name" : "callerId" ,
"description" : "CallerID to use when dialing the endpoint or extension." ,
"paramType" : "query" ,
"required" : false ,
"allowMultiple" : false ,
"dataType" : "string"
},
{
"name" : "timeout" ,
"description" : "Timeout (in seconds) before giving up dialing, or -1 for no timeout." ,
"paramType" : "query" ,
"required" : false ,
"allowMultiple" : false ,
"dataType" : "int" ,
"defaultValue" : 30
},
{
"name" : "variables" ,
2014-07-03 16:14:39 +00:00
"description" : "The \"variables\" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { \"endpoint\": \"SIP/Alice\", \"variables\": { \"CALLERID(name)\": \"Alice\" } }" ,
2014-03-07 15:47:55 +00:00
"paramType" : "body" ,
"required" : false ,
"dataType" : "containers" ,
"allowMultiple" : false
},
{
"name" : "otherChannelId" ,
"description" : "The unique id to assign the second channel when using local channels." ,
"paramType" : "query" ,
"required" : false ,
"allowMultiple" : false ,
"dataType" : "string"
2014-12-09 15:44:05 +00:00
},
{
"name" : "originator" ,
"description" : "The unique id of the channel which is originating this one." ,
"paramType" : "query" ,
"required" : false ,
"allowMultiple" : false ,
"dataType" : "string"
2014-03-07 15:47:55 +00:00
}
],
"errorResponses" : [
{
"code" : 400 ,
"reason" : "Invalid parameters for originating a channel."
}
]
},
2013-04-22 14:58:53 +00:00
{
"httpMethod" : "DELETE" ,
"summary" : "Delete (i.e. hangup) a channel." ,
2013-11-07 21:10:31 +00:00
"nickname" : "hangup" ,
2013-04-22 14:58:53 +00:00
"responseClass" : "void" ,
"parameters" : [
{
"name" : "channelId" ,
"description" : "Channel's id" ,
"paramType" : "path" ,
"required" : true ,
"allowMultiple" : false ,
"dataType" : "string"
2013-11-01 14:38:21 +00:00
},
{
"name" : "reason" ,
"description" : "Reason for hanging up the channel ",
" paramType ": " query ",
" required ": false,
" allowMultiple ": false,
" dataType ": " string ",
" defalutValue ": " normal ",
" allowableValues ": {
" valueType ": " LIST ",
" values ": [
" normal ",
" busy ",
2015-02-09 03:10:59 +00:00
" congestion ",
" no_answer "
2013-11-01 14:38:21 +00:00
]
}
2013-04-22 14:58:53 +00:00
}
],
" errorResponses ": [
2013-11-01 14:38:21 +00:00
{
" code ": 400,
" reason ": " Invalid reason for hangup provided "
},
2013-04-22 14:58:53 +00:00
{
" code ": 404,
" reason ": " Channel not found "
}
]
}
]
},
{
" path ": " /channels/ { channelId } /continue ",
" description ": " Exit application; continue execution in the dialplan ",
" operations ": [
{
" httpMethod ": " POST ",
" summary ": " Exit application; continue execution in the dialplan. ",
" nickname ": " continueInDialplan ",
" responseClass ": " void ",
" parameters ": [
{
" name ": " channelId ",
" description ": " Channel's id ",
" paramType ": " path ",
" required ": true,
" allowMultiple ": false,
" dataType ": " string "
2013-06-26 19:29:57 +00:00
},
{
" name ": " context ",
" description ": " The context to continue to. ",
" paramType ": " query ",
" required ": false,
" allowMultiple ": false,
" dataType ": " string "
},
{
" name ": " extension ",
" description ": " The extension to continue to. ",
" paramType ": " query ",
" required ": false,
" allowMultiple ": false,
" dataType ": " string "
},
{
" name ": " priority ",
" description ": " The priority to continue to. ",
" paramType ": " query ",
" required ": false,
" allowMultiple ": false,
" dataType ": " int "
2015-01-07 18:53:16 +00:00
},
{
" name ": " label ",
" description ": " The label to continue to - will supersede 'priority' if both are provided. ",
" paramType ": " query ",
" required ": false,
" allowMultiple ": false,
" dataType ": " string "
2013-04-22 14:58:53 +00:00
}
],
" errorResponses ": [
{
" code ": 404,
" reason ": " Channel not found "
},
{
" code ": 409,
" reason ": " Channel not in a Stasis application "
}
]
}
]
},
2015-02-12 20:32:48 +00:00
{
" path ": " /channels/ { channelId } /redirect ",
" description ": " Inform the channel that it should redirect itself to a different location. Note that this will almost certainly cause the channel to exit the application. ",
" operations ": [
{
" httpMethod ": " POST ",
" summary ": " Redirect the channel to a different location. ",
" nickname ": " redirect ",
" responseClass ": " void ",
" parameters ": [
{
" name ": " channelId ",
" description ": " Channel's id ",
" paramType ": " path ",
" required ": true,
" allowMultiple ": false,
" dataType ": " string "
},
{
" name ": " endpoint ",
" description ": " The endpoint to redirect the channel to ",
" paramType ": " query ",
" required ": true,
" allowMultiple ": false,
" dataType ": " string "
}
],
" errorResponses ": [
{
" code ": 400,
" reason ": " Endpoint parameter not provided "
},
{
" code ": 404,
" reason ": " Channel or endpoint not found "
},
{
" code ": 409,
" reason ": " Channel not in a Stasis application "
},
{
" code ": 422,
" reason ": " Endpoint is not the same type as the channel "
}
]
}
]
},
2013-04-22 14:58:53 +00:00
{
" path ": " /channels/ { channelId } /answer ",
" description ": " Answer a channel ",
" operations ": [
{
" httpMethod ": " POST ",
" summary ": " Answer a channel. ",
2013-11-07 21:10:31 +00:00
" nickname ": " answer ",
2013-04-22 14:58:53 +00:00
" responseClass ": " void ",
" parameters ": [
{
" name ": " channelId ",
" description ": " Channel's id ",
" paramType ": " path ",
" required ": true,
" allowMultiple ": false,
" dataType ": " string "
}
],
" errorResponses ": [
{
" code ": 404,
" reason ": " Channel not found "
2013-07-03 16:32:41 +00:00
},
{
" code ": 409,
" reason ": " Channel not in a Stasis application "
2013-04-22 14:58:53 +00:00
}
]
}
]
},
2013-11-01 14:38:21 +00:00
{
" path ": " /channels/ { channelId } /ring ",
" description ": " Send a ringing indication to a channel ",
" operations ": [
{
" httpMethod ": " POST ",
" summary ": " Indicate ringing to a channel. ",
2013-11-07 21:10:31 +00:00
" nickname ": " ring ",
2013-11-01 14:38:21 +00:00
" responseClass ": " void ",
" parameters ": [
{
" name ": " channelId ",
" description ": " Channel's id ",
" paramType ": " path ",
" required ": true,
" allowMultiple ": false,
" dataType ": " string "
}
],
" errorResponses ": [
{
" code ": 404,
" reason ": " Channel not found "
},
{
" code ": 409,
" reason ": " Channel not in a Stasis application "
}
]
2013-11-13 23:11:32 +00:00
},
{
" httpMethod ": " DELETE ",
" summary ": " Stop ringing indication on a channel if locally generated. ",
" nickname ": " ringStop ",
" responseClass ": " void ",
" parameters ": [
{
" name ": " channelId ",
" description ": " Channel's id ",
" paramType ": " path ",
" required ": true,
" allowMultiple ": false,
" dataType ": " string "
}
],
" errorResponses ": [
{
" code ": 404,
" reason ": " Channel not found "
},
{
" code ": 409,
" reason ": " Channel not in a Stasis application "
}
]
2013-11-01 14:38:21 +00:00
}
]
},
{
" path ": " /channels/ { channelId } /dtmf ",
" description ": " Send DTMF to a channel ",
" operations ": [
{
" httpMethod ": " POST ",
" summary ": " Send provided DTMF to a given channel. ",
2013-11-07 21:10:31 +00:00
" nickname ": " sendDTMF ",
2013-11-01 14:38:21 +00:00
" responseClass ": " void ",
" parameters ": [
{
" name ": " channelId ",
" description ": " Channel's id ",
" paramType ": " path ",
" required ": true,
" allowMultiple ": false,
" dataType ": " string "
},
{
" name ": " dtmf ",
" description ": " DTMF To send. ",
" paramType ": " query ",
" required ": false,
" allowMultiple ": false,
" dataType ": " string "
},
{
" name ": " before ",
" description ": " Amount of time to wait before DTMF digits (specified in milliseconds) start. ",
" paramType ": " query ",
" required ": false,
" allowMultiple ": false,
" dataType ": " int ",
" defaultValue ": 0
},
{
" name ": " between ",
" description ": " Amount of time in between DTMF digits (specified in milliseconds). ",
" paramType ": " query ",
" required ": false,
" allowMultiple ": false,
" dataType ": " int ",
" defaultValue ": 100
},
{
" name ": " duration ",
" description ": " Length of each DTMF digit (specified in milliseconds). ",
" paramType ": " query ",
" required ": false,
" allowMultiple ": false,
" dataType ": " int ",
" defaultValue ": 100
},
{
" name ": " after ",
" description ": " Amount of time to wait after DTMF digits (specified in milliseconds) end. ",
" paramType ": " query ",
" required ": false,
" allowMultiple ": false,
" dataType ": " int ",
" defaultValue ": 0
}
],
" errorResponses ": [
{
" code ": 400,
" reason ": " DTMF is required "
},
{
" code ": 404,
" reason ": " Channel not found "
},
{
" code ": 409,
" reason ": " Channel not in a Stasis application "
}
]
}
]
},
2013-04-22 14:58:53 +00:00
{
" path ": " /channels/ { channelId } /mute ",
" description ": " Mute a channel ",
" operations ": [
{
" httpMethod ": " POST ",
" summary ": " Mute a channel. ",
2013-11-07 21:10:31 +00:00
" nickname ": " mute ",
2013-04-22 14:58:53 +00:00
" responseClass ": " void ",
" parameters ": [
{
" name ": " channelId ",
" description ": " Channel's id ",
" paramType ": " path ",
" required ": true,
" allowMultiple ": false,
" dataType ": " string "
},
{
" name ": " direction ",
" description ": " Direction in which to mute audio ",
" paramType ": " query ",
" required ": false,
" allowMultiple ": false,
" dataType ": " string ",
" defaultValue ": " both ",
" allowableValues ": {
" valueType ": " LIST ",
" values ": [
" both ",
" in ",
" out "
]
}
}
],
" errorResponses ": [
{
" code ": 404,
" reason ": " Channel not found "
},
{
" code ": 409,
" reason ": " Channel not in a Stasis application "
}
]
2013-11-07 21:10:31 +00:00
},
2013-04-22 14:58:53 +00:00
{
2013-11-07 21:10:31 +00:00
" httpMethod ": " DELETE ",
2013-04-22 14:58:53 +00:00
" summary ": " Unmute a channel. ",
2013-11-07 21:10:31 +00:00
" nickname ": " unmute ",
2013-04-22 14:58:53 +00:00
" responseClass ": " void ",
" parameters ": [
{
" name ": " channelId ",
" description ": " Channel's id ",
" paramType ": " path ",
" required ": true,
" allowMultiple ": false,
" dataType ": " string "
},
{
" name ": " direction ",
" description ": " Direction in which to unmute audio ",
" paramType ": " query ",
" required ": false,
" allowMultiple ": false,
" dataType ": " string ",
" defaultValue ": " both ",
" allowableValues ": {
" valueType ": " LIST ",
" values ": [
" both ",
" in ",
" out "
]
}
}
],
" errorResponses ": [
{
" code ": 404,
" reason ": " Channel not found "
},
{
" code ": 409,
" reason ": " Channel not in a Stasis application "
}
]
}
]
},
{
" path ": " /channels/ { channelId } /hold ",
" description ": " Put a channel on hold ",
" operations ": [
{
" httpMethod ": " POST ",
" summary ": " Hold a channel. ",
2013-11-07 21:10:31 +00:00
" nickname ": " hold ",
2013-04-22 14:58:53 +00:00
" responseClass ": " void ",
" parameters ": [
{
" name ": " channelId ",
" description ": " Channel's id ",
" paramType ": " path ",
" required ": true,
" allowMultiple ": false,
" dataType ": " string "
}
],
" errorResponses ": [
{
" code ": 404,
" reason ": " Channel not found "
},
{
" code ": 409,
" reason ": " Channel not in a Stasis application "
}
]
2013-11-07 21:10:31 +00:00
},
2013-04-22 14:58:53 +00:00
{
2013-10-15 15:30:39 +00:00
" httpMethod ": " DELETE ",
2013-04-22 14:58:53 +00:00
" summary ": " Remove a channel from hold. ",
2013-11-07 21:10:31 +00:00
" nickname ": " unhold ",
2013-04-22 14:58:53 +00:00
" responseClass ": " void ",
" parameters ": [
{
" name ": " channelId ",
" description ": " Channel's id ",
" paramType ": " path ",
" required ": true,
" allowMultiple ": false,
" dataType ": " string "
}
],
" errorResponses ": [
{
" code ": 404,
" reason ": " Channel not found "
},
{
" code ": 409,
" reason ": " Channel not in a Stasis application "
}
]
}
]
},
2013-07-19 19:40:27 +00:00
{
2013-10-15 15:30:39 +00:00
" path ": " /channels/ { channelId } /moh ",
2013-07-19 19:40:27 +00:00
" description ": " Play music on hold to a channel ",
" operations ": [
{
" httpMethod ": " POST ",
" summary ": " Play music on hold to a channel. ",
2013-11-21 15:56:34 +00:00
" notes ": " Using media operations such as /play on a channel playing MOH in this manner will suspend MOH without resuming automatically. If continuing music on hold is desired , the stasis application must reinitiate music on hold. ",
2013-11-07 21:10:31 +00:00
" nickname ": " startMoh ",
2013-07-19 19:40:27 +00:00
" responseClass ": " void ",
" parameters ": [
{
" name ": " channelId ",
" description ": " Channel's id ",
" paramType ": " path ",
" required ": true,
" allowMultiple ": false,
" dataType ": " string "
},
{
" name ": " mohClass ",
" description ": " Music on hold class to use ",
" paramType ": " query ",
" required ": false,
" allowMultiple ": false,
" dataType ": " string "
}
],
" errorResponses ": [
{
" code ": 404,
" reason ": " Channel not found "
},
{
" code ": 409,
" reason ": " Channel not in a Stasis application "
}
]
2013-11-07 21:10:31 +00:00
},
2013-07-19 19:40:27 +00:00
{
2013-10-15 15:30:39 +00:00
" httpMethod ": " DELETE ",
2013-07-19 19:40:27 +00:00
" summary ": " Stop playing music on hold to a channel. ",
2013-11-07 21:10:31 +00:00
" nickname ": " stopMoh ",
2013-07-19 19:40:27 +00:00
" responseClass ": " void ",
" parameters ": [
{
" name ": " channelId ",
" description ": " Channel's id ",
" paramType ": " path ",
" required ": true,
" allowMultiple ": false,
" dataType ": " string "
}
],
" errorResponses ": [
{
" code ": 404,
" reason ": " Channel not found "
},
{
" code ": 409,
" reason ": " Channel not in a Stasis application "
}
]
}
]
},
2013-11-21 15:56:34 +00:00
{
" path ": " /channels/ { channelId } /silence ",
" description ": " Play silence to a channel ",
" operations ": [
{
" httpMethod ": " POST ",
" summary ": " Play silence to a channel. ",
" notes ": " Using media operations such as /play on a channel playing silence in this manner will suspend silence without resuming automatically. ",
" nickname ": " startSilence ",
" responseClass ": " void ",
" parameters ": [
{
" name ": " channelId ",
" description ": " Channel's id ",
" paramType ": " path ",
" required ": true,
" allowMultiple ": false,
" dataType ": " string "
}
],
" errorResponses ": [
{
" code ": 404,
" reason ": " Channel not found "
},
{
" code ": 409,
" reason ": " Channel not in a Stasis application "
}
]
},
{
" httpMethod ": " DELETE ",
" summary ": " Stop playing silence to a channel. ",
" nickname ": " stopSilence ",
" responseClass ": " void ",
" parameters ": [
{
" name ": " channelId ",
" description ": " Channel's id ",
" paramType ": " path ",
" required ": true,
" allowMultiple ": false,
" dataType ": " string "
}
],
" errorResponses ": [
{
" code ": 404,
" reason ": " Channel not found "
},
{
" code ": 409,
" reason ": " Channel not in a Stasis application "
}
]
}
]
},
2013-04-22 14:58:53 +00:00
{
" path ": " /channels/ { channelId } /play ",
" description ": " Play media to a channel ",
" operations ": [
{
" httpMethod ": " POST ",
" summary ": " Start playback of media. ",
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-04-22 14:58:53 +00:00
" responseClass ": " Playback ",
" parameters ": [
{
" name ": " channelId ",
" description ": " Channel'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 "
2013-05-23 20:11:35 +00:00
},
{
" name ": " lang ",
2013-05-23 20:21:16 +00:00
" description ": " For sounds , selects language for sound. ",
2013-05-23 20:11:35 +00:00
" paramType ": " query ",
" required ": false,
" allowMultiple ": false,
" dataType ": " string "
2013-05-23 20:21:16 +00:00
},
{
" name ": " offsetms ",
" description ": " Number of media to skip before playing. ",
" paramType ": " query ",
" required ": false,
" allowMultiple ": false,
" dataType ": " int "
},
2014-03-07 15:47:55 +00:00
{
" name ": " skipms ",
" description ": " Number of milliseconds to skip for forward/reverse operations. ",
" paramType ": " query ",
" required ": false,
" allowMultiple ": false,
" dataType ": " int ",
" defaultValue ": 3000
},
{
" name ": " playbackId ",
" description ": " Playback ID. ",
" paramType ": " query ",
" required ": false,
" allowMultiple ": false,
" dataType ": " string "
}
],
" errorResponses ": [
{
" code ": 404,
" reason ": " Channel not found "
},
{
" code ": 409,
" reason ": " Channel not in a Stasis application "
}
]
}
]
},
{
" path ": " /channels/ { channelId } /play/ { playbackId } ",
" description ": " Play media to a channel ",
" operations ": [
{
" httpMethod ": " POST ",
" summary ": " Start playback of media and specify the playbackId. ",
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-03-07 15:47:55 +00:00
" nickname ": " playWithId ",
" responseClass ": " Playback ",
" parameters ": [
{
" name ": " channelId ",
" description ": " Channel'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 "
},
2013-05-23 20:21:16 +00:00
{
" name ": " skipms ",
" description ": " Number of milliseconds to skip for forward/reverse operations. ",
" paramType ": " query ",
" required ": false,
" allowMultiple ": false,
" dataType ": " int ",
" defaultValue ": 3000
2013-04-22 14:58:53 +00:00
}
],
" errorResponses ": [
{
" code ": 404,
" reason ": " Channel not found "
},
{
" code ": 409,
" reason ": " Channel not in a Stasis application "
}
]
}
]
},
{
" path ": " /channels/ { channelId } /record ",
" description ": " Record audio from a channel ",
" operations ": [
{
" httpMethod ": " POST ",
" summary ": " Start a recording. ",
" notes ": " Record audio from a channel. Note that this will not capture audio sent to the channel. The bridge itself has a record feature if that's what you want. ",
2013-11-07 21:10:31 +00:00
" nickname ": " record ",
2013-07-19 19:35:21 +00:00
" responseClass ": " LiveRecording ",
2013-04-22 14:58:53 +00:00
" parameters ": [
{
" name ": " channelId ",
" description ": " Channel's id ",
" paramType ": " path ",
" required ": true,
" allowMultiple ": false,
" dataType ": " string "
},
{
" name ": " name ",
" description ": " Recording's filename ",
" paramType ": " query ",
" required ": true,
" allowMultiple ": false,
" dataType ": " string "
},
{
" name ": " format ",
" description ": " Format to encode audio in ",
" paramType ": " query ",
" required ": true,
2013-08-02 14:36:32 +00:00
" allowMultiple ": false,
2013-04-22 14:58:53 +00:00
" dataType ": " string "
},
{
" name ": " maxDurationSeconds ",
" description ": " Maximum duration of the recording , in seconds. 0 for no limit ",
" paramType ": " query ",
" required ": false,
" allowMultiple ": false,
" dataType ": " int ",
2013-07-03 17:58:45 +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-03 17:58:45 +00:00
" defaultValue ": 0,
" allowableValues ": {
" valueType ": " RANGE ",
" min ": 0
}
2013-04-22 14:58:53 +00:00
},
{
2013-07-03 17:58:45 +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-03 17:58:45 +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 ",
" * ",
" # "
]
}
}
],
" errorResponses ": [
2013-07-03 17:58:45 +00:00
{
" code ": 400,
" reason ": " Invalid parameters "
},
2013-04-22 14:58:53 +00:00
{
" code ": 404,
" reason ": " Channel not found "
},
{
" code ": 409,
2013-10-25 21:28:32 +00:00
" reason ": " Channel is not in a Stasis application; the channel is currently bridged with other hcannels; 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-04-22 14:58:53 +00:00
}
]
}
]
2013-07-08 14:46:20 +00:00
},
{
" path ": " /channels/ { channelId } /variable ",
" description ": " Variables on a channel ",
" operations ": [
{
" httpMethod ": " GET ",
" summary ": " Get the value of a channel variable or function. ",
" nickname ": " getChannelVar ",
2013-07-10 13:50:48 +00:00
" responseClass ": " Variable ",
2013-07-08 14:46:20 +00:00
" parameters ": [
{
" name ": " channelId ",
" description ": " Channel's id ",
" paramType ": " path ",
" required ": true,
" allowMultiple ": false,
" dataType ": " string "
},
{
" name ": " variable ",
" description ": " The channel variable or function to get ",
" paramType ": " query ",
" required ": true,
" allowMultiple ": false,
" dataType ": " string "
}
],
" errorResponses ": [
2013-08-21 16:23:59 +00:00
{
" code ": 400,
" reason ": " Missing variable parameter. "
},
2013-07-08 14:46:20 +00:00
{
" code ": 404,
2015-02-21 20:47:19 +00:00
" reason ": " Channel or variable not found "
2013-07-08 14:46:20 +00:00
},
{
" code ": 409,
" reason ": " Channel not in a Stasis application "
}
]
},
{
" httpMethod ": " POST ",
" summary ": " Set the value of a channel variable or function. ",
" nickname ": " setChannelVar ",
" responseClass ": " void ",
" parameters ": [
{
" name ": " channelId ",
" description ": " Channel's id ",
" paramType ": " path ",
" required ": true,
" allowMultiple ": false,
" dataType ": " string "
},
{
" name ": " variable ",
" description ": " The channel variable or function to set ",
" paramType ": " query ",
" required ": true,
" allowMultiple ": false,
" dataType ": " string "
},
{
" name ": " value ",
" description ": " The value to set the variable to ",
" paramType ": " query ",
" required ": false,
" allowMultiple ": false,
" dataType ": " string "
}
],
" errorResponses ": [
2013-08-21 16:23:59 +00:00
{
" code ": 400,
" reason ": " Missing variable parameter. "
},
2013-07-08 14:46:20 +00:00
{
" code ": 404,
" reason ": " Channel not found "
},
{
" code ": 409,
" reason ": " Channel not in a Stasis application "
}
]
}
]
2013-11-23 12:40:46 +00:00
},
{
" path ": " /channels/ { channelId } /snoop ",
" description ": " Snoop (spy/whisper) on a channel ",
" operations ": [
{
" httpMethod ": " POST ",
" summary ": " Start snooping. ",
" notes ": " Snoop (spy/whisper) on a specific channel. ",
" nickname ": " snoopChannel ",
" responseClass ": " Channel ",
" parameters ": [
{
" name ": " channelId ",
" description ": " Channel's id ",
" paramType ": " path ",
" required ": true,
" allowMultiple ": false,
" dataType ": " string "
},
{
" name ": " spy ",
" description ": " Direction of audio to spy on ",
" paramType ": " query ",
" required ": false,
" allowMultiple ": false,
" dataType ": " string ",
" defaultValue ": " none ",
" allowableValues ": {
" valueType ": " LIST ",
" values ": [
" none ",
" both ",
" out ",
" in "
]
}
},
{
" name ": " whisper ",
" description ": " Direction of audio to whisper into ",
" paramType ": " query ",
" required ": false,
2014-03-07 15:47:55 +00:00
" allowMultiple ": false,
" dataType ": " string ",
" defaultValue ": " none ",
" allowableValues ": {
" valueType ": " LIST ",
" values ": [
" none ",
" both ",
" out ",
" in "
]
}
},
{
" name ": " app ",
" description ": " Application the snooping channel is placed into ",
" paramType ": " query ",
" required ": true,
" allowMultiple ": false,
" dataType ": " string "
},
{
" name ": " appArgs ",
" description ": " The application arguments to pass to the Stasis application ",
" paramType ": " query ",
" required ": false,
" allowMultiple ": false,
" dataType ": " string "
},
{
" name ": " snoopId ",
" description ": " Unique ID to assign to snooping channel ",
" paramType ": " query ",
" required ": false,
" allowMultiple ": false,
" dataType ": " string "
}
],
" errorResponses ": [
{
" code ": 400,
" reason ": " Invalid parameters "
},
{
" code ": 404,
" reason ": " Channel not found "
}
]
}
]
},
{
" path ": " /channels/ { channelId } /snoop/ { snoopId } ",
" description ": " Snoop (spy/whisper) on a channel ",
" operations ": [
{
" httpMethod ": " POST ",
" summary ": " Start snooping. ",
" notes ": " Snoop (spy/whisper) on a specific channel. ",
" nickname ": " snoopChannelWithId ",
" responseClass ": " Channel ",
" parameters ": [
{
" name ": " channelId ",
" description ": " Channel's id ",
" paramType ": " path ",
" required ": true,
" allowMultiple ": false,
" dataType ": " string "
},
{
" name ": " snoopId ",
" description ": " Unique ID to assign to snooping channel ",
" paramType ": " path ",
" required ": true,
" allowMultiple ": false,
" dataType ": " string "
},
{
" name ": " spy ",
" description ": " Direction of audio to spy on ",
" paramType ": " query ",
" required ": false,
" allowMultiple ": false,
" dataType ": " string ",
" defaultValue ": " none ",
" allowableValues ": {
" valueType ": " LIST ",
" values ": [
" none ",
" both ",
" out ",
" in "
]
}
},
{
" name ": " whisper ",
" description ": " Direction of audio to whisper into ",
" paramType ": " query ",
" required ": false,
2013-11-23 12:40:46 +00:00
" allowMultiple ": false,
" dataType ": " string ",
" defaultValue ": " none ",
" allowableValues ": {
" valueType ": " LIST ",
" values ": [
" none ",
" both ",
" out ",
" in "
]
}
},
{
" name ": " app ",
" description ": " Application the snooping channel is placed into ",
" paramType ": " query ",
" required ": true,
" allowMultiple ": false,
" dataType ": " string "
},
{
" name ": " appArgs ",
" description ": " The application arguments to pass to the Stasis application ",
" paramType ": " query ",
" required ": false,
" allowMultiple ": false,
" dataType ": " string "
}
],
" errorResponses ": [
{
" code ": 400,
" reason ": " Invalid parameters "
},
{
" code ": 404,
" reason ": " Channel not found "
}
]
}
]
2013-04-22 14:58:53 +00:00
}
],
" models ": {
" Dialed ": {
" id ": " Dialed ",
2013-07-03 16:32:41 +00:00
" description ": " Dialed channel information. ",
2013-04-22 14:58:53 +00:00
" properties ": {}
},
" DialplanCEP ": {
" id ": " DialplanCEP ",
2013-07-03 16:32:41 +00:00
" description ": " Dialplan location (context/extension/priority) ",
2013-04-22 14:58:53 +00:00
" properties ": {
" context ": {
" required ": true,
" type ": " string ",
" description ": " Context in the dialplan "
},
" exten ": {
" required ": true,
" type ": " string ",
" description ": " Extension in the dialplan "
},
" priority ": {
" required ": true,
" type ": " long ",
" description ": " Priority in the dialplan "
}
}
},
" CallerID ": {
" id ": " CallerID ",
2013-07-03 16:32:41 +00:00
" description ": " Caller identification ",
2013-04-22 14:58:53 +00:00
" properties ": {
" name ": {
" required ": true,
" type ": " string "
},
" number ": {
" required ": true,
" type ": " string "
}
}
},
" Channel ": {
" id ": " Channel ",
2013-07-03 16:32:41 +00:00
" description ": " A specific communication connection between Asterisk and an Endpoint. ",
2013-04-22 14:58:53 +00:00
" properties ": {
2013-07-03 16:32:41 +00:00
" id ": {
2013-04-22 14:58:53 +00:00
" required ": true,
" type ": " string ",
2013-07-03 16:32:41 +00:00
" description ": " Unique identifier of the channel.\n\nThis is the same as the Uniqueid field in AMI. "
2013-04-22 14:58:53 +00:00
},
" name ": {
" required ": true,
" type ": " string ",
" description ": " Name of the channel (i.e. SIP/foo -0000 a 7e3 ) "
},
" state ": {
" required ": true,
2013-07-03 16:32:41 +00:00
" type ": " string ",
" allowableValues ": {
" valueType ": " LIST ",
" values ": [
" Down ",
" Rsrved ",
" OffHook ",
" Dialing ",
" Ring ",
" Ringing ",
" Up ",
" Busy ",
" Dialing Offhook ",
" Pre-ring ",
" Unknown "
]
}
2013-04-22 14:58:53 +00:00
},
2013-07-03 16:32:41 +00:00
" caller ": {
2013-04-22 14:58:53 +00:00
" required ": true,
2013-07-03 16:32:41 +00:00
" type ": " CallerID "
2013-04-22 14:58:53 +00:00
},
2013-07-03 16:32:41 +00:00
" connected ": {
2013-04-22 14:58:53 +00:00
" required ": true,
2013-07-03 16:32:41 +00:00
" type ": " CallerID "
2013-04-22 14:58:53 +00:00
},
2013-07-03 16:32:41 +00:00
" accountcode ": {
2013-04-22 14:58:53 +00:00
" required ": true,
" type ": " string "
},
" dialplan ": {
" required ": true,
" type ": " DialplanCEP ",
" description ": " Current location in the dialplan "
},
" creationtime ": {
" required ": true,
" type ": " Date ",
" description ": " Timestamp when channel was created "
2014-12-09 20:19:40 +00:00
},
" language ": {
" required ": true,
" type ": " string ",
" description ": " The default spoken language"
2013-04-22 14:58:53 +00:00
}
}
}
}
}