【问题标题】:How to configure WebRTC with Coturn and oAuth如何使用 Coturn 和 oAuth 配置 WebRTC
【发布时间】:2015-10-19 05:46:57
【问题描述】:

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

  • 在 coturn 正在使用的数据库中存储 oAuth 令牌
  • 发送ACCESS-TOKENUSERNAME STUN 属性

第一点很清楚,但我需要如何更改我的 WebRTC 客户端才能实现第二点?

如果没有 oAuth,我会像这样初始化我的 RTCPeerConnection

var configuration = {
  'iceServers': [{
    'url': 'turn:turn.example.org',
    'username': 'user',
    'credential': 'password'
  }]
};
var pc = new RTCPeerConnection(configuration)

WebRTC 1.0 draft 定义了一个 RTCIceCredentialType 枚举,所以我认为我需要像这样更改我的配置:

var configuration = {
  'iceServers': [{
    'url': 'turn:turn.example.org',
    'username': 'kid',
    'credential': 'oAuthToken',
    'credentialType': 'token'
  }]
};

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

【问题讨论】:

  • 您使用什么命令来启动 TURN 服务器?
  • turnserver -n -f -v -l stdout -a --oauth -r "myRealm" -J "myMongoConnection"
  • 我猜你在 TURN 服务器日志中收到 401 错误
  • 抱歉回复晚了。你是对的,错误是:26: session 005000000000000001: realm <myRealm> user <my<user>: incoming packet message processed, error 401: Unknown error 26: check_stun_auth: user turn credentials are incorrect。我认为 coturn 在这里使用的是长期凭据,因为未发送 ACCESS-TOKEN 属性。
  • 前两天我一直在尝试,遇到了类似的错误,但我没有设置 oauth,使用了 redis 服务器,并在其中手动添加了行

标签: oauth webrtc stun turn rfc5766turnserver


【解决方案1】:

自从提出原始问题以来,情况似乎发生了一些变化。 webrtc-pc#1033 拉取请求更改了规范并引入了以下 iceServers 配置语法:

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

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-12-26
  • 2019-06-29
  • 2020-02-01
  • 2021-11-17
  • 1970-01-01
  • 1970-01-01
  • 2016-05-25
相关资源
最近更新 更多