我需要获得一个呼叫转移号码,以便在英国办公时间以外所有来电都重定向到我们的非工作时间服务。
我写了这个回来一个$status = 'closed';
<?php
// set the timezone
date_default_timezone_set ('Europe/London');
function checkDateValue($val, $args) {
if (($val) >= $args['min'] && ($val) <= $args['max'] ) :
return true;
else :
return false;
endif ;
}
// set min and max valuesfor hours, minutes and seconds - format HH:MM:SS
$hours = array(
'min' => '09:00:00',
'max' => '17:30:00'
);
// set min and max values bwtween 0 nd 6. 0 = sunday
$days = array(
'min' => 1,
'max' => 5
);
// store current time
$currentTime = time();
// test if the current time is in opening hours or is a weekday
$status = 'open';
if (checkDateValue(date('H:i:s', $currentTime), $hours) === false || checkDateValue(date('w', $currentTime), $days) === false) {
$status = 'closed';
}
我想知道php-sdk或twiml中是否有任何东西可以处理基于检测一天中的时间和星期几的条件拨号,这也是当前呼叫者时区的原因。
谢谢。
Twilio开发者传道者在这里。
Twilio的PHP SDK或TwiML中没有任何内容可以为您执行此时间检测,您需要编写自己的方法(就像您所做的那样)来检测当前时间,然后使用它来返回不同的TwiML以执行数小时或不合时宜的回应。
因此,您可以添加到当前脚本中:
use Twilio\TwiML;
$response = new TwiML;
if ($status == 'closed') {
$response->say("Sorry, the office is closed right now");
} else {
$response->dial($officePhone);
}
echo $response;
我不确定为什么你需要考虑当前来电者的时区,如果有人来自法国,你的英国时间不会改变。也许您可以更详细地评论或更新您的问题。否则,希望这会有所帮助。