使用Twilio我想实施一项服务,在一天中的特定时间将入站呼叫发送到录音。
Twilio可以提供这种行为吗?
答案 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变量。然后为视图设置一个变量,即“蛋糕”。