Complete a 3 Question Survey and Earn a re:Post Badge
Help improve AWS Support Official channel in re:Post and share your experience - complete a quick three-question survey to earn a re:Post badge!
内線番号を設定し、Amazon Connect コンタクトセンターでエージェント同士が直接通話できるようにする方法を教えてください。
内線番号を設定し、Amazon Connect コンタクトセンターのエージェント同士が直接通話できるようにしたいです。
解決策
注: Amazon Connect インスタンスが置かれているリージョンと同じ AWS リージョンで、次の手順を実行します。
エージェントのログイン名とその内線番号を含む DynamoDB テーブルを作成する
次の手順を実行します。
- Amazon DynamoDB コンソールを開きます。
- [DynamoDB テーブルの作成] ページで、[テーブル名] に AgenttoAgent と入力します。
- [プライマリキー] の [パーティションキー] パネルに Extension と入力します。
- [データ型] で [String] を選択します。
- [作成] を選択します。
- 各エージェントログイン名に一意の内線番号を割り当てます。
- 内線番号とエージェントログイン名を表に追加します。
注: 内線番号の [属性名****キー] に Extension と入力します。エージェントログイン名の [属性名キー] に AgentLoginNameAgentLoginName と入力します。
注: DynamoDB テーブルを編集する方法の詳細については、「DynamoDB テーブルにデータを書き込む」を参照してください。
Lambda 関数用の IAM ロールを作成します。
AWS Lambda 関数用の AWS Identity and Access Management (IAM) ロールを作成します。次に、Lambda が DynamoDB でエージェントのログイン名を見つけられるように、次のポリシーをロールにアタッチします。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:BatchGetItem", "dynamodb:GetItem", "dynamodb:Query", "dynamodb:Scan", "dynamodb:BatchWriteItem", "dynamodb:PutItem", "dynamodb:UpdateItem" ], "Resource": "Replace with ARN of DynamoDB table you created" }, { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "*" } ] }
Lambda 関数を作成する
Lambda 関数を作成します。組み込みのコードエディタで、拡張機能の入力を使用して DynamoDB テーブルをクエリし、テーブル内の対応するエージェントログイン名を返す次の Python コードを入力します。
import jsonimport boto3 from boto3.dynamodb.conditions import Key def get_agent_id(Extension, dynamodb=None): if not dynamodb: dynamodb = boto3.resource('dynamodb') table = dynamodb.Table('AgenttoAgent') response = table.query( KeyConditionExpression=Key('Extension').eq(str(Extension)) ) return response['Items'] def lambda_handler(event, context): Extension = event['Details']['Parameters']['Extension'] AgentLoginName = get_agent_id(Extension) for agent in AgentLoginName: print(agent['Extension'], ":", agent['AgentLoginName']) print(AgentLoginName) return agent
関数を作成した後、IAM ロールを関数にアタッチします。
Amazon Connect インスタンスに Lambda 関数を追加する
次の手順を実行します。
- Amazon Connect コンソールを開きます。
- [インスタンスのエイリアス] 列で、該当する Amazon Connect インスタンスの名前を選択します。
- ナビゲーションペインで [問い合わせフロー] を選択します。
- [AWS Lambda] セクションで、[関数] ドロップダウンリストから Lambda 関数を選択します。
- [Lamba 関数の追加] を選択します。
- [Lambda 関数] で、関数の ARN を追加します。
Lambda を Amazon Connect と統合する方法の詳細については、「Amazon Connect に AWS Lambda 関数へのアクセス許可を付与する」を参照してください。
エージェントが通話を受けられるかどうかを確認する顧客キューフローを作成する
次の手順を実行します。
- 新しい顧客キューフローを作成します。
- [人員の確認] ブロックを追加します。
- **[ブランチ]**を選択します。
- [人員の確認] ブロックを [エントリポイント] ブロックの後のキャンバスにドラッグドロップします。
- [確認するステータス] で [Available] を選択します。
- [保存] を選択します。
注: 設定済みの [人員の確認] ブロックには、True、False、Error の 3 つのブランチがあります。
** [人員の確認] ブロックの True ブランチに [プロンプトのループ] ブロックを追加する**
次の手順を実行します。
- [インタラクト] を選択します。
- [プロンプトのループ] ブロックを、[人員の確認] ブロックの後のキャンパスにドラッグドロップします。
- [プロンプトのループ] ブロックを、[人員の確認] ブロックの True ブランチに接続します。
- [プロンプトのループ] を選択し、ブロックの設定メニューを開きます。
- [プロンプト] で [テキスト読み上げ] を選択し、次のようなプロンプトを入力します。「通話を $.External.AgentLoginName に転送します」
- [ループに別のプロンプトを追加] を選択します。
- [音声録音] を選択し、エージェントが電話に応答するまでに発信者側で再生する音楽を選択します。
- [中断] で、コールがタイムアウトする期間を選択します。たとえば、[1 分ごとに中断] を選択します。
- [保存] を選択します。
[人員の確認] ブロックの False ブランチと Error ブランチに [プロンプトの再生] ブロックを追加する
次の手順を実行します。
- [インタラクト] を選択します。
- [プロンプトの再生] ブロックを、[人員の確認] ブロックの後のキャンバスにドラッグドロップします。
- [プロンプトの再生] ブロックを、[人員の確認] ブロックの False および Error ブランチに接続します。
- [プロンプトの再生] を選択し、ブロックの設定メニューを開きます。
- [テキスト読み上げ] または [チャットテキスト] を選択します。
- [手動で設定] セクションに、次のようなプロンプトを入力します。「連絡しようとしているエージェントは、対応できないか、別の通話を行っています。しばらくしてからもう一度試してください」
- [保存] を選択します。
[切断/ハングアップ] ブロックを追加する
次の手順を実行します。
- [終了/転送] を選択します。
- [切断/ハングアップ] ブロックを、[プロンプトの再生] ブロックの後のキャンバスにドラッグドロップします。
- すべての Timeout および Error ブランチを [切断/ハングアップ] ブロックおよび、[プロンプトの再生] ブロックの Success ブランチに接続します。
- [保存] を選択します。
- [公開] を選択します。
エージェントが別のエージェントの内線番号を呼び出したときに Lambda 関数を起動するインバウンド問い合わせフローを作成する
- 新しいインバウンドコンタクトフローを作成します。
- [コンタクトフローの作成] を選択し、コンタクトフローデザイナーを開きます。
注: ユースケースに応じてブロックを追加または編集します。たとえば、Error ブランチを [プロンプトの再生] ブロックに接続することで、カスタムメッセージを再生できます。
[顧客入力の保存] ブロックを追加する
次の手順を実行します。
- [インタラクト] を選択します。
- [顧客入力の保存] ブロックを、[エントリポイント] ブロックの後のキャンバスに追加します。
- [顧客入力の保存] を選択し、ブロックの設定メニューを開きます。
- [テキスト読み上げ] を選択し、次のようなプロンプトを入力します。「エージェントの内線番号を入力して続行してください」
- [顧客入力] セクションで [カスタム] を選択し、各エージェントの内線番号に使用する桁数を入力します。
- [保存] を選択します。
[AWS Lambda 関数の呼び出し] ブロックを追加する
次の手順を実行します。
- [統合] を選択します。
- [AWS Lambda 関数の呼び出し] ブロックを、[顧客入力の保存] ブロックの後のキャンバスにドラッグドロップします。
- [AWS Lambda 関数の呼び出し] を選択し、ブロックの設定を開きます。
- Lambda 関数を選択します。
- [関数の入力パラメータ] セクションで、[パラメータを追加] を選択し、[属性を使用する] を選択します。
- [宛先キー] に属性名 Extension を入力します。
- [タイプ] で [システム] を選択します。
- [属性] で [保存された顧客入力] を選択します。
- [保存] を選択します。
[ワーキングキューの設定] ブロックを追加する
次の手順を実行します。
- [設定] を選択します。
- [作業キューの設定] ブロックを、[AWS Lambda 関数の呼び出し] ブロックの後のキャンバスにドラッグドロップします。
- [作業キューの設定] を選択し、ブロックの設定メニューを開きます。
- [出力] で [エージェント別] を選択し、[属性を使用] を選択します。
- [タイプ] で [外部] を選択します。
- [属性] に AgentLoginName と入力します。
- [保存] を選択します。
[顧客キューフローの設定] ブロックを追加する
次の手順を実行します。
- [設定] を選択します。
- [顧客キューフローの設定] ブロックを、[作業キューの設定] ブロックの後のキャンバスにドラッグドロップします。
- [フローを選択] を選択します。
- AgentQueueFlow を選択します。
- [保存] を選択します。
[キューへ転送] ブロックを追加する
次の手順を実行します。
- [終了 / 転送] を選択します。
- [キューへ転送] ブロックを、[顧客キューフローの設定] ブロックの後のキャンバスにドラッグドロップします。
注: このユースケースでは、[キューへ転送] ブロックの設定を構成する必要はありません。
[切断/ハングアップ] ブロックを追加する
次の手順を実行します。
- [終了 / 転送] を選択します。
- [切断/ハングアップ] ブロックを、[キューへ転送] ブロックの後のキャンバスにドラッグドロップします。
- [保存] を選択します。
- [公開] を選択します。
重要: エージェントが AgentToAgentCall コンタクトフローへの内部通話を行うために使用する電話番号を割り当てたことを確認してください。
クイックコネクトを作成し、エージェントが内部通話機能を使用できるようにする
次の手順を実行します。
- クイックコネクトに InternalCalling という名前を付けます。
- [タイプ] で [外部] を選択します。
- [宛先] に、AgentToAgentCall コンタクトフローに割り当てた番号を入力します。
- エージェントに割り当てたキューに InternalCalling クイックコネクトを追加します。
注: 各通話の料金は、通話時間によって異なります。料金の詳細については、「Amazon Connect の料金」を参照してください。
関連情報

関連するコンテンツ
- 質問済み 1年前lg...
- 質問済み 2ヶ月前lg...