Twilio如何在SAY循环中添加PAUSE

时间:2015-04-27 22:16:07

标签: java xml twilio

我正在尝试在整个通话时间内重复播放SAY消息。

目前有效。如何在2秒的暂停状态下播放要播放的信息。

这是一个示例代码:

<Response>
<Gather>
    <Say voice="woman" loop="0">This is my SAY message, which is repeating. How to repeat this with a pause of 2 seconds.</Say>
    <Pause length="5"></Pause>
</Gather>
</Response>

twilio文档提到在SAY之外使用它。

https://www.twilio.com/docs/api/twiml/say &#34;如果要插入长暂停,请尝试使用<Pause>动词。 <Pause>应放在<Say>标记之外,而不是嵌套在其中。&#34;

但是对于当前的实现,这个暂停将永远不会达到。

有人可以指导我。

编辑:尝试使用重定向重复消息,但一旦应答,呼叫将在2秒内被删除。添加暂停不是这样,重定向是,如果有任何错误,有人可以指导我吗?

public TwiMLResponse myMethod(){
    TwiMLResponse twimlResponse = new TwiMLResponse();
    Gather gather = new Gather();
    gather.setFinishOnKey("any digit");
    gather.setNumDigits(1);
    gather.setAction("myendpoint");
    Say say = new Say("This message needs to repeat with a pause");
    //Pause pause = new Pause();
    //pause.setLength(2);
    Redirect redirect = new Redirect("myendpoint");

   try {
        gather.append(say);
        //gather.append(pause);
        gather.append(redirect);
        twimlResponse.append(gather);
    } catch (TwiMLException e) {
        LOGGER.warn("exception " + e);
    }
return twimlResponse;
}

2 个答案:

答案 0 :(得分:1)

来自<say>

的文档
  

标点符号(如逗号和句点)将被语音引擎解释为自然暂停。

所以你可以这样改变你的意思:

<Say voice="woman" loop="0">This is my SAY message, which is repeating. How to repeat this with a pause of 2 seconds, , ,</Say>

答案 1 :(得分:1)

Twilio开发者传道者在这里。

您实际上可以使用Twilio中的<Redirect>动词来循环<Say><Pause>。您可以像这样使用它:

/gather.xml

<Response>
  <Gather>
    <Say voice="woman">This is my SAY message, which is repeating. How to repeat this with a pause of 2 seconds.</Say>
    <Pause length="2"></Pause>
  </Gather>
  <Redirect>/gather.xml</Redirect>
</Response>

如果有帮助,请告诉我。