任何人在 apprtc 的配置 collinder 中成功

Anyone success in config collinder for apprtc

我在 github 中的问题: https://github.com/webrtc/apprtc/issues/615 我无法为信号服务器配置 apprtc,只能通过 wifi 调用视频,但通过移动网络没有运气。 请查看我的配置,我在任何地方都找不到 constands.py 的任何示例。 这是我的配置:

ICE_SERVER_OVERRIDE = [
  {
    "urls": [
      "stun:stun.l.google.com:19302"
    ]
  },
  {
    "urls": [
      "turn:my_ip_address:3478?transport=udp"
    ],
    "username": "my_account",
    "credential": "password"
  },
  {
    "urls": [
      "turn:my_ip_address:3479?transport=udp"
    ],
    "username": "my_account",
    "credential": "password"
  }
]

TURN_SERVER_OVERRIDE = [
  {
    "urls": "turn:my_ip_address:3478",
    "username": "my_account",
    "credential": "password"
  },
  {
    "urls": "stun:stun.l.google.com:19302"
  }
]

TURN_BASE_URL = 'http://my_url.com'
TURN_URL_TEMPLATE = '%s/turn?username=%s&key=%s'
CEOD_KEY = ''

ICE_SERVER_BASE_URL = 'http://my_url.com'
ICE_SERVER_URL_TEMPLATE = '%s/v1alpha/iceconfig?key=%s'
ICE_SERVER_API_KEY = os.environ.get('ICE_SERVER_API_KEY')

collider 实例信息常量中的字典键。

WSS_INSTANCE_HOST_KEY = 'my_ip_address:8443'
WSS_INSTANCE_NAME_KEY = 'wsserver-std'
WSS_INSTANCE_ZONE_KEY = 'us-central1-a'
WSS_INSTANCES = [{
    WSS_INSTANCE_HOST_KEY: 'my_ip_address:8443',
    WSS_INSTANCE_NAME_KEY: 'wsserver-std',
    WSS_INSTANCE_ZONE_KEY: 'us-central1-a'
}, {
    WSS_INSTANCE_HOST_KEY: 'apprtc-ws-2.webrtc.org:443',
    WSS_INSTANCE_NAME_KEY: 'wsserver-std-2',
    WSS_INSTANCE_ZONE_KEY: 'us-central1-f'
}]

WSS_HOST_PORT_PAIRS = [ins[WSS_INSTANCE_HOST_KEY]


When I run it, my apprtc return error:
WebSocket open error: WebSocket error.
So, I don't understand what keys mean:
WSS_INSTANCE_HOST_KEY: 'my_ip_address:8443',
WSS_INSTANCE_NAME_KEY: 'wsserver-std',
WSS_INSTANCE_ZONE_KEY: 'us-central1-a'

当我在原始代码中更改为默认值时,它可以工作,但只能通过 Wifi,没有移动网络工作,我还 运行 turnserver in port 3478 and collinder in 8443 with pem files。 那么谁能告诉我如何成功测试移动连接的 collinder 和 turnserver 配置?

我在两年前发现配置apprtc的错误: 只需像这样配置 ICE 服务器:

ICE_SERVER_OVERRIDE = [
    {
        "urls": [
        "stun:stun.l.google.com:19302"
        ]
    },
    {
        "urls": [
        "turn:my_ip_address:3478?transport=udp"
        ],
        "username": "my_account",
        "credential": "password"
    },
    {
        "urls": [
        "turn:my_ip_address:3479?transport=udp"
        ],
        "username": "my_account",
        "credential": "password"
    }
]
ICE_SERVER_BASE_URL = 'http://my_url.com'
ICE_SERVER_URL_TEMPLATE = '%s/v1alpha/iceconfig?key=%s'
ICE_SERVER_API_KEY = os.environ.get('ICE_SERVER_API_KEY')

并在 /etc/turnserver.conf

cert=/root/cert.pem
pkey=/root/key.pem

listening-port=3478
tls-listening-port=5349

listening-ip=my_ip_address

relay-ip=my_ip_address
external-ip=my_ip_address

realm=my_web_address
server-name=my_web_address

#lt-cred-mech
userdb=/etc/turnuserdb.conf
oauth
user=my_account:my_password
no-stdout-log

错误原因是:当我配置"lt-cred-mech"身份验证时,它失败了。

所以,我将其更改为 "oauth":有效。

本站测试转服(Collinder):

https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/

# The result very fast (like sturn url of Google):
0.005   1   host    3868393361  udp 192.168.1.157   35353   126 | 30 | 255
0.006   1   host    891932622   udp xxxx:xxxx:12c7:xxxx:247e:xxxx:3c18:xxxx 51606   126 | 40 | 255
0.009   1   srflx   842163049   udp aa.bb.cc.dd 3341    100 | 30 | 255
0.062   1   relay   3031532034  udp my_turn_ip_address  62030   2 | 30 | 255
0.105   Done
0.109