https://d226lax1qjow5r.cloudfront.net/blog/blogposts/best-practices-for-contact-center-with-vonage-voice-api-and-client-sdk/best_practices_contact_center.png

Vonage Voice APIとクライアントSDKを使用したコンタクトセンターのベストプラクティス

最終更新日 May 9, 2023

所要時間:1 分

はじめに

VonageのAPIを使ってコンタクトセンターを構築する際に、パフォーマンスとユーザーエクスペリエンスを向上させることができるいくつかの重要な点を強調したい。

NCCOのWebhookの応答時間

NCCO(コール・コントロール・オブジェクト)は、音声APIのフローを制御するために使用される。 音声APIコールの流れを制御するために使用されます。NCCOを使用して着信コールをコンタクトセンターにルーティングする場合は、Vonageアプリケーションの 応答URLエンドポイントの応答時間に注意してください。ウェブフック・エンドポイントが NCCO を返すのに長い時間、例えば 4 秒かかる場合、電話をかけてきた顧客はその 4 秒の間、無音以外何も聞くことができません。

Answer URLエンドポイントでは、アプリサーバーが時間のかかるクエリーを実行する時間が必要な場合、最初に トークまたはストリームアクションを返します。 進行中のコールを変更するAPI を使用して、利用可能なエージェントを見つけたり、通話をキューに入れたりといった必要なクエリを実行した後に、通話を更新します。

すべての イベントURLのような、NCCOを返すことが期待されるNCCOアクションのすべてのイベントURLに適用されるべきである。 入力, 接続(eventTypeがsynchronousに設定されている場合)。)、そして 通知.これらのアクションは同期的であり、次のアクションが完了するまで待たなければならない。したがって、それらのEvent URLでは、顧客を待たせないために、できるだけ早くNCCO(または空のレスポンス)で応答したい。

アプリケーションを設定する際に フォールバックURLこれはVonage APIがアンサーURLやイベントURLに到達できなかったり、特定のHTTPエラーコードを返した場合にNCCOの取得を試みるフォールバックURLです。NCCOが返されないと通話が切断されるため、デフォルトの処理(ログを取ったり、デフォルトのNCCOを返すなど)を設定しておくと良いでしょう。

アンサーとイベントURLのデフォルトのタイムアウト設定は5秒です。必要に応じてVonage Developer Dashboardで変更できます。

Voice APIとNCCOについてもっと知りたいですか? 音声APINCCO.

キュー、転送、記録

キュー、トランスファー、レコードは、顧客からのコールを効率的に管理するためのコンタクトセンターの重要な機能です。キュー キュー機能により、顧客は担当者が対応可能になるまで列に並んで待つことができます。 転送エージェントがコールを他のエージェントに転送することができます。 録音は、通話録音を可能にします。

NCCOのアクション 会話, 音声APIおよび 会話APIを使用すれば、キューと転送を簡単に実装して、待機中の通話を管理したり転送したりすることができます。また、通話録音を実装するための使いやすい方法があります。 会話APIのような複雑な機能が必要な場合のために 分割録音.

Vonage APIでこれらを実装する場合、以下のように uuidconversation_uuidを区別することが重要です。 イベントウェブフックを追加し、アプリサーバーで転送イベントと録音イベントに正しく関連付けます。 転送特に、通話が会話から会話に転送され 録音特に、通話が会話から会話に転送され、録音したい場合です。

コール(Conversation APIではレグまたはコールレグとも呼ばれる。 詳細) がVoice APIを使用して作成されます、 つまり、着信コールがVonageプラットフォームに到着したとき、またはVonageが発信コールのリクエストを受信したときです。に一意の識別子 uuid- で識別される)会話に追加されます。 会話_uuid).この uuidは通話が完了するまで変わらないが conversation_uuidは、録音が会話に関連付けられている間に通話に転送が起こると変更される。

移籍が起こるとき、 つまり、"会話「が実行されるか 転送要求 が完了すると転送ウェブフック ( もっと見る):

{
  "conversation_uuid_from": "CON-aaaaaaaa-bbbb-cccc-dddd-0123456789ab",
  "type": "transfer",
  "uuid": "aaaaaaaa-bbbb-cccc-dddd-0123456789ab",
  "conversation_uuid_to": "CON-aaaaaaaa-bbbb-cccc-dddd-0123456789ab",
  "timestamp": "2023-04-12T07:26:42.775720Z"
}

の両方を保存することを推奨する。 conversation_uuid_toを保存することを推奨します。各会話で録音を有効にしている場合、各会話で録音イベントを受け取ることになります。

例えば、以下のNCCO:

[
  {
      "action": "record"
  },
  {
      "action": "talk",
      "text": "You are joining a conference that was created using Vonage's Voice API."
  },
  {
      "action": "conversation",
      "record": true,
      "name": "vonage-conference-abc",
  }
]

記録オプションがtrueに設定された記録アクションと会話アクションがあるので、1つの転送イベントウェブフックと2つの記録イベントウェブフックを受け取ります:

  • 通話が転送された会話の録音イベント(会話_uuid_from).

  • 通話が追加された会話の別の録音イベント(会話_uuid_to).

そのため、各録音と各転送を追跡するために、正しいIDに関連付けることが重要である。conversation_uuidをすべて保存しておかないと、後でどの通話に関する録音なのかわからなくなる。

各参加者を別々のチャンネルで録画する方法

分割録音を選択すると、録音はステレオファイルとなり、1つのチャンネルには発信者から送信された音声が、もう1つのチャンネルには発信者が聞いた音声が録音されます。

アプリケーションにスプリット・レコーディングを追加するには、NCCOアクション・コネクトで作成された会話か、NCCOアクション会話かによって、選択することができます:

  • コネクトのアクションを使用する場合は、NCCOのアクションを設定する。 レコード:

{
  "action": "record",
  "split": "conversation", 
  "channels": 3,//the number of channels to record (maximum 32)
  "format": "wav",
}, 
{
  "action": "connect", ... }

会話が始まったら にリクエストを送る。にリクエストを送る:

{
   "action": "start",
   "split": "conversation",
   "format": "wav",
   "channels": 3
}

レコーディングの詳細

会話がNCCOアクションコネクトで作成されている場合、音声APIはそれらを保存しないので、すべての音声イベントウェブフックを保存することを強くお勧めします。

しかし、会話というアクションでカンファレンスを作成する場合、以下の方法で録画イベントを取得することができます。 会話API v0.2イベント].

ついにだ、

定期的にクライアントSDKを最新バージョンに更新する以外に、エラーキャッチとロギングを実装することは、アプリケーションにとって有益です。

例えば、コンタクトセンターの "応答 "ボタンがコールに接続できない場合、エラーを発生させ、ユーザーのブラウザ、OSに関する可能な限りの情報をエラーログプラットフォームに送信することができます、 call_uuid, converstion_uuidなど。これにより、デバッグ時に問題の影響や考えられる原因について、より多くのコンテキストが提供されます。

try {
  app.on("member:call", (member, call) => {
    // Answer the call.
    $( "#answer" ).click((e) => {
      call.answer().then().catch(error => {
        // Send the error to your error logging platform with additional information
        logError({
          message: 'Failed to answer the call',
          data: [
            member.id,
            member.conversation.id,
            call.id,
          ],
          extra: [
            `Browser: ${navigator.userAgent}`,
            `OS: ${navigator.platform}`
          ]
        });
      });
    });
} catch (error) {
  logError({
    message: `Error: ${error.message}`,
    extra: [
      `Browser: ${navigator.userAgent}`,
      `OS: ${navigator.platform}`
    ]
  });
}

まとめ

Vonage APIを使用して効率的なコンタクトセンターを構築するには、以下のWebhookの応答時間を監視することを強くお勧めします。 NCCO(HTTPリクエストのレスポンスタイムを監視するためにサーバーのロギングを有効にする必要があります)のレスポンスタイムを監視し、フォールバックURLがフォールバックNCCOを返すように設定されていることを確認することを強くお勧めします。 Vonageカスタマーダッシュボード).また、コール uuidconversation_uuid(会話APIで使用される概念について詳しくはこちら)を正しく関連付けることも重要です。 イベントウェブフックを使用して、Queue、Transfer、Recordなどの機能を実装します。最後に、エラー・キャッチとロギングを実装することで、アプリケーションのデバッグに役立ちます。 Vonage Client SDK.

ご質問やフィードバックがありましたら Vonage Developer Slack にご参加ください。.

シェア:

https://a.storyblok.com/f/270183/400x346/e25af61dbc/yinping-ge.png
Yinping Ge

Customer Solutions Engineer at Vonage