AMI – это интерфейс управления Asterisk-ом. Существуют два основных способа подключения к AMI:
- AMI поверх TCP (обычно называют просто AMI).
- AMI поверх HTTP, т.е. AJAM (Asynchronous Javascript Asterisk Manager).
Итак, для подключения к AMI первым делом необходимо создать пользователя. Для этого поправить конфиг /etc/asterisk/manager.conf, следующим образом:
[general] enabled = yes port = 5038 bindaddr = 0.0.0.0 allowmultiplelogin = yes webenabled = yes httptimeout = 60 [1cajam] secret = myajamuserpass deny=0.0.0.0/0.0.0.0 permit=0.0.0.0/0.0.0.0 read = call,cdr,user,config write = call,originate,reporting,command,system
В секции [general] описаны правила, разрешающие подключение через AMI. Секция [1cajam] описывает пользователя и его привилегии. Имя секции (1cajam) - это имя пользователя AMI (создавать его в системе не нужно, достаточно описать в конфиге), secret - это его пароль. Опции deny и permit определяют IP-адреса, с которых возможно осуществлять подключение (в данном случае разрешено с любого IP). read, write - это привилегии чтения и записи таблиц Asterisk.
Далее, т.к. управление будет осуществляться через AJAM - необходимо опубликовать интерфейс. Правим конфиг /etc/asterisk/http.conf.
Для протокола HTTP на порту 8088:
[general]
enabled=yes
enablestatic=yes
bindaddr=0.0.0.0
bindport=8088
prefix=asterisk
Для протокола HTTPS на порту 4443:
[general]
enabled=yes
bindaddr=0.0.0.0
bindport=8088
prefix=asterisk
enablestatic=yes
tlsenable=yes
tlsbindaddr=0.0.0.0:4443
tlscertfile=/etc/asterisk/ssl/ajam.pem
tlsprivatekey=/etc/asterisk/ssl/ajam.pem
Соответственно для протокола HTTPS необходимо сгенерировать сертификаты:
#cd /tmp
#openssl req -new -x509 -days 365 -nodes -out /tmp/foo.pem -keyout /tmp/foo.pem
#mkdir /etc/asterisk/ssl #mv /tmp/foo.pem /etc/asterisk/ssl/ajam.pem
Перечитываем настройки и проверяем настройки:
#service asterisk restart
#asterisk -rx "http show status"
В ответ должны получить что-то типа:
HTTP Server Status: Prefix: /asterisk Server Enabled and Bound to 0.0.0.0:8088 HTTPS Server Enabled and Bound to 0.0.0.0:4443 Enabled URI's: /asterisk/httpstatus => Asterisk HTTP General Status /asterisk/phoneprov/... => Asterisk HTTP Phone Provisioning Tool /asterisk/amanager => HTML Manager Event Interface w/Digest authentication /asterisk/arawman => Raw HTTP Manager Event Interface w/Digest authentication /asterisk/manager => HTML Manager Event Interface /asterisk/rawman => Raw HTTP Manager Event Interface /asterisk/static/... => Asterisk HTTP Static Delivery /asterisk/amxml => XML Manager Event Interface w/Digest authentication /asterisk/mxml => XML Manager Event Interface /asterisk/ws => Asterisk HTTP WebSocket Enabled Redirects: None.
Т.е. наш сервер ждет подключение по http на порту 8088 и по https на порту 4443.
Также работоспособность можно проверить через браузер попыткой авторизации:
http://asterisk_ipadress:8088/asterisk/mxml?action=login&username=1cajam&secret=myajamuserpass
Собственно все! Дополнительные материалы можно посмотреть здесь.
Перечитывать настройки не перезагружая сервер можно из CPL командой core reload. Или из командной строки linux: #asterisk -rx "core reload"
ОтветитьУдалить