Хак jssip добавляет браузерную SIP-звонилку в интерфейс AlterCPA Pro. Оператор нажимает кнопку Позвонить в заказе — звонок инициируется прямо в браузере через WebRTC. Повторное нажатие завершает звонок.
Подготовка к использованию хака
VPS-сервер
Для работы хака нужен отдельный VPS-сервер с публичным IP.
Требования к серверу:
- ОС: Ubuntu 22.04 или Debian 12
- CPU: 2 vCPU
- RAM: 2 GB
Домен
Для работы телефонии потребуется домен с поддоменом sip, ведущим на ранее приобретённый сервер.
Чтобы создать поддомен перейдите в настройку зон DNS и добавьте запись с названием sip, типом A и IP-адресом сервера:
sip A 12.34.56.78
Установка Asterisk
Для запуска установщика выполните на сервере команду от имени root:
wget https://cpa.st/setup/asterisk.sh && bash asterisk.sh <sip.yourdomain.com> <yourplatformdomain.com> <api-token>
Обязательно подмените значения из образца на свои:
- <sip.yourdomain.com> — домен телефонии
- <yourplatformdomain.com> — домен CRM-панели AlterCPA
- <api-token> — API-ключ администратора AlterCPA
После успешной установки в консоли будет выведено:
==> Installation complete. WSS endpoint : wss://sip.yourdomain.com:8089/ws Operator sync: every 5 min (/var/log/jssip-sync.log)
SIP-провайдер
Для успешной работы провайдер должен соответствовать следующим требованиям:
- Аккаунт для транка. У провайдера должен быть создан SIP-аккаунт (trunk) с логином и паролем, которые потребуются вам для настройки компании на стороне AlterCPA.
- Поддержка входящих INVITE от Asterisk. Провайдер должен принимать SIP INVITE с IP-адреса вашего Asterisk-сервера. При необходимости добавьте IP в белый список у провайдера.
- Кодеки G.711 (ulaw/alaw). Asterisk общается с провайдером по стандартным кодекам G.711. Убедитесь, что провайдер их поддерживает (практически все поддерживают).
- Формат номера. Asterisk отправляет номер в том виде, в котором он записан в CRM. Если провайдер требует определённый формат, убедитесь, что номера в заказах введены соответственно.
Дополнительные рекомендации:
- Разрешить SIP UDP от IP Asterisk. Если у провайдера есть IP-фильтрация, добавьте IP Asterisk-сервера в разрешённые.
- Проверить NAT на стороне провайдера. Некоторые провайдеры требуют явного указания внешнего IP Asterisk. Если звонки устанавливаются, но нет звука — проблема в NAT/медиа-адресе.
- Выбрать транспорт UDP (не TCP/TLS). Конфиг Asterisk использует UDP для связи с провайдером. Убедитесь, что провайдер принимает UDP.
- Retry interval. Asterisk повторяет регистрацию у провайдера каждые 60 секунд. При смене настроек обновление займёт не более 60 секунд.
Интерфейс настройки хака
- Чекбокс Сервер установлен и активен. Включает хак. Ни в коем случае не делайте это заранее (до завершения установки Asterisk), так как при недоступном сервере браузер будет пытаться подключиться и зависать.
- Домен вашего SIP-сервера — тот же, что указывался при установке Asterisk (
sip.yourdomain.com). Без протокола и порта.
Настройка каждой компании
Настройку компании можно осуществить двумя способами:
- От имени любого администратора платформы через Управление → Компании → Правка нужной компании → раздел "Подключение к серверу телефонии".
- От имени администратора конкретной компании через Управление → Настройки компании → раздел "Подключение к серверу телефонии".
Сама настройка идентична для обоих способов:
- Включить звонилку в заказах. Активирует SIP-кнопки для операторов компании.
- SIP-сервер. Домен или IP-адрес вашего SIP-провайдера. Только хост, без
sip://и без порта. - Порт. Порт SIP-провайдера. Оставьте пустым, если провайдер использует стандартный (5060).
- Пользователь. Логин в системе провайдера: обычно номер телефона или имя пользователя.
- Пароль. Пароль SIP-аккаунта, предоставленный провайдером.
После сохранения настроек Asterisk подхватит их в течение 15 минут.
Важно! По умолчанию, в ссылку вписывается номер телефона в формате tel:+79999999999 и его очень легко оттуда скопировать. Чтобы скрыть телефон от оператора, нужно перейти в настройки компании или команды, и там в поле URL обзвона ввести id:[id] — так вместо ссылки с телефоном будет вставляться ссылка вида id:12345 с номером заказа, а звонилка уже сама сделает запрос к платформе в момент набора номера и получит сам номер в зашифрованном виде.