Difference between revisions of "Nexpert SIP 4 - Route and Record-Route"

From 탱이의 잡동사니
Jump to: navigation, search
 
Line 28: Line 28:
 
== See also ==
 
== See also ==
 
* https://brunch.co.kr/@linecard/134 - 9장. Route 헤더와 Record-Route 헤더
 
* https://brunch.co.kr/@linecard/134 - 9장. Route 헤더와 Record-Route 헤더
 +
 +
[[category:Nexpert sip]]

Latest revision as of 21:05, 11 September 2020

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