WebRTC: ошибка ICE в браузере с видео / аудио чатом Mesibo

Я работаю над приложением видео / аудио чата в React и Django, используя Mesibo Javascript SDK.

Он работает локально в той же сети, но при попытке подключиться через разные сети браузер Firefox выдает мне эту ошибку.

WebRTC: сбой ICE, добавьте сервер TURN и см. About: webrtc для получения дополнительных сведений.

В Chrome эта ошибка не появляется, но видео / аудиочат по-прежнему не работает и дает мне

Mesibo_OnCallStatus: 50.

Я заметил, что Mesibo использует stun:stun.l.google.com:19302 в качестве STUN-сервера, и попытался изменить его на stun:stun.l.google.com:19305, но бесполезно. Я даже создал учетную запись numb.viagenie.ca, чтобы добавить сервер TURN, который работал несколько минут, а затем выдал эту ошибку.

webrtc: ice failed, похоже, ваш сервер хода не работает.

При проверке на https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/, Chrome выдает код ошибки: 701 для всех вышеуказанных серверов поворота / оглушения, тогда как firefox этого не делает.

Как указано в документации Mesibo, мой веб-сайт полностью защищен с помощью https, а API-интерфейсы Rest вызываются из бэкэнда Django. Я вызываю https://api.mesibo.com/mesibo.js в качестве сценария в файле index.html в react. Я также могу успешно получить

Mesibo_OnConnectionStatus = 1

и уведомление о входящем звонке тоже работает. При ответе на вызов статус вызова меняется с 3 на 5 и через некоторое время выдает эту ошибку webrtc без обработки видео / звука.

Пожалуйста, предложите любую подсказку / решение.


person Sindhuja    schedule 19.01.2021    source источник


Ответы (1)


Чтобы включить webrtc для удаленных вызовов, вам понадобится собственный trun-сервер.

Google не предоставляет бесплатный trun-сервер.

Серверы Free Turn не будут работать в продакшене. Не бойтесь испытать удачу на них. Не все боркены

Вам необходимо создать свое собственное облачное хранилище, например DigitalOcean, AWS. Или для проверки у меня есть трюк

Решение.

  1. Если вы проводите тестирование

    Возможно, вы можете попробовать использовать некоторые серверы Google TURN, которые они здесь используют https://test.webrtc.org/, Я только что проверил консоль браузера и обнаружил следующее:

введите здесь описание изображения

Не уверен насчет LifeTime. Но вы получите это.

  1. Для производства я предлагаю использовать план DigitalOcean 5 $, что очень удобно.

    И вы устанавливаете свой собственный сервер TURN, используя на нем coturn

Если вы хотите, вы также можете использовать Node-turn, который отлично подходит для node серверная часть.

Также есть вариант настройки heroku

Я не знаю, есть ли вариант django или python.

(совет: попробуйте создать сервер поворота на сервере хостинга. Убедитесь, что порт, на котором запущен сервер, открыт)

person Kunal Gupta    schedule 20.01.2021
comment
Я проверил серверы очереди, представленные в test.webrtc, и обнаружил, что они не работают без учетных данных. Кроме того, поскольку Mesibo - это платный коммуникационный API, не должен ли он также предоставлять нам сервер TURN? - person Sindhuja; 20.01.2021
comment
Спасибо, я добавил серверы поворота и оглушения, как указано в test.webrtc.org, и он начал работать. - person Sindhuja; 20.01.2021
comment
Ну, я не знаком с mesibo api, поэтому я подумал, что это будет похоже на оцепенение. Таким образом, у них должно быть что-то там, где SDK правильно проверяет документ. Если я что-то найду, я дам тебе знать - person Kunal Gupta; 20.01.2021
comment
Я только что проверил там документы. Возможно, вы подписались на документ из здесь, если у вас уже есть ключ api - person Kunal Gupta; 20.01.2021