У меня есть собственный сервер с Ubuntu 19.
ПРИМЕЧАНИЕ. Мне нужен сервер оглушения / поворота для веб-приложения видеочата. Он работает уже, если оба устройства находятся в одной сети.
Я успешно установил и настроил Coturn. Я могу успешно запустить сервер поворота, выполнив: 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 et c.
Я пробовал порты 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 и статус говорит мне, что все работает без проблем.
Видеочат по-прежнему не работает в разных сетях.