微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Node js twillio webhook - 拨出电话不起作用

如何解决Node js twillio webhook - 拨出电话不起作用

我的目标是让 twillio 调用一个 webhook,然后让一些 node js 函数记录用户所说的话,然后拨打另一个电话号码并播放该录音。

但是,我似乎无法设置拨出电话。该代码在常规节点 js 文件中工作,但一旦作为 webhook 的一部分被调用,它将无法工作:

const accountSid = 
const authToken = 
const client = require('twilio')(accountSid,authToken);

exports.handler = function(context,event,callback) {


  console.log(event.CallSid,event.RecordingUrl);
  console.log()
  console.log("RECORDING URL: " + event.RecordingUrl + ".mp3");

  let audioURL = event.RecordingUrl
  audioURL+=".mp3";

  const response = new Twilio.twiml.VoiceResponse();



  response.say({ voice: 'woman',language: 'en-US' },'Thank you.');

  client.calls
      .create({
         from: '+14********',to: '+14***********',url: 'https://www.soundhelix.com/examples/mp3/SoundHelix-Song-8.mp3'
       })



  callback(null,response);
};

解决方法

这里是 Twilio 开发者布道者。

这里的问题是您发出异步请求以进行调用,然后立即调用 callback。这将终止 Twilio 函数的执行,并且因为它会立即取消该出站 API 请求。有关详细信息,请参阅 documentation on Twilio Function execution

要解决此问题,您应该只在 callback 函数完成后调用 create

作为额外提示,您还可以从 context 对象获取经过身份验证的客户端,而无需自己加载您的 accountSid 或 authToken。

此外,在您的示例中,您为出站呼叫提供的 URL 似乎是 mp3。您的 URL 应返回 TwiML,或者您可以将 TwiML 作为 API 请求的一部分发送。

我会像这样更新你的函数:

exports.handler = function(context,event,callback) {
  console.log(event.CallSid,event.RecordingUrl);
  console.log()
  console.log("RECORDING URL: " + event.RecordingUrl + ".mp3");

  let audioURL = event.RecordingUrl
  audioURL+=".mp3";

  const client = context.getTwilioClient();

  const response = new Twilio.twiml.VoiceResponse();

  response.say({ voice: 'woman',language: 'en-US' },'Thank you.');

  client.calls
      .create({
         from: '+14********',to: '+14***********',twiml: `<Response><Play>${audioUrl}</Play></Response>`
       })
       .then(() => {
         callback(null,response);
       })
       .catch(error => {
         callback(error);
       });
};

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。