Webrtc — хочу позвонить!

в 3:56, , рубрики: WebRTC, браузеры, телефония, метки:

Webrtc2sip — хочу позвонгить!

1. Что тестировали
2. Особенности браузеров
3. Рабочий вариант

1. Что тестировали

— webrtc2sip.org
Полноценный сервер,
очень много зависимостей, к примеру doubango.org/ — фреймворк. Тянет море зависимостей, просто так не собирается.
Сделать рабочую конфигурацию на нем не получилось.
Требует серьезного вмешательства в исходный код, так как сильно «заточен» под свой сайт.

— click2dial.org
JS SIP клиент, с возможность совершения click2call, остановились на нем.
Требует серьезного вмешательства в код, так как разработчики «захардкодили» звонки только на свой сайт.

— Asterisk
В представлении не нуждается.
В последней версии прекрасно обслуживает webrtc звонки без патчей и какого-либо вмешательсва в код.

— sipml5.org
Лучший вариент клиента для тестирования. Гибкая настройка, полная поддержка SIP протокола.
Использовали этот клиент для всех тестов.

code.google.com/p/sip-js/
Хороший клент, но «староват» и плохо обновляется.

— Куча всевозможных поделок с sourceforge

2. Особенности браузеров
После всех тестов, которые мы провели, резюме такое:
Полная поддержка webrtc и websockets «из коробки» сейчас только у Google Chrome.
Для остальных браузеров есть плагин code.google.com/p/webrtc4all/, в котором заявленна поддержка:
Safari, Firefox, IE, Opera.
Из наших тестов плагин заработал только на IE 10, на IE9 нет поддержки websockets (возможно, решается еще одним плагином)
В FireFox есть задокументированная проблема с SRTP (Secure RTP) — браузер шлет не все заголовки, звонок не принимается.
В Opera тесты не удались, так как последняя версия Оперы не захотела работать с последней версией плагина.
Safari — не тестировался.

3. Рабочий вариант.
В качестве сервера мы выбрали Asterisk, в качестве click2call клиента — click2dial.org.
Астериск требует разных настроек под разные топологии сети. В нашей конфигурации звонок совершается за 5-10 секунд, в зависимости от загруженности сети (не уверен).
Перекодировку из форматов webrtc (а это g.711) в другие — выполняет сам.
Мы протестировали g722 (который, на нашей телефонной станции Avaya).
Особое внимание необходимо уделить STUN серверам. ru.wikipedia.org/wiki/STUN
Общее положение таково:
Поддержка ICE должна быть включена везде (это обязательно требование webrtc)
Если Asterisk находится во внешней сети и клиенты подключаются из внешней сети — необходимы STUN-сервера. Есть свободные google.
Если Asterisk за NAT, либо внутри сложной сети, как наша — все STUN сервера необходимо выключить. В этом случае Asterisk будет весь траффик проводить через себя.

Технология хорошая, интересная, но развернуть «из коробки» — пока нет.

Автор: sublimelion

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js