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をプロダクトマネージャーとしてローンチし、エバンジェリストとしてイベント登壇を行う。
現在は、KDDIウェブコミュニケーションズを退職し、モチヤ株式会社で、Web制作、受託開発、コンサルティングを行なっている。