OmniFlow — омниканальная платформа обработки обращений клиентов. Звонки, чаты и мессенджеры принимаются одним ядром, распределяются по операторам и сценариям и попадают в одну историю обращений. Телефония — один из каналов, а не отдельный продукт: у неё своя граница с интернетом (SIP-фронт и медиа), но решения о звонке принимает то же ядро, что и о чате.
Эта страница — обзор: из чего платформа состоит, как проходит звонок, как разделены организации. Практические шаги — в двух инструкциях: проверка платформы в готовой организации (ничего не устанавливая) и от установки до первого звонка. Если что-то пошло не так — частые проблемы и как их решить.
| Компонент | Что делает |
|---|---|
| SIP-фронт (Kamailio) | принимает телефоны, софтфоны и провайдеров связи: регистрация, проверка паролей, защита от подбора паролей и флуда. О бизнес-логике не знает ничего |
| медиа-прокси (rtpengine) | пропускает голос между интернетом и медиа-движком, в том числе когда телефон за NAT |
| медиа-движок (Asterisk) | соединяет разговоры, проигрывает звук, пишет разговор. Из интернета недоступен |
| ядро | ведёт обращение от начала до конца: куда направить звонок или сообщение, какому оператору или сценарию, что записать в историю. Здесь же вход в панель, права пользователей и все настройки |
| стратегии | сценарии обработки обращений — голосовое меню, очередь, бот, обзвон. Отдельные сервисы: подключаются к шине и работают через тот же программный интерфейс, что и панель |
| шина сообщений (NATS) | единственный путь между компонентами: они обмениваются командами и событиями, а не вызывают друг друга напрямую. Поэтому компонент можно вынести на отдельный сервер, не меняя кода |
| база данных (PostgreSQL) | настройки, пользователи, история обращений |
| хранилище (S3) | записи разговоров и файлы (звуки сценариев, вложения) |
| веб-интерфейс (nginx) | панель администратора, супервизора и оператора в браузере; программный интерфейс; приём сообщений от провайдеров чатов |
Все компоненты поставляются как образы Docker. Сторонние компоненты перечислены с версиями и лицензиями в составе поставки. Компоненты под GPL и LGPL (Asterisk, Kamailio, rtpengine, ffmpeg) собираются из исходных текстов, которые опубликованы вместе с каждой версией.
701 отправляет вызов на SIP-фронт. Тот проверяет, что телефон зарегистрирован и
пароль верный.702) и
поручает медиа-движку её вызвать. Вместо линии это может быть очередь операторов, сценарий
или внешний номер.702 через SIP-фронт.702 звонит. После ответа медиа-движок соединяет стороны, голос идёт через
медиа-прокси.Чат проходит тот же путь, только без SIP-фронта и медиа: сообщение приходит через веб-интерфейс, ядро направляет его оператору или сценарию, переписка попадает в ту же историю.
Одна установка обслуживает несколько организаций (в технических текстах — «тенантов»). У каждой
свой код латиницей: он же SIP-домен её телефонов (у линии 701 организации expert адрес
701@expert). У каждой свои пользователи, линии, транки, маршруты, очереди, сценарии и своя
история обращений.
Изоляция обеспечивается не интерфейсом, а устройством платформы, в три слоя:
Роли пользователей организации:
| Роль | Что может |
|---|---|
| оператор | принимает звонки и чаты, работает в панели оператора |
| супервизор | видит работу операторов и очередей своей организации, вмешивается в неё |
| администратор | настраивает свою организацию: линии, транки, маршруты, очереди, пользователи |
Администратор служебной организации system — администратор всей установки: он заводит
организации и видит состояние платформы целиком.
5061) и WebSocket (порт 8443, звонки из браузера).registry.omniflow.ru.
Установщик запускается одной командой: показывает будущую структуру каталогов, после
подтверждения раскладывает установку и генерирует секреты; внешний адрес и домен сервера
задаются в файле настроек .env. Минимальный сервер для небольшой организации — 2 ядра, 4 ГБ памяти
(6 ГБ со сценариями), 30 ГБ SSD и статический публичный адрес.omniflow-ctl: запуск и остановка, состояние, проверка
(doctor), заведение организаций, пользователей и линий без панели, блокировки, обновление.Пошагово — от установки до первого звонка. Полное руководство администратора —
файл INSTALL.md, который установщик кладёт рядом с установкой.