Twiliovideo – “无法连接到错误的房间:SIP错误403”

我收到此错误“无法连接到房间有错误:SIP错误403”,当我尝试从一个iOS客户端拨打电话到另一个时使用twilio videosdk进行swift。

当我使用手动生成的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';