一天中特定时间的 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.
我想使用 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.