Twilio Voice
Twilio Voice
Twilio Voice(공식 명칭 Programmable Voice)는 애플리케이션 안에서 전화 통화를 손쉽게 걸고 받을 수 있게 해주는 클라우드 음성 통화 플랫폼이에요. 별도의 전화 장비나 통신 인프라 없이 Twilio가 내주는 전화번호와 SDK, TwiML 문서를 사용해서 며칠 안에 통화 기능을 붙일 수 있어요. 문서, 코드 샘플, SDK, 개발자 도구까지 모두 제공하니까 규모에 상관없이 누구나 바로 시작해요.
출처: 문서
본문
핵심 기능
Twilio Voice가 제공하는 주요 기능은 아래와 같아요.
전화 통화 (Voice calls)
- 애플리케이션에서 전화를 걸고 받는 것이 핵심이에요. 사용자에게 중요한 업데이트를 알리는 알림 전화, 비상 기상 상황 안내 등에 활용할 수 있어요.
- Notifications: 고객에게 전화를 걸어 중요한 업데이트(예: 비상 기상 휴무 공지)를 알리는 예시.
- Self-service automation: 고객이 키패드로 숫자를 눌러 예약을 확인·취소·변경하는 안내.
- Inbound call center: 사람이 직접 받지 않아도 착신 전화에 응답하고, 입력을 수집하고, 통화를 녹음하고, 결제까지 처리하는 콜센터.
- Outbound call center / Sales dialer / Call tracking / PSTN connectivity 등 다양한 사용 사례도 지원해요.
Programmable Voice
- 통화를 만들고 관리하는 Voice API를 제공해요.
Calls,Recordings,Transcriptions,Conferences,Queues,OutgoingCallerIds, SIP 관련 리소스 등을 REST API로 제어할 수 있어요. - Voice SDK는 Android, iOS, JavaScript, React Native를 지원하며, WebRTC 기반으로 앱 안에 직접 통화 기능을 내장할 수 있어요.
TwiML (Twilio Markup Language)
- Twilio가 전화 흐름을 제어할 때 쓰는 XML 기반 마크업 언어예요.
<Say>,<Gather>,<Dial>,<Conference>,<Record>,<Stream>등 다양한 동사(verb)를 조합해서 통화 동작을 정의해요. - 예를 들어
<Say>는 음성 안내를 재생하고,<Gather>는 사용자 키패드 입력을 받고,<Stream>은 실시간 오디오를 스트리밍해요.
AI/음성봇 연동
- AI/ML transcription: 실시간 또는 녹음된 오디오를 검색 가능한 텍스트로 변환해서 회의 요약이나 고객 감성 분석에 활용해요.
- AI agents: 부킹 등 작업을 처리하는 자연스러운 양방향 대화를 처리하는 대화형 어시스턴트를 배포할 수 있어요.
- Conversation Relay를 통해 대화 내용을 애플리케이션으로 중계하고,
<ConversationRelay>나<VirtualAgent>같은 고급 컨트롤도 지원해요.
사용 예시 (첫 번째 통화 걸기)
Flask와 Python을 사용해서 가장 간단한 첫 통화를 구현하는 예시예요. Twilio가 전화를 걸면 지정한 URL로 요청을 보내고, 아래 함수가 반환하는 TwiML로 통화 내용을 제어해요.
from flask import Flask
from twilio.twiml.voice_response import VoiceResponse
app = Flask(__name__)
@app.route("/answer", methods=['GET', 'POST'])
def answer_call():
resp = VoiceResponse()
resp.say("Twilio's always there when you call!")
return str(resp)
if __name__ == "__main__":
app.run()
전체 흐름은 ① Twilio 서버 → ② 사용자 앱(위 Flask 코드) → ③ Twilio가 사용자에게 음성 안내("Twilio's always there when you call!")를 재생하는 3단계로 동작해요.
더 알아두면 좋은 것들
- Voice Insights: 통화 품질과 지표를 분석하는 보고/인사이트 API예요. Call/Conference Insights, Reports API를 제공해요.
- SIP API / BYOC (Bring Your Own Carrier): 기존 통신사 인프라를 연결하거나 직접 만든 전화 게이트웨이를 쓸 수 있어요.
- 전통적인 PSTN 연결, 브랜드 통화(Branded Calling), 미디어 스트림(Media Streams) 기능도 지원해요.