
자전거 수리점의 영업시간을 안내하고 정비사에게 남길 메시지를 받는 음성 접수원을 Mainbrella로 직접 운영할 수 있다. 프런트엔드와 백엔드는 GPLv3로 공개됐으며, Cloudflare Workers 유료 플랜은 월 5달러부터 시작한다. 다만 AI 추론과 전화 서비스, 포함량을 넘는 사용에는 별도 비용이 든다.
Mainbrella의 음성 에이전트는 사업체 관련 질문에 답하고 통화 후 확인할 메시지를 받는다. 브라우저에서 음성과 텍스트로 시험할 수 있고, 전화 수신과 통화 기록 저장도 지원한다. 발신 전화, 실시간 통화 연결, 예약, CRM 업데이트는 아직 구현되지 않았다.
프런트엔드와 백엔드는 무료로 내려받아 실행할 수 있다. GPLv3 라이선스로 제공되며, 자체 배포 시 Mainbrella에 소프트웨어 사용료를 내지 않는다.
Voice에서 사업체 이름과 접수원 이름, 인사말, 지침, 음성을 설정한다. 예를 들어 토요일 영업시간과 취급하는 자전거 수리 종류, 콜백을 위해 받을 정보를 입력할 수 있다. 전화번호를 연결하기 전에 마이크를 사용하거나 대화 내용을 입력해 설정을 시험할 수 있다. 통화가 시작될 때 설정을 고정하므로 통화 도중 영업시간을 바꿔도 이미 통화 중인 고객의 지침은 바뀌지 않는다.
시스템 프롬프트는 접수원이 입력된 사업 정보를 사용하고, 정보가 없으면 이를 인정한 뒤 메시지를 남기도록 한다. 예약·메시지 전송·CRM 업데이트·통화 연결을 할 수 없다는 점도 명시한다. 일정 관리 연동이 실제 예약을 처리하고 결과를 알려주기 전까지는 모델이 “예약됐다”고 말해도 예약이 완료된 것이 아니다.
브라우저 통화는 통화별로 생성되는 Durable Object와 WebSocket으로 연결된다. 발신자마다 대화 기록을 분리하고, 접수원 설정은 공유한다. 음성 처리에는 Deepgram Flux의 음성 인식, Llama 3.3 70B의 답변 생성, Deepgram Aura-1의 음성 합성이 사용된다. 세 모델은 Workers AI를 통해 호출되며, 별도의 GPU나 음성 서버를 빌릴 필요는 없다. 전화 통신 사업자는 Twilio를 사용한다.
Twilio가 보내는 8 kHz μ-law 음성과 음성 처리 파이프라인이 사용하는 16 kHz PCM 사이의 변환은 전화 브리지가 양방향으로 처리한다. 발신자가 말을 끊으면 재생 중단을 Twilio clear 메시지로 전달해 버퍼에 남은 음성을 멈춘다.
통화 기록과 상태, 통화 시각은 Cloudflare의 SQL 데이터베이스 D1에 저장하며, 원본 음성 녹음은 저장하지 않는다. 통화별 임시 상태는 통화 종료 후 정리하도록 예약되지만 D1에 저장된 대화 기록은 계정 기록에 남는다. 아직 기록 삭제 기능이 없어 자체 배포하는 경우 별도의 보존 정책을 마련해야 한다.
기본 설정은 계정당 동시 통화 3건, 하루 중 최근 24시간이 아니라 연속되는 24시간 기준 100회 시작, 통화당 15분 또는 60턴 제한이다. 이는 소스 코드에 설정된 애플리케이션 제한이다. 한도를 높이는 것과 늘어난 작업량을 감당할 수 있는지 확인하는 것은 별개의 일이다. 자동 음성 테스트는 시뮬레이션한 모델 응답과 전화 미디어를 사용하므로 실제 통화 품질이나 지연 시간, 대규모 처리 용량을 입증하지 않는다.
Workers 유료 플랜의 기본 요금은 월 5달러이며 사용량이 포함된다. 다음은 2026년 10월 15일 기준 Cloudflare가 공개한 요금으로, 무료 제공량을 적용하기 전 금액이다. 추론 요금은 Workers AI 요금표, 기본 구독료는 Workers 요금 안내에 따른다.
| 항목 | 공개 요금 |
|---|---|
| Workers 유료 기본 플랜 | 월 최소 5달러, 사용량 포함 |
| Flux 음성 인식 | 오디오 1분당 0.0077달러 |
| Llama 3.3 70B 입력 | 토큰 100만 개당 0.293달러 |
| Llama 3.3 70B 출력 | 토큰 100만 개당 2.253달러 |
| Aura-1 음성 생성 | 입력 문자 1,000자당 0.015달러 |
예를 들어 Flux에 오디오 1,000분을 보내면 무료 제공량 적용 전 요금은 7.70달러다. 이는 음성 인식 비용만 계산한 금액이다. 답변 음성 생성에는 별도 요금이 붙고, 모델이 응답할 때마다 대화 맥락도 입력 토큰에 포함된다. 전화번호와 통신사 통화료도 따로 든다. Durable Object 실행 시간과 요청, 데이터베이스 활동, 저장 공간, 활성화한 다른 Mainbrella 서비스도 인프라 비용에 반영된다.
Bland의 요금 안내는 현재 Start 플랜을 플랫폼 요금 없이 분당 0.14달러, Build 플랜을 월 299달러에 분당 0.12달러로 제시한다. 해당 요금에는 언어 모델, 음성 인식, 음성 생성이 포함되며 전화 통신은 별도 청구된다고 안내한다. 월 5달러의 기본 구독료와 AI 사용료가 포함된 분당 요금은 서로 다른 기준이므로, 사용량 정보 없이 절감률을 비교할 수는 없다. 자체 운영은 구성 요소별 비용을 직접 내는 대신 운영 업무도 맡는 방식이다.
자체 배포를 시작하려면 백엔드의 접수원 설정 안내와 웹 저장소를 참고하면 된다. 두 저장소에는 음성 기능 외에도 계정, 인증, 결제 코드가 포함돼 있다. 비공개 배포에는 설정 작업이 필요하며, 프로덕션용 Wrangler 파일에는 Mainbrella의 도메인과 바인딩, 리소스 ID가 들어 있다.
- Cloudflare 리소스를 직접 만들고 백엔드 마이그레이션을 적용한다. 음성 기능에는 AI 바인딩, D1, SQLite 기반
RECEPTIONIST_CALLDurable Object가 필요하다. 결제 기능에 필요한 계정 및 지갑 바인딩도 유지해야 한다. - 인증, 신뢰할 수 있는 출처, 프런트엔드의
VITE_API_URL을 배포 환경에 맞게 설정한다. 현재 음성 코드는 통화를 시작하기 전에 선불 지갑을 확인하므로, 자체 인스턴스에서 충전 기능을 설정하거나 해당 정책을 조정해야 한다. VOICE_ENABLED=true를 설정하고VOICE_PUBLIC_ORIGIN에 공개 HTTPS API 주소를 지정한다. 접수원을 저장한 뒤 브라우저에서 시험한다.- 전화 통화를 받으려면 Twilio 번호를 만들고 계정과 번호 설정을 입력한다.
TWILIO_AUTH_TOKEN은 비밀값으로 저장하고TWILIO_AGENT_ID를 저장된 접수원에 연결한다. 음성 요금에 필요한 통신사 요금을 설정한 뒤 Voice 화면에 표시되는 주소를 수신 전화 웹훅으로 지정하고 HTTP POST를 사용한다.
현재 전화 설정은 전화번호 하나를 에이전트 하나에 연결하며, 전화번호를 대신 구매해 주지는 않는다. 수신 웹훅과 미디어 연결은 Twilio 서명을 확인하고, 미디어 연결에는 한 번만 사용할 수 있는 짧은 만료 시간의 토큰도 필요하다. 코드를 바꾸더라도 이 검사를 유지해야 한다. 공개된 전화 엔드포인트를 통해 유료 추론이 시작될 수 있다.
Bland는 콜센터 서비스 안내에서 구축과 배포, 운영을 맡는다고 설명하고, 배포팀과 기존 기업 시스템 연동, 지속적인 운영을 내세운다. 자체 호스팅도 제공한다고 안내한다. 따라서 직접 배포할 수 있다는 점만이 차이는 아니다. Mainbrella는 직접 살펴보고 수정할 수 있는 GPLv3 애플리케이션 소스 코드를 제공한다.
복잡한 통화 흐름을 구현하고 CRM 연동을 유지하며 장애에 대응할 업체가 필요하다면 그 업무에 비용을 지불할 가치가 있을 수 있다. 하지만 Mainbrella의 현재 접수원은 Bland의 더 폭넓은 컨택센터 기능이나 기업용 보증을 제공하지 않는다. 소프트웨어는 오픈소스지만 Cloudflare 호스팅과 Cloudflare가 제공하는 음성 모델에는 각각 별도의 약관이 적용된다.
앤드루 애로우(Andrew Arrow)는 자전거 수리점의 영업시간 안내와 콜백 접수처럼 범위가 작은 업무부터 시작해 고객이 실제로 묻는 질문을 시험하고, 접수된 메시지를 확인하는 방식을 제안한다. 직접 운영하면 월 5달러부터 시작하는 Cloudflare 플랜에서 시스템을 실행하고 사용량에 따른 비용을 내며, 필요에 따라 코드를 바꿀 수 있다. 음성 플랫폼을 구매할지는 결국 운영과 개발을 누가 맡을지에 관한 선택이다.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요