Публикация записей разговоров
Callbee не хранит записи разговоров у себя — вместо этого CRM скачивает их напрямую с вашего сервера FreePBX по прямой HTTP(S)-ссылке. Чтобы это работало, записи нужно опубликовать: настроить веб-сервер, который отдаёт файлы из /var/spool/asterisk/monitor/.
Без публикации записи не попадут в CRM
Сам факт записи разговора (настроен в FreePBX) — не то же самое, что публикация. Если не настроить HTTP(S)-доступ, в карточках звонков будут только длительность и номер — без аудио.
Выберите вашу CRM
Требования к публикации записей отличаются — выберите свою систему:
Требования:
- Протокол — HTTP или HTTPS
- Basic Auth — допустим, но не обязателен
- Самоподписанные SSL-сертификаты — принимает
Рекомендация: используйте
Доступ с IP сотрудников
Сотрудники прослушивают записи со своих рабочих IP. Если вы ограничили порт по IP — добавьте офисную подсеть в whitelist, иначе записи откроются только у владельца портала.
Требования:
- Протокол — только HTTPS
- Валидный SSL-сертификат (Let's Encrypt или коммерческий CA) — обязательно
- Авторизация — без Basic Auth, публичный доступ
Рекомендация: используйте
Самоподписанные не работают
amoCRM не принимает самоподписанные или истёкшие сертификаты. Проверьте оценку через SSL Labs — должна быть A или выше.
Требования:
- Протокол — HTTP или HTTPS
- Basic Auth — рекомендуется
- Самоподписанные SSL — принимает
Рекомендация: если 1С и FreePBX в одной сети — достаточно
Если 1С в облаке (1С:Фреш)
Записи отдаются клиенту напрямую — сервер 1С:Фреш не «проксирует» их. Значит внешний HTTPS с валидным сертификатом обязателен.
Требования:
- Протокол — только HTTPS
- Валидный SSL-сертификат — обязательно
- Авторизация — без Basic Auth
Рекомендация: используйте
Лимит размера и времени
ROISTAT даёт ~30 секунд на скачивание одной записи. Для файлов > 50 МБ включите gzip (есть в примере Caddyfile ниже).
Несколько CRM одновременно
Если используете две и более CRM — настройте только HTTPS с валидным сертификатом. Этот вариант подходит всем четырём системам, и не нужно держать разные точки доступа.
Что понадобится
Вариант 1. HTTP (быстрый старт)
Подходит только для Битрикс24 и 1С в локальной сети. Для amoCRM и ROISTAT нужен
Шаг 1. Установите Docker
curl -fsSL https://get.docker.com | sh
systemctl enable --now docker
Проверьте версию:
docker --version
Шаг 2. Запустите nginx с записями
docker run -d \
--name recs_nginx \
--restart=unless-stopped \
-v /var/spool/asterisk/monitor:/usr/share/nginx/html/monitor:ro \
-v /var/spool/asterisk/voicemail:/usr/share/nginx/html/voicemail:ro \
-p 50381:80 \
nginx
Флаг :ro делает тома только для чтения — nginx физически не может изменить или удалить записи.
Проверьте, что контейнер работает:
docker ps --filter name=recs_nginx
Статус должен быть Up.
Шаг 3. Откройте порт на роутере
Порт 50381/TCP должен быть виден снаружи (кроме сценария «1С в одной сети»). Пробросьте его на роутере:
- Внешний порт:
50381 - Внутренний IP: адрес сервера FreePBX
- Внутренний порт:
50381 - Источник: ограничьте IP-адресами портала CRM и офисной подсетью
Шаг 4. Проверьте доступ
Откройте в браузере:
http://<ваш-домен-или-IP>:50381/monitor/
Должен открыться листинг папок с записями. Если ответ 404 или Connection refused — проверьте Шаг 3.
Вариант 2. HTTPS (рекомендуется для всех CRM)
HTTPS — единственный способ, который работает для всех четырёх CRM. Используем Caddy — сервер, который автоматически получает и обновляет сертификаты Let's Encrypt.
Шаг 1. Установите Docker
(см.
Шаг 2. Подготовьте DNS
В панели управления доменом создайте A-запись:
pbx.company.ru A <внешний-IP-вашей-АТС>
Подождите 5–10 минут пока DNS обновится. Проверьте:
dig +short pbx.company.ru
Должен вернуться ваш внешний IP.
Шаг 3. Создайте Caddyfile
mkdir -p /opt/callbee-recs && cd /opt/callbee-recs
nano Caddyfile
Вставьте:
pbx.company.ru {
root * /srv
file_server browse
encode gzip
log {
output file /var/log/caddy/access.log
}
}
Замените pbx.company.ru на ваш домен.
Шаг 4. Запустите Caddy
docker run -d \
--name recs_caddy \
--restart=unless-stopped \
-p 80:80 -p 443:443 \
-v /opt/callbee-recs/Caddyfile:/etc/caddy/Caddyfile:ro \
-v /var/spool/asterisk/monitor:/srv/monitor:ro \
-v /var/spool/asterisk/voicemail:/srv/voicemail:ro \
-v caddy_data:/data \
caddy
Caddy сам получит SSL-сертификат от Let's Encrypt при первом запросе к домену.
Шаг 5. Проверьте HTTPS
curl -I https://pbx.company.ru/monitor/
Ожидаемый ответ: HTTP/2 200. Если SSL handshake failed — убедитесь что порт 80/TCP открыт (он нужен Let's Encrypt для выдачи сертификата).
Указание ссылки в Callbee
После публикации запишите итоговый базовый URL — он понадобится при создании сервиса в личном кабинете:
Callbee автоматически подставит имя файла записи — например, https://pbx.company.ru/monitor/2026/04/17/out-79991234567-101-20260417-154230-1745678542.12345.wav.
Частые проблемы
amoCRM: «Не удалось загрузить запись» amoCRM не принимает самоподписанные сертификаты. Только Let's Encrypt / коммерческий CA.
Битрикс24: «Файл недоступен» у сотрудников Сотрудники открывают записи со своих IP. Либо откройте порт публично, либо используйте Basic Auth и раздайте credentials в команде.
1С не скачивает файлы Если 1С в облаке, а FreePBX — в локальной сети, домен должен быть доступен из интернета (нужен HTTPS).
ROISTAT: «Истёкший таймаут скачивания»
Записи > 50 МБ не успевают скачаться за 30 секунд. Включите encode gzip в Caddyfile и проверьте канал.
Сертификат Let's Encrypt не выдаётся
- Порт 80 закрыт на роутере — Let's Encrypt использует HTTP-01 challenge
- DNS A-запись не обновилась — проверьте через whatsmydns.net
- Rate limit — Let's Encrypt даёт 5 попыток в час на домен
Записи опубликованы!
Теперь переходите к созданию сервиса в личном кабинете — укажите базовый URL записей в соответствующем поле: