SIP Protocol (1)
SIP는 multimedia session을 생성, 유지, 종료하기 위한 Signalling 및 control 을 정의한
프로토콜이다. SIP multimedia session은 인터넷 전화, multimedia 회의, multimedia 데이터 전송
등을 가능하게 하며, Session 간에 통신은 unicast 혹은 multicast 를 통해 이루어진다.
SIP는 session invitation 이라는 과정을 통해서 동작한다.
SIP는 peer-to-peer 프로토콜이다. 세션에서의 peer를 UA라고 한다. UA는 다음의 두 가지
기능적 요소로 이루어진다.
- User agent client (UAC) : SIP request를 시도하는 client 어플리케이션.
- User agent server(UAS) : SIP invitation 을 받고 응답하는 server 어플리케이션.
SIP 네트워크의 물리적 요소는 다음의 두 가지 그룹으로 나뉘어 진다.
(1) User agents
. IP telephone : UAC 와 UAS로 동작한다.
. Gateway : UAC 와 UAS로 동작하며, call control을 지원한다.
SIP user agent와 다른 터미날 장비간에 호환성을 지원한다. 또한 IP 망과,
SCN망 간에 호 생성 및 종료를 가능하게 한다.
(2) SIP servers
. Proxy server : Client로 부터 SIP request를 받아서 Network에 있는 SIP server 로 전달
해주는 장비. 여기서 SIP server는 다른 Proxy server혹은 UAS가 될 수있다.
Authentication , Authorization, 접근제어, Routing 같은 기능을 제공한다.
. Redirect server : UA 가 접근해야하는 server에 대한 정보를 제공한다.
. Registrar server : UAC의 현재 위치에 대한 정보를 등록하며, 주로 Location server같은
다른 서버와 가깝게 위치하거나 함께 구축된다.
. Location server : SIP Proxy server 나 Redirect server 에 주소(위치)정보를 제공한다.
주소를 제공하기 위하여 Registration server의 Database를 이용하며,
finger, rwhois, LAPD 같은 접속 tool을 제공한다.
* Registrar server가 Location Server의 보조 시스템으로 구성되어 질 수
있다.
" SIP Messages "
SIP 요소들 간에 통신은 Request와 Response 메세지 모델로 이루어진다.
SIP 메세지는 텍스트 기반이며 RFC822 (ARPA Internet Text massage), RFC2068
(Hypertext Transfer Protocol) 규약을 따른다.
- SIP request 메세지
. INVITE : Server 가 session 에 참가하도록 Client 가 요청하는 메세지.
. ACK : Server로부터 응답 메세지를 잘 받았다는 것을 알리기 위하여 Client가 보내는 메세지.
. BYE : 호를 종료하기 위하여 Server나 Client가 보내는 메세지.
. CANCEL : 현재 진행중인 절차를 중단하기 위하여 Server나 Client가 보내는 메세지.
. OPTIONS : 호를 받아들일 수 있는지에 대한 정보(Capability infor)를 Server에 요청
하는 메세지.
. REGISTER : Server에 정보를 제공하기 위하여 UA가 사용하는 메세지.
- SIP respond 메세지
. 1xx : Informational response
. 2xx : Successful response
. 3xx : Redirection response
. 4xx : Client error response
. 5xx : Server error response
. 6xx : Global failure response
SIP protocol (2)
Direct Call Setup
UCA가 Called party의 주소를 알고 있을 경우에는(캐쉬정보 혹은 내부 mechanism에 의해서)
직접 호 처리를 시도한다. 직접 호 처리를 할 경우 호 설정 절차가 가장 빠르고 효과적인 반면
목적지 정보가 많아질 경우 데이터의 처리와 관리가 어려워져서 규모가 큰 네트워크를 구성
할 수 없는 단점이 있다. 호 처리 절차는 다음과 같다.
1. Originating UAC가 UAS에 "INVITE" 메세지를 보낸다. 이 때 UAC에 대한 parameter 정보를
포함하여 보낸다.
2. UAS가 parameter 정보를 보고 호처리를 허용하기로 하면 Originating UAC에
" 100 Trying ", "180 Ringing ", "200 OK" 등의 reponse 메세지를 보낸다.
3. Originating UAC가 "ACK" 메세지를 보낸다.
4. RTP Session 을 열고 통신이 이루어진다.
Proxy server를 이용한 Call Setup
Proxy server는 Invitation 을 가로채어 목적지 UA로 보내준다.
Proxy server는 중앙에서 호 처리를 관리하며 보다 동적으로 정보를 업데이트하고 주소를
제공한다. Proxy server를 이용할 경우 UAC가 목적지 UA의 주소를 알지 못하여도 통신이
가능하다는 이점이 있다. 그러나 더 많은 메세지들을 주고 받아야 하며 Proxy server에
의존적이게 된다는 단점이 있다. 호 처리 절차는 다음과 같다.
1. Originating UAC가 Proxy server에 INVITE 메세지를 보낸다.
2. 필요할 경우, Proxy server는 Location server에 질의를 하여 목적지에 대한
IP adress 및 경로에 대한 정보를 얻는다.
3. Proxy server가 UAS에 INVITE 메세지를 보낸다.
4. UAS가 호처리를 허용하기로 하면 Proxy server에 응답 메세지
( "100 trying", " 180 rining", "200 OK" )를 보낸다.
5. Proxy server가 Originating UAC에 응답메세지를 보낸다.
6. UAC가 Proxy server에 ACK 메세지를 보낸다.
7. Proxy server가 UAS에 ACK 메세지를 보낸다.
8. UAC와 UAS사이에 RTP세션이 맺어진다.
'개인활동 > 잡동사니팁들' 카테고리의 다른 글
unix top 메모리 해석 (0) | 2008.10.27 |
---|---|
Open Source SIP stacks compared (0) | 2008.07.18 |
reSIProcate 설치(1) - Solaris 10 (0) | 2007.05.29 |
버클리 DB 설치법 (0) | 2007.04.20 |
close_wait time 변경 (0) | 2007.04.03 |