有没有办法检索可用 phone 号码的类型或价格?

Is there any way to retrieve type or price of available phone number?

假设我只有数字和 isoCountry 例如:

    String number = +43720116398;
    String isoCountry = "AT";

我正在尝试在购买前确定价格或类型。 我想知道该号码是本地号码、移动号码还是 TOLL_FREE。

遗憾的是,Lookups 客户端在这种情况下不起作用:

  public static void main(String[] args) throws TwilioRestException {
    LookupsClient client = new LookupsClient(ACCOUNT_SID, AUTH_TOKEN);
    PhoneNumber number = client.getPhoneNumber(number , true);
    System.out.println(number.getType());
  }

它 return 不同种类的类型或空值。 如果我能得到 type/price 的来电 Phone 号码,那我也会满意的。 有什么办法吗?

在我的例子中,我知道这个号码是本地的还是移动的,所以我只检查这个本地类型的号码是否存在,如果它不是移动的话,你可以很容易地添加检查它是 TOLL_FREE 还是移动如果你想. 如果有人在几天内提供更清洁的方法,我会很乐意接受他的回答,否则我会接受我的回答。

可运行示例:

public class Main {
    private final static String MOBILE = "MOBILE";
    private final static String LOCAL = "LOCAL";
    private static TwilioRestClient twilioRestClient = new TwilioRestClient("Key", "key");

    public static void main(String[] args) {
        String number = "+43720116398";
        String isoCountry = "AT";
        getMsisdnType(number, isoCountry);
    }


    public static String getMsisdnType(String msisdn, String isoCountry) {
        Map<String, String> params = new HashMap<>();
        params.put("Contains", msisdn);
        Optional<AvailablePhoneNumber> number = twilioRestClient.getAccount().getAvailablePhoneNumbers(params, isoCountry, LOCAL).getPageData().stream().findAny();
        if (number.isPresent()) return LOCAL;
        return MOBILE;
    }
}