Kapti
@Kapti
Project Manager

Как решается проблема webrtc в сетях 3G?

Не работает соединение между клиентами через WebRTC, если хотя бы один из клиентов подключен через 3G модем Билайн.

Для связи используется конфигурация, включающая адреса STUN и TURN серверов. При этом, если соединение установлено не через 3G, то связь устанавливается нормально.

На 3G подключении проблема возникает уже на этапе ICE. В консоли браузера firefox сообщение об ошибке: "ICE failed. Your TURN server appears to be broken.".

В логах WebRTC соединения можно увидеть такую последовательность сообщений (привожу в сокращенном виде):

(stun/INFO) TURN Timed out
(turn/WARNING) mode 20
(turn/WARNING) nr_turn_client_error_cb
(turn/WARNING) failed
(turn/INFO) cancelling
(turn/WARNING) nr_turn_allocated_cb called with state 4
(turn/WARNING) nr_turn_allocated_cb failed
(stun/INFO) Timed out
(ice/INFO) All pairs are failed, and grace period has elapsed. Marking component as failed.

В чем может быть причина? Есть ли типовые или не типовые решения для этой проблемы?
  • Вопрос задан
  • 871 просмотр
Пригласить эксперта
Ответы на вопрос 1
zoonman
@zoonman
⋆⋆⋆⋆⋆
Timed out говорит о том, что время вышло, скорее всего пакеты пропадают по пути следования.
Во-первых, не используйте публичные STUN/TURN серверы.
Во-вторых, попробуйте настроить ваш turn сервер, чтобы он работал через стандартные 80 и 443 порты.
Очень желательно, чтобы вся коммуникация проходила через 443 порт и TLS, в таком случае затратнее делать DPI.
Если перенастройка всего в типичные веб-порты и заворот в TLS туннель не поможет, тогда прийдется искать что-то вместо WebRTC. Скорее всего провайдер использует сигнатурные методы определения трафика и просто рушит пакеты.
Провайдеры не заинтересованы в конкурирующем внутрисетевом трафике, поэтому будьте готовы к борьбе.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы