Twilio Programmable Voiceでは、通話中にREST APIリクエストを介して録音の開始、一時停止、録音の停止を行うことができます。ここでは、Twilio Call Recording Controlsを使うための簡単な手順を説明します。ヘルパーライブラリーのコードサンプルなどを含めた詳細な解説は、Recording APIリファレンス(Twilio Docs)をご覧ください。
注 : Twilio Programmable Voiceからの発信通話はすべて、通話開始時から録音することができます。そのためには、開始時のAPIリクエストか<Dial> TwiMLにて、レコーディングパラメータと属性を呼び出します。このように開始した通話録音は、ここに記載されたAPIを使用して修正することができます。着信のレコーディングもCall Recording Controls APIで行え、<Dial>
コマンドを使用する必要はありません。
多彩な録音機能
次の録音機能がサポートされています。
進行中の通話の録音を始める
着信も発信も、ライブ通話の録音を開始するには、通話のRecordings ListサブリソースにHTTP POSTリクエストを発行します。次にcURLスクリプトの例を示します。
curl -XPOST https://api.twilio.com/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Calls/CAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Recordings.json \
--data-urlencode "RecordingStatusCallback=https://myapp.com/recording-events" \
--data-urlencode "RecordingStatusCallbackEvent=in-progress completed absent" \
-u "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:your_auth_token"
この例では、CAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
の通話録音を開始し、TwilioにHTTPリクエストを要求しています。この中のRecordingStatusCallback
Webhook URLには録音開始時のすべての録音ファイルの詳細のほか、後で録音がアップロードされてアクセス可能になったときや録音が作成されなかった場合のデータも含まれます。このスクリプトを自分たちに合わせて動作させるには、以下に示す更新を行い、Terminalに貼り付けます。
- 1行目: 有効なアカウントSID/アクティブコールSIDにより更新
- 2行目: レコーディングステータスコールバックのアプリケーションサイトにより更新(オプション)
注: 要求された通話とレコーディングSIDを収集してアクティブレコーディングの一時停止、再開と終了を行うために、レコーディングステータスコールバックの使用をお勧めします。 - 4行目: アカウントSIDと認証トークンにより更新
その他のオプションの通話レコーディングパラメータ(デュアルチャネルレコーディング、無音トリミングなど)もリクエストに追加できます。Helper Library(SDK)コードサンプルなどを含めた、使用できる録音オプションの詳しい説明はレコーディングリソースの作成(Twilio Docs : 英語)をご覧ください。
進行中の通話録音を一時停止/再開する
開始したライブ通話の録音を一時停止/再開するには、通話のレコーディングサブリソースにHTTP POSTリクエストを発行します。次にcURLスクリプトの例を示します
curl -XPOST https://api.twilio.com/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Calls/CAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Recordings/REXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.json \
-d "Status=XXXXX" \
-u "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:your_auth_token"
この例では、REXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
の録音のステータスを更新しています。このスクリプトを自分たちに合わせて動作させるには、以下に示す更新を行い、Terminalに貼り付けます。
- 1行目: 有効なアカウントSID/アクティブコールSID、レコーディングSIDにより更新
注: この情報は、録音開始時に要求されたRecordingStatusCallback
に含まれています。 - 2行目: 変更するレコーディングステータスにより更新(
paused
、in-progress
など) - 3行目: アカウントSIDと認証トークンにより更新
その他のオプションパラメータをリクエストに追加し、一時停止中の通話録音の音声再生をコントロールできます。Helper Library(SDK)コードサンプルなどを含めた、使用できるレコーディングオプションの詳しい説明はレコーディングリソースの更新(Twilio Docs)をご覧ください。
注: アクティブレコーディングが複数ある通話のレコーディングステータスを更新するには、1行目の完全なレコーディングリソースURIを使用する必要があります。アクティブコールレコーディングが1つだけであれば、リソースURIのライブ通話録音SIDの代わりにTwilio.CURRENT
を使用できます。Twilio.CURRENTを使用するには、1行目の末尾を次のように修正します: ...Recordings/Twilio.CURRENT.json \
進行中の通話録音を終了する
ライブ通話の録音を終了するには、通話のレコーディングサブリソースにHTTP POSTリクエストを発行します。次にcURLスクリプトの例を示します。
curl -XPOST https://api.twilio.com/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Calls/CAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Recordings/REXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.json \
-d "Status=stopped" \
-u "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:your_auth_token"
この例では、REXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
の録音を終了しています。このスクリプトを自分たちに合わせて動作させるには、以下に示す更新を行い、Terminalに貼り付けます。
- 1行目: 有効なアカウントSID/アクティブコールSID、レコーディングSIDにより更新
注: この情報は、録音開始時に要求されたRecordingStatusCallback
に含まれています。 - 3行目:アカウントSIDと認証トークンにより更新
これにより録音が直ちに終了し、ファイルが処理に送られます。停止した録音は再開できません。録音を続ける必要がある場合は、paused
/in-progress
ステータス値を使用するか、前述の進行中の通話録音を始める手順で新規に録音を開始します。Helper Library(SDK)コードサンプルなどを含めた詳しい説明はレコーディングリソースの更新(Twilio Docs)をご覧ください。
注: アクティブレコーディングが複数ある通話の録音ステータスを更新するには、1行目の完全なレコーディングリソースURIを使用する必要があります。
アクティブ通話レコーディングが1つだけであれば、リソースURIのライブ通話レコーディングSIDの代わりにTwilio.CURRENTを使用できます。Twilio.CURRENT
を使用するには、1行目の末尾を次のように修正します: ...Recordings/Twilio.CURRENT.json \
カンファレンス(会議)レコーディングコントロール
カンファレンスレコーディングも通常の通話と同じように一時停止と再開ができます。1つ違うのは、アクティブ通話のサブリソースでなく、アクティブなカンファレンスのサブリソースに対してHTTP POSTリクエストを行うことです。その他は、Twilio.CURRENT
の使用も含めて同じです。次にcURLスクリプトの例を示します。
進行中のカンファレンス通話レコーディングの一時停止:
curl -XPOST https://api.twilio.com/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Conferences/CFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Recordings/REXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.json \
-d "Status=paused" \
-u "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:your_auth_token"
一時停止したカンファレンスレコーディングの再開:
curl -XPOST https://api.twilio.com/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Conferences/CFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Recordings/REXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.json \
-d "Status=in-progress" \
-u "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:your_auth_token"
注 : カンファレンスレコーディングの開始はTwiML <Conference> noun attributesでリクエストする必要があり、Call Recording Controls API経由ではサポートされません。ただし、カンファレンスに接続した進行中の通話録音は前述のAPIを使用して開始できます。
<Conference> TwiMLでリクエストしたカンファレンスレコーディングの終了も、Call Recording Controls API経由ではサポートされませんが、録音はカンファレンスが終了すると自動的に終了します。カンファレンスの終了までは録音の一時停止が可能です。
通話録音の法的意義
通話録音を選択した場合、関連する法規制に準拠するものとみなされます。これには、(カリフォルニア州のプライバシー侵害法や他の管区の同様の法などの)録音への同意に関する法が含まれます。通話録音の法的意義について詳しくはこちらをご覧ください。
Notice: Twilioを使用し通信を記録・保存する際は、適用法の順守について各国弁護士にご相談ください。