WebRTC

Изменено Пт, 5 Сен на 4:13 PM

Web Real-Time Communications (WebRTC) — это технология с открытым кодом для голосовой, текстовой и видеосвязи в реальном времени через браузеры по IP-сети.

Ключевые компоненты:

  • ICE — протокол для поиска оптимального пути соединения.
  • STUN — сервер для определения публичного IP-адреса устройства.
  • TURN — сервер-ретранслятор, используемый при невозможности прямого соединения (например, из-за NAT).


Преимущества подхода:

  • Не требует установки плагинов или дополнительного ПО.
  • Упрощает разработку: не нужно работать с низкоуровневыми языками (C/C++), достаточно JavaScript-API.
  • Работает во всех основных браузерах (Chrome, Firefox, Safari, Edge) и может быть интегрирована в мобильные и десктопные приложения.


  1. Выбор клиента — Используйте любой WebRTC-совместимый клиент.

    КлиентПлатформаОсобенности
    JsSIPБраузерНе требует установки, работает в браузере
    LinphoneWindows, macOS, Linux, iOS, AndroidМультиплатформенный, открытый исходный код
    Jitsi MeetВсе платформыДля конференций и видеозвонков
    SiperbiOSОптимизирован для iPhone/iPad
     
  2. Данные доступны в личном кабинете KOMPaaS в разделе «Телефония» → вкладка «Настройки SIP»:

    • Логин и Пароль.

    • Сервер: webrtc.kompaas.tech

    • Порт (WebRTC WSS): 35060
       

  3. В итоге строка подключения будет выглядеть так:
    wss://webrtc.kompaas.tech:35060
     
    

 

Пример с JsSIP (open-source WebRTC-softphone для браузера).

import JsSIP from 'jssip';

// Укажите WebRTC-сокет
const socket = new JsSIP.WebSocketInterface('wss://webrtc.kompaas.tech:35060');

// Конфигурация SIP-аккаунта
const configuration = {
  sockets  : [ socket ],
  uri      : 'sip:34XXXXXXXXX@webrtc.kompaas.tech', // логин из ЛК
  password : 'ваш_SIP_пароль'
};

// Создайте SIP-агента
const ua = new JsSIP.UA(configuration);

// Запустите
ua.start();

// Регистрируйте события
ua.on('connected', () => console.log('Подключено к KOMPaaS'));
ua.on('registered', () => console.log('SIP-регистрация успешна'));
ua.on('newRTCSession', (data) => {
  console.log('Новый звонок:', data);
});


⚠️Безопасность!

Все медиапотоки в WebRTC зашифрованы. Для использования его API требуется безопасное соединение (HTTPS). Однако методы сигнализации (используемые для инициирования соединения) не стандартизированы, поэтому разработчики должны обеспечивать собственную безопасность.



Статья помогла?

Отлично!

Спасибо за ваш отзыв

Извините, что не удалось помочь!

Спасибо за ваш отзыв

Расскажите, как мы можем улучшить эту статью!

Выберите хотя бы одну причину
Требуется проверка CAPTCHA.

Комментарий отправлен

Мы ценим вашу помощь и постараемся исправить статью