通話中転送の構成
通話中転送の動作は、API と Voice Gateway 構成または拡張 JSON 構成プロパティーを介して定義します。
通話中転送の開始
バージョン 1.0.0.2 以降では、JSON ノード定義で vgwActTransfer アクション・タグを定義することによって、通話中転送が Watson Assistant サービスで開始されます。
{
"output": {
"vgwAction": {
"command": "vgwActTransfer",
"parameters": {
"transferHeader": "User-to-User",
"transferHeaderVal": "12a345b6c7d8901234e5;encoding=hex;purpose=foo;content=bar",
"transferTarget": "tel:+18883334444"
}
}
}
}
SIP URI を転送ターゲットとして定義する場合は、必ず URI 内の @ 文字をエスケープして、値が Watson Assistant によって処理されないようにしてください。
...
{
"transferHeader": "User-to-User",
"transferHeaderVal": "12a345b6c7d8901234e5;encoding=hex;purpose=foo;content=bar",
"transferTarget": "sip:12345556789\\@myhost.com"
}
...
Voice Gateway の以前のバージョンでは、vgwTransfer 状態変数を使用して、通話中転送を開始していました。 この状態変数は引き続き機能しますが非推奨となっており、vgwActTransfer アクション・タグの使用が推奨されます。 詳しくは、非推奨の状態変数を参照してください。
転送の成功か失敗かの判断
転送プロセスが成功すると、Watson Assistant は、単語 "vgwCallTransferred" が含まれたテキスト更新を受け取り、vgwCallTransferred 状態変数は Yes に設定されます。
転送が失敗したとき、vgwDisconnectCallOnTransferFailure 状態変数が No に設定されていると、Watson Assistant は、ストリング "vgwCallTransferFailed" が入ったテキスト更新を Voice Gateway から受け取ります。 このストリングは、転送が失敗したことを示します。 障害発生時の転送を参照して、転送の失敗に対応するように
Watson Assistant サービス・インスタンスおよび Voice Gateway デプロイメントを構成してください。
通話終了時の転送
デフォルトでは、Voice Gateway は、SIP REFER 要求を使用して通話の転送を実行します。 IVR サービス・プロバイダーによっては、代わりに SIP BYE メソッドを使用するように通話中転送を構成する必要がある場合があります。 IVR サービス・プロバイダーについて詳しくは、Voice Gateway と IVR およびコンタクト・センターとの統合を参照してください。
vgwActTransfer アクションの transferMethod 属性を使用して、通話を転送する方法として REFER と HANGUP のいずれかを指定します。 これが HANGUP に設定されていると、転送アクションの動作が変更されます。 SIP REFER 要求を送信する代わりに、Voice Gateway は関連付けられたテキストがあれば再生し、その後で
SIP BYE 要求を送信して通話を終了します。
通話終了後、Voice Gateway は、transferTarget 属性に指定された転送宛先を BYE メッセージの通話アンカーに渡します。 転送ターゲットを含んでいるヘッダー・フィールドは、transferTargetHeader 属性によって決まります。 transferTargetHeader 属性が指定されていない場合、Voice Gateway は Transfer-Target を使用します。 通話転送アクションの構成時に transferMethod 属性を組み込まないと、vgwActTransfer はデフォルトで REFER メソッドを使用します。
{
"output": {
"vgwAction": {
"command": "vgwActTransfer",
"parameters": {
"transferTarget": "tel:18883334444",
"transferTargetHeader": "Transfer-Target",
"transferMethod": "HANGUP"
}
}
}
}
障害発生時の転送
障害が発生した場合に静的エンドポイントに通話を自動的に転送するように Voice Gateway を構成できます。 構成されている Watson サービスのいずれかへの接続が Voice Gateway で失われた場合などに、障害が発生する可能性があります。
以下の状態変数は、会話の最初のターンで設定でき、通話中に障害が発生した場合に使用されます。 アクションおよび状態の定義を参照してください。
| 状態変数名 | 予期される値 | デフォルト値 | 説明 |
|---|---|---|---|
| vgwTransferFailedMessage | テキスト・ストリング | - | vgwDisconnectCallOnTransferFailure が Yes に設定されている場合、通話中転送の失敗時に発信者にストリーミングされるメッセージ。 最初のターンで Watson Assistant によって設定する必要があります。 |
| vgwConversationFailedMessage | テキスト・ストリング | - | Watson Assistant が失敗した場合に発信者にストリーミングするメッセージ。 最初のターンで Watson Assistant によって設定する必要があります。 |
例えば、次の状態変数は Voice Gateway に対して、このノード応答以降に通話中転送が失敗した場合、通話を終了する前に vgwTransferFailedMessage を発信者にストリーミングするように指示します。
{
"context": {
"vgwDisconnectCallOnTransferFailure": "Yes",
"vgwTransferFailedMessage": "Call transfer to an agent failed. Please try again later. Good bye."
}
}
Voice Gateway が Watson Assistant に到達できない場合、以下の構成環境変数を使用して、静的電話番号への転送を強制できます。
| 環境変数 | デフォルト値 | 説明 |
|---|---|---|
| CONVERSATION_FAILED_REPLY_MESSAGE | Call being transferred to an agent due to a technical problem. Good bye. | Watson Assistant が失敗した場合に発信者にストリーミングするメッセージ。 |
| TRANSFER_DEFAULT_TARGET | none | ターゲットの転送先エンドポイントを識別します。 有効な SIP または tel URI でなければなりません (例えば、sip:10.10.10.10)。 これは、デフォルトの転送ターゲットです。 障害が発生し、通話中転送ターゲットを Watson Assistant API から取得できなかった場合にのみ使用されます。 |
| TRANSFER_FAILED_REPLY_MESSAGE | Call transfer to an agent failed. Please try again later. Good bye. | DISCONNECT_CALL_ON_TRANSFER_FAILURE が True に設定されている場合、通話中転送の失敗時に発信者にストリーミングされるメッセージ。 |
エラー・コードを成功応答として処理するための Voice Gateway の構成
通話中転送の間に Voice Gateway が SIP NOTIFY 要求を処理するとき、NOTIFY 要求内に指定された応答コードが [200-299] の範囲内になければ、転送プロセスは失敗です。 一部の IVR システムでは、転送が成功したにもかかわらず、NOTIFY 要求内のエラー・コードが送信されることがあります。 ACCEPT_TRANSFER_REJECT_CODES 構成属性または vgwActTransfer 属性
acceptTransferRejectCodes を使用して、Voice Gateway が成功応答として処理するエラー・コードのリストを構成できます。
次の構成属性の例で、NOTIFY 要求に 410 または 500 のエラー・コードが含まれている場合、Voice Gateway は NOTIFY 要求を成功要求として処理し、転送処理を続行します。
ACCEPT_TRANSFER_REJECT_CODES=410,500
vgwActTransfer アクションで acceptTransferRejectCodes 属性を使用すると、NOTIFY 要求を処理するときに成功応答として扱われるエラー・コードのリストを指定できます。 次の例は、vgwActTransfer アクションを使用して、410 または 500 のエラー・コードを含む NOTIFY 要求を成功要求として処理するように Voice Gateway を構成する方法を示しています。
{
"command": "vgwActTransfer",
"parameters": {
"transferTarget": "tel:999",
"acceptTransferRejectCodes": "410,500"
}
}
通話中転送でのユーザー間情報通知 (UUI) データの送信
Voice Gateway は、SIP REFER メッセージ、SIP BYE 要求、または SIP INFO 要求でユーザー間通知 (UUI) データを送信できます。
Voice Gateway は、通話を転送するときに SIP REFER メッセージで UUI データを送信できます。 バージョン 1.0.0.4c 以降では、Voice Gateway は、REFER 要求で UUI データを送信するために以下のヘッダー・フィールドをサポートします。
User-to-UserContactRefer-To
SIP BYE 要求を使用して通話を転送する場合、バージョン 1.0.0.7 以降では、UUI データは User-to-User ヘッダー・フィールド内で送信されます。
SIP BYE 要求または SIP REFER 要求での UUI データの送信
SIP BYE 要求または SIP REFER 要求に対する vgwActTransfer アクションに uuiData 属性と uuiSendMethod 属性を使用することにより、Voice Gateway が UUI データの送信に使用するヘッダーをカスタマイズできます。 ヘッダー・フィールドを構成するには、uuiSendMethod 属性を uuiHeader、contactHeader、または
referToURL に設定します。 uuiSendMethod 属性の値を指定しない場合、データはデフォルトで User-to-User ヘッダー・フィールドで送信されます。 アクション・タグを参照してください。
{
"output": {
"vgwAction": {
"command": "vgwActTransfer",
"parameters": {
"transferTarget": "sip:+18883334444@example.com",
"uuiData": "59a390f3d2b7310023a2;encoding=hex;purpose=abc;content=123",
"uuiSendMethod": "contactHeader"
}
}
}
}
SIP INFO 要求での UUI データの送信
通話を転送する際、Voice Gateway は SIP REFER 要求または SIP BYE 要求で UUI データを送信することができます。 一部のセッション・ボーダー・コントローラーはこれらのオプションをサポートしておらず、SIP INFO 要求で UUI データが提供されることを予想しています。 通話を転送または切断する前に、vgwActSendSIPInfo を使用して、UUI データおよびカスタム・コンテンツを含む SIP INFO 要求を送信することができます。
バージョン 1.0.0.8 以降。
SIP ヘッダーの名前と値のペアを指定して sipHeaders 属性を構成し、SIP INFO 要求に追加します。 From、To、Contact などのシステム・ヘッダー・フィールドはリストに含めないでください。構文解析の問題を避けるために、正しいフォーマットで既知のフィールドを指定してください。 誤った形式のヘッダーはメッセージに追加されません。
オプションで messageBody 属性を構成して、追加の情報を含めることができます。 messageBody は、SIP INFO 要求に添付される本文です。 messageBody を含めるには、必須ヘッダー Content-Type を sipHeaders リストに含めます。 Content-Type を追加しないと、デフォルト値の
application/text が挿入されます。
{
"output": {
"command": "vgwActSendSIPInfo",
"parameters": {
"sipHeaders": {
"Content-Type": "multipart/mixed;boundary=unique-boundary-1"
},
"messageBody": "--unique-boundary-1\r\nContent-Type: application/dtmf-relay\r\nSignal=999#\r\nDuration=250\r\n--unique-boundary-1--"
}
}
}
SIP INFO 要求を送信した後、Voice Gateway はリスト内の残りのアクションを進める前に、リモート通話者が SIP INFO 要求に応答するのを待ちます。 Voice Gateway が SIP INFO 要求を送信するときに障害が発生すると、Voice Gateway は vgwSIPInfoFailed テキストによって SOE への turn を即時開始します。 vgwSIPFailureReason 状態変数には、障害の理由が含まれています。
以下の例は、リモート通話者が SIP INFO 要求に応答しなかった後の vgwSIPFailureReason 状態変数のフォーマットを、要求が失敗した理由を含めて示しています。
{
"vgwSIPFailureReason": {
"sipMessage": "INFO",
"failureReason": "A 400 Bad Request error response message was received"
}
}
状態変数を使用したユーザー間情報通知データの送信
Watson Assistant ダイアログ内で以下の状態変数を設定することもできます。 これらの状態変数を定義してから、転送アクション属性で別の値を定義した場合、アクションの値が優先されます。
| 状態変数名 | 予期される値 | デフォルト値 | 説明 |
|---|---|---|---|
vgwUUIData |
ユーザー定義 | - | 転送中に発信 SIP REFER メッセージで送信するユーザー間情報通知 (UUI) データを定義します。 バージョン 1.0.0.4c 以降。 |
vgwUUISendMethod |
uuiHeader / contactHeader / referToURL |
- | ユーザー間情報通知 (UUI) データの送信方法。 デフォルトでは、UUI データは、User-to-User ヘッダー・フィールドで送信されます。 バージョン 1.0.0.4c 以降。 |
Voice Gateway は、送信の値および方法に従って、UUI データをエンコードします。 Contact または Refer-To ヘッダー・フィールドで UUI データを送信した場合、データは URI ヘッダーとしてエンコードされます。 Refer-To ヘッダーが tel URL の場合、UUI データは URL パラメーターとして送信されます。 例えば、前の例における UUI
データは、Contact ヘッダーで送信され、以下に示すようにエンコードされます。
Contact: <sip:+18883334444@example.com?User-to-User=59a390f3d2b7310023a2%3Bencoding%3Dhex%3Bpurpose%3Dabc%3Bcontent%3D123>
既知の問題: UUI データは、tel URL でエンコードできません。 回避策として、UUI データの事前エンコードされた値を用意してください。
1.0.0.4c より前のバージョンでは、Watson Assistant ダイアログ内で以下の状態変数を設定して、発信 REFER メッセージで設定するカスタム・ヘッダーを Voice Gateway に通知できます。 なお、これらの変数を使用した場合、vgwTransferHeaderVal プロパティーで指定した UUI データはエンコードされません。
| 状態変数名 | 予期される値 | デフォルト値 | 説明 |
|---|---|---|---|
vgwTransferHeader |
ユーザー定義 | - | 転送時における発信 SIP REFER メッセージ内のカスタム・ヘッダー・フィールドを定義します。 カスタム・ヘッダー値は、vgwSIPTransferHeaderVal 状態変数によって定義されます。 |
vgwTransferHeaderVal |
ユーザー定義 | - | 転送時における発信 SIP REFER メッセージ内のカスタム・ヘッダーの値を定義します。 カスタム・ヘッダー・フィールドは、vgwTransferHeader 状態変数によって定義されます。 |
GUID を渡すことによる通話の追跡
GUID (Globally Unique ID) を User-to-User ヘッダーとして着信 SIP コールに追加するようにエンタープライズ・テレフォニー・システムを構成できます。 GUID は、エンタープライズ・ネットワーク内で通話の存続期間全体で通話を追跡するのに使用されます。 Voice Gateway は、初期 SIP INVITE から GUID を抽出し、後続の REFER メッセージ内でヘッダーとして同じ GUID を渡すように構成できます。
GUID を渡すことで、通話がコンタクト・センター・エージェントに伝搬されていく間、通話を適切に追跡できるようになります。
CUSTOM_SIP_INVITE_HEADER 構成環境変数で、通話を確立する初期 SIP INVITE メッセージからプルされるカスタム・ヘッダーを指定します。 この環境変数を指定すると、指定された SIP ヘッダーが、vgwSIPCustomInviteHeader 状態変数で Watson Assistant に渡されます。
発信 REFER メッセージでカスタム・ヘッダーを設定するために、前のセクションで説明しているように、UUI データのアクション・タグと状態変数またはカスタム転送ヘッダー状態変数を使用できます。