Twilio Video - “Failed to connect to room with error: SIP error 403”
Twilio Video - “Failed to connect to room with error: SIP error 403”
当我尝试使用 twilio video sdk 进行从一个 iOS 客户端到另一个客户端的呼叫时,我收到此错误“无法连接到房间并出现错误:SIP 错误 403” video sdk =33=]。
当我使用手动生成的 twilio 访问令牌(从 Twilio 控制台获取)并将它们插入客户端应用程序时,我能够拨打电话(Xcode 到手机和手机到手机)。但是,当我尝试使用 Twilio 提供的以下服务器代码通过 NodeJS 服务器以编程方式从 Twilio 获取令牌时,出现上述错误。即使使用安全连接 (HTTPS) 从 Twilio 获取令牌,错误仍然存在。
下面是来自Xcode,
的日志
2017-01-13 07:30:47.625 VideoCall[39299:25726155] Attempting to connect to room Optional("testRoom")
2017-01-13 07:30:47.625 VideoCall[39299:25726155] provider:didActivateAudioSession:
2017-01-13 07:30:51.255 VideoCall[39299:25726155] Failed to connect to room with error: SIP error 403
2017-01-13 07:30:51.272 VideoCall[39299:25726155] provider:didDeactivateAudioSession:
2017-01-13 07:32:52.168 VideoCall[39299:25729470] ERROR:TwilioVideo:[Signaling]:RESIP::TRANSPORT: Got TLS read ret=0 error=6 error:00000006:invalid library (0):OPENSSL_internal:public key routines
NodeJS 服务器代码(由 Twilio 提供)
var express = require('express');
var router = express.Router();
var AccessToken = require('twilio').AccessToken;
// Substitute your Twilio AccountSid and ApiKey details
var ACCOUNT_SID = 'accountSid';
var API_KEY_SID = 'apiKeySid';
var API_KEY_SECRET = 'apiKeySecret';
var TWILIO_CONFIGURATION_SID = 'twilioConfigurationSid';
router.get('/getTwilioVideoAccessToken', function(req, res, next) {
// Create an Access Token
var accessToken = new AccessToken(
ACCOUNT_SID,
API_KEY_SID,
API_KEY_SECRET
);
var identity = 'example-user';
// Set the Identity of this token
accessToken.identity = identity;
// Grant access to Conversations
var grant = new AccessToken.ConversationGrant();
grant.configurationProfileSid = TWILIO_CONFIGURATION_SID;
accessToken.addGrant(grant);
// Serialize the token as a JWT
var jwt = accessToken.toJwt();
console.log(jwt);
res.json({"token": jwt, "statusCode" : 200, "identity":identity})
});
解法:
Twilio 客户支持建议我使用了不正确的 API_KEY_SECRET,这是导致错误的原因,@Aubtin Samai 也指出了这一点。
可以按照 .
提供的说明生成 API_KEY_SECRET
如果我假设这些值不是真实值的占位符是正确的(这是一个 403 错误),您需要将 API 凭据添加到您的 NodeJS 脚本中...
var ACCOUNT_SID = 'accountSid';
var API_KEY_SID = 'apiKeySid';
var API_KEY_SECRET = 'apiKeySecret';
var TWILIO_CONFIGURATION_SID = 'twilioConfigurationSid';
当我尝试使用 twilio video sdk 进行从一个 iOS 客户端到另一个客户端的呼叫时,我收到此错误“无法连接到房间并出现错误:SIP 错误 403” video sdk =33=]。
当我使用手动生成的 twilio 访问令牌(从 Twilio 控制台获取)并将它们插入客户端应用程序时,我能够拨打电话(Xcode 到手机和手机到手机)。但是,当我尝试使用 Twilio 提供的以下服务器代码通过 NodeJS 服务器以编程方式从 Twilio 获取令牌时,出现上述错误。即使使用安全连接 (HTTPS) 从 Twilio 获取令牌,错误仍然存在。
下面是来自Xcode,
的日志2017-01-13 07:30:47.625 VideoCall[39299:25726155] Attempting to connect to room Optional("testRoom")
2017-01-13 07:30:47.625 VideoCall[39299:25726155] provider:didActivateAudioSession:
2017-01-13 07:30:51.255 VideoCall[39299:25726155] Failed to connect to room with error: SIP error 403
2017-01-13 07:30:51.272 VideoCall[39299:25726155] provider:didDeactivateAudioSession:
2017-01-13 07:32:52.168 VideoCall[39299:25729470] ERROR:TwilioVideo:[Signaling]:RESIP::TRANSPORT: Got TLS read ret=0 error=6 error:00000006:invalid library (0):OPENSSL_internal:public key routines
NodeJS 服务器代码(由 Twilio 提供)
var express = require('express');
var router = express.Router();
var AccessToken = require('twilio').AccessToken;
// Substitute your Twilio AccountSid and ApiKey details
var ACCOUNT_SID = 'accountSid';
var API_KEY_SID = 'apiKeySid';
var API_KEY_SECRET = 'apiKeySecret';
var TWILIO_CONFIGURATION_SID = 'twilioConfigurationSid';
router.get('/getTwilioVideoAccessToken', function(req, res, next) {
// Create an Access Token
var accessToken = new AccessToken(
ACCOUNT_SID,
API_KEY_SID,
API_KEY_SECRET
);
var identity = 'example-user';
// Set the Identity of this token
accessToken.identity = identity;
// Grant access to Conversations
var grant = new AccessToken.ConversationGrant();
grant.configurationProfileSid = TWILIO_CONFIGURATION_SID;
accessToken.addGrant(grant);
// Serialize the token as a JWT
var jwt = accessToken.toJwt();
console.log(jwt);
res.json({"token": jwt, "statusCode" : 200, "identity":identity})
});
解法:
Twilio 客户支持建议我使用了不正确的 API_KEY_SECRET,这是导致错误的原因,@Aubtin Samai 也指出了这一点。
可以按照
如果我假设这些值不是真实值的占位符是正确的(这是一个 403 错误),您需要将 API 凭据添加到您的 NodeJS 脚本中...
var ACCOUNT_SID = 'accountSid';
var API_KEY_SID = 'apiKeySid';
var API_KEY_SECRET = 'apiKeySecret';
var TWILIO_CONFIGURATION_SID = 'twilioConfigurationSid';