Twilio并非总是拨号

时间:2018-08-20 17:55:36

标签: twilio twilio-api

我们正在使用Twilio代理拨号来发起两个用户之间的呼叫。

  1. 用户A请求呼叫用户B
  2. 我们从WS获得号码,然后与Twilio通话
  3. Twilio拨打用户A 有时在这里失败
  4. 用户A应答后,Twilio拨打用户B

在大多数情况下,此方法工作正常,但有时甚至无法启动呼叫。我们像拨打电话一样获得了call.getSid(),但电话从未响过。

    if (!from.equals(to)) {
        Twilio.init(TWILIO_ACCOUNT_SID, TWILIO_ACCOUNT_TOKEN);
        try {
            final String encodedNumber = URLEncoder.encode(to, "UTF-8");
            final String url = URL + "/connect/" + encodedNumber;

            final Call call = Call.creator(new PhoneNumber(from), new PhoneNumber(TWILIO_PHONE_NUMBER), new URI(url)).setTimeout(20).create();
            response.setMessage("Calling " + response.getItem().getDisplayName() + "'s " + params.getNumberType() + "...");

            LoggerUtil.out("Call done through Twilio: " + call.getSid() + " from: " + from + " to: " + to);
        } catch (UnsupportedEncodingException | URISyntaxException ex) {
            ex.printStackTrace();
            response.setMessage("I cannot dial " + response.getItem().getDisplayName() + "'s " + params.getNumberType() + " now, please try again later.");
        }
    } else {
        response.setMessage("You cannot call yourself.");
    }

输出:通过Twilio进行的呼叫:CAabf9ba78b3b94921b000cda2ae6d2b91从:+521234567890至:+520987654321

并且,在Twilio控制台上,两个都没有错误。另外,我们注意到$减少了,这意味着我们在“发出呼叫”时被收取了费用(非试用帐户),但是没有。

有人遇到同样的问题吗?有时,对于Agent端,也会发生相同的情况(上述步骤中的第4个项目):用户A应答,但用户B从未被呼叫(用户A电话上没有拨号音或任何声音,只是无效):

        final Dial dial = new Dial.Builder().number(number).build();
        final VoiceResponse voiceResponse = new VoiceResponse.Builder().dial(dial).build();

如前所述,这种情况有时会发生,并且大多数时候是在非美国手机上发生的(在美国手机上也会发生,但价格较低)。

谢谢。

0 个答案:

没有答案