Twilioで電話をかけた通話ログを取得する

Twilioを使って電話Webアプリケーションを構築しよう」の第5回目の記事は、TwiMLを使って電話をかけたログを取得します。

前回の記事でTwiMLの<Dial>を使い、電話を発信しました。この通話にaction属性を追加し、ログを取得します。

 

 

手順

 

  1. 第4回目で作成した、「twilio_respons.php」を開き、<Dial>にaction属性を追加します
    echo '<Dial timeout="20" callerId="+815031353932"';
    echo 'action="twilio_call_end.php">';
    echo $tocallno.'</Dial>';
    

    actionには、通話終了後に呼び出されるPHPファイルを指定します。
     

  2. 「twilio_call_end.php」を作成します。
    <?php
    // ログはPOSTから下記のパラメータで取得できる
    $_POST["DialCallSid"];  // 通話時に発行されるID
    $_POST["DialCallStatus"];  // ステータス
    $_POST["DialCallDuration"]; // 通話時間
    
    /* ログデータ準備 */
    $log_data = 'Call_Sid='.$_POST["DialCallSid"]."\n";
    $log_data .= 'DialCallStatus='.$_POST["DialCallStatus"]."\n";
    $log_data .= 'AccountSid='.$_POST["AccountSid"]."\n";
    $log_data .= 'CallDuration='.$_POST["DialCallDuration"]."\n";
    $log_data .= '----------終了-------------'."\n\n";
    
    /* ログデータをファイルに保存 */
    $fp = fopen('./filename.txt', 'ab');
    if ($fp){
           fwrite($fp,  $log_data);}
    fclose($fp);
    
    

以上で、通話時のログを保存することができます。
ログデータは、http(外部)からアクセスできない、階層に設置を行うか、.htaccessなどでアクセス制限を行うことを忘れずにしましょう。

次回はTwiMLで取得できないログをREST APIを使って発信先の電話番号の取得を行います。

 


[特集] Twilioを使って電話Webアプリケーションを構築しよう

 

ソースコード

 

ソースコードは、GitHubに公開いたしました。

 
 
関連タグ: 

この記事をシェアする:

Author
この記事を書いた人:阿部 正幸

KDDIウェブコミュニケーションズ
クラウドホスティング事業本部 エバンジェリスト

CPIスタッフブログ編集長。ACE01,SmartReleaseをリリース後、現職の「エバンジェリスト」として、web制作に関する様々なイベントに登場

Line@登録よろしくお願いします

Web制作に関する情報や、CPIノベルティのプレゼント、サーバーの無償提供などを定期的に発信しています。
ぜひ、登録ください。