Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
kb:asterisk:ami [2012/01/31 06:54] amzh |
kb:asterisk:ami [2018/05/16 14:23] (текущий) tpor [Полезные ссылки] |
||
---|---|---|---|
Строка 4: | Строка 4: | ||
Интерфейс управления сервером Asterisk (далее Manager API) позволяет клиентским программам соединяться с серверным приложением Asterisk, отправлять ему команды и/или считывать события, происходящие в АТС, используя TCP/IP протокол. Те, кто занимается интеграцией различных задач, могут найти много полезного для себя, например, отслеживая поведение телефонных абонентов и управляя ими на основании каких-либо правил. | Интерфейс управления сервером Asterisk (далее Manager API) позволяет клиентским программам соединяться с серверным приложением Asterisk, отправлять ему команды и/или считывать события, происходящие в АТС, используя TCP/IP протокол. Те, кто занимается интеграцией различных задач, могут найти много полезного для себя, например, отслеживая поведение телефонных абонентов и управляя ими на основании каких-либо правил. | ||
- | Для коммуникации между АТС Asterisk и подсоединенным Manager API клиентом используется простой текстовый построчный протоков вида: "параметр: значение". Окончание строки определяется последовательностью CRLF. Для упрощения дальнейшего описания, мы будем использовать термин "пакет " для описания набора строк вида "параметр: значение", после которых идет пустая строка, содержащая только символы возврата каретки и перевода строки (CRLF). | + | Для коммуникации между АТС Asterisk и подсоединенным Manager API клиентом используется простой текстовый построчный протокол вида: //"параметр: значение"//. Окончание строки определяется последовательностью CRLF. Для упрощения дальнейшего описания, мы будем использовать термин "пакет " для описания набора строк вида "параметр: значение", после которых идет пустая строка, содержащая только символы возврата каретки и перевода строки (CRLF). |
Строка 15: | Строка 15: | ||
Перед отправкой команд серверу Asterisk, Вы должны установить manager API сессию (см. ниже). | Перед отправкой команд серверу Asterisk, Вы должны установить manager API сессию (см. ниже). | ||
Пакеты могут передаваться в любом направлении в любое время, после прохождения авторизации. | Пакеты могут передаваться в любом направлении в любое время, после прохождения авторизации. | ||
- | Первая строка в пакете должна содержать параметр "Action", если она отправляется от клиента серверу и ,соответственно, "Event" или "Response", когда пакет передается от Asterisk клиенту. | + | Первая строка в пакете должна содержать параметр "**Action**", если она отправляется от клиента серверу и ,соответственно, "**Event**" или "**Response**", когда пакет передается от Asterisk клиенту. |
Порядок строк в пределах пакета не имеет значения, следовательно, Вы можете использовать для хранения одного пакета библиотеку Вашего языка программирования, где не требуется использования сортировки, тем самым увеличив производительность составления пакета данных. | Порядок строк в пределах пакета не имеет значения, следовательно, Вы можете использовать для хранения одного пакета библиотеку Вашего языка программирования, где не требуется использования сортировки, тем самым увеличив производительность составления пакета данных. | ||
Последовательность символов CRLF используется для отделения строк друг от друга, а пустая строка (два подряд идущих CRLF) указывает на окончание команды и Asterisk приступает к ее выполнению. | Последовательность символов CRLF используется для отделения строк друг от друга, а пустая строка (два подряд идущих CRLF) указывает на окончание команды и Asterisk приступает к ее выполнению. | ||
Строка 22: | Строка 22: | ||
- | Тип пакета определяется наличием одного из следующих значений параметра в паре “Параметр: значение”: | + | Тип пакета определяется наличием одного из следующих значений параметра в паре “//Параметр: значение//”: |
- | Action: Пакет отправляется подсоединенным клиентом серверу Asterisk, в значении параметра указывается требуемое действие, которое должно быть выполнено сервером Asterisk. Набор действий является ограниченным (но расширяемым) списком, который доступен клиенту, в зависимости от загруженных модулей сервера Asterisk и прав назначенных пользователю, от имени которого подсоединился клиент. За один раз (в пределах одного пакета) может быть указано только одно действие. Пакет “Action” содержит имя запрашиваемой операции, а также все требуемые параметры команды. | + | **Action**: Пакет отправляется подсоединенным клиентом серверу Asterisk, в значении параметра указывается требуемое действие, которое должно быть выполнено сервером Asterisk. Набор действий является ограниченным (но расширяемым) списком, который доступен клиенту, в зависимости от загруженных модулей сервера Asterisk и прав назначенных пользователю, от имени которого подсоединился клиент. За один раз (в пределах одного пакета) может быть указано только одно действие. Пакет “Action” содержит имя запрашиваемой операции, а также все требуемые параметры команды.\\ |
- | Response: Пакет содержащий ответ, отправленный сервером Asterisk, на последнюю команду, которую клиент отправил серверу. | + | **Response**: Пакет содержащий ответ, отправленный сервером Asterisk, на последнюю команду, которую клиент отправил серверу.\\ |
- | Event: Пакет с данными относящимися к какому-либо событию сгенерированному сервером Asterisk или его загруженными модулями. | + | **Event**: Пакет с данными относящимися к какому-либо событию сгенерированному сервером Asterisk или его загруженными модулями. |
В основном, клиенты отправляют “Action” пакеты Asterisk серверу, Asterisk сервер производит требуемые операции и возвращает результат (часто это только сообщение об успехе или ошибке) в “Response” пакете. Так как нет никакой гарантии, относительно того, что ответы на команды будут приходить в той же последовательности, что и поступающие запросы, клиентские приложения включают в пакет параметр “ActionID” в каждый “Action” пакет запроса. Этот параметр сервер Asterisk вернет без изменений в ответном “Response” пакете. Таким образом, клиентское приложение может просто сопоставить каждому пакету типа “Action” соответствующий ответ “Response”, в том случае, если требуется отсылать несколько запросов сразу, не дожидаясь пока на каждый из отправленных запросов придет соответствующий “Response”ответ. | В основном, клиенты отправляют “Action” пакеты Asterisk серверу, Asterisk сервер производит требуемые операции и возвращает результат (часто это только сообщение об успехе или ошибке) в “Response” пакете. Так как нет никакой гарантии, относительно того, что ответы на команды будут приходить в той же последовательности, что и поступающие запросы, клиентские приложения включают в пакет параметр “ActionID” в каждый “Action” пакет запроса. Этот параметр сервер Asterisk вернет без изменений в ответном “Response” пакете. Таким образом, клиентское приложение может просто сопоставить каждому пакету типа “Action” соответствующий ответ “Response”, в том случае, если требуется отсылать несколько запросов сразу, не дожидаясь пока на каждый из отправленных запросов придет соответствующий “Response”ответ. | ||
Строка 82: | Строка 82: | ||
* [[kb:asterisk:ami:Challenge|Challenge]]: Генерация хеша для MD5 аутентификации. | * [[kb:asterisk:ami:Challenge|Challenge]]: Генерация хеша для MD5 аутентификации. | ||
* [[kb:asterisk:ami:ChangeMonitor|ChangeMonitor]]: Изменение имени файла для записи вызова для канала. | * [[kb:asterisk:ami:ChangeMonitor|ChangeMonitor]]: Изменение имени файла для записи вызова для канала. | ||
- | * [[kb:asterisk:ami:command|Command]]: Выполнение команды. | + | * [[kb:asterisk:ami:Command|Command]]: Выполнение команды. |
* [[kb:asterisk:ami:ConfbridgeKick|ConfbridgeKick]]: Дропнуть пользователя конференции. | * [[kb:asterisk:ami:ConfbridgeKick|ConfbridgeKick]]: Дропнуть пользователя конференции. | ||
* [[kb:asterisk:ami:ConfbridgeList|ConfbridgeList]]: Список участников конференции. | * [[kb:asterisk:ami:ConfbridgeList|ConfbridgeList]]: Список участников конференции. | ||
Строка 112: | Строка 112: | ||
* [[kb:asterisk:ami:ExtensionState|ExtensionState]]: Проверка состояние екстеншена. | * [[kb:asterisk:ami:ExtensionState|ExtensionState]]: Проверка состояние екстеншена. | ||
* [[kb:asterisk:ami:Filter|Filter]] | * [[kb:asterisk:ami:Filter|Filter]] | ||
- | * [[kb:asterisk:ami:FilterList|FilterList]] | + | * [[kb:asterisk:ami:FilterList|FilterList]]: Показать текущие фильтры событий для этой сессии. |
* [[kb:asterisk:ami:GetConfig|GetConfig]]: Получение заданного файла конфигурации. | * [[kb:asterisk:ami:GetConfig|GetConfig]]: Получение заданного файла конфигурации. | ||
* [[kb:asterisk:ami:GetConfigJSON|GetConfigJSON]]: Получение заданного файла конфигурации в формате JSON. | * [[kb:asterisk:ami:GetConfigJSON|GetConfigJSON]]: Получение заданного файла конфигурации в формате JSON. | ||
Строка 124: | Строка 124: | ||
* [[kb:asterisk:ami:ListCategories|ListCategories]]: Получения списка категорий конфигурационного файла. | * [[kb:asterisk:ami:ListCategories|ListCategories]]: Получения списка категорий конфигурационного файла. | ||
* [[kb:asterisk:ami:ListCommands|ListCommands]]: Получение списка доступных команд для Manager API. | * [[kb:asterisk:ami:ListCommands|ListCommands]]: Получение списка доступных команд для Manager API. | ||
- | * [[kb:asterisk:ami:LocalOptimizeAway|LocalOptimizeAway]] | + | * [[kb:asterisk:ami:LocalOptimizeAway|LocalOptimizeAway]]: Оптимизировать выход локального канала, когда это возможно. |
- | * | + | |
* [[kb:asterisk:ami:Login|Login]]: Начало сеанса Asterisk Manager API. | * [[kb:asterisk:ami:Login|Login]]: Начало сеанса Asterisk Manager API. | ||
* [[kb:asterisk:ami:Logoff|Logoff]]: Выход из Manager API. | * [[kb:asterisk:ami:Logoff|Logoff]]: Выход из Manager API. | ||
Строка 134: | Строка 133: | ||
* [[kb:asterisk:ami:MeetmeMute|MeetmeMute]]: Выключение микрофона у участника конференции Meetme. | * [[kb:asterisk:ami:MeetmeMute|MeetmeMute]]: Выключение микрофона у участника конференции Meetme. | ||
* [[kb:asterisk:ami:MeetmeUnmute|MeetmeUnmute]]: Включение микрофона у участника конференции Meetme. | * [[kb:asterisk:ami:MeetmeUnmute|MeetmeUnmute]]: Включение микрофона у участника конференции Meetme. | ||
- | * [[kb:asterisk:ami:MixMonitorMute|MixMonitorMute]] | + | * [[kb:asterisk:ami:MessageSend|MessageSend]]: Send an out of call message to an endpoint. |
+ | * [[kb:asterisk:ami:MixMonitor|MixMonitor]]: Record a call and mix the audio during the recording. Use of StopMixMonitor is required to guarantee the audio file is available for processing during dialplan execution. | ||
+ | * [[kb:asterisk:ami:MixMonitorMute|MixMonitorMute]] : Mute / unMute a Mixmonitor recording. | ||
* [[kb:asterisk:ami:ModuleCheck|ModuleCheck]]: Проверка загружен ли указанный модуль. | * [[kb:asterisk:ami:ModuleCheck|ModuleCheck]]: Проверка загружен ли указанный модуль. | ||
* [[kb:asterisk:ami:ModuleLoad|ModuleLoad]]: Управление модулями Asterisk. | * [[kb:asterisk:ami:ModuleLoad|ModuleLoad]]: Управление модулями Asterisk. | ||
* [[kb:asterisk:ami:Monitor|Monitor]]: Запись разговора на заданном канале. | * [[kb:asterisk:ami:Monitor|Monitor]]: Запись разговора на заданном канале. | ||
- | * [[kb:asterisk:ami:originate|Originate]]: Совершение исходящего вызова. | + | * [[kb:asterisk:ami:MuteAudio|MuteAudio]]: Mute an audio stream. |
+ | * [[kb:asterisk:ami:Originate|Originate]]: Совершение исходящего вызова. | ||
* [[kb:asterisk:ami:Park|Park]]: Парковка вызова. | * [[kb:asterisk:ami:Park|Park]]: Парковка вызова. | ||
* [[kb:asterisk:ami:ParkedCalls|ParkedCalls]]: Список запаркованных вызовов. | * [[kb:asterisk:ami:ParkedCalls|ParkedCalls]]: Список запаркованных вызовов. | ||
+ | * [[kb:asterisk:ami:Parkinglots|Parkinglots]]: Get a list of parking lots. | ||
* [[kb:asterisk:ami:PauseMonitor|PauseMonitor]]: Временная приостановка записи вызова. | * [[kb:asterisk:ami:PauseMonitor|PauseMonitor]]: Временная приостановка записи вызова. | ||
* [[kb:asterisk:ami:ping|Ping]]: В ответ получим “Pong”. | * [[kb:asterisk:ami:ping|Ping]]: В ответ получим “Pong”. | ||
* [[kb:asterisk:ami:PlayDTMF|PlayDTMF]]: Генерация DTMF сигнала на заданном канале. | * [[kb:asterisk:ami:PlayDTMF|PlayDTMF]]: Генерация DTMF сигнала на заданном канале. | ||
+ | * [[kb:asterisk:ami:PresenceState|PresenceState]]: Check Presence State | ||
* [[kb:asterisk:ami:PRIShowSpans|PRIShowSpans]]: Функция, аналогичная команде CLI "pri show spans". | * [[kb:asterisk:ami:PRIShowSpans|PRIShowSpans]]: Функция, аналогичная команде CLI "pri show spans". | ||
* [[kb:asterisk:ami:QueueAdd|QueueAdd]]: Добавление интерфейса в очередь вызовов. | * [[kb:asterisk:ami:QueueAdd|QueueAdd]]: Добавление интерфейса в очередь вызовов. | ||
* [[kb:asterisk:ami:QueueLog|QueueLog]]: Добавить произвольную запись в queue_log. | * [[kb:asterisk:ami:QueueLog|QueueLog]]: Добавить произвольную запись в queue_log. | ||
+ | * [[kb:asterisk:ami:QueueMemberRingInUse|QueueMemberRingInUse]] Set the ringinuse value for a queue member. | ||
* [[kb:asterisk:ami:QueuePause|QueuePause]]: Отмечает или снимает отметку временной недоступности участника, обрабатывающего очередь вызовов. | * [[kb:asterisk:ami:QueuePause|QueuePause]]: Отмечает или снимает отметку временной недоступности участника, обрабатывающего очередь вызовов. | ||
* [[kb:asterisk:ami:QueuePenalty|QueuePenalty]]: Установка пенальти для участника, обрабатывающего очередь вызовов. | * [[kb:asterisk:ami:QueuePenalty|QueuePenalty]]: Установка пенальти для участника, обрабатывающего очередь вызовов. | ||
Строка 171: | Строка 176: | ||
* [[kb:asterisk:ami:SKINNYshowline|SKINNYshowline]]: Отображает все Skinny устройства c подробной информацией о текущем состоянии. | * [[kb:asterisk:ami:SKINNYshowline|SKINNYshowline]]: Отображает все Skinny устройства c подробной информацией о текущем состоянии. | ||
* [[kb:asterisk:ami:Status|Status]]: Получение состояний активных каналов. | * [[kb:asterisk:ami:Status|Status]]: Получение состояний активных каналов. | ||
+ | * [[kb:asterisk:ami:StopMixMonitor|StopMixMonitor]] Stop recording a call through MixMonitor, and free the recording's file handle. | ||
* [[kb:asterisk:ami:StopMonitor|StopMonitor]]: Останов записи разговора на заданном канале. | * [[kb:asterisk:ami:StopMonitor|StopMonitor]]: Останов записи разговора на заданном канале. | ||
* [[kb:asterisk:ami:UnpauseMonitor|UnpauseMonitor]]: Возобновление остановленной записи вызова. | * [[kb:asterisk:ami:UnpauseMonitor|UnpauseMonitor]]: Возобновление остановленной записи вызова. | ||
Строка 199: | Строка 205: | ||
===== Полезные ссылки ===== | ===== Полезные ссылки ===== | ||
+ | * [[http://wiki.askozia.ru/handbook:ami|Инструкция для подключения к AMI АТС]] | ||
* Описание протокола Asterisk Manager Interface (AMI) на русском [[http://asterisk.ru/knowledgebase/Asterisk+Manager+API]] | * Описание протокола Asterisk Manager Interface (AMI) на русском [[http://asterisk.ru/knowledgebase/Asterisk+Manager+API]] | ||
* Описание протокола Asterisk Manager Interface (AMI) на английском (полное)[[http://www.voip-info.org/wiki/view/Asterisk+manager+API]] | * Описание протокола Asterisk Manager Interface (AMI) на английском (полное)[[http://www.voip-info.org/wiki/view/Asterisk+manager+API]] |