当前位置: 首页 > 知识库问答 >
问题:

Twilio函数:如果记录以挂机结束,记录回调的TwiML响应将被忽略

郎伟兆
2023-03-14

我正在编写一个Twilio函数,它记录来电者的语音邮件,然后发送一个带有音频记录URL的SMS到一个固定的电话号码。当调用者通过按下onfinishkey任意键结束语音邮件录制时,它会按预期工作。但是,如果用户通过挂断来结束语音邮件录制,代码仍然会到达下面的控制台。log,但是文本消息永远不会被发送。我猜TwiML响应被忽略了,因为调用者已经挂断了。我尝试让记录操作指向TwiML bin,但是TwiML bin似乎不支持作为语音呼叫响应的SMS/Message命令(https://support.twilio.com/hc/en-us/articles/360017437774-sombining-voice-sms-and-fax-twiml-in-the-same-response)。我还尝试让记录操作指向一个不同的函数,该函数只是发送SMS,但当SMS代码位于同一函数中时,它会导致相同的结果。

伪代码:

exports.handler = function(context, event, callback) {
    let twiml = new Twilio.twiml.VoiceResponse();
    if (!event.RecordingUrl) {
      twiml.say('Starting to record...');
      twiml.record();
    } else {
      twiml.sms(`${event.RecordingUrl}`, {to: '+1-222-333-4444'});
      console.log('Prepared TwiML to send text message!');
    }
    callback(null, twiml);
}

有办法解决这个问题吗?

共有1个答案

陆昊
2023-03-14

您应该使用messages资源发送SMS而不是TWIML。

exports.handler = function(context, event, callback) {
    const twilioClient = context.getTwilioClient();
    
twilioClient.messages
  .create({
    body: 'Hello World',
    to: '+15555555555',
    from: '+1802123456 ',
  }).then(message =>  {
        console.log(message.sid);
        callback();
  })
    .catch(error => {
        console.log(error);
           callback("error");
    });
};
 类似资料:
  • 问题内容: 以下代码是从文档中复制的。我应该能够查看所有信息日志。但是我没有。即使将setLevel设置为INFO,我也只能看到警告和以上内容。 为什么会这样呢?: 输出: 信息和调试消息到哪里去了? 问题答案: 更换线 与 它应该可以按预期工作。如果您不使用任何处理程序来配置日志记录(如您的帖子中所示,您只为记录器配置一个级别,但在任何地方都没有处理程序),则将获得一个“不得已使用”的内部处理程

  • 我们的web应用程序在tomcat 9容器中运行,并使用Log4j 2.13。3作为测井系统。 web应用程序包括org.apache.xmlgraphics:fop 2.3,它使用apache共享日志记录(我们设置中的版本为1.2,而不是fop中最初使用的1.0.4)。 这个组合已经使用log4-jcl、共享日志记录桥运行了多年,所有共享日志记录输出都正确地进入了log4j配置的文件。配置相当简

  • 我是Spring WebClient的新手。有人能建议记录来自另一个WebService的REST请求和响应的最佳方法吗? 我已经看到了一个在问题中记录请求的示例,但也必须记录响应和POST调用的请求。如何记录Spring 5 WebClient调用 谢谢你。

  • 我有一个log4j配置文件,其中有两个记录器和两个特殊的附加器。该文件的外观如下所示: 这个班看起来是这样的 这样做的结果是: main_logger.log [忽略log4j模式布局]您好 [忽略log4j模式布局]世界! log_error.log “忽略log4j模式布局”世界! 我的想法只是将我想要的事件记录在分开的文件中,但是当我调用记录器时,输出在这两个文件中,我的意思是在为appen

  • 问题内容: 在基本的Postgres函数教程中,有一个带有如下参数的示例: 然后结果看起来像 但是,假设您要在执行连接所产生的列上执行该函数,并且您无权修改该函数或使用替代函数?例如,使用一些玩具数据: 在单列“ hi_lo”中返回具有2元组值的结果。 将查询括在括号中并尝试从中查询不会更改输出的格式。所以 不会影响结果形状。 以下尝试导致错误“子查询必须仅返回一列” 最后,我也尝试过,但是由于元

  • 问题内容: 我正在使用RestTemplate来调用Web服务。 如果此操作无法返回用户ID,我只会返回null,但不知道为什么。如何将实际的XML响应输出到日志? 问题答案: 根据所使用的建立HTTP连接的方法,您可以查看在实际HTTP连接类中打开日志记录。 例如,如果您使用Commons HttpClient,则可以设置 commons- httpclient项目在其日志记录做法的文档中有一整