Webrt c соединение перевернуть странное поведение с кандидатами реле - PullRequest
2 голосов
/ 26 января 2020

У меня есть два клиента, общающихся через webrt c. (Клиент A записан в js, Клиент B в Python с aiort c). Теперь случается так, что Клиент A хочет подключиться из мобильной сети, поэтому ему требуется соединение с ретрансляцией.

Я уже настроил сервер поворотов, который, кажется, выполняет свою работу. Но только приблизительно 50% соединений теперь успешны. Я уже выяснил, когда они преуспевают и когда они терпят неудачу:

Информация ретрансляции SDP в случае успеха:
Предложение клиента A

a=candidate:3 2 UDP 92217086 172.31.16.8 59986 typ relay raddr 172.31.16.8 rport 59986

Ответ клиента B

a=candidate:11 1 UDP 92086015 172.31.16.8 49910 typ relay raddr 172.31.16.8 rport 49910

Информация ретрансляции SDP в случае сбоя:
Предложение клиенту A

a=candidate:7 1 UDP 92151551 172.31.16.8 49871 typ relay raddr 172.31.16.8 rport 49871

Клиент ответа B

a=candidate:5820bb1602563a80c76891a80be14933 1 udp 16777215 18.185.84.96 53279 typ relay raddr 172.31.1.103 rport 49244

Важным отличием является IP-адрес, показанный в ответе от клиента B, в успешном сценарии это IP-адрес net, в котором находится клиент B, в случае сбоя это IP-адрес сервера поворота (18.185. 84.96).

На самом деле я не понимаю, почему он иногда дает IP-адрес сервера, а другой - нет, и что это означает, что IP-адрес сервера не возможно использовать ...

У кого-нибудь есть идеи, с чего начать искать проблему?

1 Ответ

1 голос
/ 28 января 2020

Похоже, что наш сервер очереди был неправильно настроен.
Я не могу сказать, что было неправильно настроено, потому что, к сожалению, у меня нет доступа к конфигурации сервера очереди.
Но я проверил, развернув некоторые серверы очереди на своем локальная машина и они ведут себя похоже, когда они не правильно настроены. Просматривая логи этих серверов, я обнаружил, что 401 Unauthorized выскакивает все время. Поэтому я изменил конфигурацию, пока авторизация не заработала. С помощью этой конфигурации мы развернули новый сервер, который сейчас работает.

Некоторые слова о конфигурации для людей, которые также испытывают проблемы с этим при первом запуске, - это конфигурации, которые мы вводили в /etc/turnserver.conf и передавали их, когда при запуске сервера с turnserver -v -c /etc/turnserver.conf:

listening-port=<port>
alt-listening-port=<port>
listening-ip=<listening-ip>
external-ip=<external-ip>
realm=<realm>
fingerprint
lt-cred-mech
user=<user:pw>

до того, как мы пришли к этой конфигурации, мы допустили некоторые ошибки, возможно, они не доверяют опытным людям, но не нам:

  1. у нас был use-auth-secret в файле конфигурации, это не должно было быть включено при использовании user
  2. у нас была проблема, что сервер поворота можно было использовать в firefox, но не в chrome или других, (невозможно собрать кандидатов на ретрансляцию), это было сделано для того, чтобы realm не был настроен в конфигурации
...