개요
이 문서에서는 Amazon Connect를 이용하여 유선으로 전화할 수 있는 환경을 구성하고 테스트한 내용을 상세하게 설명합니다.
목적
AWS Connect 서비스를 사용하여 유선으로 전화할 수 있는지에 대해서 테스트를 진행합니다.
Amazon Connect 구성
1. Connect 서비스를 구성하기 위해서는 우선 instance를 생성해야 합니다.
Add an instance 버튼을 클릭합니다.
2. Amazon Connect 웹 페이지에 접속할 URL 정보를 입력합니다.
3. 별도의 Administrator를 지정하려면 Specify an administrator를 선택합니다.
Allow incoming calls: 전화를 받을 수 있습니다.
Allow outgoing calls: 전화를 걸 수 있습니다.
5. 데이터가 저장될 공간을 확인 합니다.
전화번호 발급
1. Emergency access 를 통해서 Amazon Connect Panel 페이지로 접근합니다.
2. 메뉴바 > Channels > Phone numbers 페이지로 이동합니다.
3. Claim a number 버튼을 클릭합니다.
4. Voice 를 선택합니다.
5. 미국을 선택 후 원하는 핸드폰 번호를 선택 후 Save 버튼을 클릭하여 저장합니다.
Flow 생성
Flow는 전화를 걸거나 받을때 어떤 행동들을 할지에 대해서 설정할 수 있습니다.
1. 메뉴바 > Routing > Flows 페이지로 이동합니다.
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를 연동합니다.
SDK를 이용하여 전화 걸기
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'를 보이스로 송출하고 전화가 끊어집니다.
'AWS' 카테고리의 다른 글
[AWS] 계정 생성 (0) | 2024.07.13 |
---|---|
[AWS] 다른 Organization Member Account를 Control Tower Organization 으로 Migration 하는 방법 (0) | 2023.11.14 |
[AWS] Control Tower란? (0) | 2023.11.13 |
[AWS] Control Tower AWS Marketplace Solutions (0) | 2023.11.11 |
[AWS] EC2 Auto Scaling 구성 가이드 (0) | 2023.11.10 |