Amazon Connect 고객 센터의 상담원이 특정 전화번호로 아웃바운드 통화를 하지 못 하도록 차단하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2020년 3월 25일

Amazon Connect 고객 센터의 상담원이 특정 국가나 프리미엄 요금 전화번호로 전화를 걸지 못 하게 하고 싶습니다. 이러한 통화를 차단하려면 어떻게 해야 합니까?

간략한 설명

아웃바운드 귓속말 흐름 고객 응대 흐름에서 전화 걸기가 허용되는 전화번호인지 확인해주는 AWS Lambda 함수를 호출합니다. 허용되지 않는 전화번호일 경우, Amazon Connect StopContact API를 사용하여 연락을 차단합니다.

참고: 이 솔루션은 다소 제한이 있습니다.

  • 대기 중인 콜백은 차단할 수 없습니다. 상담원 쪽에서 콜백 요청을 시작할 경우, 아웃바운드 귓속말 흐름을 통해 전달되는 연락처 ID는 실제 연락처 ID가 아닙니다.
  • 어떤 이유로든 Lambda 함수가 호출되지 않으면 통화를 차단할 수 없습니다. 함수가 실패하면 해당 연락은 고객 응대 흐름의 오류 분기를 따르고 통화가 중지되지 않습니다.
  • 기본적인 예시는 다음과 같습니다. 프로덕션 환경의 경우, 사용 사례와 상담원의 전화 걸기 권한에 맞게 설정을 사용자 지정합니다.

해결 방법

Lambda 함수 생성

원하는 런타임을 사용하여 Lambda 함수를 생성합니다. 다음에 대해 Amazon Connect에서 수신되는 JSON 요청을 검사하는 함수 로직을 포함합니다.

  • 상담원 사용자 이름("속성" 아래)
  • 현재 연락처 ID("ContactId")
  • 전화를 건 전화번호("CustomerEndpoint" 아래)
  • 최초 연락처 ID("InitialContactId")
  • 해당 고객 센터 인스턴스의 Amazon 리소스 이름(ARN)("InstanceARN")

자세한 내용은 Amazon Connect에서 사용할 수 있는 고객 응대 속성Lambda 함수에 대한 JSON 요청의 다음 예시를 참조하십시오.

{
    "Details": {
        "ContactData": {
            "Attributes": {},
            "Channel": "VOICE",
            "ContactId": "4a573372-1f28-4e26-b97b-XXXXXXXXXXX",
            "CustomerEndpoint": {
                "Address": "+1234567890",
                "Type": "TELEPHONE_NUMBER"
            },
            "InitialContactId": "4a573372-1f28-4e26-b97b-XXXXXXXXXXX",
            "InitiationMethod": "INBOUND | OUTBOUND | TRANSFER | CALLBACK",
            "InstanceARN": "arn:aws:connect:aws-region:1234567890:instance/c8c0e68d-2200-4265-82c0-XXXXXXXXXX",
            "PreviousContactId": "4a573372-1f28-4e26-b97b-XXXXXXXXXX",
            "Queue": "QueueName",
            "SystemEndpoint": {
                "Address": "+1234567890",
                "Type": "TELEPHONE_NUMBER"
            }
        },
        "Parameters": {
            "sentAttributeKey": "sentAttributeValue"
        }
    },
    "Name": "ContactFlowEvent"
}

팁: 사용 사례에 맞게 함수 코드에 특정 로직을 추가하십시오. 예를 들어 상담원 전화 걸기 권한의 내부 데이터베이스에 대해 고객 응대 속성을 검사할 수 있습니다. 자세한 내용은 Lambda 함수로 속성 사용을 참조하십시오.

함수에는 Amazon Connect StopContact API에 대한 호출도 포함되어야 합니다. API 호출에서 중지하고자 할 연락처의 "ContactId"와 "InstanceId"를 지정합니다.

또한, 충분한 권한과 함께 AWS Identity and Access Management(IAM) 정책을 첨부하여 함수의 실행 역할에 대해 StopContact API를 호출해야 합니다. 다음 예시 JSON 정책 문서에는 API 호출을 위한 기본 권한이 포함됩니다.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "StopContactPermission",
            "Effect": "Allow",
            "Action": "connect:StopContact",
            "Resource": "*"
        }
    ]
}

다음의 Python 함수 코드를 예시로 사용하십시오. 사용 사례에 맞게 사용자 지정하십시오.

참고: 이 예시 코드에는 차단할 번호를 식별하기 위한 조건이 포함됩니다. 해당 번호가 요청된 콜백 번호인 경우, 함수는 API 오류 및 패스스루로 처리합니다.

# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: MIT-0

import boto3
from botocore.exceptions import ClientError
connect = boto3.client('connect')

def lambda_handler(event, context):
    response = {
            'phoneNumberBlockerMessage': 'Passing through AmazonConnectPhoneNumberBlocker. No contact is blocked.'
    }

    try:
            if event['Details']['ContactData']['CustomerEndpoint']['Address'] == '<telephone-number-condition>':
                # Stop contact here

                connect.stop_contact(
                    ContactId = event['Details']['ContactData']['InitialContactId'],
                    InstanceId = event['Details']['ContactData']['InstanceARN'].split('/')[1]
                )
                response = {
                    'phoneNumberBlockerMessage': 'Call is blocked.'
                }
    except ClientError as e:
            if e.response['Error']['Code'] == 'ContactNotFoundException':
                response = {
                    'phoneNumberBlockerMessage': 'This is either a callback contact or contact ID does not exist, contact pass through.'
                }
            else:
                # Handle other error
                pass
    return response

Lambda 함수를 인스턴스에 추가

Amazon Connect 콘솔에서 콜센터 인스턴스에 Lambda 함수를 추가합니다.

아웃바운드 귓속말 흐름 생성

아직 생성하지 않은 경우 아웃바운드 귓속말 고객 응대 흐름을 생성합니다.

중요: 고객 응대 흐름을 만들고 편집하려면 보안 프로필에 권한이 충분한 사용자로 Amazon Connect 인스턴스에 로그인해야 합니다.

  1. 액세스 URL(https://alias.awsapps.com/connect/login)을 사용하여 Amazon Connect 인스턴스에 로그인합니다.
    참고: 별칭인스턴스 별칭으로 변경합니다.
  2. 왼쪽 탐색 창에서 [라우팅]을 일시 중지하고 [고객 응대 흐름]을 선택합니다.
  3. [고객 응대 흐름] 페이지에서 [고객 응대 흐름 생성] 버튼 옆에 있는 아래쪽 화살표를 선택한 다음 [아웃바운드 귓속말 흐름 생성]을 선택합니다.
  4. 고객 응대 흐름 디자이너에서 [이름 입력]에 고객 응대 흐름의 이름을 입력합니다. (예: 아웃바운드 귓속말(중지))
  5. [저장]을 선택합니다.

자세한 내용은 새 고객 응대 흐름 생성을 참조하십시오.

고객 응대 속성 설정 블록 추가

이 블록을 구성하여 상담원의 사용자 이름을 가져오고, 이를 Lambda로 보내 구문 분석을 실행합니다.

  1. 고객 응대 흐름 디자이너에서 [설정]을 펼칩니다.
  2. 고객 응대 속성 설정 블록을 캔버스로 끌어 놓습니다.
  3. 블록 제목(고객 응대 속성 설정 )을 선택합니다. 블록 설정 메뉴가 열립니다.
  4. [저장할 속성]에서 [속성 사용]을 선택한 후 다음을 수행합니다.
    [대상 키]에는 키 이름을 입력합니다. 예: agent_username.
    [유형]에서 [상담원]을 선택합니다.
    [속성]에서 [사용자 이름]을 선택합니다.
  5. [저장]을 선택합니다.

AWS Lambda 함수 호출 블록 추가

  1. 고객 응대 흐름 디자이너에서 [통합]을 펼칩니다.
  2. [AWS Lambda 함수 호출] 블록을 캔버스로 끌어 놓습니다.
  3. 블록 제목(AWS Lambda 함수 호출)을 선택합니다. 블록 설정 메뉴가 열립니다.
  4. [함수 ARN]에서 [함수 선택]을 선택한 다음 인스턴스에 추가한 Lambda 함수를 선택합니다.
  5. (선택 사항) [제한 시간(최대 8초)]에 Amazon Connect가 시간 초과하기까지 Lambda로부터 응답을 받기 위해 대기하는 시간(초)을 입력합니다.
  6. [저장]을 선택합니다.

자세한 내용은 Lambda 함수 호출을 참조하십시오.

고객 응대 흐름 종료

  1. 사용 사례에 필요한 만큼 고객 응대 블록을 추가하고 연결합니다. 지침은 샘플 고객 응대 흐름을 참조하십시오.
  2. 고객 응대 흐름의 모든 커넥터를 블록에 연결합니다. 고객 응대 속성 설정 블록의 성공 노드를 AWS Lambda 함수 호출 블록에 연결해야 합니다. 최소한 다음 블록은 반드시 사용해야 합니다.
    [진입점] > [고객 응대 속성 설정] > [AWS Lambda 함수 호출] > [흐름 종료/재개]
  3. 고객 응대 흐름을 저장하고 게시합니다.

자세한 내용은 새 고객 응대 흐름 생성을 참조하십시오.

아웃바운드 귓속말 흐름을 사용하여 대기열 구성

상담원이 할당된 [라우팅 프로파일]에서 기본 아웃바운드 대기열을 식별합니다. 자세한 내용은 라우팅 프로파일 생성라우팅 프로파일 객체를 참조하십시오.

다음을 수행하여 대기열을 편집합니다.

  1. Amazon Connect 인스턴스의 왼쪽 탐색 창에서 [라우팅]을 가리킨 다음 [대기열]을 선택합니다.
  2. [대기열] 페이지에서 기본 아웃바운드 대기열로 식별한 대기열의 이름을 선택합니다.
  3. [대기열 편집] 페이지의 [아웃바운드 귓속말 흐름(선택 사항)]에서 새로 생성한 아웃바운드 귓속말 흐름의 이름을 검색하여 선택합니다.
  4. [저장]을 선택합니다.