Asterisk Manager Interface (AMI) – мощный программный интерфейс. Он позволяет внешним программам как управлять, так и контролировать систему Asterisk1. Этот интерфейс часто используется для интеграции Asterisk с существующими бизнес-процессами и системами, программным обеспечением CRM (Customer Relationship Management – управление взаимоотношениями с клиентами). Он также может применяться для разнообразных приложений, таких как программы автоматического набора номера и системы click-to-call (звонок-по-щелчку).
Чтобы использовать интерфейс Manager, необходимо задать учетную
запись в файле /etc/asterisk/manager.conf. Этот файл будет выглядеть примерно так:
[general]
enabled = yes
port = 5038
bindaddr = 0.0.0.0
[oreilly]
secret = notvery
;deny=0.0.0.0/0.0.0.0
;permit=209.16.236.73/255.255.255.0
read = system,call,log,verbose,command,agent,user
write = system,call,log,verbose,command,agent,user
В разделе [general] необходимо активировать сервис, задав параметр enabled = yes. Чтобы эти изменения вступили в силу, понадобится перезагрузить интерфейс Manager (команда module reload manager из консоли Asterisk). По умолчанию используется TCP-порт 5038.
Команды в интерфейс Manager доставляются в пакетах, имеющих следующий синтаксис (строки завершаются CR+LF)1:
Действие: <тип действия>
Ключ 1: Значение 1
Ключ 2: Значение 2
и т. д. ...
Переменная: Значение
Переменная: Значение
и т. д. ...
Например, чтобы пройти аутентификацию в интерфейсе Manager (которая необходима для получения возможности любого взаимодействия), необходимо передать следующее:
Action: login
Username: sipring
Secret: password
<CR+LF>
Дополнительная CR+LF в пустой строке обеспечит передачу в интерфейс Manager пакета целиком. Пройдя аутентификацию, вы сможете запускать действия, а также видеть события, формированные Asterisk. В сильно загруженной системе может быть очень сложно или практически невозможно отслеживать все это «невооруженным глазом». Чтобы отключить для Asterisk возможность посылать события, можно добавить параметр Events в команду на регистрацию:
Action: login
Username: sipring
Secret: password
Events: off
<CR+LF>
Пример как использовать AMI для "звонка с сайта" можно посмотреть на сайте
читать