Интерфейс управления Asterisk, или как его называют Asterisk Manager Interface (AMI) представляет собой интерфейс для управления вашей IP – АТС внешними приложениями, путем передачи команд или получения различных телефонных событий. Зачастую, данный интерфейс используется для интеграции 1С и asterisk, что позволяет принимать звонки в интерфейсе 1С, выполнять вызовы, подтягивать карточку клиента при входящем звонке и так далее.
Разберем настройку данного интерфейса и параметров подключения к нему на примере настройки через графический интерфейс администратора FreePBX 13 и через консоль сервера (CLI) в настройках CentOS
Настройка AMI в FreePBX
В верхнем меню навигации, выберите вкладку Settings и далее перейдите в раздел Asterisk Managers, как указано на скриншоте ниже:
Далее, для того, чтобы добавить нового пользователя, нажмите на кнопку Add Manager:
Откроется окно настройки нового пользователя. Разберем каждый пункт отдельно:
- Manager Name - Имя пользователя AMI. Не должно содержать в себе пробелы.
- Manager Secret - Пароль для пользователя AMI.
- Deny - В данном поле вы можете указать IP – адрес и маску подсети, с которых необходимо запретить подключение к AMI по указанным данным. Если хотите указать несколько подсетей, то используйте символ &. Например, 192.168.1.0/255.255.255.0&192.168.2.0/255.255.255.0
- Permit - Укажите IP – адрес и маску подсети, с которых разрешено подключение к AMI через этого пользователя. Синтаксис аналогичен как и в поле Deny.
- Write Timeout - Укажите таймаут, который будет использовать Asterisk при записи данных через данную AMI учетную запись. По умолчанию, период равен 100 миллисекунд.
Следующим шагом будет настройка прав данного пользователя. Для этого, необходимо перейти во вкладку Rights
По окончанию настроек нажмите Submit
Настройка AMI в CLI
Сделаем тоже самое, но через консоль CentOS. Для этого, необходимо подключиться к серверу по SSH и выполнить следующие итерации:
Перед началом работ по изменению конфигурации, рекомендуем сделать резервную копию файла.
[root@localhost ~]# vim /etc/asterisk/manager.conf //подключаемся к конфигурационному файлу manager.conf
Делаем следующие настройки в секции [general]:
[general] enabled = yes //включает AMI port = 5038 //порт для подключения к AMI интерфейсу bindaddr = 0.0.0.0 //откуда принимать подключения (по умолчанию, 0.0.0.0 – разрешено подключаться со всех адресов) displayconnects=no ; //отображать ли подключения к Asterisk в командной строке
Переходим к настройке самого пользователя. Для этого, под секцией [general] необходимо создать нового пользователя. Дадим ему имя – test с паролем P@ssw0rd :
[test] //аналогично полю Manager Name в FreePBX secret = P@ssw0rd //аналогично полю Manager Secret deny=0.0.0.0/0.0.0.0 //аналогично полю Deny permit=127.0.0.1/255.255.255.0 //аналогично полю Permit read = system,call,log,verbose,command,agent,user,config,command,dtmf,reporting,cdr,dialplan,originate,message write = system,call,log,verbose,command,agent,user,config,command,dtmf,reporting,cdr,dialplan,originate,message writetimeout = 5000 //аналогично полю Write Timeout
По окончанию настроек, нажмите комбинацию клавиш :x! для сохранения файла. После этого, введите команду:
[root@localhost ~]# asterisk -rx "core restart now"
Проверяем подключения к AMI
Теперь, после настроек, проверим подключение к AMI через созданного пользователя. Для этого, через консоль сервера сделаем подключение по протоколу telnet на порт 5038, который указан в секции [general] в параметре Port, конфигурационного файла manager.conf :
[root@localhost ~]# telnet localhost 5038 Trying ::1... telnet: connect to address ::1: Connection refused Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. Asterisk Call Manager/2.8.0 Action: login Username: test Secret: P@ssw0rd Response: Success Message: Authentication accepted
Готово. Ответом на подключения является сообщение Success. Это означает, что интерфейс настроен и готов к работе.