Nexpert SIP 4 - Route and Record-Route

From 탱이의 잡동사니
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Overview

Route/Record-Route 헤더 내용 정리. 원문은 이곳(https://brunch.co.kr/@linecard/134) 에서 확인할 수 있다.

Basic

기업의 IP PBX 또는 SIP Proxy 는 호의 상태를 관리하고 과금 데이터를 생성하기 위해 모든 시그널링이 자신을 경유하게 한다. 모든 SIP Proxy 서버는 이렇게 동작하며, Dialog Stateful SIP Proxy 라고 부른다. SIP 프로토콜은 두 개의 SIP 헤더를 추가하여 이 문제를 해결한다.

Record-Route

Record-Route 헤더는 SIP Proxy 를 경유하는 다이얼로그에 대한 요청과 응답에 사용한다. 여러 대의 SIP Proxy 를 경유할 경우에는 ','를 이용하여 추가한다.

Route

Route 헤더는 응답 메시지의 Record-Route Header 로부터 생성된다. 같은 다이얼로그 내의 첫번째 Transaction 이 완료되면 그 이후 Transaction 은 Record-Route 의 값을 복사하여 Route 헤더로 사용한다. 다시 말해서 처음 INVITE 요청에 대한 200 OK 응답은 Record-Route 헤더를 사용하지만, 그 다음의 ACK 와 BYE 요청과 200 OK 응답은 Route 헤더를 사용한다.

Record-Route 헤더와 Route 헤더의 활용

엘리스의 전화기가 INVITE 메시지를 송신하면 SIP Proxy는 Record-Route 헤더를 메시지에 삽입하여 밥에게 전송한다. 통화중인 엘리스와 밥의 전화기는 동일한 Call-ID 를 가진 다이얼로그 내의 모든 신규 요청을 SIP Proxy 로 전달한다.

SIP 프록시 서버가 밥에게 보내는 SIP INVITE 를 살펴보자. SIP Proxy 서버는 'Record-Route: <sip:34.90.68.237:5060;r2=on;lr> 라는 헤더를 추가하였다.

INVITE sip:bob@pchero21.com SIP/2.0
Record-Route: <sip:192.168.0.237:5060;r2=on;lr>
Record-Route: <sip:10.164.0.20;transport=tcp;r2=on;lr>
...

SIP INVITE 메시지의 Record-Route 헤더의 값은 그대로 180 Ringing 과 200 OK 에 복사되어 전송된다. ACK 는 세션 설립을 위한 마지막 메시지이므로 SIP Proxy는 Route 헤더를 제거한 후에 밥에게 전송한다.

호 종료를 위한 BYE 요청은 기존 다이얼로그의 Record-Route 헤더를 복사한다. 밥의 전화기는 같은 다이얼로그 내의 신규요청이므로 Record-Route 헤더의 정보를 바탕으로 BYE 요청을 SIP Proxy 로 전달한다. BYE의 응담인 200 OK 는 Via 헤더를 따라 전송된다. BYE 는 다이얼로그의 마지막 메시지이므로 Route 헤더가 있으나 없으나 상관없다.

See also