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$" ,
"apiVersion" : "0.0.1" ,
"swaggerVersion" : "1.1" ,
"basePath" : "http://localhost:8088/stasis" ,
"resourcePath" : "/api-docs/channels.{format}" ,
"apis" : [
{
"path" : "/channels" ,
"description" : "Active channels" ,
"operations" : [
{
"httpMethod" : "GET" ,
"summary" : "List active channels." ,
"nickname" : "getChannels" ,
"responseClass" : "List[Channel]"
} ,
{
"httpMethod" : "POST" ,
"summary" : "Create a new channel (originate)." ,
"nickname" : "originate" ,
2013-06-07 18:39:42 +00:00
"responseClass" : "void" ,
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" ,
2013-06-28 16:23:24 +00:00
"description" : "The extension to dial after the endpoint answers" ,
2013-04-22 14:58:53 +00:00
"paramType" : "query" ,
"required" : false ,
"allowMultiple" : false ,
"dataType" : "string"
} ,
{
"name" : "context" ,
2013-06-28 16:23:24 +00:00
"description" : "The context to dial after the endpoint answers. If omitted, uses 'default'" ,
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" ,
"description" : "The priority to dial after the endpoint answers. If omitted, uses 1" ,
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
} ,
{
2013-06-28 16:23:24 +00:00
"name" : "app" ,
"description" : "The application name to pass to the Stasis application." ,
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" ,
"description" : "The application arguments to pass to the Stasis application." ,
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
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." ,
"nickname" : "getChannel" ,
"responseClass" : "Channel" ,
"parameters" : [
{
"name" : "channelId" ,
"description" : "Channel's id" ,
"paramType" : "path" ,
"required" : true ,
"allowMultiple" : false ,
"dataType" : "string"
}
] ,
"errorResponses" : [
{
"code" : 404 ,
"reason" : "Channel not found"
}
]
} ,
{
"httpMethod" : "DELETE" ,
"summary" : "Delete (i.e. hangup) a channel." ,
"nickname" : "deleteChannel" ,
"responseClass" : "void" ,
"parameters" : [
{
"name" : "channelId" ,
"description" : "Channel's id" ,
"paramType" : "path" ,
"required" : true ,
"allowMultiple" : false ,
"dataType" : "string"
}
] ,
"errorResponses" : [
{
"code" : 404 ,
"reason" : "Channel not found"
}
]
}
]
} ,
{
"path" : "/channels/{channelId}/dial" ,
"description" : "Create a new channel (originate) and bridge to this channel" ,
"operations" : [
{
"httpMethod" : "POST" ,
"summary" : "Create a new channel (originate) and bridge to this channel." ,
"nickname" : "dial" ,
"responseClass" : "Dialed" ,
"parameters" : [
{
"name" : "channelId" ,
"description" : "Channel's id" ,
"paramType" : "path" ,
"required" : true ,
"allowMultiple" : false ,
"dataType" : "string"
} ,
{
"name" : "endpoint" ,
"description" : "Endpoint to call. If not specified, dial is routed via dialplan" ,
"paramType" : "query" ,
"required" : false ,
"allowMultiple" : false ,
"dataType" : "string"
} ,
{
"name" : "extension" ,
"description" : "Extension to dial" ,
"paramType" : "query" ,
"required" : false ,
"allowMultiple" : false ,
"dataType" : "string"
} ,
{
"name" : "context" ,
"description" : "When routing via dialplan, the context use. If omitted, uses 'default'" ,
"paramType" : "query" ,
"required" : false ,
"allowMultiple" : false ,
"dataType" : "string"
2013-07-01 18:19:15 +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
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}/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"
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}/answer" ,
"description" : "Answer a channel" ,
"operations" : [
{
"httpMethod" : "POST" ,
"summary" : "Answer a channel." ,
"nickname" : "answerChannel" ,
"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
}
]
}
]
} ,
{
"path" : "/channels/{channelId}/mute" ,
"description" : "Mute a channel" ,
"operations" : [
{
"httpMethod" : "POST" ,
"summary" : "Mute a channel." ,
"nickname" : "muteChannel" ,
"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"
}
]
}
]
} ,
{
"path" : "/channels/{channelId}/unmute" ,
"description" : "Unmute a channel" ,
"operations" : [
{
"httpMethod" : "POST" ,
"summary" : "Unmute a channel." ,
"nickname" : "unmuteChannel" ,
"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." ,
"nickname" : "holdChannel" ,
"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"
}
]
}
]
} ,
{
"path" : "/channels/{channelId}/unhold" ,
"description" : "Remove a channel from hold" ,
"operations" : [
{
"httpMethod" : "POST" ,
"summary" : "Remove a channel from hold." ,
"nickname" : "unholdChannel" ,
"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
{
"path" : "/channels/{channelId}/mohstart" ,
"description" : "Play music on hold to a channel" ,
"operations" : [
{
"httpMethod" : "POST" ,
"summary" : "Play music on hold to a channel." ,
"notes" : "Using media operations such as playOnChannel 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." ,
"nickname" : "mohStartChannel" ,
"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"
}
]
}
]
} ,
{
"path" : "/channels/{channelId}/mohstop" ,
"description" : "Stop playing music on hold to a channel" ,
"operations" : [
{
"httpMethod" : "POST" ,
"summary" : "Stop playing music on hold to a channel." ,
"nickname" : "mohStopChannel" ,
"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." ,
"notes" : "The media URI may be any of a number of URI's. You may use http: and https: URI's, as well as sound: and recording: URI's. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)" ,
"nickname" : "playOnChannel" ,
"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"
} ,
{
"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." ,
"nickname" : "recordChannel" ,
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-07-03 17:58:45 +00:00
"reason" : "Channel is not in a Stasis application; the channel is currently bridged with other channels; A recording with the same name is currently in progress."
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 ,
"reason" : "Channel not found"
} ,
{
"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-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-0000a7e3)"
} ,
"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"
}
}
}
}
}