Twilio は 2018/10/11 に通話途中からの録音開始や一時中止、再開、終了を可能にする Call Recording Controls を正式リリースしました。
録音は従来も発信時の <Dial record="record-from-answer-dual"> や受信時の <Record> で可能でしたが、通話中の録音の制御によりコールセンターでお客様から住所といった機微情報を聞くときだけ録音を中止するといった運用が可能になります。
通話の途中から録音開始
通話の途中から録音開始するにはCall SIDを指定するだけです。これで録音開始されます。
$ export CALL_SID=CAxxxxxxx
$ curl -XPOST https://api.twilio.com/2010-04-01/Accounts/$TWILIO_ACCOUNT_SID/Calls/$CALL_SID/Recordings.json \
-u $TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN | jq .
録音の一時中止と再開
一時中止は paused、再開は in-progress を渡すことで制御可能です。
一時中止 - paused
$ curl -XPOST https://api.twilio.com/2010-04-01/Accounts/$TWILIO_ACCOUNT_SID/Calls/$CALL_SID/Recordings/Twilio.CURRENT.json \
-d "Status=stopped" \
-u $TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN | jq .
再開 - in-progress
$ curl -XPOST https://api.twilio.com/2010-04-01/Accounts/$TWILIO_ACCOUNT_SID/Calls/$CALL_SID/Recordings/Twilio.CURRENT.json \
-d "Status=in-progress" \
-u $TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN | jq .
本来なら RE からはじまる Recording SID の部分を Twilio.CURRENT も使用できます。Twilio.CURRENT は現在有効な Recording SID になります。ただし、これは開発中などで Recording SID が一つだけの場合に使える文字列です。複数の録音が存在する本番環境では Twilio.CURRENT ではなく Recording SID を使いましょう。
録音中に一時中止と再開をしたため、録音ファイルに無音の部分が発生しています。
録音の終了と開始
stopped
録音の終了は stopped です。これで一つの録音ファイルが作成されます。
$ curl -XPOST https://api.twilio.com/2010-04-01/Accounts/$TWILIO_ACCOUNT_SID/Calls/$CALL_SID/Recordings/Twilio.CURRENT.json \
-d "Status=stopped" \
-u $TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN | jq .
通話の途中から録音開始
stopped したものは in-progress で再開できません。前述の通話の途中から録音開始を使用します。
$ export CALL_SID=CAxxxxxxx
$ curl -XPOST https://api.twilio.com/2010-04-01/Accounts/$TWILIO_ACCOUNT_SID/Calls/$CALL_SID/Recordings.json \
-u $TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN | jq .
これにより一つの Call SID で複数の録音ファイルが生成されます。
皆さまが録音開始ボタンや一時中止ボタンを開発するのを、目にするのが待ちきれません!