38
Эффективное использование WebRTC в компании Сергей Рыжиков Александр Сербул

Сергей Рыжиков, Александр Сербул (1С-Битрикс)

  • Upload
    ontico

  • View
    1.375

  • Download
    12

Embed Size (px)

Citation preview

Page 1: Сергей Рыжиков, Александр Сербул (1С-Битрикс)

Эффективное использованиеWebRTC в компании

Сергей РыжиковАлександр Сербул

Page 2: Сергей Рыжиков, Александр Сербул (1С-Битрикс)

Коммуникации в компании

Как мы общаемся? Распределенная команда…

Skype

Google Hangouts

Обмен документами, изображениями, паролями…

Page 3: Сергей Рыжиков, Александр Сербул (1С-Битрикс)
Page 4: Сергей Рыжиков, Александр Сербул (1С-Битрикс)

Риски

Нас могут слушать и … слушают ;-)

Зависимость от инфраструктурывендора

Проприетарные протоколы

Развитие продукта в своих целях

Page 5: Сергей Рыжиков, Александр Сербул (1С-Битрикс)

WebRTC или не WebRTC?

• Skype, Google Hangouts – не WebRTC!

• Плагины, закрытые протоколы, кластера вендора

• WebRTC – peer-to-peer• Открытая технология, HTML5• HD• Эффективные кодеки• Не нужен SIP

Page 6: Сергей Рыжиков, Александр Сербул (1С-Битрикс)

Стандарты

http://www.w3.org/TR/webrtc/ - “стандарт”WebRTC 1.0: Real-time Communication Between Browsers (working draft 10 September 2013)

http://www.webrtc.org/ - реализация(компании Google, Mozilla, Opera)

Chrome - stableFirefox – stableOpera - stable

Android (шероховатости)

Page 7: Сергей Рыжиков, Александр Сербул (1С-Битрикс)

Кодеки

• HTML5 конкуренты формату H.264

• WebM: VP8/Vorbis/Matroska• WebRTC: VP8/(Opus, iSAC, iLBC)

• VP9 – c 01/2014 официальная поддержка на YouTube

Page 8: Сергей Рыжиков, Александр Сербул (1С-Битрикс)

Media Capture and Streams –структура браузерного API

http://www.w3.org/TR/mediacapture-streams/W3C Working Draft 03 September 2013

Page 9: Сергей Рыжиков, Александр Сербул (1С-Битрикс)

Media Capture and Streams –структура браузерного API

Работа с тегами Video, объектами Canvas, MediaStream, MediaStreamTrack

Page 10: Сергей Рыжиков, Александр Сербул (1С-Битрикс)

WebRTC – структура API

• «Real-time Communication Between Browsers»

• RTCPeerConnection – видео-аудио связь между браузерами

• RTCDataChannel – передача данных в обе стороны

• RTCStatsReport - статистика

Page 11: Сергей Рыжиков, Александр Сербул (1С-Битрикс)

Полезная книжечка по теме

Page 12: Сергей Рыжиков, Александр Сербул (1С-Битрикс)

WebRTC – структура API

(C) Ilya Grigorik

Page 13: Сергей Рыжиков, Александр Сербул (1С-Битрикс)

WebRTC – структура API

(C) Ilya Grigorik

Page 14: Сергей Рыжиков, Александр Сербул (1С-Битрикс)

Стек WebRTC

Page 15: Сергей Рыжиков, Александр Сербул (1С-Битрикс)

WebRTC – пример

Самый маленький примерWebRTC без кода сигналинга

Сигналинг – на стороне сервера.

Page 16: Сергей Рыжиков, Александр Сербул (1С-Битрикс)

Сделали глубокий вдох…

(C) Ilya Grigorik

Page 17: Сергей Рыжиков, Александр Сербул (1С-Битрикс)

ICE – «как найти друг друга»

(C) Ilya Grigorik

«Interactive Connectivity Establishment (ICE)» (RFC 5245, 2010)

Браузеры «находят» друг друга, используя технологии STUN/TURN.

Видео-аудио передается по протоколу SRTP (/UDP).«Secure Real-time Transport Protocol» (RFC 3711, 2004)

Page 18: Сергей Рыжиков, Александр Сербул (1С-Битрикс)

STUN, TURN

«Session Traversal Utilities for NAT (STUN)»(RFC 5245, 2008)

«Traversal Using Relays around NAT (TURN)»(RFC 5766, 2010)

Сначала NAT изобрели, потом начали его «преодолевать»

Page 19: Сергей Рыжиков, Александр Сербул (1С-Битрикс)

SignalingБраузеры передают описание сессии друг другу – SDP

«An Offer/Answer Model with the Session Description Protocol (SDP)» (RFC 3264, 2002 год)

Сигналинг реализуете Вы - в своем приложении

Page 20: Сергей Рыжиков, Александр Сербул (1С-Битрикс)

Signaling

Page 21: Сергей Рыжиков, Александр Сербул (1С-Битрикс)

Signaling

(C) Ilya Grigorik

Page 22: Сергей Рыжиков, Александр Сербул (1С-Битрикс)

Cтатусы peer

Браузеры обмениваются описанием локальных потоков (streams) и портов через SDP

v=0 o=jdoe 2890844526 2890842807 IN IP4 10.47.16.5 s=SDP Seminar i=A Seminar on the session description protocol u=http://www.example.com/seminars/sdp.pdf [email protected] (Jane Doe) c=IN IP4 224.2.17.12/127 t=2873397496 2873404696 a=recvonly m=audio 49170 RTP/AVP 0 m=video 51372 RTP/AVP 99 a=rtpmap:99 h263-1998/90000

Page 23: Сергей Рыжиков, Александр Сербул (1С-Битрикс)

Cтатусы ICE

Соединение установлено, когда «состыкованы» все медиа-потоки.

Page 24: Сергей Рыжиков, Александр Сербул (1С-Битрикс)

Преодоление NAT

Page 25: Сергей Рыжиков, Александр Сербул (1С-Битрикс)

Преодоление NAT

Page 26: Сергей Рыжиков, Александр Сербул (1С-Битрикс)

Настройка файерволовВариант 1. Открыть все исходящие/входящие UDP.

Вариант 2. Открыть вх./исх. на TURN/STUN-сервер:порт 3478 (UDP/TCP)порт 5349 (TLS)

Открыть исходящие UDP на TURN/STUN сервер, порты каналов

(или все).

Page 27: Сергей Рыжиков, Александр Сербул (1С-Битрикс)

Софт для TURN/STUN

restund (BSD license)TurnServer (GNU GPL)rfc5766-turn-server (New BSD)

Licode – пример открытого MCU для видео-конференций по WebRTC

Page 28: Сергей Рыжиков, Александр Сербул (1С-Битрикс)

Собственный видео-кластер

turn.calls.bitrix24.com – поддержка любых видов NAT (STUN, TURN)

Кластер из нескольких серверов. DNS-failover.

~10% соединений потребуют TURN/relay

1 relay stream => ~ 1Mbps

Page 29: Сергей Рыжиков, Александр Сербул (1С-Битрикс)

Групповые звонки по WebRTC

Page 30: Сергей Рыжиков, Александр Сербул (1С-Битрикс)

Групповые звонки по WebRTC

4 человека – (mesh network) часто оптимально

Не нужен доп. софт.Трафик!

MCU (микширование N медиа-потоков в 1):Medoose+Asterisk, Licode, Kinnex Elementи др.

Page 31: Сергей Рыжиков, Александр Сербул (1С-Битрикс)
Page 32: Сергей Рыжиков, Александр Сербул (1С-Битрикс)
Page 33: Сергей Рыжиков, Александр Сербул (1С-Битрикс)

Звонки из WebRTC наружу…Мы не используем SIP ;-)PHP, javascript, WebSocketsПартнер «Zingaya».

Обл. сервисБраузер SRTP/UDP

WebRTC peer(аудио поток)

Signaling

WebRTC peer(аудио поток)

WebSockets

Asterisk, SIP …

Signaling

Page 34: Сергей Рыжиков, Александр Сербул (1С-Битрикс)

WebRTC и ваша компания

• «Решение» задачи телефонии• Отличная «картинка» и звук • Обмен документами• Безопасность бизнес-коммуникаций• Возможна запись звонков (веб-сервис)

• Прозрачное и открытое решение, можно развивать куда угодно

Page 35: Сергей Рыжиков, Александр Сербул (1С-Битрикс)

Битрикс24 – облачный сервис для совместной работы Полный комплект инструментов для компании

Социальнаясеть

Задачии проекты

Бизнес-чат и видеозвонки

CRM

Мобильноеприложение

Маркетплейс24

Телефония Почтовый сервер

Битрикс24.ДискОнлайн-редактирование

документов

Календари

Page 36: Сергей Рыжиков, Александр Сербул (1С-Битрикс)

Битрикс24.NetworkСоциальнаясеть

Задачии проекты

Бизнес-чат и видеозвонки

CRM

Мобильноеприложение

Маркетплейс24

Телефония Почтовый сервер

Битрикс24.ДискОнлайн-

редактирование документов

Календари

Page 37: Сергей Рыжиков, Александр Сербул (1С-Битрикс)

Мобильное приложение• Бесплатные видеозвонки между

браузером, десктопом и мобильным приложением

• Из мобильного приложения можно будет звонить по корпоративной телефонии

• Синхронизация календаря по CalDav в Android-версии

• WebRTC: Голосовая связь

Page 38: Сергей Рыжиков, Александр Сербул (1С-Битрикс)

Сергей Рыжиков@rsv_bitrix

Спасибо за внимание! Вопросы?

Александр Сербул@AlexSerbul