Xirsys iceConnectionStatus 失败
Xirsys iceConnectionStatus is failed
我正在开发一款视频通话应用程序。目前使用 Xirsys 的眩晕和转向服务器。我使用 https://service.xirsys.com/ice 的结果作为我的配置。在 Javascript 页面或其他任何地方使用的用户名和凭据是否正确。如果错误,请指导我从哪里获得正确的 iceServers 值。
iceServers = [
{ "url": "stun:turn01.uswest.xirsys.com" },
{ "username": "0xxxxxx8-fxxc-1xx6-bxxb-bxxxxxxxxxx8", "url": "turn:turn01.uswest.xirsys.com:80?transport=udp", "credential": "0xxxxxxe-fxxc-1xx6-axx0-axxxxxxxxxx9" },
{ "username": "0xxxxxx8-fxxc-1xx6-bxxb-bxxxxxxxxxx8", "url": "turn:turn01.uswest.xirsys.com:3478?transport=udp", "credential": "0xxxxxxe-fxxc-1xx6-axx0-axxxxxxxxxx9" },
{ "username": "0xxxxxx8-fxxc-1xx6-bxxb-bxxxxxxxxxx8", "url": "turn:turn01.uswest.xirsys.com:80?transport=tcp", "credential": "0xxxxxxe-fxxc-1xx6-axx0-axxxxxxxxxx9" },
{ "username": "0xxxxxx8-fxxc-1xx6-bxxb-bxxxxxxxxxx8", "url": "turn:turn01.uswest.xirsys.com:3478?transport=tcp", "credential": "0xxxxxxe-fxxc-1xx6-axx0-axxxxxxxxxx9" },
{ "username": "0xxxxxx8-fxxc-1xx6-bxxb-bxxxxxxxxxx8", "url": "turns:turn01.uswest.xirsys.com:443?transport=tcp", "credential": "0xxxxxxe-fxxc-1xx6-axx0-axxxxxxxxxx9" },
{ "username": "0xxxxxx8-fxxc-1xx6-bxxb-bxxxxxxxxxx8", "url": "turns:turn01.uswest.xirsys.com:5349?transport=tcp", "credential": "0xxxxxxe-fxxc-1xx6-axx0-axxxxxxxxxx9" }
];
注意:它在同一个网络中工作,但不能在不同的网络中工作。即使在不同的网络中,我也能接到来电,但在接到电话后,iceConnectionState 失败了。
我也提出了类似的问题 here,我在其中使用 numb 作为 stun and turn 服务器。
提前致谢。
ICE 字符串应该在您的 WebRTC 应用程序的 ice 配置中使用 'as-is'。但是请注意,ICE 凭据仅在 30 秒内有效。您需要在每次连接之前立即请求一个新的 ICE 字符串。
本地网络连接将在没有有效 ICE 字符串的情况下工作,因为您的 NAT 转换不会使用 TURN / STUN。这是因为您的 NAT 会自行转换本地 IP。因此,本地网络连接将始终有效(除非您的 NAT 情况不常见)。如果您在每次调用前使用 ICE 凭据而没有刷新它们,那肯定是您的外部连接失败的原因(或者肯定会导致问题)。
李
我正在开发一款视频通话应用程序。目前使用 Xirsys 的眩晕和转向服务器。我使用 https://service.xirsys.com/ice 的结果作为我的配置。在 Javascript 页面或其他任何地方使用的用户名和凭据是否正确。如果错误,请指导我从哪里获得正确的 iceServers 值。
iceServers = [
{ "url": "stun:turn01.uswest.xirsys.com" },
{ "username": "0xxxxxx8-fxxc-1xx6-bxxb-bxxxxxxxxxx8", "url": "turn:turn01.uswest.xirsys.com:80?transport=udp", "credential": "0xxxxxxe-fxxc-1xx6-axx0-axxxxxxxxxx9" },
{ "username": "0xxxxxx8-fxxc-1xx6-bxxb-bxxxxxxxxxx8", "url": "turn:turn01.uswest.xirsys.com:3478?transport=udp", "credential": "0xxxxxxe-fxxc-1xx6-axx0-axxxxxxxxxx9" },
{ "username": "0xxxxxx8-fxxc-1xx6-bxxb-bxxxxxxxxxx8", "url": "turn:turn01.uswest.xirsys.com:80?transport=tcp", "credential": "0xxxxxxe-fxxc-1xx6-axx0-axxxxxxxxxx9" },
{ "username": "0xxxxxx8-fxxc-1xx6-bxxb-bxxxxxxxxxx8", "url": "turn:turn01.uswest.xirsys.com:3478?transport=tcp", "credential": "0xxxxxxe-fxxc-1xx6-axx0-axxxxxxxxxx9" },
{ "username": "0xxxxxx8-fxxc-1xx6-bxxb-bxxxxxxxxxx8", "url": "turns:turn01.uswest.xirsys.com:443?transport=tcp", "credential": "0xxxxxxe-fxxc-1xx6-axx0-axxxxxxxxxx9" },
{ "username": "0xxxxxx8-fxxc-1xx6-bxxb-bxxxxxxxxxx8", "url": "turns:turn01.uswest.xirsys.com:5349?transport=tcp", "credential": "0xxxxxxe-fxxc-1xx6-axx0-axxxxxxxxxx9" }
];
注意:它在同一个网络中工作,但不能在不同的网络中工作。即使在不同的网络中,我也能接到来电,但在接到电话后,iceConnectionState 失败了。
我也提出了类似的问题 here,我在其中使用 numb 作为 stun and turn 服务器。
提前致谢。
ICE 字符串应该在您的 WebRTC 应用程序的 ice 配置中使用 'as-is'。但是请注意,ICE 凭据仅在 30 秒内有效。您需要在每次连接之前立即请求一个新的 ICE 字符串。
本地网络连接将在没有有效 ICE 字符串的情况下工作,因为您的 NAT 转换不会使用 TURN / STUN。这是因为您的 NAT 会自行转换本地 IP。因此,本地网络连接将始终有效(除非您的 NAT 情况不常见)。如果您在每次调用前使用 ICE 凭据而没有刷新它们,那肯定是您的外部连接失败的原因(或者肯定会导致问题)。
李