- Как выбрать SIP-сервер: Kamailio, OpenSIPS или FreeSWITCH — реальный выбор для бизнеса
- Что вообще делают эти три сервера?
- Сравнение: что на самом деле отличает их в продакшене
- Когда выбирают Kamailio
- Когда выбирают OpenSIPS
- Когда выбирают FreeSWITCH
- Частые ошибки, которые ломают проекты
- Как лучше сделать: 3 сценария выбора
- Сценарий 1: У тебя маленький бизнес, 10–200 сотрудников, хочешь всё в одном
- Сценарий 2: Ты телеком-стартап или корпорация с 1000+ одновременных вызовов
- Сценарий 3: Ты оператор, крупный провайдер, или строишь инфраструктуру для миллионов звонков
- Что делать прямо сейчас
- Итог: что брать
Как выбрать SIP-сервер: Kamailio, OpenSIPS или FreeSWITCH — реальный выбор для бизнеса
Ты хочешь построить VoIP-инфраструктуру — звонки, конференции, интеграция с CRM, маршрутизация по регионам, отказоустойчивость. И тебе предлагают три варианта: Kamailio, OpenSIPS, FreeSWITCH. Все они open-source. Все «бесплатные». Но что выбрать, чтобы не потратить полгода на костыли и не уйти в технический долг?
Я не буду пересказывать документацию. Я скажу, что реально происходит, когда эти серверы ставят в продакшене — и как не попасть в ловушку, в которую попали сотни компаний до тебя.
Что вообще делают эти три сервера?
Все три — SIP-серверы. Но разница в том, как они это делают.
- Kamailio — это как гоночный двигатель. Он не звонит, не воспроизводит аудио, не делает конференции. Он только маршрутизирует SIP-пакеты. Очень быстро. Очень надёжно. Для него задача — не обрабатывать звонок, а не дать ему упасть.
- OpenSIPS — брат-близнец Kamailio, но с более дружелюбным API и чуть более развитой экосистемой для скриптов. Тоже фокус на маршрутизации, но проще настраивать, если ты не хочешь писать код на C.
- FreeSWITCH — это целая телефонная станция. Он и маршрутизирует, и генерирует звук, и делает конференции, и говорит голосом, и записывает звонки. Он не просто пересылает SIP — он играет в телефон.
Если ты думаешь: «А что, разница большая?», — спроси себя: ты хочешь построить почтовый фильтр или почтовый ящик с голосовой почтой, автоответчиком и системой уведомлений?
Сравнение: что на самом деле отличает их в продакшене
Вот что реально важно, когда ты уже не в тестовом режиме, а в реальном бизнесе:
| Критерий | Kamailio | OpenSIPS | FreeSWITCH |
|---|---|---|---|
| Скорость обработки SIP | Самый быстрый. До 100 000 вызовов/сек на одном ядре (при идеальной настройке) | Очень высокая. Почти как Kamailio, но чуть медленнее из-за абстракций | Умеренная. До 5 000–10 000 вызовов/сек на мощном сервере |
| Сложность настройки | Высокая. Нужен опыт работы с SIP, понимание протоколов, умение читать код на C | Средняя. Скрипты на языке OpenSIPS, понятнее, чем в Kamailio | Средняя–высокая. Много возможностей, но конфиги громоздкие |
| Встроенные функции (аудио, конференции, IVR) | Нет. Только SIP-маршрутизация | Нет. Только SIP-маршрутизация | Да. Всё включено: IVR, конференции, запись, TTS, ASR |
| Интеграция с БД и внешними системами | Отличная. Поддержка MySQL, PostgreSQL, Redis, LDAP — всё на уровне ядра | Отличная. Лучше документация и готовые модули | Хорошая. Но требует дополнительных модулей и часто — кастомных скриптов |
| Масштабируемость | Лучшая. Используется в крупных операторах (Vodafone, Deutsche Telekom) | Отличная. Часто используется в телеком-стартапах | Ограничена. Для 50 000+ одновременных вызовов нужна кластеризация, что сложно |
| Поддержка и сообщество | Меньше новичков, но глубокая экспертиза. Много старых, но стабильных версий | Активное сообщество. Часто обновляется, много примеров в интернете | Самое большое сообщество. Много туториалов, но много «костылей» в примерах |
| Требования к серверу | Низкие. Работает на 1–2 ядрах даже при высокой нагрузке | Низкие. Почти как Kamailio | Высокие. Требует много RAM и CPU для аудио-обработки |
Важно: не сравнивай их как «кто лучше». Сравнивай как «кто подходит под твою задачу».
Когда выбирают Kamailio
Ты выбираешь Kamailio, если:
- Ты строишь SIP-прокси для оператора, телеком-стартапа или корпоративной АТС с тысячами одновременных вызовов.
- Тебе нужна максимальная стабильность и минимальная задержка — даже если это значит, что тебе придётся писать 500 строк скриптов на C для простого правила маршрутизации.
- У тебя есть инженер, который уже знает SIP-протокол на уровне пакетов, а не «по настройке в GUI».
- Ты не хочешь, чтобы сервер тормозил из-за обработки аудио — ты выносишь медиа на отдельные серверы (например, на Asterisk или FreeSWITCH).
Пример: компания из Восточной Европы, которая обслуживает 80 000 абонентов в 15 странах. Они используют Kamailio как ядро маршрутизации, а аудио-обработку и IVR делают через отдельные FreeSWITCH-кластеры. Почему? Потому что Kamailio не упадёт, даже если FreeSWITCH-узел перегрузится.
Когда выбирают OpenSIPS
OpenSIPS — выбор, если ты хочешь то же, что и Kamailio, но с меньшим порогом входа.
- Ты хочешь высокую производительность, но не хочешь писать на C.
- Тебе нужна гибкость: маршрутизация по региону, балансировка нагрузки, фильтрация по номеру, интеграция с CRM через API.
- У тебя есть DevOps-инженер, который умеет писать скрипты на Python или Lua — и тебе важно, чтобы логика была читаемой.
- Ты не хочешь тратить месяц на настройку, но тебе важна масштабируемость.
Пример: SaaS-платформа для аутсорсинговых колл-центров. Они используют OpenSIPS для маршрутизации звонков по региону и статусу агента (онлайн/офлайн/занят), а базу данных с клиентами подключают через PostgreSQL. Всё работает на 4-ядерном сервере с 16 ГБ RAM. Настройка заняла 3 недели — и они до сих пор не меняли архитектуру.
Когда выбирают FreeSWITCH
FreeSWITCH — это когда ты хочешь «всё в одном».
- Ты строишь небольшую АТС для компании с 50–500 сотрудниками.
- Тебе нужны: автоответчик, запись звонков, голосовые меню, IVR с распознаванием речи, конференции, звонки в WhatsApp через SIP-шлюз.
- Ты не хочешь управлять тремя разными серверами — хочешь один, который делает всё.
- Ты готов платить за это ценой: больше ресурсов, выше сложность отладки, меньше масштабируемости.
Пример: клиника с 200 врачей. Они используют FreeSWITCH как центральный коммутатор: звонки идут на номера врачей, при пропущенном вызове — голосовое сообщение с просьбой оставить запись, звонки перенаправляются на администратора, все звонки записываются для аудита. Всё — на одном сервере. Не для 10 000 одновременных вызовов, но для 200 — идеально.
Частые ошибки, которые ломают проекты
Вот что я видел десятки раз — и каждый раз это приводило к остановке проекта на 2–3 месяца:
- «Возьму FreeSWITCH, потому что он «всё умеет»» — и потом понимаешь, что при 1000 одновременных вызовов сервер уходит в swap, а IVR начинает отвечать с задержкой 5 секунд. FreeSWITCH — не для масштаба, а для функционала.
- «Kamailio — самый быстрый, значит, он лучший» — и тратишь 6 месяцев, пытаясь заставить его воспроизводить звук. Он не умеет. Это как купить гоночный двигатель и надеяться, что он сам заведёт машину.
- «Надо интегрировать с CRM — возьму OpenSIPS» — и потом обнаруживаешь, что для связи с PostgreSQL нужно писать модуль на C, а документация устарела. Опыт показывает: если ты не знаешь, как работает SIP-регистрация — OpenSIPS тебя убьёт.
- «Все пишут про FreeSWITCH — значит, он проще» — и ты копируешь конфиг из YouTube. Через месяц звонки пропадают, потому что ты не понял, как работает модуль mod_sofia и почему он не видит твой DNS.
- «Я не буду тестировать под нагрузкой» — и в первый день после запуска система падает при 300 одновременных вызовах. Потому что ты тестировал на 10.
Как лучше сделать: 3 сценария выбора
Вот как я бы поступил, если бы стоял перед этим выбором.
Сценарий 1: У тебя маленький бизнес, 10–200 сотрудников, хочешь всё в одном
Выбирай FreeSWITCH.
- Установи на Ubuntu 22.04 LTS.
- Настрой IVR через XML-файлы (документация на FreeSWITCH.org — хорошая).
- Подключи запись звонков в папку на диске — и включи архивацию по месяцам.
- Интегрируй с CRM через REST API (модуль mod_http_cache + Lua-скрипт).
Плюс: всё работает через веб-интерфейс. Минус: не масштабируется. Но тебе это не нужно — пока.
Сценарий 2: Ты телеком-стартап или корпорация с 1000+ одновременных вызовов
Выбирай OpenSIPS.
- Настрой маршрутизацию по региону и по номеру (например, вызовы из США — через Twilio, из России — через SIP-провайдер).
- Используй Redis для хранения сессий — это быстрее, чем база данных.
- Интегрируй с PostgreSQL для хранения логов и статистики.
- Вынеси аудио на отдельные серверы с FreeSWITCH или Asterisk — и используй OpenSIPS только как «диспетчер».
Это классический паттерн: OpenSIPS — как мозг, FreeSWITCH — как руки.
Сценарий 3: Ты оператор, крупный провайдер, или строишь инфраструктуру для миллионов звонков
Выбирай Kamailio.
- Собери его из исходников с оптимизацией под твой CPU (AVX2, SSE4).
- Используй MySQL или PostgreSQL для хранения пользователей и правил.
- Подключи модуль
tmдля отказоустойчивости иslдля логирования. - Сделай мониторинг через Prometheus + Grafana — Kamailio умеет экспортировать метрики.
Ты не будешь делать IVR на Kamailio. Ты не будешь записывать звонки. Ты будешь делать то, что никто другой не может: держать 50 000 вызовов в секунду без сбоев.
Что делать прямо сейчас
Не трать время на сравнение теорий. Сделай это:
- Определи: сколько одновременных звонков тебе нужно поддерживать? (Не «сколько пользователей», а именно одновременных вызовов.)
- Нужны ли тебе: IVR, запись, конференции, голосовые меню? Если да — FreeSWITCH. Если нет — Kamailio или OpenSIPS.
- Есть ли у тебя в команде человек, который понимает SIP-заголовки, кодеки, транзакции? Если нет — не трогай Kamailio. Бери OpenSIPS.
- Скачай Docker-образы всех трёх и запусти локально. Сделай простой сценарий: звонок из 1001 → 1002. Запусти 50 вызовов одновременно. Посмотри, как ведёт себя память и CPU.
- Почитай последние 3–5 статей в блогах: opensips.org, kamailio.org, freeswitch.org. Увидишь, кто активно пишет — значит, проект живой.
Ты не выбираешь «лучший» сервер. Ты выбираешь правильный инструмент для своей задачи.
Итог: что брать
- Для малого бизнеса, IVR, записей, простой АТС — FreeSWITCH. Он не идеален, но он работает «из коробки».
- Для масштабируемой маршрутизации, телеком-проектов, интеграций — OpenSIPS. Баланс между мощью и удобством.
- Для операторов, миллионов вызовов, высокой отказоустойчивости — Kamailio. Если ты не знаешь, что такое SIP-регистрация, не трогай его.
Никто не спасёт тебя, если ты выберешь не тот инструмент. Но если ты поймёшь, что именно тебе нужно — ты выберешь правильно. И не будешь тратить полгода на то, чтобы понять, почему звонки не идут.
Информация в этой статье носит ознакомительный характер. Выбор и настройка SIP-инфраструктуры требуют технической экспертизы. Перед внедрением в продакшен проконсультируйтесь с инженером, имеющим опыт в VoIP-системах.
