Зачем мы написали свой софтфон с нуля: от open-source библиотеки до собственного SIP-стэка
История разработки, работа в условиях сетевых ограничений, 200 аккаунтов на десктопе и дорога к AI-ассистенту. Разбираем архитектурные решения и отвечаем на главный вопрос: «А не проще было взять готовое?»
13 открытий413 показов
История разработки, работа в условиях сетевых ограничений, 200 аккаунтов на десктопе и дорога к AI-ассистенту. Разбираем архитектурные решения и отвечаем на главный вопрос: «А не проще было взять готовое?»
Привет, Tproger!
Мы - MCN Telecom. На рынке B2B-телефонии мы часто сталкиваемся с запросами, на которые не ответить стандартными решениями. Один из них — качественный, глубоко интегрированный и управляемый софтфон.
«Зачем изобретать велосипед?» — спрашивали нас на старте. Действительно, готовых SIP-клиентов — пруд пруди. Но наш опыт показал: ни один из них не становится идеальной «последней милей» для нашей экосистемы. Не хватает гибкости, глубины интеграции, контроля над безопасностью или просто устойчивости в сложных сетевых средах. И это касается как корпоративных заказчиков, так и частных абонентов, которые заслуживают такого же уровня надежности.
Сегодня мы хотим рассказать, как прошли путь от прототипа на базе open-source библиотеки до приложения на собственном сетевом ядре, и какие задачи это позволяет решать нашим клиентам — от крупного бизнеса до частных лиц.
Что мы хотели исправить в «мире софтфонов»
Наша целевая аудитория — в первую очередь бизнес, чьи потребности сильно отличаются от задач рядового пользователя. Но многие решения, рожденные из корпоративных требований, делают приложение лучше для всех. Мы сформулировали несколько ключевых проблем, которые не решались массовыми продуктами.
- Безопасность и UX — одно целое. Заставлять пользователя вручную вбивать SIP-логин, пароль, сервер и порт — это атака на его время и безопасность. Фишинг, утечки, банальная забывчивость. Мы убрали этот шаг полностью. Авторизация происходит через единый аккаунт MCN Telecom (для бизнеса) или даже через Госуслуги (для физлиц). Настройки подтягиваются автоматически, провайдеру никогда не передаются «голые» SIP-креды. Безопасность стала не фичей, а следствием удобной архитектуры — и это одинаково важно для всех.
- Предсказуемость в любой точке мира. Пользователь в роуминге не должен становиться недоступным. Наша инфраструктура, распознавая «родной» клиент, обеспечивает корректную обработку вызовов в условиях различных сетевых политик. Достаточно Wi-Fi — и вы на связи без роуминговых расходов. Это критично и для командировочного, и для туриста.
- Масштаб и централизация для бизнеса и простота для частных лиц. Здесь пути немного расходятся. Для бизнеса: наш десктопный клиент (Windows, macOS, Linux) из коробки поддерживает массовую регистрацию до 200 аккаунтов, а управление ими происходит централизованно. Для частного абонента приложение предлагает ту же техническую базу, но в упрощенном интерфейсе — без корпоративных надстроек, которые ему не нужны. В основе для всех лежит один и тот же устойчивый движок.
Эволюция архитектуры: от библиотеки к собственному стэку
- Open-source библиотека на старте. Изначально мы, как и многие, взяли за основу проверенную библиотеку Linphone. Это не «ядро» в смысле ОС, а именно набор готовых компонентов для обработки SIP, RTP (голос/видео), кодеков и т.д.
- Почему переросли? На старте это было правильным решением: быстрый вывод MVP. Но по мере роста мы уперлись в потолок:
- Проблемы с NAT и сложными сетями: Поведение в публичных Wi-Fi, хотспотах, корпоративных VPN было нестабильным.
- Черный ящик: Глубокая кастомизация логики установления вызовов, обработки ошибок, интеграция с нашей инфраструктурой была сложна или невозможна.
- Ограничения контроля: Для фикса специфических багов или оптимизации под наши сценарии нам приходилось ждать апдейтов upstream-проекта или создавать гору костылей.
Решение: свой SIP-стэк. Мы приняли решение и разработали собственный сетевой движок для обработки сигнального (SIP) и медийного трафика. Это дало нам:
- Полный контроль. Мы можем оптимизировать протоколы под наши задачи и адаптировать их к работе в сетях с нестандартными конфигурациями.
- Гибкость. Архитектура заточена под наши нужды. Для бизнеса — это массовые регистрации и глубокая интеграция с АТС. Для всех — это общая надежность связи.
- Стабильность. Мы теперь сами отвечаем за качество связи и можем оперативно реагировать на сетевые инциденты.
Две версии: эволюция без революции
Чтобы не ломать опыт существующим пользователям, мы ведем две ветки:
- MCN Софтфон (стабильный): На основе доработанной нами open-source библиотеки. Работает надежно, получает исправления.
- MCN Софтфон Latest (экспериментальный): Работает на 100% нашем собственном SIP-стэке. Сюда мы добавляем и тестируем новые функции перед выкаткой в стабильную версию. Это наш полигон для инноваций, доступный и для бизнеса, и для гиков-частников, желающих попробовать все первыми.
План — плавно мигрировать всех пользователей на новое ядро через незаметное автообновление, просто улучшив качество их связи.
Что это дает? Конкретные кейсы для разных аудиторий
Собственная разработка — это не про «нам было скучно». Это про конкретные преимущества для разных сегментов:
- Для бизнеса:
- Интеграция «из коробки». Клиент знает о вашей облачной АТС всё. Реализация кастомных сценариев занимает дни.
- Масштаб. Централизованное управление сотнями аккаунтов.
- Для всех (B2B и B2C):
- Устойчивость. Наш клиент сохраняет работоспособность в условиях, где стандартные SIP-клиенты испытывают трудности. Мы реализовали альтернативные методы установления и поддержания сессий.
- Безопасный и простой вход. Через единый аккаунт или Госуслуги.
- Общее технологическое ядро. И бизнес-клиент, и частный абонент получают все преимущества собственного стэка: качественную связь, работу в роуминге, регулярные обновления. Разница — лишь в наборе доступных надстроек (панель администрирования, кастомизация правил и т.д.).
Что в будущем?
Собственный стек открывает двери для проектов, которые с чужим кодом были бы немыслимы — и эти новшества будут доступны в той или иной форме всем нашим пользователям:
- AI-ассистент. Не просто «умный» автоответчик, а полноценный агент, способный понять intent звонящего, перевести речь в реальном времени. Для бизнеса — интеграция с CRM, для частных лиц — умный секретарь.
- eSIM как сервис. Покупка и активация eSIM-профиля для путешествий прямо внутри приложения. Фича, родившаяся из запросов бизнес-роуминга, но невероятно полезная и для частных поездок.
Выводы
Для нас новый софтфон — это не «звонилка», а стратегический элемент экосистемы связи. Переход на собственную разработку сетевого ядра был неизбежным шагом для обеспечения контроля, безопасности и гибкости, которых требуют наши клиенты. Именно эта общая технологическая база позволяет нам предлагать корпоративный уровень надежности и частным абонентам, просто «упаковывая» ее в более простой и понятный интерфейс.
Готовы обсудить в комментариях!
- Сталкивались ли вы с ограничениями готовых SIP-клиентов?
- Как решаете задачи обеспечения VoIP-связи в сетях со строгими политиками безопасности?
- Насколько для ваших проектов критичен контроль над сетевым стэком?
13 открытий413 показов



