2

我在 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')

对撞机实例信息常量中的字典键。

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 工作,没有移动网络工作,我还在端口 3478 中运行 turnserver,在 8443 中使用 pem 文件运行 collinder。所以任何人都可以告诉我如何成功测试collinder和turnserver配置以进行移动连接?

4

1 回答 1

0

我在两年前发现了配置 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”:它起作用了。

在本网站测试 Turn Server (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
于 2019-04-04T15:48:43.927 回答