Twilio - 修改正在进行的呼叫会导致错误

问题描述 投票:0回答:1

当我尝试修改正在进行的实时 Twilio 调用时,出现错误(未找到调用资源)。我已遵循 Twilio 文档,但没有运气。这是我修改实时通话的 Twiml URL 的代码。我的呼叫正在 AU1 区域处理。代码作为无服务器函数运行:

exports.handler = function(context, event, callback) {
  // Here's an example of setting up some TWiML to respond to with this function
    //let twiml = new Twilio.twiml.VoiceResponse();
  
  const client = context.getTwilioClient({
        accountSid: 'ACXXXXXXXXXXXXXXX',
        edge: 'sydney',
        region: 'au1'
    });

  //Try to switch the in progress call to another URL
  client.calls(event.callSID)
      .update({method: "POST",url: "https://myservice-20xxx.twil.io/new-url"})
      .then(call => console.log('URL switching worked'))
      .catch(err => console.log('URL switching did not work', err));

  // This callback is what is returned in response to this function being invoked.
  // It's really important! E.g. you might respond with TWiML here for a voice or SMS response.
  // Or you might return JSON data to a studio flow. Don't forget it!
  return callback(null, true);
};

执行此代码时出现以下错误:

URL switching did not work [RestException [Error]: The requested resource /2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXcc3/Calls/CAXXXXXXXXXXXXXXXXXXX.json was not found] { status: 404, code: 20404, moreInfo: 'https://www.twilio.com/docs/errors/20404', detail: undefined }

我检查了通话记录,确实存在特定的通话 Sid。任何帮助我指明正确方向的帮助将不胜感激。谢谢。

twilio
1个回答
0
投票

这里是 Twilio 开发者倡导者。

我四处打听以找到您的快速回复,但与此同时,这里是我收集的一些知识。

您遇到的错误“找不到所请求的资源...”通常表示 Twilio 无法在指定区域中找到指定资源。您的代码中可能存在一些问题需要检查:

边缘和区域配置:确保您在创建 Twilio 客户端时已正确设置边缘和区域。在您的代码中,您已将边缘设置为“悉尼”,将区域设置为“au1”。确保您为您的用例选择了正确的值。仔细检查您是否也使用了正确的 accountSid。

配置:确保您尝试更新的呼叫 SID 确实存在并且处于活动状态。验证您传递的 event.callSID 是否正确并且它对应于实时呼叫。

URL 格式: 确保您尝试切换到的 URL 可访问且格式正确。它应该是一个可公开访问的 URL,返回有效的 TwiML。您可以在网络浏览器中测试该 URL,以确保它可以访问。

方法: 您使用的方法“POST”对于更新呼叫的 URL 是正确的。但是,请确保您的无服务器函数能够处理传入的 HTTP POST 请求。

权限: 检查与您的 accountSid 关联的 Twilio 帐户是否具有修改实时通话所需的权限。确保您的 Twilio 帐户不存在任何限制或权限问题。

我知道这可能看起来像是常识,但我希望它能让您明白一些。

© www.soinside.com 2019 - 2024. All rights reserved.