RFC 3261 - SIP 이란 무엇일까
현재 VoIP 장비들은 H.323 표준 지원 및 호환성으로 인해 H.323장비들 간 연동이 잘 되고있지만, UC (Unified Communications) 환경이 많아지고있는 현재, H.323은 SIP에 비해 많은 한계를 가지고 있다. SIP 프로토콜은 비교적 복잡성이 낮고, ASCII 텍스트 기반이기때문에 디버깅이 용이하다.
IP관련 표준을 선도해오고있는 IETF에서 표준화된 SIP을 알지못하고서는 VoIP을 이해할 수 없다고 생각한다. SIP의 특징은 다양한 프로토콜과 연계하여 작동이 가능하다는 점이다. SIP는 Invite를 보내고, SDP(Session Description Protocol)을 통해 media type에 대한 정보를 공유한다. 또한, SIP은 음성전송을하지않고, RTP(Real-time Transport Protocol)를 통해 통신이 가능하게 한다. RTP통신시에는 peer-to-peer direct 통신을 한다고 하는데, 그 이유는 SIP메시지의 contact 정보를 통해 peer간에 통신경로를 이미 확보하였기때문이다. (다른 페이지에서 다루겠지만, SIP/RTP를 troubleshooting하고있으면 네트워크 전반에 걸친 flow를 알아야한다. 단시간에 많은 부분들을 배울수 있어 내가 정말 좋아하는 부분이다.)
SIP Request Message
1. Invite : SIP session시작시 UAC(User Agent Client)가 UAS(User Agent Server)로 전송하는 메시지
2. Ack : UAC는 Invite메시지에대한 최종 Response를 받고, 그 Response에 대한 ACK를 회신한다. (Success이던 Fail이던 회신)
3. Bye : UAC가 콜 종료시 서버에서 해당콜이 종료되었음을 알릴때 사용
4. Cancel : 아직 완료되지않은 Request를 취소할 때 사용. 서버로부터 Response 메시지를 받았다면 해당 Request는 취소될 수 없음
5. Option : 콜 셋업과 관게없이 서버에 대한 정보를 요구할때 사용되는 Request 메시지
6. Register : Client는 Registrar 서버에 자신의 위치정보를 제공한다. Client SIP address, IP address정보 등을 제공.
SIP Response Message
1. 1XX : Information message. 180 (Ringing), 182 (Call in queue, busy일 경우 대기중). H.323 - Alerting
2. 2XX : Successful message. 200 (OK). H.323 - Connect
3. 3XX : Redirect message. Server가 Client의 Invte를 redirect메시지를 통해 목적지 client의 세션정보 제공. 301 (Redirect)
4. 4XX : Client error message. 400 (Bad request). 404 (not found. Client가 요청한 SIP주소를 찾을수없음) 488 (Codec 호환성 이슈) 483 (Too many hops. Max-forwards를 넘어설 경우 발생)
5. 5XX : Server error message. 505 (Internal Server Error)
6. 6XX : other errors
SIP 관련규격
- RFC 3261 SIP (Session Initiation Protocol)
- RFC 3262 Reliability of Provisional Responses in Session Initiation Protocol
- RFC 3263 Locating SIP Servers
- RFC 3264 An offer / Answer model with Session Description Protocol
- RFC 3265 Specific Event Notification
- RFC 2327 SDP (Session Description Protocol)
- RFC 1889 RTP (A Transport Protocol for Real-Time Applications)
출처
- http://wiki.pchero21.com/wiki/SIP_method_on_RFC_3261
- https://m.blog.naver.com/ptupark/130070825941
- https://pmj0403.tistory.com/entry/SIP-session-initiation-protocol