会社通話の録音を日付で削除

このチュートリアルでは、通話録音を特定の日付までに削除する方法について説明します。これにより、不要な通話録音のストレージコストを最小限に抑えることができます。また、セキュリティのために録音を削除したい場合にも便利です。 Call Recording APIを使用すると、すべての通話録音を取得し、通話時間、内線番号、発信者ID、方向(着信または発信)などでフィルタリングすることができます。APIリファレンスを参照し、可能なすべてのフィルタを確認してください。

この例では、過去7日間の録音をクエリーする。pythonスクリプトを使用して通話の録音をクエリし、録音ごとに録音を削除します。

Pythonは、以下の例を構築するために使用される言語ですが、あなたが最も使いやすい言語を使用することができます。この例では以下のPythonライブラリを使用する:

前提条件

始める前に、Vonage Developerアカウントが必要です。Vonage Developerアカウントをお持ちでない場合は、こちらをご利用ください。 ガイド をクリックしてアカウントを作成します。

Accountを取得したら、以下のガイドに従って以下のことを行う必要があります:

この例では、Subscribeを 通話録音CSP(インド)API.

認証

アプリケーションを作成し、通話録音APIにサブスクライブした後、Vonage Business Communicationsの認証情報を使用してログインする必要があります。このサンプルアプリケーションでは、Requests ライブラリを使用して /api/accounts/ API。をチェックしてください。 APIリクエストガイド をご覧ください。

次に、この関数に /api/accounts APIを使用してアクセストークンを生成します。

def get_token():
  url = "https://api.vonage.com/token"
  payload = 'grant_type=password&username={}&password={}&client_id={}&client_secret={}'.format(USERNAME, PASSWORD, CLIENT_ID, SECRET)
  headers = {
    'Content-Type': 'application/x-www-form-urlencoded'
  }

  response = requests.request("POST", url, headers=headers, data = payload)
  return response.json()

この関数を実行するには、以下を渡す必要がある:

  • USERNAME - Vonage Business Communicationsのユーザー名。必ず @vbc.prod をユーザー名に追加する。 firstname.lastname@vbc.prod.
  • PASSWORD - Vonage Business Communicationsのパスワード。
  • CLIENT_ID - Vonage Developer アプリケーションのクライアント ID。
  • SECRET - Vonage Developerアプリケーションの秘密。

この関数を実行すると、次のような応答が表示されるはずだ:

{'access_token': 'abc123-xxxxx-xxxxx',
'expires_in': 99999,
'refresh_token': 'def456-xxxx-xxxx',
'scope': 'default',
'token_type': 'Bearer'}

通話記録の取得

company_call_recordings APIをコールする前に、過去の日付文字列を渡す必要がある。この例では、7日前の日付を指定します。

import datetime
import urllib.parse
today = datetime.datetime.now()
last_week = datetime.timedelta(days = 7)
date_diff = today - last_week
encoded_date = urllib.parse.quote_plus(date_diff.strftime('%Y-%m-%dT00:00:00+0000'))

ここでは datetime.datetime.now()を使用する。 datetime.timedelta() 関数を使って days を使用している。ここでは 7.次に、7日前の日付から現在の日付を引いて、日付を求める。最後に strftime() で日付オブジェクトを文字列に変換している。時刻を 00:00:00+0000つまり、UTC午前0時の日付を取得していることになる。 通話録音APIに日付を渡す前に、次のようにして日付をURLエンコードする必要があります。 urllib.parse.quote_plus().

次に、通話録音APIをリクエストして access_token から返された get_token() 関数を使用します。この関数は、通話録音のJSONレスポンスを返します。次に、日付 encoded_date この関数に

import requests
comany_recordings = []
def company_call_recordings(token, start_date, account_id="self",order="asc", page_size=10, page=1):
  url = "https://api.vonage.com/t/vbc.prod/call_recording_india/v1/api/accounts/{}/company_call_recordings?order={}&page_size={}&page={}&start:gte={}".format(account_id, order, page_size, page, start_date)
  headers = {
    'Accept': 'application/json',
    'Authorization': 'Bearer {}'.format(token),
  }

  response = requests.request("GET", url, headers=headers).json()
  if "_embedded" in response:
    comany_recordings.extend(response["_embedded"]["recordings"])

  if "total_pages" in response:
    if page < response["total_pages"]:
      page = page + 1
      company_call_recordings(token, start_date, account_id, order, page_size, page)

  return comany_recordings

ここでは company_call_recordings_india/v1/api/ で、以下のパラメータを渡す:

  • account_id - Vonage Business CommunicationsのアカウントIDです。を使用することができます。 self 認証されたユーザーのアカウントを参照する。
  • page - リクエストするページ数。
  • page_size - 要求されたページサイズ。
  • order - 返された通話記録の順序
  • start:gte - 開始日(以上)によるレコードのフィルタリング

でパスすることもできる。 start:lte これは、指定された日付より前のレコードを返す。

通話録音のリストを取得したら、それぞれの録音をループさせて削除する。その前に、録音のバックアップがあることを確認してください。そのために 通話録音をAmazon S3に保存 の使用例では、録画をAmazon S3に保存します。

通話録音の削除

について get_company_call_recordings() 関数はAccountから録画のリストを返します。次に、録画IDによって録画を削除する関数を作成します。

def delete_call_recording(token, call_id, account_id="self"):
  url = "https://api.vonage.com/t/vbc.prod/call_recording_india/v1/api/accounts/{}/company_call_recordings/{}".format(account_id, call_id)

  headers = {
    'Accept': 'application/json',
    'Authorization': 'Bearer {}'.format(token)
  }

  response = requests.request("DELETE", url, headers=headers)
  return response

この機能は call_id パラメータを設定し、通話録音を削除します。この例では account_id への self.

次に、通話録音をループさせてみましょう。 get_company_call_recordings() 関数を作成し、録画データを取得する。 call_id.で通過する。 call_id 私たちの delete_call_recording() 機能を使って録音を削除します。

for recording in recordings["_embedded"]["recordings"]:
  call_id = recording["id"]
  response = delete_call_recording(access_token, call_id)
  print(response)

ここで、録音を入手した。 id より recordings リストを作成し、そのcall_idを delete_call_recording 関数を使用する。成功すれば、空の204レスポンスが返される。

CRONジョブ

最後のステップは、CRONジョブを使って毎週通話記録を削除することである。こうすることで、これらの機能を手動で実行する必要がなくなる。CRONとは、決まった日時や間隔で定期的にスクリプトを実行する方法です。 ローカルでCRONジョブを作成するには、最初に crontab -e OSX/Linuxベースのシステムで。

Windowsマシンの場合:

  • 管理者などの特権アカウントでログオンする。
  • スタート」→「コントロールパネル」→「システムとセキュリティ」→「管理ツール」→「タスクスケジューラ」を選択。
  • 右のパネルで「基本タスクの作成」をクリックする。

CRONジョブは7日ごとに実行されます。CRONジョブは以下のようになります:

* * 7 * * delete_recordings.py >/dev/null 2>&1

について delete_vbc_recordings.py は、7日以上前の通話録音を削除するスクリプトです。 以下をご覧ください。 https://crontab-generator.org/ をクリックして、独自のCRONジョブを作成してください。

結論

ここでは、7日ごとにVBC通話録音を削除する簡単なCRONジョブスクリプトの作成方法を紹介します。以下をご覧ください。 大意 をクリックして、完全なコード例をご覧ください。