1. 프로젝트 목표
목표
고객이 일반 전화로 문의하면 AI가 음성으로 응대하고, 필요한 경우 실제 상담원에게 연결하는 AI 콜센터 구축
MVP 범위
- 대표번호 전화 수신
- AI 음성 안내
- FAQ 응답
- 상담원 연결
- 통화 녹취
- 상담 이력 저장
2. 전체 아키텍처
고객 전화
│
▼
SIP Trunk
│
▼
FreePBX (Asterisk)
│
▼
AI Gateway Server
│
├── STT
├── LLM
└── TTS
│
▼
고객 응답
필요시
AI
│
▼
상담원 내선 연결
3. 개발 단계
STEP 1. FreePBX 구축
목적
전화 교환기(PBX) 역할
서버 권장 사양
항목사양
| CPU | 2 Core |
| Memory | 4GB |
| Disk | 20GB |
| OS | Ubuntu 22.04 |
✅ Ubuntu 기반 FreePBX 설치 방법
1. 시스템 업데이트
sudo apt update && sudo apt upgrade -y
2. 필수 패키지 설치
sudo apt install -y wget curl git build-essential apache2 mariadb-server mariadb-client \
bison flex php php-cli php-curl php-mysql php-xml php-mbstring php-zip php-gd php-intl \
sox libncurses5-dev libssl-dev libxml2-dev uuid-dev
3. Asterisk 설치
cd /usr/src
sudo wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-20-current.tar.gz
sudo tar zxvf asterisk-20-current.tar.gz
cd asterisk-20.*
sudo contrib/scripts/install_prereq install
sudo ./configure
sudo make menuselect
sudo make -j$(nproc)
sudo make install
sudo make samples
sudo make config
sudo ldconfig
4. Asterisk 실행
sudo systemctl start asterisk
sudo systemctl enable asterisk
5. FreePBX 설치
cd /usr/src
sudo wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-16.0-latest.tgz
sudo tar zxvf freepbx-16.0-latest.tgz
cd freepbx
sudo ./start_asterisk start
sudo ./install -n
6. 웹 접속
브라우저에서 접속:
http://서버IP
관리자 계정 생성 후 로그인
⚠️ Cloud Run에서 FreePBX 운영 가능 여부
결론: Cloud Run에서는 FreePBX 운영이 사실상 불가능합니다.
이유
- Cloud Run은 컨테이너 기반 서버리스 환경
- 지속적인 프로세스 유지가 어려움
- Asterisk는 항상 실행되는 데몬 구조 필요
- SIP / RTP 포트 제약
- SIP (5060), RTP (10000~20000) 등 다수 포트 필요
- Cloud Run은 HTTP/HTTPS 기반 단일 포트만 지원
- UDP 지원 제한
- SIP/RTP는 UDP 기반
- Cloud Run은 TCP 중심 구조
- 실시간 음성 처리 불리
- 콜센터는 low-latency 필수
- Cloud Run은 cold start 및 네트워크 지연 존재
✅ 권장 대안
1. GCP Compute Engine (추천)
- FreePBX 설치 가능
- SIP/RTP 포트 자유롭게 오픈 가능
- 안정적인 실시간 통화 처리
2. AWS EC2
- 동일하게 안정적인 PBX 운영 가능
3. 온프레미스 서버
- 내부망 콜센터 구축 시 적합
✅ 권장 아키텍처 (Cloud Run 활용 방식)
Cloud Run은 AI 서버 용도로만 사용하는 것이 적합합니다.
고객 전화
│
▼
SIP Trunk
│
▼
FreePBX (GCP VM / EC2)
│
▼
AI Gateway (Cloud Run)
│
├── STT
├── LLM
└── TTS
│
▼
고객 응답
STEP 2. 내선 생성
예시
사용자내선
| 고객 테스트 | 1001 |
| 상담원 | 1002 |
| AI 상담원 | 9000 |
STEP 3. Softphone 설치
추천 프로그램
- MicroSIP
- Zoiper
- Linphone
테스트 구조
MicroSIP (1001)
│
▼
FreePBX
│
▼
MicroSIP (1002)
성공 기준
1001 → 1002 통화 성공
STEP 4. IVR 구축
예시
안녕하세요.
AI 고객센터입니다.
AS 문의는 1번
제품 문의는 2번
상담원 연결은 0번
FreePBX 기능
- IVR
- Queue
- Ring Group
기본 제공
STEP 5. AI 서버 구축
기술스택
영역기술
| Backend | FastAPI |
| STT | Google STT / Whisper |
| LLM | GPT / Gemini |
| TTS | ElevenLabs / Google TTS |
| DB | PostgreSQL |
✅ Ubuntu 기반 AI 서버 설치 (FastAPI)
1. Python 설치
sudo apt install -y python3 python3-pip python3-venv
2. 프로젝트 생성
mkdir ai-callcenter
cd ai-callcenter
python3 -m venv venv
source venv/bin/activate
3. 패키지 설치
pip install fastapi uvicorn openai google-cloud-speech
4. 서버 실행
uvicorn main:app --host 0.0.0.0 --port 8000
STEP 6. 음성 처리 흐름
고객 음성
│
▼
STT
│
▼
텍스트
│
▼
LLM
│
▼
답변 생성
│
▼
TTS
│
▼
음성 반환
STEP 7. 상담원 연결 기능
예시
고객:
"상담원 연결해주세요"
AI:
"상담원에게 연결해드리겠습니다."
AI
│
▼
Extension 1002
자동 연결
4. 초기 개발 순서
1주차
목표
전화 연결 성공
작업
- VM 서버 준비 (Ubuntu 22.04)
- FreePBX 설치
- MicroSIP 설치
- 내선 생성
결과
1001 ↔ 1002
통화 성공
2주차
목표
AI 연결
작업
- FastAPI 구축 (Ubuntu 또는 Cloud Run)
- STT 연동
- Gemini 연동
- TTS 연동
결과
전화
↓
AI 응답
구현
3주차
목표
상담원 연결
작업
- Queue 생성
- 상담원 연결 구현
결과
AI
↓
상담원
전환 성공
4주차
목표
실제 전화번호 연결
선택지
방법 1
Twilio 번호 구매
방법 2
KT SIP Trunk
방법 3
LG U+ SIP Trunk
방법 4
SKB SIP Trunk
5. 운영 화면
관리자 기능
통화 관리
- 통화 이력
- 녹취 조회
- 통화 시간
AI 분석
- 질문 유형
- 응답 성공률
- 상담원 전환율
고객 관리
- 고객 번호
- 상담 내역
- 만족도
6. 예상 기술 스택
인프라
- GCP Compute Engine (PBX)
- Cloud Run 또는 Ubuntu VM (AI 서버)
PBX
- FreePBX
- Asterisk
AI
- Gemini
- GPT
음성
- Whisper
- Google STT
- ElevenLabs
데이터
- PostgreSQL
관리자
- Svelte
- Bootstrap
최종 목표
고객 전화
↓
대표번호
↓
FreePBX
↓
AI 상담원
↓
FAQ 응답
↓
필요시 상담원 연결
↓
상담이력 저장
1차 목표는 "전화 한 통을 AI가 받아서 자연스럽게 응답하는 것"이며, 실제 번호 연동은 마지막 단계에서 진행한다.
반응형