一天中特定时间的 Twilio 呼叫转移

Twilio call forwarding for specific time of day

我想使用 Twilio 实现一项服务,在一天中的特定时间将入站呼叫发送到录音。

Twilio 可以提供这种行为吗?

这里是 Twilio 开发人员布道者。你绝对可以做到!我不确定你使用的是什么语言或框架,但这里有一个关于如何实现它的想法。

当 Twilio 收到对 Twilio 号码的呼叫时,它会向您的服务器发出 webhook 请求以响应并告诉它如何处理呼叫。这些指令内置于 XML (TwiML) 中。所以,要做基于时间的事情,你可能想做这样的事情(我的例子是 Ruby 使用 Sinatra 作为 web 框架):

post '/call' do
  time = Time.now
  content_type 'text/xml'
  response = "<Response>"
  if out_of_hours?(time)
    response = "<Say>Please leave a message</Say><Record />"
  else
    response = "<Dial><Number>YOUR_PHONE_NUMBER</Number></Dial>"
  end
  response = "</Response>"
  response
end

然后您可以定义 out_of_hours? 以遵循您想要的规则。

希望对您有所帮助,如果您还有其他问题,请告诉我。

这是 cakePhp - twilio url 是 xyz。com/Aptw/dialMtmTextJobLine/ - 请参阅示例中间的视图函数 slap。

<?php
App::uses('AppController', 'Controller');
class AptwController extends AppController {
    public function beforeFilter() { $this->Auth->allow(); }

    public $forwardIn = '<?xml version="1.0" encoding="UTF-8"?>
        <Response>
            <Dial>
                <Sip>';
    public $forwardOut = '</Sip></Dial></Response>';

    public function dialMtmTextJobLine() {
       date_default_timezone_set("America/New_York");
       $t=date("H:i",time());if ($t>"09:00" && $t<"16:00") {$this->dial103(); }
       else { $this->dial2223(); }
    }

    public function dial103() { die($this->forwardIn.'sip:103@myast.com' . $this->forwardOut); }
    public function dial2223() { die($this->forwardIn.'sip:2223@myast.com' . $this->forwardOut); }

}

在上午 9 点到下午 4 点之间,当 twilio 从您的应用中获取 xml 时,它会看到一件事,而在这之外它会看到另一件事。 Twilio 很棒,但它只是答案的一部分,我尊重这一点。

注意 xml 上的格式,Twilio 很特别。我曾尝试在一行中压缩所有内容,但 Twilio 不会解析它。

这个例子没有正确使用视图模板,我明白了。它不完全是蛋糕,而不是死亡,而不是使用 class 变量来包含 xml 样板,我最终将把它移动到一个视图中,使这段代码更短。

事实上,dial103 可以用内部没有 php 的视图呈现。

但更好的是,Twilio 的直接拨号 urls 看起来像 xyz。com/Aptw/dialx/103 就我而言。在 cakephp 中,您解析控制器 Aptw 和操作 dialx 之后的下一个参数,如下所示: function dialx($extension) ... 并且 103 自动跳转到 $extension 变量。然后你为视图设置一个变量,那是 cakey.