如何使用Coturn和oAuth配置WebRTC

如何使用Coturn和oAuth配置WebRTC,oauth,webrtc,stun,turn,rfc5766turnserver,Oauth,Webrtc,Stun,Turn,Rfc5766turnserver,我想用。如果我理解正确,我需要做两件事: 在数据库coturn中存储oAuth令牌正在使用 发送ACCESS-TOKEN和USERNAMESTUN属性 第一点很清楚,但我需要如何更改我的WebRTC客户端以实现第二点 如果没有oAuth,我将初始化我的rtpeerconnection,如下所示: var配置={ “iceServers”:[{ “url”:“turn:turn.example.org”, “用户名”:“用户”, “凭证”:“密码” }] }; var pc=新的RTPEERC

我想用。如果我理解正确,我需要做两件事:

  • 在数据库coturn中存储oAuth令牌正在使用
  • 发送
    ACCESS-TOKEN
    USERNAME
    STUN属性
第一点很清楚,但我需要如何更改我的WebRTC客户端以实现第二点

如果没有oAuth,我将初始化我的
rtpeerconnection
,如下所示:

var配置={
“iceServers”:[{
“url”:“turn:turn.example.org”,
“用户名”:“用户”,
“凭证”:“密码”
}]
};
var pc=新的RTPEERCONNECTION(配置)
定义了一个
rticecredentialtype
enum,因此我认为我需要如下更改配置:

var配置={
“iceServers”:[{
“url”:“turn:turn.example.org”,
“用户名”:“孩子”,
“凭证”:“oAuthToken”,
“凭证类型”:“令牌”
}]
};

使用Wireshark,我看不到
ACESS-TOKEN
属性。有什么想法吗?有人知道一个有效的例子吗?

自从最初的问题被提出以来,情况似乎有了一些变化。pull请求更改规范并引入以下
iceServers
配置语法:

var configuration = {
    'iceServers': [{
        "urls": "turns:turn.example.net",
        "username": "username",
        "credential": {
            "macKey": "...",
            "accessToken": "..."
        },
        "credentialType": "oauth"
    }],
    ...
}

有关更多配置示例,请参阅文档页。

启动TURN服务器时使用的命令是什么?
turnserver-n-f-v-l stdout-a--oauth-r“myRealm”-J“myMongoConnection”
我猜您在TURN服务器日志库中收到延迟回复的
401
错误。您是对的,错误是:
26:session 005000000000000001:realm用户我在过去两天中尝试了它,得到了类似的错误,但我没有oauth设置,使用了redis服务器,并在其中手动添加了行