Twilioの音声ファイルを取得し、Webサーバーに保存

Twilioを使って電話Webアプリケーションを構築しよう」の第 9 回目の記事は、通話音声を録音したファイルを取得し、Webサーバーに保存します。

 

方法

 

  1. 第8回目で作成した「twilio_call_end.php」を開き、下記のコードを追記しましょう。
    // 通話音声を保存し削除する
    $url  = $_POST["RecordingUrl"];
    $path = './twilio_record_file.mp3';
    
    // fopenでファイルポインタを開いてから、curlのCURLOPT_FILEオプションを使い、
    // 対象ファイルを保存します。PHPのメモリリミットに関係せず、
    // ファイルを保存することができるようになります。
    $fp = fopen($path, 'w');
    $ch = curl_init($url.'.mp3');
    
    // 1分を超えるとタイムアウトとなります。
    curl_setopt($ch, CURLOPT_TIMEOUT, 60);
    curl_setopt($ch, CURLOPT_FILE, $fp);
    
    // curlレスポンスを取得
    $data = curl_exec($ch);
    curl_close($ch);
    fclose($fp);
    
    // 音声ファイル保存後、Twilioに保存しているファイルを削除する
    $record_id = preg_split('[/]', $url);
    $client->account->recordings->delete($record_id[7]);

$_POST["RecordingUrl"] より、音声ファイルのURLを取得します。
$path = にファイルの保存先を指定します。
次にfopenとcurlを使い、ダウンロードしながらmp3ファイルへ保存します。
ファイル作成後、REST APIを使い、クラウド上に保存している音声ファイルを削除しています。

 


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

 

ソースコード

 

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

 

 

関連タグ: 

この記事をシェアする:

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

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

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

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

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