Files
asterisk/rest-api/api-docs/asterisk.json
Ben Ford 9b8143c296 ARI: Added paths to get and set multiple channel variables.
Two new paths exist for ARI to get and set multiple channel variables at
the same time. This is done via GET and POST like the single get and set
variable equivalents. Leading and trailing whitespace will be stripped
from the variable names for both paths. When setting variables, the
values will be read as-is, whitespace included. GET takes in a single
string with comma-separated values, while POST takes in a dictionary of
key value pairs. The code follows the same paths as when setting
multiple variables when originating a channel via ARI.

UserNote: Added new ARI paths for getting and setting multiple channel
variables at a time. For GET, this takes in a single string of
comma-separated variable names, while POST takes in a dictionary of key
value pairs. The behavior is the same as passing in variables when
originating a channel.
2026-06-04 13:04:20 +00:00

789 lines
18 KiB
JSON

{
"_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.",
"_author": "David M. Lee, II <dlee@digium.com>",
"_svn_revision": "$Revision$",
"apiVersion": "2.0.0",
"swaggerVersion": "1.1",
"basePath": "http://localhost:8088/ari",
"resourcePath": "/api-docs/asterisk.{format}",
"since": [
"12.0.0"
],
"apis": [
{
"path": "/asterisk/config/dynamic/{configClass}/{objectType}/{id}",
"description": "Asterisk dynamic configuration",
"operations": [
{
"httpMethod": "GET",
"since": [
"13.5.0"
],
"summary": "Retrieve a dynamic configuration object.",
"nickname": "getObject",
"responseClass": "List[ConfigTuple]",
"parameters": [
{
"name": "configClass",
"description": "The configuration class containing dynamic configuration objects.",
"paramType": "path",
"required": true,
"allowMultiple": false,
"dataType": "string"
},
{
"name": "objectType",
"description": "The type of configuration object to retrieve.",
"paramType": "path",
"required": true,
"allowMultiple": false,
"dataType": "string"
},
{
"name": "id",
"description": "The unique identifier of the object to retrieve.",
"paramType": "path",
"required": true,
"allowMultiple": false,
"dataType": "string"
}
],
"errorResponses": [
{
"code": 404,
"reason": "{configClass|objectType|id} not found"
}
]
},
{
"httpMethod": "PUT",
"since": [
"13.5.0"
],
"summary": "Create or update a dynamic configuration object.",
"nickname": "updateObject",
"responseClass": "List[ConfigTuple]",
"parameters": [
{
"name": "configClass",
"description": "The configuration class containing dynamic configuration objects.",
"paramType": "path",
"required": true,
"allowMultiple": false,
"dataType": "string"
},
{
"name": "objectType",
"description": "The type of configuration object to create or update.",
"paramType": "path",
"required": true,
"allowMultiple": false,
"dataType": "string"
},
{
"name": "id",
"description": "The unique identifier of the object to create or update.",
"paramType": "path",
"required": true,
"allowMultiple": false,
"dataType": "string"
},
{
"name": "fields",
"description": "The body object should have a value that is a list of ConfigTuples, which provide the fields to update. Ex. [ { \"attribute\": \"directmedia\", \"value\": \"false\" } ]",
"paramType": "body",
"required": false,
"dataType": "containers",
"allowMultiple": false
}
],
"errorResponses": [
{
"code": 400,
"reason": "Bad request body"
},
{
"code": 403,
"reason": "Could not create or update object"
},
{
"code": 404,
"reason": "{configClass|objectType} not found"
}
]
},
{
"httpMethod": "DELETE",
"since": [
"13.5.0"
],
"summary": "Delete a dynamic configuration object.",
"nickname": "deleteObject",
"responseClass": "void",
"parameters": [
{
"name": "configClass",
"description": "The configuration class containing dynamic configuration objects.",
"paramType": "path",
"required": true,
"allowMultiple": false,
"dataType": "string"
},
{
"name": "objectType",
"description": "The type of configuration object to delete.",
"paramType": "path",
"required": true,
"allowMultiple": false,
"dataType": "string"
},
{
"name": "id",
"description": "The unique identifier of the object to delete.",
"paramType": "path",
"required": true,
"allowMultiple": false,
"dataType": "string"
}
],
"errorResponses": [
{
"code": 403,
"reason": "Could not delete object"
},
{
"code": 404,
"reason": "{configClass|objectType|id} not found"
}
]
}
]
},
{
"path": "/asterisk/info",
"description": "Asterisk system information (similar to core show settings)",
"operations": [
{
"httpMethod": "GET",
"since": [
"12.0.0"
],
"summary": "Gets Asterisk system information.",
"nickname": "getInfo",
"responseClass": "AsteriskInfo",
"parameters": [
{
"name": "only",
"description": "Filter information returned",
"paramType": "query",
"required": false,
"allowMultiple": true,
"dataType": "string",
"allowableValues": {
"valueType": "LIST",
"values": [
"build",
"system",
"config",
"status"
]
}
}
]
}
]
},
{
"path": "/asterisk/ping",
"description": "Asterisk ping",
"operations": [
{
"httpMethod": "GET",
"since": [
"13.25.0",
"16.2.0"
],
"summary": "Response pong message.",
"nickname": "ping",
"responseClass": "AsteriskPing"
}
]
},
{
"path": "/asterisk/modules",
"description": "Asterisk modules",
"operations": [
{
"httpMethod": "GET",
"since": [
"13.5.0"
],
"summary": "List Asterisk modules.",
"nickname": "listModules",
"responseClass": "List[Module]"
}
]
},
{
"path": "/asterisk/modules/{moduleName}",
"description": "Asterisk module",
"operations": [
{
"httpMethod": "GET",
"since": [
"13.5.0"
],
"summary": "Get Asterisk module information.",
"nickname": "getModule",
"responseClass": "Module",
"parameters": [
{
"name": "moduleName",
"description": "Module's name",
"paramType": "path",
"required": true,
"allowMultiple": false,
"dataType": "string"
}
],
"errorResponses": [
{
"code": 404,
"reason": "Module could not be found in running modules."
},
{
"code": 409,
"reason": "Module information could not be retrieved."
}
]
},
{
"httpMethod": "POST",
"since": [
"13.5.0"
],
"summary": "Load an Asterisk module.",
"nickname": "loadModule",
"responseClass": "void",
"parameters": [
{
"name": "moduleName",
"description": "Module's name",
"paramType": "path",
"required": true,
"allowMultiple": false,
"dataType": "string"
}
],
"errorResponses": [
{
"code": 409,
"reason": "Module could not be loaded."
}
]
},
{
"httpMethod": "DELETE",
"since": [
"13.5.0"
],
"summary": "Unload an Asterisk module.",
"nickname": "unloadModule",
"responseClass": "void",
"parameters": [
{
"name": "moduleName",
"description": "Module's name",
"paramType": "path",
"required": true,
"allowMultiple": false,
"dataType": "string"
}
],
"errorResponses": [
{
"code": 404,
"reason": "Module not found in running modules."
},
{
"code": 409,
"reason": "Module could not be unloaded."
}
]
},
{
"httpMethod": "PUT",
"since": [
"13.5.0"
],
"summary": "Reload an Asterisk module.",
"nickname": "reloadModule",
"responseClass": "void",
"parameters": [
{
"name": "moduleName",
"description": "Module's name",
"paramType": "path",
"required": true,
"allowMultiple": false,
"dataType": "string"
}
],
"errorResponses": [
{
"code": 404,
"reason": "Module not found in running modules."
},
{
"code": 409,
"reason": "Module could not be reloaded."
}
]
}
]
},
{
"path": "/asterisk/logging",
"description": "Asterisk log channels",
"operations": [
{
"httpMethod": "GET",
"since": [
"13.6.0"
],
"summary": "Gets Asterisk log channel information.",
"nickname": "listLogChannels",
"responseClass": "List[LogChannel]"
}
]
},
{
"path": "/asterisk/logging/{logChannelName}",
"description": "Asterisk log channel",
"operations": [
{
"httpMethod": "POST",
"since": [
"13.6.0"
],
"summary": "Adds a log channel.",
"nickname": "addLog",
"responseClass": "void",
"parameters": [
{
"name": "logChannelName",
"description": "The log channel to add",
"paramType": "path",
"required": true,
"allowMultiple": false,
"dataType": "string"
},
{
"name": "configuration",
"description": "levels of the log channel",
"paramType": "query",
"required": true,
"allowMultiple": false,
"dataType": "string"
}
],
"errorResponses": [
{
"code": 400,
"reason": "Bad request body"
},
{
"code": 409,
"reason": "Log channel could not be created."
}
]
},
{
"httpMethod": "DELETE",
"since": [
"13.6.0"
],
"summary": "Deletes a log channel.",
"nickname": "deleteLog",
"responseClass": "void",
"parameters": [
{
"name": "logChannelName",
"description": "Log channels name",
"paramType": "path",
"required": true,
"allowMultiple": false,
"dataType": "string"
}
],
"errorResponses": [
{
"code": 404,
"reason": "Log channel does not exist."
}
]
}
]
},
{
"path": "/asterisk/logging/{logChannelName}/rotate",
"description": "Asterisk log channel",
"operations": [
{
"httpMethod": "PUT",
"since": [
"13.6.0"
],
"summary": "Rotates a log channel.",
"nickname": "rotateLog",
"responseClass": "void",
"parameters": [
{
"name": "logChannelName",
"description": "Log channel's name",
"paramType": "path",
"required": true,
"allowMultiple": false,
"dataType": "string"
}
],
"errorResponses": [
{
"code": 404,
"reason": "Log channel does not exist."
}
]
}
]
},
{
"path": "/asterisk/variable",
"description": "Global variables",
"operations": [
{
"httpMethod": "GET",
"since": [
"12.0.0"
],
"summary": "Get the value of a global variable.",
"nickname": "getGlobalVar",
"responseClass": "Variable",
"parameters": [
{
"name": "variable",
"description": "The variable to get",
"paramType": "query",
"required": true,
"allowMultiple": false,
"dataType": "string"
}
],
"errorResponses": [
{
"code": 400,
"reason": "Missing variable parameter."
}
]
},
{
"httpMethod": "POST",
"since": [
"12.0.0"
],
"summary": "Set the value of a global variable.",
"nickname": "setGlobalVar",
"responseClass": "void",
"parameters": [
{
"name": "variable",
"description": "The variable 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": [
{
"code": 400,
"reason": "Missing variable parameter."
}
]
}
]
}
],
"models": {
"BuildInfo": {
"id": "BuildInfo",
"description": "Info about how Asterisk was built",
"properties": {
"os": {
"required": true,
"type": "string",
"description": "OS Asterisk was built on."
},
"kernel": {
"required": true,
"type": "string",
"description": "Kernel version Asterisk was built on."
},
"options": {
"required": true,
"type": "string",
"description": "Compile time options, or empty string if default."
},
"machine": {
"required": true,
"type": "string",
"description": "Machine architecture (x86_64, i686, ppc, etc.)"
},
"date": {
"required": true,
"type": "string",
"description": "Date and time when Asterisk was built."
},
"user": {
"required": true,
"type": "string",
"description": "Username that build Asterisk"
}
}
},
"SystemInfo": {
"id": "SystemInfo",
"description": "Info about Asterisk",
"properties": {
"version": {
"required": true,
"type": "string",
"description": "Asterisk version."
},
"entity_id": {
"required": true,
"type": "string",
"description": ""
}
}
},
"SetId": {
"id": "SetId",
"description": "Effective user/group id",
"properties": {
"user": {
"required": true,
"type": "string",
"description": "Effective user id."
},
"group": {
"required": true,
"type": "string",
"description": "Effective group id."
}
}
},
"ConfigInfo": {
"id": "ConfigInfo",
"description": "Info about Asterisk configuration",
"properties": {
"name": {
"required": true,
"type": "string",
"description": "Asterisk system name."
},
"default_language": {
"required": true,
"type": "string",
"description": "Default language for media playback."
},
"max_channels": {
"required": false,
"type": "int",
"description": "Maximum number of simultaneous channels."
},
"max_open_files": {
"required": false,
"type": "int",
"description": "Maximum number of open file handles (files, sockets)."
},
"max_load": {
"required": false,
"type": "double",
"description": "Maximum load avg on system."
},
"setid": {
"required": true,
"type": "SetId",
"description": "Effective user/group id for running Asterisk."
}
}
},
"StatusInfo": {
"id": "StatusInfo",
"description": "Info about Asterisk status",
"properties": {
"startup_time": {
"required": true,
"type": "Date",
"description": "Time when Asterisk was started."
},
"last_reload_time": {
"required": true,
"type": "Date",
"description": "Time when Asterisk was last reloaded."
}
}
},
"AsteriskInfo": {
"id": "AsteriskInfo",
"description": "Asterisk system information",
"properties": {
"build": {
"required": false,
"type": "BuildInfo",
"description": "Info about how Asterisk was built"
},
"system": {
"required": false,
"type": "SystemInfo",
"description": "Info about the system running Asterisk"
},
"config": {
"required": false,
"type": "ConfigInfo",
"description": "Info about Asterisk configuration"
},
"status": {
"required": false,
"type": "StatusInfo",
"description": "Info about Asterisk status"
}
}
},
"AsteriskPing": {
"id": "AsteriskPing",
"description": "Asterisk ping information",
"properties": {
"asterisk_id": {
"required": true,
"type": "string",
"description": "Asterisk id info"
},
"ping": {
"required": true,
"type": "string",
"description": "Always string value is pong"
},
"timestamp": {
"required": true,
"type": "string",
"description": "The timestamp string of request received time"
}
}
},
"Module": {
"id": "Module",
"description": "Details of an Asterisk module",
"properties": {
"name": {
"type": "string",
"description": "The name of this module",
"required": true
},
"description": {
"type": "string",
"description": "The description of this module",
"required": true
},
"use_count": {
"type": "int",
"description": "The number of times this module is being used",
"required": true
},
"status": {
"type": "string",
"description": "The running status of this module",
"required": true
},
"support_level": {
"type": "string",
"description": "The support state of this module",
"required": true
}
}
},
"LogChannel": {
"id": "LogChannel",
"description": "Details of an Asterisk log channel",
"properties": {
"channel": {
"type": "string",
"description": "The log channel path",
"required": true
},
"type": {
"type": "string",
"description": "Types of logs for the log channel",
"required": true
},
"status": {
"type": "string",
"description": "Whether or not a log type is enabled",
"required": true
},
"configuration": {
"type": "string",
"description": "The various log levels",
"required": true
}
}
},
"Variable": {
"id": "Variable",
"description": "The value of a channel variable",
"properties": {
"value": {
"required": true,
"type": "string",
"description": "The value of the variable requested"
}
}
},
"Variables": {
"id": "Variables",
"description": "A dictionary of channel variables",
"properties": {
"variables": {
"required": true,
"type": "object",
"description": "A dictionary of channel variables"
}
}
},
"ConfigTuple": {
"id": "ConfigTuple",
"description": "A key/value pair that makes up part of a configuration object.",
"properties": {
"attribute": {
"required": true,
"type": "string",
"description": "A configuration object attribute."
},
"value": {
"required": true,
"type": "string",
"description": "The value for the attribute."
}
}
}
}
}