Twilio欢迎问候,不说

时间:2015-10-15 19:19:23

标签: twilio

当我在没有指定“url”字段的情况下打电话给某人时,有没有办法添加自定义文字?

public void call() {

        TwilioRestClient client = 
                 new TwilioRestClient("******", "******");
           Account myAccount = client.getAccount();

           CallFactory callFactory = myAccount.getCallFactory();
            Map<String, String> callParams = new HashMap<String, String>();
            callParams.put("To", "+1XXXXXXXXXXX");
            callParams.put("From", "+1MYTWILIONUMBER");
            callParams.put("Url", "https://foo.bar.com");

            try {
                callFactory.create(callParams);
            } catch (TwilioRestException e) {
                e.printStackTrace();
            }
    }

在上面的代码段中,我将“Url”设置为其中一个调用参数。如果有人接听了电话,那么Twilio将调用“Url”端点来阅读消息或其他内容。

让我们说这个消息很简单。我可以将消息设置为呼叫请求本身的一部分,以避免从Twilio到我的服务器端的呼叫以获取消息吗?

类似的东西:

 callParams.put("Message", "Hello, Foo.");

当有人接听电话时,我希望使用该信息。

2 个答案:

答案 0 :(得分:1)

我在Twilio的开发者社区工作。为了做你想做的事,你必须返回有效的Twiml。所以看起来像这样:

    // Create a TwiML response and add our friendly message.
    TwiMLResponse twiml = new TwiMLResponse();
    Say say = new Say("Hello Monkey");
    try {
        twiml.append(say);
    } catch (TwiMLException e) {
        e.printStackTrace();
    }

    response.setContentType("application/xml");
    response.getWriter().print(twiml.toXML());
}

答案 1 :(得分:1)

Twilio开发者传道者在这里。 (嗨,梅根!)

我担心没有简单的方式以你要求的方式播放信息。所有Twilio呼叫的处理方式都相同,方法是回复您提供的URL,以了解下一步该做什么。

但是,您不需要提供任何复杂的URL作为该URL。它可以是一个简单的静态XML文件,其中<Say>元素作为静态文件托管在某处。

您还可以使用我们的实验室功能Twimlets,它允许您设置简单的呼叫流程,包括message using <Say>

它不像在初始API调用中传递消息那么容易,但它允许您在不更改初始代码的情况下轻松地将调用扩展为更复杂的内容。我认为从长远来看,权衡是值得的。