Twilio呼叫转发特定时间

时间:2015-04-10 18:12:30

标签: twilio

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

Twilio可以提供这种行为吗?

2 个答案:

答案 0 :(得分:4)

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?以遵循您想要的规则。

我希望这有帮助,如果您有任何其他问题,请告诉我。

答案 1 :(得分:1)

这是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不会解析它。

此示例未正确使用视图模板,我明白了。它并不完全是蛋糕,而不是死亡,而不是使用类变量来包含xml样板,我最终将它移动到视图中,使这段代码更短。

事实上,dial103可以用一个没有php的视图渲染。

但更好的是,Twilio的直接拨号网址可能看起来像xyz.com/Aptw/dialx/103。在cakephp中你解析控制器Aptw和action dialx之后的下一个参数:function dialx($ extension)...并且103自动跳转到$ extension变量。然后为视图设置一个变量,即“蛋糕”。