SIP 트렁킹이란? 작동 방식과 음성 AI에서 쓰는 법

Rene, Kabir Goel 
SIP 트렁킹이란? 작동 방식과 음성 AI에서 쓰는 법

SIP 트렁킹은 인터넷으로 전화 시스템을 공중 전화망에 연결하는 방식입니다. 전화 회사에서 물리적인 회선을 빌리는 대신, SIP 시그널링과 RTP 음성으로 통화를 통신사에 보내면 통신사가 전 세계 어느 전화로든 연결합니다. 트렁크 하나로 많은 동시 통화와 수백 개의 번호를 처리할 수 있습니다.

핵심은 이게 전부입니다. 이 가이드에서는 네트워크에서 실제로 무슨 일이 일어나는지, SIP 트렁킹이 VoIP나 PRI 회선과 어떻게 다른지, 그리고 전화를 받는 쪽이 책상 앞의 사람이 아니라 AI 음성 에이전트일 때 무엇이 달라지는지를 다룹니다. 전화 시스템을 관리하거나 곧 음성 에이전트를 전화에 연결하려는 엔지니어와 운영 책임자를 위한 글입니다.

SIP 트렁킹의 작동 방식

SIP 트렁크로 이루어지는 통화는 두 개의 흐름으로 나뉩니다.

  • 시그널링. SIP 메시지가 통화를 시작하고, 변경하고, 끝냅니다. INVITE로 시작하고, 200 OK로 응답하고, BYE로 끊습니다. SIP는 보통 UDP나 TCP 5060번 포트, 또는 TLS 5061번 포트를 씁니다.
  • 미디어. 음성은 RTP 패킷으로, 보통 다른 포트를 통해 전달됩니다. SRTP는 암호화된 버전입니다.

수신 통화에서는 누군가 여러분의 번호로 전화를 겁니다. 공중망에서 그 번호를 가진 통신사가 여러분의 트렁크를 찾아, 설정해 둔 주소로 SIP INVITE를 보냅니다. 여러분의 시스템이 응답하고 양쪽이 음성 코덱에 합의하면 RTP가 흐르기 시작합니다. 발신 통화는 그 반대입니다. 여러분의 시스템이 통신사에 INVITE를 보내고, 통신사가 상대방에게 전화를 겁니다.

“트렁크”는 옛 전화 용어입니다. 트렁크는 두 교환기 사이를 잇는 회선 묶음으로, 많은 가입자가 함께 썼습니다. SIP 트렁크는 구리선이 없는 트렁크입니다. 여러분의 시스템과 통신사 사이에 설정과 인증을 마친 연결이며, 동시에 처리할 수 있는 통화 수에 한도가 있습니다.

SIP 트렁크 사업자가 제공하는 것

  • 전화번호. DID(직통 착신 번호)라고도 합니다. 보통 기존 번호를 트렁크로 이동(번호 이동)할 수 있습니다.
  • 채널. 트렁크가 허용하는 동시 통화 수입니다. 고정 묶음으로 판매하는 사업자도 있고, 동시 통화 한도를 두고 분 단위로 과금하는 사업자도 있습니다.
  • 착신과 발신. 공중 전화망으로 전화를 걸고, 공중 전화망에서 전화를 받는 기능입니다.
  • 긴급 통화와 발신 번호 표시. 국가와 통신사마다 다릅니다.

SIP 트렁킹, VoIP, PRI 비교

이 용어들은 느슨하게 쓰이는 경우가 많으니 구분해 두는 것이 좋습니다.

옵션설명전화 시스템 운영 주체
VoIPIP 네트워크로 음성을 전달하는 기술의 통칭. 이 표에서 PRI를 제외한 모든 옵션이 VoIP의 일종입니다.서비스에 따라 다름
호스팅형 VoIP사업자가 전화 시스템을 운영하고 전화기, 앱, 번호를 제공합니다.사업자
SIP 트렁크자체 전화 시스템이나 애플리케이션과 통신사를 인터넷으로 잇는 연결입니다.직접(PBX, 컨택센터, 음성 에이전트)
PRI(ISDN)전화 회사의 물리적 디지털 회선. 미국 T1 PRI는 동시 23통화, 유럽 E1은 30통화를 전달합니다.직접

대부분의 팀이 PRI를 SIP 트렁크로 바꾸는 이유는 용량을 늘리는 일이 새 회선 공사가 아니라 설정 변경이 되기 때문입니다. 호스팅형 VoIP 대신 SIP 트렁크를 고르는 것은 라우팅을 직접 제어해야 할 때입니다. 예를 들어 전화 시스템이 컨택센터 플랫폼, 자체 개발 소프트웨어, 또는 호스팅 서비스로는 돌릴 수 없는 음성 에이전트인 경우입니다.

음성 AI에서 SIP 트렁킹이 중요한 이유

음성 에이전트에는 전화를 받을 수단이 필요합니다. 흔히 쓰는 방법은 세 가지이고, SIP 트렁크는 지금의 전화 환경을 그대로 두는 방법입니다.

옵션적합한 경우주의할 점
플랫폼이 제공하는 번호빠르게 시작하고 싶을 때. 통신사 계정이 필요 없음.지원 국가. Cartesia가 제공하는 번호는 미국 번호뿐입니다.
CPaaS(Twilio) 번호이미 Twilio에서 번호와 통화 흐름을 운영하는 팀.두 곳에 비용을 내고, 라우팅이 CPaaS를 거칩니다.
자체 SIP 트렁크기존 번호, 통신사, 해외 지원 범위를 유지하고 싶을 때.인증, 암호화, 전환을 직접 설정해야 합니다.

다음과 같은 경우 SIP 트렁크가 대개 맞는 선택입니다.

  • 번호가 이미 청구서와 웹사이트, 회사 차량 옆면에 적혀 있어서 바꿀 생각이 없다.
  • 미국 외 지역 번호나 특정 국가의 면허를 가진 통신사가 필요하다.
  • 보안팀이 TLS 시그널링, 암호화된 미디어, 통화를 보낼 수 있는 고정 IP 주소 목록을 요구한다.
  • 에이전트가 기존 컨택센터 대기열로 통화를 넘기길 원하고, 그 대기열도 SIP로 운영된다.

전화선에서 에이전트가 듣는 소리

전화 음성은 협대역입니다. 공중 전화망의 통화 대부분은 G.711을 쓰며 8 kHz로 샘플링됩니다. 북미와 일본은 µ-law, 유럽, 인도와 대부분의 다른 지역은 A-law입니다. 약 3.4 kHz를 넘는 소리는 모두 잘려 나가는데, “f”와 “s”를 구분하는 정보의 상당 부분이 바로 그 대역에 있습니다.

그래서 브라우저 데모에서는 완벽하던 에이전트가 실제 통화에서는 “F as in Frank”를 잘못 알아들을 수 있습니다. 음성 인식은 실제 통신사에서 들어오는 8 kHz 음성으로 테스트하고, 모델을 탓하기 전에 코덱부터 확인하세요. 음성을 직접 연결한다면 Cartesia의 오디오 입력 문서에 전화 음성용 인코딩이 정확히 나와 있습니다.

지연은 구간마다 쌓인다

발신자와 에이전트 사이의 구간마다 지연이 더해집니다. 통신사 네트워크, 통화가 거친다면 SBC나 PBX, 에이전트까지의 인터넷 경로, 그리고 에이전트 자체의 음성 인식, LLM, 음성 합성입니다. 말을 마친 뒤 침묵이 길어지면 발신자는 바로 알아챕니다. 경로는 짧게 유지하세요. 가능하면 트렁크를 에이전트 플랫폼으로 바로 보내고, 플랫폼 리전과 가까운 통신사 거점을 고르세요.

전환에는 SIP REFER를 쓴다

에이전트가 통화를 사람에게 넘길 때는 보통 SIP REFER를 보내 전화번호나 SIP 주소 같은 다른 목적지로 통화를 연결해 달라고 통신사에 요청합니다. 사용하는 목적지 유형에 대해 통신사가 REFER를 지원해야 합니다. 출시 전에 꼭 확인하세요. 긴 통화 끝에 전환이 실패하면, 그 고객은 친구들에게 여러분 회사 이야기를 하게 됩니다.

SIP 트렁크를 음성 에이전트에 연결하는 방법

아래 단계는 Cartesia Managed Agents를 기준으로 합니다. 다른 플랫폼도 흐름은 같고 필드 이름만 다릅니다. 전체 내용은 SIP 트렁킹 문서를 참고하세요.

1. 통신사가 에이전트 플랫폼을 가리키게 하기

트렁크의 발신 URI를 통신사가 지원하는 전송 방식에 맞춰 Cartesia SIP 엔드포인트로 설정합니다.

sip:sip.cartesia.ai;transport=tls
sip:sip.cartesia.ai;transport=tcp

TLS는 시그널링을 암호화합니다. 통신사나 방화벽이 IP 주소로 제한한다면 Cartesia 지원팀에 허용 목록용 고정 IP 범위를 요청하세요.

2. 통화를 보낼 수 있는 대상 제한하기

수신 쪽에 최소 하나의 접근 제어를 설정합니다. 다이제스트 인증(사용자 이름과 비밀번호), 통신사 시그널링 IP 주소 목록, 또는 둘 다입니다. 수신 트렁크를 열어 두지 마세요. 인터넷에서는 열린 SIP 엔드포인트를 찾는 스캔이 끊임없이 돌아가고, 그들은 예약하려고 전화하는 게 아닙니다.

일부 통신사는 수신 통화에 다이제스트 인증을 지원하지 않습니다. Twilio Elastic SIP Trunking이 그런 경우로, 이때는 Twilio 시그널링 IP 범위를 허용 목록에 넣습니다.

3. 필요하면 미디어 암호화 켜기

Cartesia의 media_encryption 설정은 통화 음성의 SRTP를 제어합니다. 값은 disabled, allowed, required입니다. TLS와 함께 required로 설정한다면 통신사 쪽에서도 보안 트렁크와 SRTP를 켜야 합니다. 한쪽만 설정하면 아무것도 암호화되지 않습니다.

4. Cartesia에 트렁크 등록하기

수신 인증 정보와 발신용 통신사 주소를 넣어 API로 트렁크를 만듭니다.

curl -X POST "https://api.cartesia.ai/agents/phone-numbers/providers" \
  -H "X-API-Key: $CARTESIA_API_KEY" \
  -H "Cartesia-Version: 2026-08-14" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "sip_trunk",
    "label": "Primary carrier trunk",
    "inbound": {
      "credentials": { "username": "carrier-inbound", "password": "your-sip-password" },
      "media_encryption": "allowed"
    },
    "outbound": {
      "address": "sip.example.com",
      "transport": "tls",
      "destination_country": "US",
      "media_encryption": "required",
      "credentials": { "username": "cartesia-outbound", "password": "your-sip-password" }
    }
  }'

outbound.address는 Cartesia의 INVITE를 받는 통신사 호스트이며 sip: 접두사는 붙이지 않습니다. 포트를 생략하면 TCP는 5060, TLS는 5061을 씁니다.

5. 번호를 가져오고 에이전트 할당하기

트렁크의 프로바이더 ID로 통신사 번호를 하나씩 가져온 뒤, Playground나 전화번호 API로 에이전트에 할당합니다. 이제 그 번호로 오는 수신 통화가 에이전트에 연결됩니다. 발신할 때는 그 번호를 from_number_id로 넘깁니다. 상대방에게 표시되는 발신 번호는 통신사가 정합니다.

6. 전환을 설정하고 테스트하기

에이전트에서 Transfer call을 켜거나 transfer_to_number 시스템 도구를 설정하고, 목적지로 전화번호나 SIP URI를 지정합니다. Cartesia의 전환은 SIP REFER를 이용한 콜드 전환입니다. 통신사가 전환을 거부하면 Cartesia는 원래 통화를 유지하므로 발신자가 끊기지 않습니다. Twilio Elastic SIP Trunking에서는 트렁크의 전환 모드를 enable-all로 설정하세요.

그다음 실제 전화로 그 번호에 걸어서, 에이전트가 말하는 도중에 끼어들고, 주문 번호를 불러 주고, 상담원을 연결해 달라고 해 보세요. 10분이면 운영 환경에서 생기는 문제 대부분을 찾을 수 있습니다.

SIP 트렁크에서 자주 생기는 문제

증상흔한 원인
통화가 전혀 들어오지 않음발신 URI나 전송 방식이 잘못되었거나, 방화벽이 통신사 IP를 막고 있음.
401 또는 403 응답다이제스트 인증 정보가 맞지 않거나, 발신 IP가 허용 목록에 없음.
통화는 연결되지만 소리가 들리지 않음RTP가 막혔거나 경로가 잘못됨. NAT나, SIP는 통과시키지만 미디어 포트는 막는 방화벽이 원인인 경우가 많음.
암호화를 켜면 통화가 실패함한쪽은 SRTP를 필수로 요구하는데 다른 쪽은 켜져 있지 않음.
전환이 실패함통신사가 해당 목적지 유형의 REFER를 받지 않거나, 트렁크에서 전환이 꺼져 있음.
에이전트가 이름과 번호를 잘못 알아들음8 kHz 협대역 음성. 브라우저 녹음이 아니라 실제 전화 음성으로 인식을 테스트하세요.

비용

청구서는 두 장입니다. 통신사는 트렁크 요금을 청구합니다. 채널당, 분당 또는 둘 다에 번호 이용료가 더해집니다. 음성 에이전트 플랫폼은 에이전트 요금을 청구합니다. Cartesia에서는 번호 출처와 관계없이 Managed Agents 통화가 분당 $0.06입니다. SIP 트렁크 번호로 하는 통화에는 Cartesia 전화 요금이 붙지 않습니다. 통신사 구간 요금은 통신사가 청구하기 때문입니다. 분당 $0.014의 전화 요금은 Cartesia가 제공하는 번호에만 적용됩니다. LLM 사용료는 별도입니다.

직접 해 보려면 Cartesia playground에서 에이전트를 만들고, 트렁크를 연결한 뒤 전화를 걸어 보세요. AI 전화 에이전트 페이지에서 번호, 발신, 전환을 자세히 다룹니다.

관련 가이드

자주 묻는 질문

SIP 트렁킹이란 무엇인가요?

SIP 트렁킹은 물리적인 전화선 대신 인터넷으로 전화 시스템을 공중 전화망에 연결하는 방식입니다. SIP(Session Initiation Protocol)가 각 통화를 시작하고 끝내며, 음성은 RTP 패킷으로 전달됩니다. 통신사가 트렁크에 전화번호를 제공하고 모든 전화와의 통화를 연결합니다.

SIP 트렁킹과 VoIP는 어떻게 다른가요?

VoIP는 IP 네트워크로 음성을 전달하는 기술을 통칭합니다. SIP 트렁킹은 그중 특정 서비스로, 자체 전화 시스템이나 애플리케이션과 통신사를 잇는 연결입니다. 호스팅형 VoIP는 사업자가 전화 시스템 자체를 운영합니다. SIP 트렁크는 PBX, 컨택센터 플랫폼, 음성 에이전트처럼 이미 전화 시스템을 갖추고 있다는 전제에서 씁니다.

SIP 트렁크는 전화선과 같은 건가요?

정확히는 아닙니다. SIP 트렁크는 여러 통화를 동시에 전달할 수 있는 논리적 연결입니다. 용량은 물리적인 선이 아니라 채널이라고 부르는 동시 통화 수로 정해집니다. 트렁크 하나로 수백 개의 전화번호를 처리할 수 있습니다.

AI 음성 에이전트에서 SIP 트렁크를 쓸 수 있나요?

네. 통신사 트렁크를 음성 에이전트 플랫폼의 SIP 엔드포인트로 향하게 하고, 통화를 보낼 수 있는 대상을 제한한 뒤, 전화번호를 에이전트에 할당하면 됩니다. Cartesia Managed Agents는 TCP 또는 TLS 기반 SIP 트렁크로 수신과 발신을 처리하고, 선택적으로 SRTP 미디어 암호화를 지원하며, SIP REFER로 통화를 전환합니다.

음성 AI 플랫폼에서 번호를 사는 대신 SIP 트렁크를 쓰는 이유는 무엇인가요?

SIP 트렁크를 쓰면 기존 번호, 통신사 계약, 해외 지원 범위, 통화 라우팅을 그대로 유지할 수 있습니다. 플랫폼이 제공하는 번호는 설정이 빠르지만 지원 국가가 적은 경우가 많습니다. Cartesia가 제공하는 번호는 미국 번호뿐이지만, SIP 트렁크 번호는 통신사가 지원하는 어느 나라 번호든 쓸 수 있습니다.