我想要实现的是我想在Twilio Studio中使用Whisper功能。
请参阅此先前的帖子Want to use Whisper in Twilio Studio,答案是您不能这样做,建议您使用TWIML来做到这一点。仅在使用TWIML时使用此解决方案效果很好。我接下来的问题是,您可以在Studio中调用TWIML吗?在我看来,您不能但会感兴趣,如果有人可以澄清这种情况。
现在,您可以在Studio中调用函数。因此,下一个可能的解决方案是我们编写一个使用耳语的函数
下面是呼叫转移的模板,可以很好地将号码转移到使用功能。
/**
* Call Forward Template
*
* This Function will forward a call to another phone number. If the call isn't answered or the line is busy,
* the call is optionally forwarded to a specified URL. You can optionally restrict which calling phones
* will be forwarded.
*/
exports.handler = function(context, event, callback) {
// set-up the variables that this Function will use to forward a phone call using TwiML
// REQUIRED - you must set this
let phoneNumber = event.PhoneNumber || "NUMBER TO FORWARD TO";
// OPTIONAL
let callerId = event.CallerId || null;
// OPTIONAL
let timeout = event.Timeout || null;
// OPTIONAL
let allowedCallers = event.allowedCallers || [];
// generate the TwiML to tell Twilio how to forward this call
let twiml = new Twilio.twiml.VoiceResponse();
let allowedThrough = true
if (allowedCallers.length > 0) {
if (allowedCallers.indexOf(event.From) === -1) {
allowedThrough = false;
}
}
let dialParams = {};
if (callerId) {
dialParams.callerId = callerId
}
if (timeout) {
dialParams.timeout = timeout
}
if (allowedThrough) {
twiml.dial(dialParams, phoneNumber);
}
else {
twiml.say('Sorry, you are calling from a restricted number. Good bye.');
}
// return the TwiML
callback(null, twiml);
};
重要的部分是
// REQUIRED - you must set this
let phoneNumber = event.PhoneNumber || "NUMBER TO FORWARD TO";
这很容易,因为您只需输入要转发的号码即可。
这是我认为重要的一点
if (allowedThrough) {
twiml.dial(dialParams, phoneNumber);
所以问题是,我们可以在其中插入来自TWIML耳语的耳语URL。类似于以下内容。
twiml.dial({ url: 'https://handler.twilio.com/twiml/EH0b18ce0682059675bc39deca4e76e472' }, phoneNumber);
当我从Studio中调用此函数并收到以下错误时,此方法不起作用。
Msg "XML Validation warning"
line "1"
parserMessage " Attribute 'url' is not allowed to appear in element
'Dial'."
ErrorCode "12200"
cols "224"
LogLevel "WARN"
url "https://olivine-okapi-1701.twil.io/fwd_whisper"
希望这似乎只是语法错误。不能成为开发人员,关于什么是正确的语法或是否可以做到这一点没有任何帮助
答案 0 :(得分:2)
耳语是由“拨号”动词下的数字名词处理的。
尝试这样的方法:
if (allowedThrough) {
twiml.dial(dialParams)
.number({url: 'https://handler.twilio.com/twiml/EH0b18ce0682059675bc39deca4e76e472'}, phoneNumber);
}
答案 1 :(得分:0)
您可以使用本文Recording a Phone Call with Twilio-作为参考。您将遵循“使用TwiML动词录制双向呼叫”下提供的示例。因此,您可以将record属性添加到DialParams对象中:
dialParams.record =“从振铃记录”。