АТС на своём сервере, Ubuntu 24.04

Телефония, которая работает на вашем сервере

MonoPbx — SIP-АТС с ядром на Rust, звуком через rtpengine, консолью в браузере и приложениями для iOS, Android и macOS. Ставится одной командой. Записи разговоров, история звонков и настройки остаются у вас на диске.

Мы сделали её, потому что хотели АТС, которую можно поднять за один вечер и через год всё ещё понимать, как она устроена.

7 дней бесплатно, дальше по лицензии.

Веб-консоль MonoPbx, страница «История звонков»: фильтры по направлению, результату, датам и номерам, выгрузка в CSV, XLSX и PDF и список внутренних звонков между номерами 103, 104 и 106 с результатом и длительностью.
История звонков в веб-консоли. Тестовые звонки на нашей лабораторной АТС.

Что внутри

В каждой установке есть всё. Никаких редакций и платных модулей.

Звонки

SIP-транки и DID, план набора, который приводит набранный номер к E.164, рабочее время, переадресация, перевод, парковка и перехват. B2BUA свой, на Rust; звук идёт через rtpengine.

SIP 5060 UDP/TCP · TLS 5061 · WSS /sip
Opus · G.722 · G.711 · G.729

Очереди

Очереди и группы вызова, обратный звонок из очереди, табло и инструменты супервизора. Оператор входит в очередь и выходит из неё кодом с любого телефона.

*62 вход · *63 выход

IVR и сценарии

Голосовые меню с донабором номера и библиотека приветствий: загрузите MP3, WAV или Ogg либо запишите голос прямо в браузере. Если меню мало, нарисуйте сценарий на холсте, прогоните тестовый звонок и опубликуйте новую версию.

Голосовая почта и запись

Личные и общие ящики, голосовая почта на e-mail. Запись по правилу или по кнопке, с предупреждением о записи, паузой, сроком хранения и юридическим удержанием. Записи на диске зашифрованы.

Общий inbox

SMS, WhatsApp, Facebook Messenger, Telegram и чат для вашего сайта приходят в один общий ящик. Рядом — внутренний чат команды.

Настольные телефоны

Автонастройка по MAC-адресу для Yealink, Grandstream, Cisco MPP, Fanvil, Snom, Poly и Htek, с линейными и BLF-кнопками. Один раз пропишите DHCP option 66 — новые телефоны настроятся сами.

https://<ваш сервер>/prov/

Страница «Отчёты» MonoPbx: статистика по внутренним номерам за последние 7 дней — исходящие, отвеченные, входящие, пропущенные звонки и время разговоров, кнопки выгрузки в CSV, XLSX и PDF.
Отчёты: статистика по внутренним номерам за 7 дней. Любой отчёт выгружается в CSV, XLSX и PDF.
Факс

PDF отправляется из веб-клиента. Входящие факсы приходят на e-mail.

Отчёты

История звонков и CDR в ClickHouse, отчёты по очередям и операторам, выгрузка в CSV, XLSX и PDF. Журнал аудита и история изменений, из которой можно откатить настройку.

Несколько компаний

На одной установке можно держать много компаний, у каждой свои пользователи, номера и настройки; в PostgreSQL они разделены построчно.

API

REST API с документом OpenAPI, подписанные вебхуки, WebSocket с событиями и MCP-сервер для ИИ-инструментов.

ИИ, если нужен

Выключен, пока компания сама его не включит. Голосовые агенты как шаг сценария, расшифровки, саммари звонков и подсказки оператору прямо во время разговора. Ключ ваш: по умолчанию Anthropic Claude, либо любой API, совместимый с OpenAI.

Языки

Консоль и приложения работают на английском, испанском (Мексика), португальском (Бразилия), французском, немецком, итальянском, русском, китайском и японском.

Каждый сервисный код — это настройка

Сервисные коды начинаются со * и по умолчанию такие, как ниже. Компания может поменять любой на странице «Коды набора»; изменение действует со следующего звонка. Телефон в браузере берёт настоящие коды компании.

НабратьЧто произойдёт
*00 … *09Припарковать звонок на место 0–9
*10 … *19Забрать самый давний звонок с этого места
*20*102Перехватить звонок, который звонит на 102
*61 / *60«Не беспокоить»: включить / выключить
*86Своя голосовая почта
*22Тестовый звонок: АТС сбросит и перезвонит вам с музыкой
*62 / *63Войти во все свои очереди / выйти из них
*35 / *36Принудительно открыть / закрыть своё рабочее время
Страница «Коды набора и парковка» MonoPbx: код парковки 0, код возврата 1, десять мест парковки и поля для перехвата, интеркома, режима «Не беспокоить» и рабочего времени.
Коды набора и парковка в консоли администратора.

MonoPhone — в телефоне, который и так у всех в кармане

Нативные приложения для iOS, Android и macOS. Для остальных — WebRTC-софтфон прямо в веб-клиенте.

Входящий звонок будит телефон через VoIP push на iOS и высокоприоритетное сообщение на Android, так что держать приложение открытым не нужно. Вход — по QR-коду из веб-клиента. SIP-пароли никто не вводит.

Разговор не обрывается, когда телефон переходит с Wi-Fi на мобильный интернет. Удержание, перевод, парковка, запись, второй звонок, голосовая почта, присутствие и чат — всё в приложении. CarPlay и Android Auto тоже поддерживаются.

iOS · Android · macOS · Браузер (WebRTC) · CarPlay · Android Auto

Номеронабиратель MonoPhone на телефоне. MonoPhone во время звонка: кнопки «без звука», клавиатура, динамик, удержание, второй звонок, перевод, запись и парковка. Чат команды в MonoPhone.

С чем работает

Карточка звонящего, запись звонков и звонок по клику в вашей CRM и хелпдеске. Учётные данные запечатываются ключом компании и больше не показываются.

Уже сейчас: HubSpot, Salesforce, Zoho CRM, Pipedrive, Odoo, Zendesk, Jira, любая CRM с HTTP API, каталоги Microsoft 365 и LDAP / Active Directory, вход через OpenID Connect, Twilio или любой HTTP API для SMS, WhatsApp, Messenger, Telegram, вебхуки, MCP.

В разработке, ещё не выпущено: Microsoft Teams, Kommo, Битрикс24, Zapier, Make, n8n, Freshdesk, ServiceNow, Slack, Shopify, WooCommerce, Mercado Libre, Stripe, Mercado Pago, SCIM, расширение для браузера.

Установка

На чистом сервере с Ubuntu 24.04 и публичным IP выполните:

curl -fsSL https://ilinaya.github.io/monopbx-apt/install.sh | sudo bash

Для сертификата Let’s Encrypt установщик попросит e-mail. Заодно укажите свой домен; без --domain сервер получит имя <ip>.sslip.io:

curl -fsSL https://ilinaya.github.io/monopbx-apt/install.sh | sudo bash -s -- --domain pbx.example.com --email you@example.com

Дальше

  1. Откройте консоль. В конце установщик печатает адрес консоли и одноразовую ссылку настройки. Потеряли её? sudo monopbx setup-url выдаст новую.
  2. Создайте аккаунт. E-mail, пароль, затем код из приложения-аутентификатора. Это первый администратор вашей АТС.
  3. Начинается 7-дневный бесплатный период. Всё уже включено. Добавьте SIP-транк, заведите внутренние номера и войдите в MonoPhone по QR-коду.
ubuntu@pbx:~Так выглядит конец установки
curl -fsSL https://ilinaya.github.io/monopbx-apt/install.sh | sudo bash -s -- --domain pbx.example.com --email you@example.com
==> Prerequisites
==> MonoPbx APT repository: https://ilinaya.github.io/monopbx-apt
    signing key verified: 320D C78E FDC8 439C 04F5  FCA6 3E87 FE3D 4C71 5372
==> Installing monopbx (with Ubuntu's docker.io and docker-compose-v2 unless Docker is already installed)
    monopbx 0.1.0~edge
==> monopbx setup --domain pbx.example.com --email you@example.com
    …
==> MonoPbx is ready
    console:        https://pbx.example.com
    web softphone:  wss://pbx.example.com/sip
    SIP:            pbx.example.com port 5060 (UDP/TCP), 5061 (TLS)
    first admin:    open the single-use setup link printed above (.../setup#token=...)
    manage:         monopbx status | logs | sudo monopbx backup | upgrade | uninstall

Требования

Система
Ubuntu 24.04 LTS, amd64. На других системах установщик останавливается и ничего не меняет.
Сервер
2 CPU, 4 ГБ RAM, 20 ГиБ свободно в /var/lib
Сеть
Публичный IP. DNS-имя — по желанию.

Порты

80/tcpПроверка для сертификата, редирект на HTTPS
443/tcpКонсоль, API, телефон в браузере (wss://…/sip)
5060 udp+tcpSIP
5061/tcpSIP поверх TLS
30000–40000/udpRTP-звук. Без него звонок соединится, но никто никого не услышит.

Если включён ufw, установщик сам откроет эти порты. В облачном файрволе откройте те же.

Не Ubuntu? Есть сборка для Docker Compose (в том числе для arm64) и обычные манифесты Kubernetes с Kustomize. Инструкция для Docker Compose · Инструкция для Kubernetes · Полная инструкция по установке

Цена

Вы платите за одновременные звонки, а не за пользователей. В любом тарифе пользователей сколько угодно и есть все функции: ИИ-агенты с вашим ключом, контакт-центр, общий inbox, приложения и интеграции.

Одновременных звонковВ год (USD)
4199 $
8249 $
16499 $
32899 $
641 599 $
128+Напишите нам
  • Звонки между вашими собственными телефонами не считаются.
  • Помесячная оплата выходит примерно на 20% дороже.
  • Несколько компаний на одной установке: те же тарифы плюс 5 $ за компанию в месяц.
  • Любой тариф начинается с 7 бесплатных дней после установки. Лицензия покупается в консоли.

Лицензия по числу одновременных звонков, как у 3CX, и все функции сразу включены.

Где лежат ваши данные

У вас на диске
Настройки, записи, голосовая почта, чаты и история звонков хранятся в вашем PostgreSQL, вашем ClickHouse и вашем хранилище. Звонки через нас не ходят.
Одно исключение: push
Чтобы разбудить телефон при входящем звонке, ваш сервер отправляет уведомление через push-релей MonoPbx. С флагом --no-relay приложения звонят, только пока открыты.
Шифрование на диске
Записи и файлы по умолчанию хранятся зашифрованными. Ключи CRM и провайдеров запечатаны ключом компании.
Вход
Двухфакторный вход, SSO через OpenID Connect и список разрешённых IP для администраторов.
SIP-периметр
Блокировка по странам, белые и чёрные списки, автоматические баны и STIR/SHAKEN для номера звонящего.
Резервные копии
Зашифрованные, по расписанию, восстанавливаются на новый сервер. sudo monopbx backup снимет копию прямо сейчас.

Вопросы

Можно ставить в продакшен?

Пока мы не выпустили первый релиз, в APT-репозитории лежат предварительные сборки (0.1.0~edge). В документации на каждой странице прямо написано, что уже работает, а что только запланировано. Сначала попробуйте на запасном сервере.

Что будет через 7 дней?

Вы покупаете лицензию в консоли — по числу звонков, которые нужны одновременно. Цены — выше, в разделе «Цена».

Нужен ли свой домен?

Нет. Без --domain сервер получает имя на sslip.io по своему IP и всё равно получает настоящий сертификат. Свой домен можно подключить, когда он появится.

Как обновляться?

sudo apt-get upgrade. Пакет сначала делает pg_dump, затем прогоняет миграции и самопроверку, а если что-то пошло не так — сам откатывается на прошлую версию.

Какие настольные телефоны подходят?

Есть шаблоны автонастройки для Yealink, Grandstream, Cisco MPP, Fanvil, Snom, Poly и Htek. Любой стандартный SIP-телефон можно зарегистрировать вручную.

Каких ИИ-провайдеров можно подключить?

По умолчанию Anthropic Claude, либо любой API, совместимый с OpenAI chat completions. Ключ у каждой компании свой. ИИ выключен, пока компания его не включит.