개요

Twilio는 클라우드 통신 API 플랫폼으로, 음성 통화·SMS·비디오·이메일·인증을 API로 제공합니다. 음성 에이전트 구축에서는 전화 인프라 오케스트레이션 역할을 하며, Deepgram/LLM/TTS와 연동하여 AI 전화 에이전트를 만드는 핵심 컴포넌트입니다.

  • 설립: 2008년 (Jeff Lawson)
  • 상장: NYSE: TWLO
  • 본사: 미국 샌프란시스코
  • 웹사이트: https://www.twilio.com

주요 제품

제품설명
Programmable Voice음성 통화 API (발신/수신, IVR, 녹음)
Programmable MessagingSMS/MMS/WhatsApp 메시지 API
Twilio Verify2FA/OTP 인증 API
SendGrid이메일 API (2019 인수)
Twilio SegmentCDP (Customer Data Platform, 2020 인수)
Twilio VideoWebRTC 비디오 API
Twilio Flex클라우드 컨택센터 플랫폼
Twilio Studio노코드 커뮤니케이션 플로우 빌더

음성 에이전트에서의 역할

Twilio는 전화 네트워크(PSTN)와 AI 파이프라인을 연결하는 브릿지 역할:

전화 수신 → [Twilio] → WebSocket → [서버]
                                      ├─ [Deepgram: STT]
                                      ├─ [LLM: 응답 생성]
                                      └─ [ElevenLabs: TTS]
                                            ↓
            [Twilio] ← WebSocket ← 음성 스트림
                ↓
            전화로 응답 재생

음성 에이전트 구현

from fastapi import FastAPI, WebSocket
from twilio.twiml.voice_response import VoiceResponse, Connect
 
app = FastAPI()
 
# Twilio 웹훅 — 전화 수신 시 호출
@app.post("/incoming-call")
async def incoming_call():
    response = VoiceResponse()
    connect = Connect()
    # 오디오를 WebSocket으로 스트리밍
    connect.stream(url="wss://your-server.com/media-stream")
    response.append(connect)
    return str(response)
 
# 오디오 스트림 처리
@app.websocket("/media-stream")
async def media_stream(ws: WebSocket):
    await ws.accept()
    async for message in ws.iter_text():
        data = json.loads(message)
        if data["event"] == "media":
            audio = base64.b64decode(data["media"]["payload"])
            # → Deepgram STT로 전달
            # → LLM 처리
            # → TTS 생성
            # → Twilio로 응답 스트리밍

TwiML (Twilio Markup Language)

<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Say voice="alice" language="ko-KR">안녕하세요</Say>
    <Gather input="speech" language="ko-KR" action="/process">
        <Say>무엇을 도와드릴까요?</Say>
    </Gather>
</Response>

핵심 기능

Programmable Voice

기능설명
발신/수신프로그래밍 방식 전화 걸기/받기
IVR대화형 음성 응답 (키패드/음성 입력)
Media StreamsWebSocket으로 실시간 오디오 스트리밍
녹음통화 녹음, 전사
SIP Trunking기존 PBX 연동
Conference다자 통화
전화번호100+ 국가 전화번호 구매/관리

Programmable Messaging

from twilio.rest import Client
 
client = Client("ACCOUNT_SID", "AUTH_TOKEN")
 
# SMS 발송
message = client.messages.create(
    body="인증번호: 123456",
    from_="+1234567890",
    to="+821012345678"
)

가격 (2026)

서비스가격
음성 통화 (미국 수신)$0.0085/분
음성 통화 (미국 발신)$0.014/분
음성 통화 (한국)$0.047/분
SMS (미국)$0.0079/건
SMS (한국)$0.063/건
전화번호 (미국)$1.15/월
Verify (인증)$0.05/인증
Media Streams음성 요금에 포함

Twilio vs 경쟁사

항목TwilioVonage (Nexmo)PlivoBandwidth
음성OOOO
SMSOOOO
비디오OOXX
이메일O (SendGrid)XXX
Media StreamsOOXO
글로벌 커버리지180+국200+국190+국미국 중심
가격중간비슷저가저가
생태계최대중간작음
AI 에이전트 연동최적좋음제한적제한적

SDK

언어패키지
Pythonpip install twilio
Node.jsnpm install twilio
JavaMaven com.twilio.sdk
Gogithub.com/twilio/twilio-go
PHPcomposer require twilio/sdk
Rubygem install twilio-ruby
C#NuGet Twilio

관련 항목