Web Real-Time Communications (WebRTC) — это технология с открытым кодом для голосовой, текстовой и видеосвязи в реальном времени через браузеры по IP-сети.
Ключевые компоненты:
- ICE — протокол для поиска оптимального пути соединения.
- STUN — сервер для определения публичного IP-адреса устройства.
- TURN — сервер-ретранслятор, используемый при невозможности прямого соединения (например, из-за NAT).
Преимущества подхода:
- Не требует установки плагинов или дополнительного ПО.
- Упрощает разработку: не нужно работать с низкоуровневыми языками (C/C++), достаточно JavaScript-API.
- Работает во всех основных браузерах (Chrome, Firefox, Safari, Edge) и может быть интегрирована в мобильные и десктопные приложения.
Выбор клиента — Используйте любой WebRTC-совместимый клиент.
Клиент Платформа Особенности JsSIP Браузер Не требует установки, работает в браузере Linphone Windows, macOS, Linux, iOS, Android Мультиплатформенный, открытый исходный код Jitsi Meet Все платформы Для конференций и видеозвонков Siperb iOS Оптимизирован для iPhone/iPad Данные доступны в личном кабинете KOMPaaS в разделе «Телефония» → вкладка «Настройки SIP»:
Логин и Пароль.
Сервер:
webrtc.kompaas.tech
Порт (WebRTC WSS):
35060
- В итоге строка подключения будет выглядеть так:
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). Однако методы сигнализации (используемые для инициирования соединения) не стандартизированы, поэтому разработчики должны обеспечивать собственную безопасность. |
Статья помогла?
Отлично!
Спасибо за ваш отзыв
Извините, что не удалось помочь!
Спасибо за ваш отзыв
Комментарий отправлен
Мы ценим вашу помощь и постараемся исправить статью