动态设置来电显示为Twilio号码

时间:2018-07-11 21:57:00

标签: java twilio twilio-api

是否可以在twilio中即时设置呼叫者ID。我知道您可以通过验证twilio的号码来设置来电显示,但是如何实现以下用例-

我有5个不同的号码和一个用来呼叫用户的twilio号码,现在我的用例是我需要根据某些条件动态地将这5个号码中的主叫方ID设置为twilio号码,例如.setCallerId()

更新1:

我正在使用下面的代码发起呼叫-

Call call = Call
                .creator(new PhoneNumber(to), new PhoneNumber(from),
                        new URI(url)).create();

我要传递的网址实际上是为用户播放IVR消息。

Say say = new Say.Builder(announcement).voice(Say.Voice.WOMAN)
                .language(Language.EN_US).loop(4).build();
        Pause pause = new Pause.Builder().length(1).build();

        voiceResponse = new VoiceResponse.Builder()
                .say(say)
                .pause(pause)
                .build();

1 个答案:

答案 0 :(得分:1)

这里是Twilio开发人员的传播者。

您只能将呼叫的呼叫方ID设置为您在Twilio内购买的号码或已验证的号码。

使用TwiML将Twilio呼叫连接到另一个呼叫者时,可以set the caller ID using an attribute on the <Dial>。例如:

<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Dial callerId="+15551112222">
        <Number>+15558675310</Number>
    </Dial>
</Response>

在Java中,看起来有点像:

import com.twilio.twiml.voice.Dial;
import com.twilio.twiml.voice.Number;
import com.twilio.twiml.VoiceResponse;
import com.twilio.twiml.TwiMLException;

public class Example {
    public static void main(String[] args) {
        Number number = new Number.Builder("+15558675310").build();
        Dial dial = new Dial.Builder().callerId("+15551112222").number(number)
            .build();
        VoiceResponse response = new VoiceResponse.Builder().dial(dial).build();

        try {
            System.out.println(response.toXml());
        } catch (TwiMLException e) {
            e.printStackTrace();
        }
    }
}