Настройка AMI для FreePBX
Asterisk Manager Interface (AMI) — служебный интерфейс FreePBX/Asterisk, через который Callbee получает события о звонках (начало, ответ, завершение) и управляет вызовами (инициирует исходящие, переадресацию). Без AMI интеграция работать не будет.
В этой инструкции мы создадим отдельного пользователя AMI для Callbee, настроим права доступа и откроем порт 5038 только для наших IP-адресов.
Безопасность — главное
AMI даёт полный контроль над вашей АТС. Никогда не открывайте порт 5038 для всего интернета и не используйте простые пароли. Следуйте инструкции буквально — тут нет «необязательных» шагов.
АТС за NAT
Если FreePBX стоит в локальной сети за роутером, порт 5038/TCP нужно пробросить на роутере: внешний 5038 → внутренний IP сервера FreePBX, порт 5038, протокол TCP. Ограничьте источник IP-адресами Callbee — настройка в разделе роутера «Port Forwarding» / «Правила трансляции». Настройки для конкретных моделей вы делаете самостоятельно.
Что понадобится
Шаг 1. Подключитесь к серверу FreePBX
Откройте терминал и подключитесь к серверу по SSH:
ssh root@<IP-адрес-вашей-АТС>
Проверьте, что Asterisk запущен:
asterisk -rx "core show version"
Вы должны увидеть версию Asterisk. Если команда не работает — убедитесь, что АТС запущена и вы находитесь на правильном сервере.
Шаг 2. Разрешите AMI слушать внешние подключения
По умолчанию AMI слушает только localhost. Нужно разрешить подключения с IP-адресов Callbee.
Откройте файл manager.conf:
nano /etc/asterisk/manager.conf
В секции [general] убедитесь, что параметры выставлены так:
[general]
enabled = yes
port = 5038
bindaddr = 0.0.0.0
displayconnects = no
Параметры
enabled = yes— AMI включёнport = 5038— стандартный порт AMI (менять не нужно)bindaddr = 0.0.0.0— слушать все сетевые интерфейсыdisplayconnects = no— не засорять логи событиями подключений
Сохраните файл (Ctrl+O, Enter) и закройте (Ctrl+X).
Шаг 3. Создайте пользователя AMI для Callbee
Отдельный пользователь нужен чтобы не конфликтовать с другими интеграциями FreePBX (CRM-коннекторы, FOP2, модули WebRTC) и чтобы можно было отозвать доступ Callbee одним движением.
Выберите удобный способ:
Откройте файл manager_custom.conf:
nano /etc/asterisk/manager_custom.conf
Добавьте в конец файла следующий блок (замените ВАШ_СЛОЖНЫЙ_ПАРОЛЬ на реальный пароль):
[crm-to-callbee]
secret = ВАШ_СЛОЖНЫЙ_ПАРОЛЬ
deny = 0.0.0.0/0.0.0.0
permit = 127.0.0.1/255.255.255.0
permit = 185.255.77.197/255.255.255.255
permit = 77.105.155.20/255.255.255.255
permit = 31.44.1.160/255.255.255.255
permit = 178.123.180.59/255.255.255.255
read = system,call,log,verbose,command,agent,user,config,dtmf,reporting,cdr,dialplan,originate,message
write = system,call,log,verbose,command,agent,user,config,dtmf,reporting,cdr,dialplan,originate,message
writetimeout = 500
Сохраните файл (Ctrl+O, Enter) и закройте (Ctrl+X).
Почему именно manager_custom.conf
FreePBX автоматически пересобирает manager.conf при каждом «Apply Config» и затирает ручные правки. Файл manager_custom.conf — специальный «карман» для ваших настроек, FreePBX его не трогает.
- Войдите в FreePBX Admin:
https://<адрес-АТС>/admin - Откройте Admin → System Admin → Asterisk Manager (или Admin → Asterisk Manager Users — зависит от версии FreePBX и установленных модулей)
- Нажмите «Add Manager»
- Заполните поля:
- Нажмите «Submit», затем «Apply Config» в правом верхнем углу
Раздела нет в меню?
Модуль называется «Asterisk Manager Users» (внутреннее имя manager) — бесплатный, ставится через Admin → Module Admin: найдите его в списке Available Online, отметьте Install и нажмите Process. После этого раздел появится в Admin.
Не сокращайте права read/write
Callbee использует все перечисленные разделы. Если убрать какой-то класс — часть функциональности отвалится: исходящие звонки, история вызовов, переадресация, DTMF. Оставьте все классы как в примере выше.
Пароль
- Длина — не меньше 16 символов
- Нельзя использовать логин пользователя AMI,
admin,password, номер телефона, имя компании - Сохраните пароль в менеджере паролей — показан в явном виде он только один раз при настройке сервиса
Шаг 4. Откройте порт 5038 в firewall FreePBX
В FreePBX по умолчанию включён встроенный firewall, который блокирует AMI снаружи. Нужно добавить IP-адреса Callbee в белый список.
- Откройте Admin → Firewall → Networks
- В поле «Add Host/Network» введите первый IP-адрес Callbee:
185.255.77.197/32 - Выберите зону «Trusted»
- Нажмите «Add»
- Повторите для остальных IP:
77.105.155.20/32,31.44.1.160/32,178.123.180.59/32
iptables -I INPUT -p tcp --dport 5038 -s 185.255.77.197 -j ACCEPT
iptables -I INPUT -p tcp --dport 5038 -s 77.105.155.20 -j ACCEPT
iptables -I INPUT -p tcp --dport 5038 -s 31.44.1.160 -j ACCEPT
iptables -I INPUT -p tcp --dport 5038 -s 178.123.180.59 -j ACCEPT
service iptables save
Актуальные IP-адреса
Полный список — на странице IP-адреса сервиса. Если адреса изменятся, мы анонсируем это в Changelog минимум за 30 дней.
Шаг 5. Примените конфигурацию
Перезагрузите модуль manager без рестарта всей АТС:
asterisk -rx "manager reload"
Проверьте что пользователь crm-to-callbee создан:
asterisk -rx "manager show users"
В списке должен появиться crm-to-callbee наравне с системными пользователями FreePBX.
Шаг 6. Проверьте подключение
Убедитесь, что порт доступен локально:
nc -vz localhost 5038
Ожидаемый ответ: Connection to localhost 5038 port [tcp/*] succeeded!
Проверьте авторизацию (подставьте свой пароль):
echo -e "Action: Login\r\nUsername: crm-to-callbee\r\nSecret: ВАШ_ПАРОЛЬ\r\n\r\n" | nc localhost 5038
Ответ Response: Success означает что логин/пароль правильные. Response: Error — перепроверьте файл manager_custom.conf и перезагрузите manager.
Частые проблемы
Connection refused при подключении извне
Firewall блокирует порт 5038. Вернитесь к
Authentication failed в логах Callbee
Пароль в manager_custom.conf не совпадает с указанным в личном кабинете. Проверьте отсутствие пробелов в начале/конце, отредактируйте сервис в my.callbee.io.
Ошибка Permission denied после manager reload
Asterisk запущен не от root и не может прочитать manager_custom.conf. Выполните:
chown asterisk:asterisk /etc/asterisk/manager_custom.conf
chmod 640 /etc/asterisk/manager_custom.conf
События звонков не приходят в Callbee
Проверьте права read — все перечисленные в
АТС за NAT — порт не виден снаружи Если FreePBX стоит в локальной сети за роутером, помимо firewall FreePBX нужно пробросить порт 5038 на самом роутере:
- Внешний порт:
5038 - Внутренний IP: адрес сервера FreePBX в локальной сети
- Внутренний порт:
5038 - Протокол: TCP
- Источник: ограничьте IP-адресами Callbee — на роутерах MikroTik, Keenetic, pfSense, OPNsense, Ubiquiti и большинстве SOHO-роутеров это настраивается в разделе «Port Forwarding» или «Правила трансляции».
Проверьте снаружи:
nc -vz <внешний-IP-или-домен> 5038
Подробности для разных моделей роутеров — в Troubleshooting → Сетевые проблемы.
AMI настроен!
Переходите к публикации записей разговоров — Callbee сможет прикреплять аудиофайлы к карточкам в CRM.