我've sign up to start using Twilio and I' m尝试设置快速启动(https://www.twilio.com/docs/voice/client/javascript/quickstart)并且它几乎正常工作但未接收来电:
客户端代码(在getTokenCapabilities之后在浏览器上使用):
Twilio.Device.incoming(function (conn) {
log('Incoming connection from ' + conn.parameters.From);
var archEnemyPhoneNumber = '+12093373517';
if (conn.parameters.From === archEnemyPhoneNumber) {
conn.reject();
log('It\'s your nemesis. Rejected call.');
} else {
// accept the incoming connection and start two-way audio
conn.accept();
}
});
Twilio上的代码用于语音呼叫的功能(控制台总是打印,否则从不调用条件:
exports.handler = function(context, event, callback) {
let twiml = new Twilio.twiml.VoiceResponse();
console.log('entrou aqui');
if(event.To) {
console.log('entrou ali');
// Wrap the phone number or client name in the appropriate TwiML verb
// if is a valid phone number
const attr = isAValidPhoneNumber(event.To) ? 'number' : 'client';
const dial = twiml.dial({
callerId: context.CALLER_ID,
});
dial[attr]({}, event.To);
} else {
twiml.say('Thanks for calling!');
}
console.log('callback');
callback(null, twiml);
};
/**
* Checks if the given value is valid as phone number
* @param {Number|String} number
* @return {Boolean}
*/
function isAValidPhoneNumber(number) {
return /^[\d\+\-\(\) ]+$/.test(number);
}
我已将我的电话号码包含在验证来电显示中,从Twilio获取了一个号码,并使用模板Twilio Client Quickstart创建了这些功能 .
在Twilio Client Quickstart上,我将TwiML SID粘贴为TWIML_APP_SID并尝试使用我的电话号码和Twilio中的号码作为CALLER_ID .
此外,我在TwiML配置上更改了VOICE URL,并将twilio配置中的电话号码上的VOICE URL更改为 .
关于什么是遗失或什么是错误的任何想法?当我在浏览器http://127.0.0.1:8080/上打开时,当我呼叫twilio号码时,它会在浏览器上接收任何呼叫 .
1 回答
要接听电话,您需要在VoiceResponse的标签中加上您的令牌名称标识,这是一个示例 .
看看我放的'jesus'客户端标签?这是令牌生成器端:
这适用于我使用节点快速入门并更改这两个功能 .
但是,不要伪造在功能voiceResponse中将“数字”更改为“客户端”,因为它是传入呼叫而不是传出呼叫 .
代替
由于来自Twilio的client-quickstart-node的默认nameGenerator会生成一个随机名称,因此在接收来电时未正确设置 .