Programmable Voice API

Programmable Voice API

전화 걸기, 진행 중인 통화 수정, 통화 로그 조회 같은 일을 코드로 처리하려면 REST API가 필요해요. Twilio Voice API는 전 세계 어디에서든 통화를 만들고 받고 모니터링할 수 있게 해주는 REST 인터페이스예요. 발신 통화 생성부터 컨퍼런스·큐·녹음·변환 관리까지, 통화 상태를 코드로 다루고 싶을 때 이 API를 써요.

출처: Twilio 공식 문서 — Programmable Voice API Overview

베이스 URL과 인증

Twilio REST API는 HTTPS로만 제공돼요. 암호화되지 않은 HTTP는 지원하지 않으니, 데이터 프라이버시를 지키려면 HTTPS를 써야 해요.

  • https://api.twilio.com/2010-04-01 — Calls, Recordings, Transcriptions, OutgoingCallerIds, Conferences, Queues 같은 주요 리소스의 베이스 URL.
  • https://voice.twilio.com/v1 — 발신 제한(Dialing Permissions) 관련 Countries·Settings 리소스.
  • https://voice.twilio.com/v2 — Client 리소스.

엣지(edge) 로케이션을 서브도메인에 넣어 연결 지점을 제어할 수도 있어요. 예를 들어 호주 인프라를 쓰는 고객은 sydney 엣지를 써서 https://api.sydney.us1.twilio.com/2010-04-01을 베이스 URL로 쓸 수 있어요.

인증은 HTTP Basic authentication을 사용해요. API key SID를 username, API key secret을 password로 넣어요. 호출 예시는 다음과 같아요.

curl -X GET "https://api.twilio.com/2010-04-01/Accounts.json?PageSize=20" \
-u $TWILIO_API_KEY:$TWILIO_API_SECRET

통화 만들고 관리하기

발신 통화를 만들려면 Calls 리소스로 POST를 보내요. REST API로 다음 상태도 조회·관리할 수 있어요.

  • Call quality feedback — 통화 품질 피드백.
  • Conferences / Participants — 컨퍼런스와 참가자.
  • Outgoing caller IDs — 발신자 표시 번호.
  • Queues / Members — 대기열과 대기열 구성원.
  • Recordings / Transcriptions — 녹음과 변환.

통화 흐름의 기본은 텍스트 문자열을 읽어주고 키패드(DTMF) 입력을 수집하는 일이에요. 대부분의 동작은 TwiML로 제어돼요. 예를 들어 통화 중인 사람에게 텍스트를 읽어주려면 TwiML의 <Say>를 써야 해요. Twilio는 C#/.NET, Java, Node.js, PHP, Python, Ruby 6개 웹 언어의 SDK를 제공해 TwiML을 손쉽게 만들게 해줘요.

컨퍼런스 콜과 큐잉

  • 컨퍼런스는 TwiML의 <Dial> 안에 <Conference> 명사를 써서 만들어요. 이렇게 참가자를 추가하면 Twilio가 Conference 리소스와 참가자를 나타내는 Participant 서브리소스를 생성해요.
  • Conference 리소스로 계정의 컨퍼런스 목록을 조회하고, 상태를 갱신하고, 참가자 정보를 질의할 수 있어요.
  • 큐(Queue)는 Queues 리소스로 POST하거나 TwiML의 <Enqueue> 동사로 만들 수 있어요.

통화 녹음

녹음·저장·변환은 코드 몇 줄로 가능해요.

  • REST API로 통화를 만들 때 Record=true로 설정해 녹음을 시작할 수 있어요.
  • TwiML <Dial>record 속성으로도 녹음을 만들 수 있고, 살아있는 통화의 Recordings 리소스로 POST해서도 가능해요.
  • 녹음된 오디오를 변환(트랜스크립션)하려면 변환 옵션을 함께 설정해요.

SIP 연동

Twilio Voice API는 기존 VoIP 인프라에서도 쓸 수 있어요. Programmable Voice SIP 인터페이스로 기존 전화 장비나 통신사를 옮기지 않고도 통화를 Twilio의 프로그램 제어 아래 라우팅할 수 있어요. 유선·휴대폰·브라우저·모바일 앱·SIP 엔드포인트 어디로든 전 세계 도달 범위로 통화를 연결해요.

더 알아보기