Сервер оглушения Coturn вернул ошибку с кодом = 701

У меня есть собственный сервер с Ubuntu 19.

ПРИМЕЧАНИЕ. Мне нужен сервер оглушения / поворота для веб-приложения видеочата. Он уже работает, если оба устройства находятся в одной сети.

Я успешно установил и настроил coturn. Я могу успешно запустить Turnserver, запустив: turnserver или nohup turnserver & в терминале.

ПРИМЕЧАНИЕ. У меня SSH подключение к моему серверу.

Я также убедился, что необходимые порты открыты, и проверил их с помощью netstat -tulpn.

Я также несколько раз перезапускал coturn во время тестирования sudo service coturn restart.

Я использую эти конфигурации в turnserver.conf:

# Also tried 80
listening-port=3478
# Also tried 443
tls-listening-port=5349
listening-ip=<MY-IP4>
listening-ip=<MY-IP6>
relay-ip=<MY-IP4>
external-ip=<MY-IP4>
oauth
user=root:<password>
userdb=/var/lib/turn/turndb
no-stdout-log

Это моя конфигурация iceServers в js, которая, как я считаю, должна работать (я использовал ТОННУ других комбинаций).

var pcConfig = {
  'iceServers': [
    {
      'urls': 'stun:<MY-IP4>:80'
    },
    {
      'urls': 'turn:<MY-IP4>:80',
      'credential': '<PASSWORD>',
      'username': 'root'
    }
  ]
};

Я использовал ТОННУ различных комбинаций оглушения / поворота, например:

  • Я использовал оглушающие серверы Google: stun.l.google.com:19302, stun2.l.google.com:19302 и т. Д.

  • Пробовал порты 3478 и 5349 (конечно после перезапуска coturn)

  • Я пробовал использовать учетные данные для оглушающего сервера, но уверен, что они ему не нужны

  • Я пробовал использовать IP6-адрес

Я также проводил тесты в прямом эфире в своем веб-проекте, а также здесь: https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/

По сути, приведенный выше URL-адрес тестирования всегда дает мне:

Note: errors from onicecandidateerror above are not neccessarily fatal. For example an IPv6 DNS lookup may fail but relay candidates can still be gathered via IPv4.
The server stun:<MY-IP4>:80 returned an error with code=701:
STUN server address is incompatible.
The server stun:<MY-IP4>:80 returned an error with code=701:
STUN server address is incompatible.

Неважно, использую ли я сервер оглушения Google или свой, ошибка одна и та же.

Мой веб-проект и видеочат отлично работают, если я использую одну и ту же сеть, но я считаю, что серверы оглушения и поворота не используются в одной сети.

Кроме того, когда я обновлял свой JS-файл, я всегда удалял кеш, поэтому использовался новый JS-файл. Так что это тоже не было проблемой.

ИЗМЕНИТЬ

Эта комбинация не дает ошибки, только:

Note: errors from onicecandidateerror above are not 
neccessarily fatal. For example an IPv6 DNS 
lookup may fail but relay candidates can still be gathered via IPv4.

Протестировано на https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/

{
  'urls': 'stun:<MY-IP6>:80'
},
{
  'urls': 'turn:<MY-IP4>:80',
  'credential': '<PASSWORD>',
  'username': 'root'
}

Я просто использовал IP6 для оглушения и IP4 для поворота. Видеочат в другой сети по-прежнему не работает, других ошибок нигде не найти.

РЕДАКТИРОВАТЬ:

Сегодня заметил, что https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/ не работает. У меня в firefox ошибок не было. НО вы можете ввести туда какую-то бессмыслицу, и она тоже не будет показывать ошибок ...

РЕДАКТИРОВАТЬ:

Я также добавил действующие сертификаты:

cert=/usr/local/etc/turn.pem                                                                                    
pkey=/usr/local/etc/turn.key.pem

Кажется, работает. Я перезапустил coturn, и статус говорит мне, что все работает без проблем.

Видеочат по-прежнему не работает в разных сетях.


person Roman    schedule 01.04.2020    source источник
comment
Может быть интересно другим: Firefox (v 85.0) еще не реализовал onicecandidateerror, но использует oniceconnectionstatechange с состоянием 'failed', чтобы сообщить о проблемах с подключением, если сервер TURN не может быть достигнут, например, сервер или порт заблокированы, запрос TURN не разрешен, ...   -  person Kay    schedule 02.02.2021


Ответы (1)


Хорошо. Я смотрел на все это под неправильным углом. Настройка сервера TURN / STUN верна.

Проблема заключается в коде клиент / сервер. Сигнализация не работает.

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

person Roman    schedule 03.04.2020