Разработка 4 мин чтения

Janus Gateway: видеосвязь в своём приложении на своём сервере

Janus Gateway это WebRTC-сервер общего назначения для видеозвонков, конференций и SIP-моста внутри вашего сайта на вашем сервере. Разбираю лицензию GPL-3.0, плагины, управление, TURN и честно говорю, что готового интерфейса в нём нет.

Janus GatewayWebRTCвидеосвязьSIP
Коротко. Janus Gateway это WebRTC-сервер общего назначения от компании Meetecho (репозиторий meetecho/janus-gateway, лицензия GPL-3.0, первый коммит в феврале 2014 года). Он принимает видео и звук из браузера и через плагины отдаёт их нужной функции: видеокомната на много участников, звонок на SIP-телефонию, трансляция из GStreamer или FFmpeg, запись. Ставится на свой сервер с Linux или macOS. Готового интерфейса нет, фронтенд и бэкенд пишет разработчик. Цифр по нагрузке у проекта нет.
Хотите внедрить это у себя?

Сделаю под ключ: разберу задачу, назову срок и цену. Чтобы начать, напишите в Telegram одной фразой.

Сайты и веб-приложения

Когда готовой комнаты мало

Клинике нужна кнопка «Позвонить врачу» в личном кабинете. Онлайн-школе нужен урок внутри платформы, где ученик уже вошёл и видит свои оценки. Консультант хочет, чтобы клиент нажал на ссылку и заговорил прямо в окне вашего сайта.

Для части таких задач хватает готовой комнаты. Я разбирал Jitsi, BigBlueButton для вебинаров и LiveKit для интерактивных эфиров. Janus лежит ниже. Это серверная часть, которая соединяет браузеры по WebRTC и гоняет медиа. Комнаты, роли, кнопки и вход пользователей вы строите сами. Он нужен, когда важна полная свобода интерфейса или мост между браузером и обычной телефонией.

Что это за проект и что я проверил

Проверял 17.10.2026 по репозиторию meetecho/janus-gateway. Разработчик Meetecho, в исходниках автором указан Lorenzo Miniero. Первый коммит от 11 февраля 2014 года, проекту больше двенадцати лет. На странице репозитория около 9,2 тысячи звёзд и 2,6 тысячи форков. Последний коммит от 16 октября 2026 года, за предыдущие 30 дней их 38. Последняя версия v1.4.3: тег и запись в CHANGELOG от 12 октября 2026 года. До неё вышли v1.4.2 (23 сентября) и v1.4.1 (20 апреля). Раздел Releases на странице GitHub при проверке был пуст, поэтому даты беру из тега и CHANGELOG.

Лицензия по файлу COPYING: GNU GPL версии 3. В конце файла добавлено исключение Meetecho, но только про линковку с OpenSSL. Исключения для плагинов там нет. JavaScript-библиотека janus.js лежит под лицензией MIT. Ядро и плагины написаны на C. README говорит, что сервер сделан для Linux, на macOS собирается, а Windows не поддерживается.

Плагины: из чего собирается ваш продукт

Ядро Janus договаривается о соединении и передаёт медиа, логика живёт в плагинах из того же репозитория. По исходникам подтверждены такие:

  • VideoRoom: видеокомната по схеме SFU, где каждый публикует свой поток, а остальные подписываются. Подходит от вебинара с одним спикером до конференции на всех. Запись на сервер включается настройкой комнаты.
  • AudioBridge: сведение звука в комнате, только Opus, без видео.
  • Streaming: раздача в браузер потоков по RTP (например, из GStreamer или FFmpeg), RTSP-источников и файлов.
  • Record&Play: запись и воспроизведение в собственном формате MJR.
  • TextRoom: текстовые комнаты через data channels. VideoCall: звонок один на один по имени.
  • Lua и Duktape (JavaScript): логику плагина пишете скриптом.

SIP-мост и обычные телефоны

SIP-плагин регистрируется на вашем SIP-сервере, например Asterisk, от имени пользователя из браузера. Человек звонит с вашего сайта на добавочный номер или принимает входящий. Во время разговора можно слать DTMF, ставить на удержание и переводить звонок. Для медиа поддерживаются обычный RTP и SDES-SRTP. Собственных телефонных номеров у Janus нет, ему нужен SIP-сервер или оператор, к которому он подключается.

Плагин NoSIP проще: он только переводит медиа между WebRTC и обычным RTP, а сигнализацию ведёт ваше приложение.

Как им управлять и как закрыть доступ

Приложение говорит с Janus по JSON-протоколу. Транспорты в репозитории: HTTP, WebSockets, MQTT, RabbitMQ, Nanomsg и Unix-сокеты.

Доступ закрывается несколькими способами: общий api_secret, авторизация по токенам (подписанные токены HMAC, хэш по умолчанию sha1, sha256 поддерживается) и отдельный admin_secret для административного API. У комнат VideoRoom есть pin, secret и режим signed_tokens. Параметр restrict_info_api прячет от посторонних список плагинов и версий. Так я бы строил вход: человек заходит в ваше приложение, ваш бэкенд выдаёт ему токен на нужную комнату, браузер подключается к Janus с этим токеном.

Что важно учесть

Разработчик нужен и на фронтенд, и на бэкенд, причём знающий WebRTC. В папке html есть демо-страницы под основные плагины. README при этом пишет, что janus.js сделан в основном для демо и не обязательно годится для продакшена, и советует для Node.js библиотеку Janode.

Установка. В README описана сборка из исходников: autogen.sh, configure, make, с набором библиотек. README отдельно предупреждает, что libnice из Ubuntu известен проблемами и лучше собрать свежий. По данным packages.ubuntu.com (вторичный источник) в Ubuntu 24.04 и 26.04 пакет janus имеет версию 1.1.2. В CHANGELOG версий 1.4.2 и 1.4.3 по нескольку исправлений безопасности с пометкой SEC, поэтому версию из дистрибутива нельзя считать равной свежей.

TURN. В конфиге Janus сказано прямо: TURN для пользователей настраивается на стороне клиента, а в Janus его прописывают, только если сам сервер сидит за строгим фаерволом. Значит, отдельный TURN-сервер вам нужен для клиентов из жёстких сетей. В комментарии к конфигу упомянут coturn как совместимый с TURN REST API. Для сервера за NAT есть параметры nat_1_1_mapping и rtp_port_range. Что часть пользователей без TURN не подключится, это общее правило WebRTC.

Нагрузка. Официальных цифр я не нашёл. FAQ говорит, что бенчмарк зависит от плагина и сделать его непросто. Каждый экземпляр Janus автономен, встроенной мультитенантности нет, несколько серверов связывает приложение вокруг.

Лицензия и закон. По GPL-3.0 код сервера открыт. Если вы запускаете Janus у себя и приложение говорит с ним по протоколу, это обычная схема. Если правите код Janus или пишете свой плагин и передаёте сборку заказчикам, условия GPL читайте вместе с юристом, это не моя оценка. В документации Janus про российское законодательство ничего нет. Запись в VideoRoom и SIP-плагине есть как функция, но 152-ФЗ и согласие на запись разговоров я не обещаю.

Что можно сделать уже сейчас

Запишите сценарий: кто кому звонит, сколько человек в комнате одновременно, нужны ли телефонные номера и запись, какие роли. Если нужна просто комната без своего интерфейса, лучше взять готовое. Для односторонних эфиров смотрите Owncast и Restreamer.

Поднимите Janus на тестовом сервере и откройте демо VideoRoom из папки html. Проверьте звонок из домашней сети и с мобильного интернета.

Поставьте TURN и повторите проверку из офиса с жёстким фаерволом.

Дальше макет: бэкенд с выдачей токенов и страница с видеоокном в вашем кабинете. Собрать это под ключ могу в рамках услуги по сайтам и веб-приложениям.

Частые вопросы

Можно ли поставить Janus на Windows?

Нет, README говорит, что Windows не поддерживается. Неофициальным сборкам .exe доверять не стоит.

Можно ли принимать звонки с обычного телефона?

Через SIP-плагин, если есть SIP-сервер или оператор, который доставляет вызов. Сам Janus номеров не даёт.

Как масштабировать на несколько серверов?

По FAQ проекта встроенной поддержки нет: экземпляр работает сам по себе, а несколькими управляет ваше приложение.

Коротко о главном

Janus Gateway под GPL-3.0 даёт серверную основу для встроенного видео и SIP-моста на вашем сервере. Интерфейс, токены, TURN, обновления и нагрузочные испытания остаются на вашей команде.

Если хотите встроить видеозвонок в свой сайт или приложение, напишите мне в Telegram кодовое слово «ВИДЕОСВЯЗЬ». Я оценю задачу и скажу, хватит ли готовой комнаты.

Обсудим вашу задачу

Что я делаю для бизнеса

Напишите одной фразой, что нужно. Отвечу, что подойдёт, сколько займёт и сколько стоит. Сообщение уже подготовлено.

  • Боты в Telegram, MAX, VK
  • Автоматизация процессов и CRM
  • Аналитика и дашборды
  • Сайты и лендинги под ключ
Пишу о разработке, ИИ и законах для бизнеса

Разборы, кейсы и практика — без воды. Выходит регулярно, читать 3–5 минут.

Готовые решения под ключTurnkey solutionsSoluciones llave en mano交钥匙解决方案Түлхүүр гардуулах шийдэл 451 готовых IT-решений для бизнеса451 ready-made IT solutions for business451 soluciones IT listas para empresas451 个面向企业的现成 IT 解决方案Бизнест зориулсан 451 бэлэн IT шийдэл Автоматизация, боты, AI, 152-ФЗ и платформы · бесплатная консультацияAutomation, bots, AI, data privacy and platforms · free consultationAutomatización, bots, IA, privacidad de datos y plataformas · consulta gratis自动化、机器人、AI、数据合规与平台 · 免费咨询Автоматжуулалт, бот, AI, өгөгдлийн хамгаалалт ба платформ · үнэгүй зөвлөгөө Смотреть каталогView catalogVer catálogo查看目录Каталог үзэх