본문 바로가기

AWS

[AWS] Amazon Connect 구성

반응형

 

개요

이 문서에서는 Amazon Connect를 이용하여 유선으로 전화할 수 있는 환경을 구성하고 테스트한 내용을 상세하게 설명합니다.

 

목적

AWS Connect 서비스를 사용하여 유선으로 전화할 수 있는지에 대해서 테스트를 진행합니다.

 

Amazon Connect 구성

1. Connect 서비스를 구성하기 위해서는 우선 instance를 생성해야 합니다.
    Add an instance 버튼을 클릭합니다.

 

2. Amazon Connect 웹 페이지에 접속할 URL 정보를 입력합니다.

 

3. 별도의 Administrator를 지정하려면 Specify an administrator를 선택합니다.

 4. Amazon Connect로 전화를 허용할 범위를 선택합니다.

      Allow incoming calls: 전화를 받을 수 있습니다.
      Allow outgoing calls: 전화를 걸 수 있습니다.

 

5. 데이터가 저장될 공간을 확인 합니다.

 

6. 위에서 설정한 내용들을 검토하고 Create instance 버튼을 눌러 생성합니다.

 

 

전화번호 발급

1. Emergency access 를 통해서 Amazon Connect Panel 페이지로 접근합니다.

 

2. 메뉴바 > Channels > Phone numbers 페이지로 이동합니다.

 

3. Claim a number 버튼을 클릭합니다.

 

4. Voice 를 선택합니다.

 

5. 미국을 선택 후 원하는 핸드폰 번호를 선택 후 Save 버튼을 클릭하여 저장합니다.

6. 아래 스크린샷과 같이 Phone number가 생성된 것을 확인 할 수 있습니다.


Flow 생성

Flow는 전화를 걸거나 받을때 어떤 행동들을 할지에 대해서 설정할 수 있습니다.

 

1. 메뉴바 > Routing > Flows 페이지로 이동합니다.

 

2. Flows 페이지의 우측에서 Create flow 버튼을 클릭하여 flow를 생성합니다.

 

3. 왼쪽 항목에서 Play prompt 항목을 클릭합니다.

 

4. Play prompt 에서 Edit settings을 선택합니다.

 

5. 아래 항목을 참고하여 음성 내용을 작성 후 하단의 Save 버튼을 클릭하여 저장합니다.

 

6. Entry와 Play prompt를 연결합니다.

 

7. 왼쪽 TERMINATE 항목에서 Disconnect 항목을 추가하고 연결합니다.

 

8. Enter a name 부분에 flow 이름을 작성하고 Save 버튼을 누른 후 Publish 버튼을 클릭합니다.

 

전화 번호에 Contact flow 연동

1. 메뉴바 > Channels > Phone numbers 페이지로 이동 후 앞서 생성한 Phone number를 클릭하여 상세 정보 페이지로 이동합니다.

 

2. Contact flow / IVR 에 앞서 생성한 Hello flow를 연동합니다.

 
3. Save 버튼을 클릭하여 Phone number 설정을 저장합니다.
 

SDK를 이용하여 전화 걸기

1. Instance Id 를 확인하기 위해 콘솔화면에서 Amazon Connect를 상세 정보를 확인합니다.
    Instance ARN 정보에 있는 instance/ 뒤에 있는 정보들이 Instance Id 입니다. 해당 내용을 별도의 메모장에 저장합니다.

 

2. ContactFlow Id를 하기 위해 Amazon Connect Panel 페이지로 이동합니다.
    앞서 만들었던 Hello flow로 이동합니다.
    왼쪽 하단에 ARN에서 contact-flow 뒤에 번호를 별도 메모장에 저장합니다.

 

3. 아래 Go 코드를 참고하여 코드를 작성합니다.

package main

import (
	"context"
	"fmt"
	"log"
	"time"

	"github.com/aws/aws-sdk-go-v2/aws"
	"github.com/aws/aws-sdk-go-v2/config"
	"github.com/aws/aws-sdk-go-v2/service/connect"
)

func main() {
	cfg, err := config.LoadDefaultConfig(context.Background(), config.WithRegion("ap-northeast-2"))
	if err != nil {
		log.Fatalf("Error loading configuration: %v", err)
	}

	svc := connect.NewFromConfig(cfg)

	ctx := context.Background()

	callInput := &connect.StartOutboundVoiceContactInput{
		InstanceId:             aws.String("d04e123b-4642-476d-87a9-7000ef24be13"),
		ContactFlowId:          aws.String("609349fc-6e11-45f3-93c1-4bea8b0f7320"),
		// 수신 받을 핸드폰 번호를 입력해주세요.
		DestinationPhoneNumber: aws.String("+821012345678"),
		SourcePhoneNumber:      aws.String("+15734643826"),
	}

	voiceContactOutput, err := svc.StartOutboundVoiceContact(ctx, callInput)
	if err != nil {
		log.Fatalf("error initiaing call: %v", err)
	}

	fmt.Printf("Output conteact Id: %s", *voiceContactOutput.ContactId)
	fmt.Println("Call initiated successfully")
}

 

 

결과 

위에서 작성한 Go를 실행하면 앞서 생성한 전화번호로 전화를 받을 수 있습니다. 전화를 수신하게 되면 Flow에서 작성한 'Hello world'를 보이스로 송출하고 전화가 끊어집니다.

반응형