У меня есть собственный сервер с 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, и статус говорит мне, что все работает без проблем.
Видеочат по-прежнему не работает в разных сетях.