Я пытаюсь настроить сервер TURN rfc5766-turn-server для webRTC из здесь< /а>. Мне удалось успешно передать свое видео через этот сервер TURN, используя файл turnuserdb.conf
, в котором у меня есть имя пользователя и пароль (my_user_name:my_password). И на стороне веб-клиента я использовал:
"iceServers":{[
"url": "turn:my_user_name,@turn_server_ip",
"credential":"my_password"
}]
Я пытаюсь использовать функцию REST API, которая поставляется с сервером TURN, чтобы избежать отправки пароля по сети или хранения его на стороне клиента. Я следовал этой спецификации и это объяснение в Rest API
Однако, к сожалению, я получаю 401 и не могу пройти аутентификацию.
Вот что я сделал точно:
Я создал секрет «my_secret» и запустил сервер поворота следующим образом:
turnserver -v --syslog -a -L xx.xxx.xx.xx -X yy.yyy.yyy.yy -E zz.zzz.zz.zzz --max-bps=3000000 -f -m 3 --min-port=32355 --max-port=65535 --use-auth-secret --static-auth-secret=my_secret --realm=north.gov --cert=turn_server_cert.pem --pkey=turn_server_pkey.pem --log-file=stdout -q 100 -Q 300 --cipher-list=ALL
(Я просто заменил IP-адрес на
xx.xxx.xx.xx
yy.yyy.yyy.yy
zz.zzz.zz.zzz
)Позже я сгенерировал отметку времени, которая будет сейчас + 1 час, поэтому я запустил nodejs:
Date.now()+1000*60*60; // output 1433895918506.
Я сгенерировал временный пароль на этом сайте, используя свой секрет, и получил результат
0ca57806bdc696b3129d4cad83746945b00af77b
Я закодировал пароль в base64.
Теперь я попытался зарегистрировать связь с сервером поворота из веб-клиента, используя временное имя пользователя:
1433895918506:my_user_name
и пароль:MGNhNTc4MDZiZGM2OTZiMzEyOWQ0Y2FkODM3NDY5NDViMDBhZjc3Yg==
, в веб-клиенте теперь я использую"iceServers":"url":"turn:1433895918506:my_user_name@turn_server_ip","credential":"MGNhNTc4MDZiZGM2OTZiMzEyOWQ0Y2FkODM3NDY5NDViMDBhZjc3Yg=="}]
Но это не работает, я получаю:
401 user <1433895918506:my_user_name> incoming packet message processed, error 401: Unauthorised.
Можете ли вы помочь мне понять, что не так?