ARI - Asterisk REST Interface

REST - Representational state transfer
REST - архитектура программного обеспечения для распределенных систем. REST очень простой интерфейс управления информацией без использования каких-то дополнительных уровней. Каждая единица информации однозначно определяется глобальным идентификатором, таким как URL. Каждый URL имеет строго заданный формат.

На момент создания Asterisk, в 1999 году, был локальной Private Branch Exchange (PBX) и настраивался при помощи статических файлов конфигурации.

Этого достаточно для реализации базовых задач, но требовался механизм для управления вызовами Asterisk внешними приложениями. Поэтому были добавлены два API: Asterisk Gateway Interface(AGI) и Asterisk Manager Interface (AMI).

Эти два интерфейса имеют разные задачи:

  • AGI позволяет вызвать внешнее приложение (скрипт) из диаплана Asterisk и передать ему управление каналом. Интерфейс является синхронным - действия предпринятые через AGI не возвращаются, пока не будут завершены.
  • AMI интерфейс позволяющий внешнему приложению отправлять Asterisk команды и/или считывать события, через TCP/IP протокол. В отличие от AGI, AMI является асинхронным интерфейсом управления событиями. По большей части, AMI используется для получения информации о состоянии каналов и инициирования вызовов.

Используя оба API, вместе, могут быть разработаны сложные приложения, использующие Asterisk.

Тем не менее, в то время как AMI хорошо на контролирует вызовы, а AGI позволяет удаленному процессу выполнять план набора, ни один из этих интерфейсов не позволяет разработчику создавать свои собственные телекоммуникационные приложения. По сути, не было API обращающегося напрямую к примитивам (channels, bridges) в Asterisk, необходимого для простого создания таких приложений.

Для приложений, полноценно взаимодействующих с Asterisk, был создан интерфейс ARI.

ARI: API для создания телекоммуникационных приложений.

ARI позволяет разработчикам приложений создавать мощные, телекоммуникационные приложения на любом языке программирования. ARI предоставляет доступ ресурсам Asterisk, обычно используемым для работы с ключевыми модулями - channels, bridges, endpoints, media и т.д. - через интуитивно понятный интерфейс REST (Representational state transfer).

  • Asterisk
  • Bridges
  • Channels
  • Endpoints
  • Events
  • Recordings
  • Sounds
  • Applications
  • Playbacks
  • Devicestates
  • Mailboxes

Являясь асинхронным интерфейсом, ARI передает состояние объектов и контролируется пользователем с помощью JSON событий через WebSocket.

Через контроль над фундаментальными ресурсами Asterisk, приложение написанное на любом языке, управляет логикой Asterisk.

ARI не замена для AMI или AGI. Скорее, он является дополнительным API:

  • AGI позволяет контролировать выполнение плана набора канала
  • AMI высокоуровневое управление вызовами.
  • ARI позволяет заменить DialPlan Asterisk на диалплан вашего собственного приложения.

ari ami agi

Asterisk REST Interface (ARI)

Приступая к работе с ARI

Asterisk RESTful Interface (ARI) Swagger-UI

~~socialite~~

  • asterisk/ari.txt
  • Последние изменения: 2017/03/23