2

我觉得这是一个简单的问题。也许它是如此简单,以至于以前从未被问过?我似乎无法找到答案或弄清楚。

调用者看到的第一个 TwiML 如下所示。

<Response>
    <Gather action="handle-extension.php" numDigits="3">
        <Play>greatings/maingreating.mp3</Play>
        <!-- Hello, if you know your party's 3 digit extenstion, please dial it at any time or press 0 for the directory. Otherwise, pelase hold while we find someone to take your call.  -->
    </Gather>
    <!-- If customer doesn't input anything, prompt and try again. -->
    <Redirect>handle-queue-main.php</Redirect>
</Response> 

呼叫者应该能够拨打一个 3 位数的分机,并且该信息应该被传递到“handle-extension.php”。这很好用,但是......如果呼叫者为目录拨“0”,那么收集只是继续等待额外的 2 位数字。

在搜索时,我确实发现显然您可以在 numDigits 中使用“<”和“>”,如下所示:

<Gather action="handle-extension.php" numDigits="&lt; 3">

但这给了我与原始代码相同的结果。

我想到的另一个解决方案是使用:

<Gather action="handle-extension.php" numDigits="3" finishOnKey="0">

但这不适用于其中包含零的扩展名(101 将“1”发送到下一个脚本,110 发送“11”等)。

也许简单的解决方案是将目录扩展名更改为#,但坦率地说,这不是我想要的。

有什么建议么?我想要做的甚至可能吗?

感谢您的时间!:)

4

1 回答 1

2

我不知道有一种方法可以完全按照您的要求做。

话虽如此,您可以做两件简单的事情:

  • 要求客户在他或她完成输入后按#(使用 finishOnKey 属性)
  • 设置超时而不是位数

这些是我要探索的可能性。如果该人输入的数字多于或少于 3 位,我会在处理输入时通过 php 检查来捕获它。

希望这可以帮助。对不起,令人失望的答案。

于 2013-08-01T18:28:59.650 回答