【问题标题】:Twilio outbound call auto dialing twice if rejected by callee如果被叫方拒绝,Twilio 出站呼叫自动拨号两次
【发布时间】:2020-10-04 17:57:47
【问题描述】:

我面临一个问题,每当我从软拨号器(浏览器应用程序)发出出站呼叫并且呼叫被被呼叫者(手机)拒绝时,twilio 就会再次自动拨打同一被呼叫者。但是当被调用者拒绝了由 twilio 自动生成的第二个调用时,这不会发生。

Javascript 相关的 twilio 代码:

const makeOutboundCall = () => {
let outboundCall = device.connect({        
    To: TO_NUMBER
});

outboundCall.on("ringing", (hasEarlyMedia) => {
    console.log("The call has started and the other phone is ringing.");
});

outboundCall.on("accept", (connection) => {
    console.log("The other person answered the phone!");
});

outboundCall.on("disconnect", () => {
  console.log("The other person hung up.");
});

}

服务器端 Java webhook 如下所示:

public String callByBrowserToMobile(@RequestParam String ApplicationSid, @RequestParam String ApiVersion, @RequestParam String Called, @RequestParam String Caller, @RequestParam String CallStatus, @RequestParam String To, @RequestParam String From, @RequestParam String CallSid,@RequestParam String Direction, @RequestParam String AccountSid) 

{

  Number number = new Number.Builder(To).build();
  Dial dial = new Dial.Builder().answerOnBridge(true).number(number).callerId(myTwilioNumber).build();
  VoiceResponse response = new VoiceResponse.Builder().dial(dial).build();
  logger.info(response.toXml());              
  return response.toXml();    

}

answerOnBridge(true) 用于跟踪 UI 侧呼出的振铃和接听状态。 使用 github.com/TwilioDevEd/client-quickstart-js 也可以复制该问题。

【问题讨论】:

    标签: twilio


    【解决方案1】:

    这可能最好通过打开support ticket 来处理。终止服务提供商可能返回不正确的 SIP 响应代码,这导致 Twilio 尝试通过另一个提供商(以及第二次呼叫)进行交付,因为响应代码表明运营商无法终止呼叫。

    Example:

    如果返回以下任何 SIP 状态代码(“2xx”、“400”、 “404”、“405”、“410”、“416”、“482”、“484”、“486”、“6xx”),Twilio 将 不会故障转移到下一个发起 SIP URI。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-30
      • 2016-05-20
      • 1970-01-01
      • 1970-01-01
      • 2018-01-02
      • 1970-01-01
      • 1970-01-01
      • 2018-01-20
      相关资源
      最近更新 更多