ウェブノウハウ

WEB KNOWHOW

テレワーク-Twilioで会社への電話を自宅で受ける

3. 曜日ごとに電話転送先を設定&時間外音声案内をする簡易プログラムを作って、Twilioと連携する

最後に着電があったらTwilioから呼び出されるincoming.phpのコードサンプルを載せておきます。
呼び出された際に、曜日ごとにダイヤルする電話番号と音声メッセージをXMLで返すプログラムです。

<?
header('Content-Type: application/xml');

//購入した050番号、転送先番号
$myNumber = "+8150XXXXXXXX";

//月曜日の転送先電話番号(複数呼び出したければ配列の形で追記可能)
$outGoingNumber_mon = array(
    "+8170XXXXXXXX",
);
//火曜
$outGoingNumber_tue = array(
    "+8190XXXXXXXX",
);
//水曜
$outGoingNumber_wed = array(
    "+8190XXXXXXXX",
);
//木曜
$outGoingNumber_thu = array(
    "+8190XXXXXXXX",
);
//金曜
$outGoingNumber_fri = array(
    "+8190XXXXXXXX",
);

//タイムゾーンを設定
date_default_timezone_set('Asia/Tokyo');

$numberFormatted_mon="";
$numberFormatted_tue="";
$numberFormatted_wed="";
$numberFormatted_thu="";
$numberFormatted_fri="";

for($i=0;$i<count($outGoingNumber_mon);$i++){
    $numberFormatted_mon .= "<Number>{$outGoingNumber_mon[$i]}</Number>";
}
for($i=0;$i<count($outGoingNumber_tue);$i++){
    $numberFormatted_tue .= "<Number>{$outGoingNumber_tue[$i]}</Number>";
}
for($i=0;$i<count($outGoingNumber_wed);$i++){
    $numberFormatted_wed .= "<Number>{$outGoingNumber_wed[$i]}</Number>";
}
for($i=0;$i<count($outGoingNumber_thu);$i++){
    $numberFormatted_thu .= "<Number>{$outGoingNumber_thu[$i]}</Number>";
}
for($i=0;$i<count($outGoingNumber_fri);$i++){
    $numberFormatted_fri .= "<Number>{$outGoingNumber_fri[$i]}</Number>";
}

//時刻と曜日(0-6)を取得
$currentHour = (int)date('H');
$currentDay = date('w');
$date = date("Y-n-j");

//日本の代表的な祝祭日を登録
$holidays = array(
    "2020-3-20",
    "2020-4-29",
    "2020-5-3",
    "2020-5-4",
    "2020-5-5",
    "2020-5-6",
    "2020-7-23",
    "2020-7-24",
    "2020-8-10",
    "2020-9-21",
    "2020-9-22",
    "2020-11-3",
    "2020-11-23",
);

$is_holiday = false;
foreach($holidays as $holiday){
    if($date == $holiday){
        $is_holiday = true;
    }
}

$resp = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Response>";

//土日-営業時間外判定
if($currentHour >= 18 || $currentHour < 10 || $currentDay == 0 || $currentDay == 6 || $is_holiday == true){
    $resp .= '<Say voice="alice" language="ja-JP">ジェイジーブランディングです。お電話の受付は平日10時から18時です。恐れ入りますが再度お電話いただくか、ホームページのお問い合わせフォームをご利用ください。</Say>';
}elseif($currentDay == 1){
    $resp .= <<<EOM
    <Dial callerId="${myNumber}">
        ${numberFormatted_mon}
    </Dial>
     <Say voice="alice" language="ja-JP">ただいま別のお電話の対応中です。恐れ入りますが再度お電話いただくか、ホームページのお問い合わせフォームをご利用ください。</Say>
     <Hangup></Hangup>
EOM;
}elseif($currentDay == 2){
    $resp .= <<<EOM
    <Dial callerId="${myNumber}">
        ${numberFormatted_tue}
    </Dial>
     <Say voice="alice" language="ja-JP">ただいま別のお電話の対応中です。恐れ入りますが再度お電話いただくか、ホームページのお問い合わせフォームをご利用ください。</Say>
     <Hangup></Hangup>
EOM;
}elseif($currentDay == 3){
    $resp .= <<<EOM
    <Dial callerId="${myNumber}">
        ${numberFormatted_wed}
    </Dial>
     <Say voice="alice" language="ja-JP">ただいま別のお電話の対応中です。恐れ入りますが再度お電話いただくか、ホームページのお問い合わせフォームをご利用ください。</Say>
     <Hangup></Hangup>
EOM;
}elseif($currentDay == 4){
    $resp .= <<<EOM
    <Dial callerId="${myNumber}">
        ${numberFormatted_thu}
    </Dial>
     <Say voice="alice" language="ja-JP">ただいま別のお電話の対応中です。恐れ入りますが再度お電話いただくか、ホームページのお問い合わせフォームをご利用ください。</Say>
     <Hangup></Hangup>
EOM;
}elseif($currentDay == 5){
    $resp .= <<<EOM
    <Dial callerId="${myNumber}">
        ${numberFormatted_fri}
    </Dial>
     <Say voice="alice" language="ja-JP">ただいま別のお電話の対応中です。恐れ入りますが再度お電話いただくか、ホームページのお問い合わせフォームをご利用ください。</Say>
     <Hangup></Hangup>
EOM;
}else{
    $resp .= <<<EOM
    <Dial callerId="${myNumber}">
        ${numberFormatted_mon}
    </Dial>
     <Say voice="alice" language="ja-JP">ただいま別のお電話の対応中です。恐れ入りますが再度お電話いただくか、ホームページのお問い合わせフォームをご利用ください。</Say>
     <Hangup></Hangup>
EOM;
}
$resp .= "</Response>";

echo($resp);

?>

これで、曜日ごとに設定された電話番号に電話が転送され、電話使用中か営業時間外の場合には音声メッセージが流れるようになります。

なお、音声メッセージは別途費用がかかりますのでご注意ください。
$0.0008/100 characters & $0.0032/100 neural characters

 
この仕組みの総額という点では、だいたい月3,000円程度の費用になるかと思います。
(内訳:電話番号利用、電話着電、電話発電(転送)、音声メッセージ)
 
これからますます疑似コールセンターのようなもののニーズが高まってきます。
Twilioのようなサービスを利用して効率的に高品質のコールセンターを運営していきましょう。

【100ウェブ新着情報メルマガ】

WordPressカスタマイズ事例やウェブ制作ノウハウの新着情報、お役立ち情報を
リアルタイムにメルマガ配信!