목록Network/SIP (4)
우당탕탕 개발일지
CHAPTER 12. Dialogs Dialog는 두 UA 간에 일정 시간 동안 유지되는 peer-to-peer SIP 관계를 나타낸다.메세지 순서를 유지하고, request의 올바른 라우팅을 가능하게 하며, SIP 메세지를 해석하기 위한 context를 제공한다.→ context는 dialog 상태 정보 (Call-ID, local / remote tag 등) dialog는 각 UA에서 Call-ID, local tag, remote tag로 식별된다.→ local/remote tag는 각각From/To 헤더의 tag 값 (UA 관점에 따라 local / remote가 달라짐)UA의 local tag는 상대 UA의 remote tag와 같다.→ 같은 dialog에 참여하는 각 UA가 인식하는 dialo..
CHAPTER 9. Canceling a Request CANCEL request은 클라이언트가 보낸 기존 request을 취소할 때 사용한다.UAS가 이미 final response(200 OK, 486 Busy Here, 404 Not Found 등)을 보냈다면, 그 이후에 CANCEL request이 와도 아무 효과가 없다.INVITE에 대해 CANCEL을 받으면 → 벨소리(호 연결 시도)를 멈추고 → INVITE에 대해 487(Request Terminated) response을 보낸다. (9.1) Client BehaviorINVITE request을 취소할 때만 request해야 한다.다른 request은 response이 빠르기 때문에 race condition이 발생할 수 있다.CANCEL..
CHAPTER 8. General User Agent Behavior챕터 8에서는 outside dialog에서 발생하는 request 처리에 대해 설명한다.→ 메소드와 무관하게 적용되는 공통 동작 규칙 ※ Dialog에는 Inside Dialog / Outside Dialog가 있다. UA (User Agent) : 단말(End System)UAC : 세션을 시작하는 역할request를 생성하고 보냄.UAC → proxy server → UAS 쪽으로 전달.UAS : 세션을 종료하는 역할request를 수신하면 response를 생성하고 보냄.UAS → proxy server → UAC를 향해 되돌아간다. (8.1) UAC UAC Behavior(8.1.1) Generating the RequestUA..
CHAPTER 7. SIP Messages SIP 메세지 기본 구조Start-Line → Request / Response 를 구분할 수 있다.Header Field → From, To, Call-ID 등 메타데이터를 포함하고 있다.CRLF(\\r\\n) → 빈 줄 (필수)Message Body (7.1) RequestsMethodcontact 정보를 등록하기 위한 REGISTER, 세션 설정을 위한 INVITE, INVITE에 대한 response을 확인하기 위한 ACK , 세션을 취소하기 위한 CANCEL, 세션 종료를 위한 BYE, 서버에 해당 기능에 대해 쿼리하기 위한 OPTIONS 6가지 방법이 존재한다. Request-URIrequest의 목적지 주소SIP / SIPS URI 또는 non-SI..