Twilio中的耳语-Studio,TWIML和功能

时间:2018-12-13 01:51:12

标签: twilio

我想要实现的是我想在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"

希望这似乎只是语法错误。不能成为开发人员,关于什么是正确的语法或是否可以做到这一点没有任何帮助

2 个答案:

答案 0 :(得分:2)

耳语是由“拨号”动词下的数字名词处理的。

base constructor gets called

尝试这样的方法:

  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 =“从振铃记录”。