국가를 기준으로 Amazon Connect 아웃바운드 발신자 ID를 동적으로 설정하려면 어떻게 해야 합니까?

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

Amazon Connect 아웃바운드 발신자 ID를 통화 수신자의 국가에 따라 동적으로 변경하고 싶습니다. 어떻게 설정하면 됩니까?

간략한 설명

다음을 수행합니다.

  • JSON 형식으로 발신자 ID 목록을 생성한 다음 Amazon Simple Storage Service(Amazon S3)버킷에 업로드합니다.
  • 아웃바운드 연락처의 국가 코드를 식별하여 S3 버킷의 JSON 목록에서 해당 발신자 ID 전화번호를 선택하는 AWS Lambda 함수를 생성합니다.
  • Amazon Connect 콜센터 인스턴스에 AWS Lambda 함수를 추가합니다.
  • AWS Lambda 함수를 호출하도록 Amazon Connect 고객 응대 흐름을 구성합니다.

참고: 요구 사항 및 사용 사례에 맞게 이 솔루션을 사용자 지정할 수 있습니다. 예를 들어 S3 버킷 대신 Amazon DynamoDB 테이블에 발신자 ID 목록을 저장한 다음 그에 따라 Lambda 함수 및 실행 역할을 재구성할 수 있습니다.

​해결 방법

발신자 ID 목록 생성

아웃바운드 발신자 ID에 사용할 국가 기준 전화번호 목록이 포함된 JSON 파일을 생성합니다. 파일의 내용은 다음 예와 같은 형식이어야 합니다.

참고: 이 예에서 목록의 국가 코드는 ISO 3166-1 alpha-2 표준을 따라야 하며 전화번호는 E.164 표준을 따라야 합니다. 자세한 내용은 ISO 웹 사이트의 ISO 3166 — COUNTRY CODES와 ITU 웹 사이트의 E.164: The international public telecommunication numbering plan을 참조하십시오.

{
    "US": "+12345678901",
    "GB": "+441234567890",
    "Default": "+19876543210"
}

이 예에서 미국 전화번호의 고객에게 전화를 걸 때 Amazon Connect는 아웃바운드 발신자 ID에 +12345678901을 사용합니다. 영국 전화번호의 고객에게 전화를 걸 때 Amazon Connect는 +441234567890을 대신 사용합니다. JSON 파일에 나열되지 않은 국가의 고객에게 전화를 거는 경우 Amazon Connect는 +19876543210을 사용합니다.

아웃바운드 발신자 ID 전화번호는 전화를 걸고 있는 국가의 번호가 아니어도 됩니다. 예를 들어 미국에 본사를 둔 기업이 영국의 발신자 ID 전화번호를 사용하여 서유럽에 있는 국가에 전화를 걸려고 하는 경우 다음과 같이 하면 됩니다.

{
    "GB": "+441234567890",
    "FR": "+441234567890",
    "DE": "+441234567890",
    "IE": "+441234567890",
    "Default": "+19876543210"
}

이 예에서 영국, 프랑스, 독일 또는 아일랜드 전화번호의 고객에게 전화를 걸 때 Amazon Connect는 아웃바운드 발신자 ID에 +441234567890을 사용합니다. 나머지 지역의 경우 Amazon Connect는 +19876543210을 대신 사용합니다.

참고: 통화 라우팅 중에 Lambda 함수가 어떤 이유로든 호출에 실패하면 Amazon Connect는 대기열의 기본 아웃바운드 전화번호를 발신자 ID에 대신 사용합니다. 이는 Amazon Connect 인스턴스의 대기열 설정에 구성된 번호입니다. 자세한 내용은 아웃바운드 발신자 ID 설정을 참조하십시오.

S3 버킷에 발신자 ID 목록 업로드

발신자 ID 목록 JSON 파일을 생성한 후에는 S3 버킷에 파일을 업로드합니다.

Lambda 실행 역할 생성

S3 버킷에 업로드한 JSON 객체를 읽으려면 Lambda 함수의 실행 역할에 Amazon S3 읽기 액세스 권한이 있어야 합니다. AWS Identity and Access Management(IAM) 콘솔에서 실행 역할을 생성한 다음 AWS 관리형 정책 AmazonS3ReadOnlyAccess를 해당 역할에 연결할 수 있습니다.

팁: 자체 IAM 정책을 생성하여 특정 S3 버킷에 대한 실행 역할의 액세스를 제한할 수 있습니다. 정책 예제는 Amazon S3: S3 버킷의 객체에 대한 읽기 및 쓰기 액세스 허용을 참조하십시오.

Lambda 함수 생성

이전 단계에서 생성한 실행 역할을 사용하여 Lambda 함수를 생성합니다. 함수 코드에 Amazon Connect에서 수신되는 JSON 요청을 확인하는 로직을 포함합니다. 자세한 내용은 연락처 속성을 참조하는 방법 및 다음 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"
}

예를 들어 aws-support-tools GitHub 리포지토리의 DynamicOutboundCallerID에서 Python 함수를 사용할 수 있습니다. 함수 코드Python 3.6 이상 런타임과 호환되며 있는 그대로 제공됩니다.

예제 함수 코드를 사용하는 경우 함수에서 다음 환경 변수를 구성해야 합니다.

  • BUCKET_NAME: JSON 객체가 저장된 S3 버킷의 이름입니다.
  • COUNTRY_ROUTING_LIST_KEY: S3 버킷에 저장된 JSON 파일의 키입니다.

예를 들어 JSON 객체가 s3://hello/world/list.json에 저장된 경우 BUCKET_NAMEhello이고, COUNTRY_ROUTING_LIST_KEYworld/list.json입니다.

배포 패키지 생성

DynamicOutboundCallerID예제 Python 함수는 phonenumbers Python 라이브러리를 사용합니다. 자세한 내용은 PyPI(Python Package Index) 웹 사이트에서 phonenumbers를 참조하십시오.

함수에 타사 라이브러리를 포함하려면 배포 패키지를 생성해야 합니다. lambda_function.py가 포함된 폴더에서 다음 명령을 실행하여 배포 패키지를 생성할 수 있습니다.

참고: 이 명령은 Linux/Unix/macOS 시스템에 대해서만 유효합니다.

$ pip install phonenumbers --target ./
$ zip -r9 function.zip ./

자세한 내용은 Python의 AWS Lambda 배포 패키지를 참조하십시오.

인스턴스에 Lambda 함수 추가

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

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

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

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

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

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

AWS Lambda 함수 호출 블록 추가

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

Amazon Connect가 Lambda 함수를 호출하면 해당 함수는 다음과 유사한 JSON 응답을 반환합니다.

{
    "customer_number": "<Customer's phone number that you're calling>",
    "customer_country": "<Country of the customer's phone number>",
    "outbound_number": "<Outbound phone number that Lambda loads from Amazon S3 and sends to Amazon Connect>",
    "outbound_country": "<Country of the outbound phone number that Lambda sends to Amazon Connect>",
    "default_queue_outbound_number": "<Default outbound phone number set up for the queue>",
    "default_queue_outbound_country": "<Country of the default outbound phone number>"
}

자세한 내용은 Lambda 함수 호출고객 응대 블록: AWS Lambda 함수 호출을 참조하십시오.

전화번호로 전화 걸기 블록 추가

Lambda의 outbound_number를 발신자 ID 전화번호로 사용하도록 이 블록을 구성합니다.

  1. 고객 응대 흐름 디자이너에서 [상호 작용]을 펼칩니다.
  2. [전화번호로 전화 걸기] 블록을 캔버스로 끌어 놓습니다.
  3. 블록 제목(전화번호로 전화 걸기)을 선택합니다. 블록의 설정 메뉴가 열립니다.
  4. 다음을 수행합니다.
    [표시할 발신자 ID 번호(선택 사항)] 확인란을 선택합니다.
    [속성 사용]을 선택합니다.
    [유형]에서 [외부]를 선택합니다.
    [속성]에 [outbound_number]를 입력합니다.
  5. [저장]을 선택합니다.

자세한 내용은 아웃바운드 통화 시작연락처 블록: 전화번호로 전화 걸기를 참조하십시오.

고객 응대 흐름 끝내기

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

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

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

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

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

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