NextGenSwitch를 사용하여 AI 음성 에이전트를 SIP 및 PSTN에 연결

발행: (2026년 2월 6일 오후 02:14 GMT+9)
6 분 소요
원문: Dev.to

Source: Dev.to

AI 음성 에이전트를 만드는 것은 오늘날 비교적 쉽다.
그 에이전트를 **실제 전화 통화(SIP, PBX, PSTN)**에 연결하는 것은 쉽지 않다. 대부분의 AI 음성 시스템은 WebSockets와 원시 오디오 스트림을 사용하도록 설계된 반면, 실제 텔레포니는 여전히 SIP, RTP 및 PSTN 인프라에 의존한다. 이러한 불일치 때문에 많은 음성‑AI 프로젝트가 데모 단계를 넘어서는 데 어려움을 겪는다.

핵심 문제

AI 음성 시스템은 일반적으로 다음을 기대합니다:

WebSocket → PCM audio → AI pipeline → PCM audio

전화 시스템은 매우 다르게 작동합니다:

PSTN → SIP Trunk → PBX → RTP (μ-law / A-law)

핵심 과제

  • SIP와 RTP는 상태를 유지하며 코덱에 민감합니다
  • AI 시스템은 깨끗하고 순서가 보장된 오디오 프레임을 기대합니다
  • 바지인 처리, 지연 및 확장성을 다루는 것은 간단하지 않습니다
  • 대부분의 AI 프레임워크는 PBX를 인식하지 못합니다

NextGenSwitch의 역할

NextGenSwitch는 기존 전화 시스템과 최신 AI 서비스 사이의 전화 추상화 계층 역할을 합니다.

제공 내용:

  • SIP & PSTN 종료
  • PBX 시스템(Asterisk / FreeSWITCH)과의 통합
  • Twilio‑style 프로그래머블 보이스 API
  • 실시간 WebSocket 오디오 스트리밍
  • 코덱 및 샘플‑레이트 정규화

AI 서비스가 SIP나 RTP와 직접 상호작용할 필요가 없습니다.

고수준 아키텍처

Caller
|
[PSTN / SIP Trunk]
|
[Asterisk / FreeSWITCH]
|
[NextGenSwitch]
|
[AI Voice Service]

AI 음성 서비스는 다음과 같이 구현할 수 있습니다:

  • 맞춤형 WebSocket 서버
  • 클라우드 기반 AI 엔드포인트
  • 온프레미스 STT + LLM + TTS 스택
  • 실시간 오디오를 처리할 수 있는 모든 프레임워크

Twilio‑Style XML 호출 제어

전화가 NextGenSwitch에 도달하면, Twilio의 TwiML과 유사한 XML 지시문을 가져옵니다.

최소 XML (스트림 URL만 필요함)


</xml>

이 지시문:

  • 전화를 응답합니다
  • 양방향 WebSocket을 엽니다
  • 실시간 오디오 스트리밍을 시작합니다

선택적 매개변수 (예시만 제공)

매개변수는 필수는 아니며; AI 서비스에 메타데이터로 전달됩니다.


</xml>

이 값들은 JSON start 이벤트에 나타나며 라우팅, 프롬프트, 또는 CRM 조회에 사용할 수 있습니다.

Source:

WebSocket 스트리밍 프로토콜 (JSON)

NextGenSwitch는 Twilio Media Streams‑style JSON 프로토콜을 사용합니다. AI 서비스는 소수의 이벤트만 처리하면 됩니다.

start 이벤트

스트림이 시작될 때 한 번 전송됩니다.

{
  "event": "start",
  "streamId": "NGS_STREAM_123456",
  "start": {
    "callId": "NGS_CALL_abc",
    "from": "+8801XXXXXXXXX",
    "to": "5000",
    "customParameters": {
      "agent": "support-bot",
      "tenant_id": "company-01"
    }
  }
}

streamId를 저장하십시오—아웃바운드 오디오 메시지에 반드시 포함되어야 합니다.

media 이벤트 (인바운드 오디오)

{
  "event": "media",
  "streamId": "NGS_STREAM_123456",
  "media": {
    "payload": "BASE64_AUDIO_BYTES=="
  }
}

오디오 특성

  • 코덱: G.711 μ-law
  • 샘플 레이트: 8 kHz
  • 페이로드: base64‑인코딩된 오디오 프레임

media 이벤트 (아웃바운드 오디오)

AI 서비스는 동일한 구조를 사용해 응답합니다:

{
  "event": "media",
  "streamId": "NGS_STREAM_123456",
  "media": {
    "payload": "BASE64_AUDIO_BYTES=="
  }
}

NextGenSwitch는 이 오디오를 다시 전화 포맷으로 변환하여 발신자에게 전송합니다.

stop 이벤트

{
  "event": "stop",
  "streamId": "NGS_STREAM_123456",
  "stop": {
    "reason": "hangup"
  }
}

AI 스택: 완전 유연

NextGenSwitch는 특정 AI 프레임워크를 필요로 하지 않습니다. 다음을 사용할 수 있습니다:

  • 모든 STT 엔진
  • 모든 LLM
  • 모든 TTS 엔진
  • 모든 프로그래밍 언어

참조 구현(예: Pipecat)은 선택 사항이며, 필수는 아닙니다.

왜 이 아키텍처가 효과적인가

  • AI 코드에서 SIP 또는 RTP 처리 없음
  • Twilio‑style, 개발자 친화적인 인터페이스
  • 실시간, 저지연 오디오 스트리밍
  • 벤더 중립 AI 통합
  • 프로덕션‑레디 PSTN 확장성

일반적인 사용 사례

  • AI 리셉셔니스트
  • AI 콜센터 에이전트
  • 음성 기반 주문 처리
  • 예약
  • IVR 교체
  • 다국어 음성 봇

주요 내용

  • “ 요소만 필수입니다
  • XML 매개변수는 선택적 메타데이터입니다
  • 스트리밍 프로토콜은 Twilio‑style JSON을 따릅니다
  • 전화 오디오는 μ‑law @ 8 kHz를 사용합니다
  • AI 로직은 PBX 로직과 완전히 분리되어 있습니다

자세히 알아보기

  • 프로그래머블 보이스 스트림 API:
  • AI 스트리밍 예제:
Back to Blog

관련 글

더 보기 »

시계열 예측: 전통적 방법과 ML 접근법

시계열 예측: 전통적 접근법과 ML 접근법을 활용한 신뢰할 수 있는 예측 시스템 구축 상상해 보세요: 블랙 프라이데이 기간에 귀하의 e‑commerce 플랫폼이 갑자기 다운되는 상황을.