Presentation is loading. Please wait.

Presentation is loading. Please wait.

SIP (Session Initiation Protocol)

Similar presentations


Presentation on theme: "SIP (Session Initiation Protocol)"— Presentation transcript:

1 SIP (Session Initiation Protocol)
순천향대학교 정보기술공학부 이상정

2 SIP 개요 Session Initiation Protocol 호(call),세션 설정 프로토콜
Peer-to-peer signaling protocol SIP-URL 형태의 주소를 이용해 사용자를 식별 사용자 이동성 제공 동일한 SIP 주소, 다른 위치 (단말)에서 연결 현재 사용자의 위치 등록, 수정, 삭제, 검색 기능 하위 전송 프로토콜에 독립적 순천향대학교 정보기술공학부 이 상 정

3 SIP 개발단계 1996 Mark Hadley’s SIP(Session Invitation Protocol) Henning Schulzrinne’s SCIP(Simple Conference Control Protocol) RFC 2543 by IETF MMUSIC WG IETF SIP WG RFC 2543bis RFC 3261 순천향대학교 정보기술공학부 이 상 정

4 SIP 구성요소 UAC (User Agent Client) UAS (User Agent Server)
요청 메시지로 SIP transaction을 개시하는 논리적 실체 요청 메시지의 존속기간동안 UAC로 동작 UAS (User Agent Server) SIP 요청 메시지에 응답하는 논리적 실체 요청 메시지 수용, 거절, 리다이렉트 UA (User Agent) = UAC + UAS Redirect Server SIP 요청 메시지의 주소를 0개 이상의 새로운 주소로 매핑, 클라이언트에게 새로운 주소 반환 Proxy Server 요청 메시지를 내부적으로 처리하거나 다른 서버로 전달 요청 메시지를 해석하고 포워딩 전에 재작성 가능 Registrar REGISTER 요청 메시지를 수용하는 서버 Proxy나 Redirect Server와 함께 구현될 수 있음 순천향대학교 정보기술공학부 이 상 정

5 (UAC:User Agent Client)
SIP 아키텍처 Request SIP Redirect Server Response Location Service 2 Location Server 3 5 4 6 1 11 11 7 12 10 SIP Proxy 8 SIP Client (UAC:User Agent Client) 9 SIP Proxy SIP Client (User Agent Server) 순천향대학교 정보기술공학부 이 상 정

6 SIP 메시지 순천향대학교 정보기술공학부 이 상 정

7 SIP 메시지 형식 순천향대학교 정보기술공학부 이 상 정

8 SIP 구문 session_id version IP4 순천향대학교 정보기술공학부 이 상 정

9 SIP 헤더 Via : 응답 시 경유될 호스트 명시 From, To Call-ID: 각 호(call)을 구분하는 유일한 ID
Cseq: 각 요청 마다 증가되는 값 순천향대학교 정보기술공학부 이 상 정

10 SDP Session Description Protocol 메시지 바디에서 미디어 세션을 기술
주요 미디어 형태를 표현하기 위해 RTP/AVP Profiles을 사용 0 : PCM u-law 3 : GSM 4 : G.723 순천향대학교 정보기술공학부 이 상 정

11 SIP 요청 메시지 순천향대학교 정보기술공학부 이 상 정

12 SIP 응답 메시지 순천향대학교 정보기술공학부 이 상 정

13 End-to-End SIP Model 순천향대학교 정보기술공학부 이 상 정

14 Simple Call Flow 순천향대학교 정보기술공학부 이 상 정

15 Simple Call Flow – 미디어 기술 예
순천향대학교 정보기술공학부 이 상 정

16 코덱 협상 순천향대학교 정보기술공학부 이 상 정

17 등록 순천향대학교 정보기술공학부 이 상 정

18 Redirect Server에서의 세션 설정
순천향대학교 정보기술공학부 이 상 정

19 Proxy Server에서의 세션 설정 순천향대학교 정보기술공학부 이 상 정

20 Overview of Operation Alice’s softphone atlanta.com proxy biloxy.com
Bob’s SIP Phone 100 F3 INVITE F1 180 F7 INVITE F2 100 F5 INVITE F4 180 F6 180 F8 200 OK F9 200 OK F10 200 OK F11 ACK F12 Media Session BYE F13 200 OK F14 순천향대학교 정보기술공학부 이 상 정

21 Overview of Operation INVITE sip:bob@biloxi.com SIP/2.0
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bK776asdhds Max-Forwards: 70 To: Bob From: Alice Call-ID: CSeq: INVITE Contact: Content-Type: application/sdp Content-Length: 142 Request-Line : Method SP Request-URI SP SIP-Version CRLF 순천향대학교 정보기술공학부 이 상 정

22 Overview of Operation SIP/2.0 200 OK
Via: SIP/2.0/UDP server10.biloxi.com ;branch=z9hG4bKnashds8;received= Via: SIP/2.0/UDP bigbox3.site3.atlanta.com ;branch=z9hG4bK77ef4c ;received= Via: SIP/2.0/UDP pc33.atlanta.com ;branch=z9hG4bK776asdhds ;received= To: Bob From: Alice Call-ID: CSeq: INVITE Contact: Content-Type: application/sdp Content-Length: 131 Status-Line : SIP-Version SP Status-Code SP Reason-Phrase CRLF 순천향대학교 정보기술공학부 이 상 정

23 Overview of Operation Via Call-ID CSeq Contact Max-Forwards
Expecting to receive responses Branch parameter that identifies this transaction Call-ID Globally unique identifier for this call Random string CSeq Increment for each new request within a dialog Contact Tells other elements where to send future requests Max-Forwards Limit the number of hops 순천향대학교 정보기술공학부 이 상 정

24 Dialogs Dialog Early Dialog Transaction
Peer to Peer SIP relationship between two user agents < Call-ID, From tag, To tag > Early Dialog Established by a non-final response to a request Transaction From the first request sent from the client to the server up to a final(non-1xx) response sent from the server to client Occur between a client and a server 순천향대학교 정보기술공학부 이 상 정

25 SIP to SIP through two proxies
F1 INVITE A -> Proxy 1 INVITE SIP/2.0 Via: SIP/2.0/UDP here.com:5060;branch=z9hG4bK74bf9 Max-Forwards: 70 From: BigGuy To: LittleGuy Call-ID: CSeq: 1 INVITE Contact: Content-Type: application/sdp Content-Length: 147 F2 407 Proxy Authorization Required Proxy 1 -> User A SIP/ Proxy Authorization Required Via: SIP/2.0/UDP here.com:5060;branch=z9hG4bK74bf9 ;received= From: BigGuy To: LittleGuy Call-ID: CSeq: 1 INVITE Proxy-Authenticate: Digest realm="wcom.com", nonce="f84f1cec41e6cbe5aea9c8e88d359", opaque="", stale=FALSE, algorithm=MD5 Content-Length: 0 F3 ACK A -> Proxy 1 ACK SIP/2.0 Via: SIP/2.0/UDP here.com:5060;branch=z9hG4bK74bf9 Max-Forwards: 70 From: BigGuy To: LittleGuy CSeq: 1 ACK Content-Length: 0 F4 INVITE A -> Proxy 1 INVITE SIP/2.0 Via: SIP/2.0/UDP here.com:5060;branch=z9hG4bK74bf9 Max-Forwards: 70 From: BigGuy To: LittleGuy Call-ID: CSeq: 2 INVITE Contact: Proxy-Authorization:Digest username="UserA", realm="wcom.com", nonce="wf84f1ceczx41ae6cbe5aea9c8e88d359", opaque="", response="42ce3cef44b22f50c6a6071bc8" Content-Type: application/sdp Content-Length: 147 F5 INVITE Proxy 1 -> Proxy 2 INVITE SIP/2.0 Via: SIP/2.0/UDP ss1.wcom.com:5060 ;branch=z9hG4bK2d4790.1 Via: SIP/2.0/UDP here.com:5060;branch=z9hG4bK74bf9 ;received= Max-Forwards: 69 Record-Route: <sip:ss1.wcom.com;lr> From: BigGuy To: LittleGuy Call-ID: CSeq: 2 INVITE Contact: Content-Type: application/sdp Content-Length: 147 F6 (100 Trying) Proxy 1 -> User A SIP/ Trying Via: SIP/2.0/UDP here.com:5060;branch=z9hG4bK74bf9 ;received= From: BigGuy To: LittleGuy Call-ID: CSeq: 2 INVITE Content-Length: 0 F7 INVITE Proxy 2 -> B INVITE SIP/2.0 Via: SIP/2.0/UDP ss2.wcom.com:5060 ;branch=z9hG4bK721e418c4.1 Via: SIP/2.0/UDP ss1.wcom.com:5060 ;branch=z9hG4bK2d4790.1 ;received= Via: SIP/2.0/UDP here.com:5060;branch=z9hG4bK74bf9 ;received= Max-Forwards: 68 Record-Route: <sip:ss2.wcom.com;lr>,<sip:ss1.wcom.com;lr> From: BigGuy To: LittleGuy Call-ID: ……… F8 (100 Trying) Proxy 2 -> Proxy 1 SIP/ Trying Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=z9hG4bK2d4790.1 ;received= Via: SIP/2.0/UDP here.com:5060;branch=z9hG4bK74bf9 ;received= From: BigGuy To: LittleGuy Call-ID: CSeq: 2 INVITE Content-Length: 0 순천향대학교 정보기술공학부 이 상 정

26 SIP to SIP through two proxies
F9 180 Ringing B -> Proxy 2 SIP/ Ringing Via: SIP/2.0/UDP ss2.wcom.com:5060;branch=z9hG4bK721e418c4.1 ;received= Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=z9hG4bK2d4790.1 ;received= Via: SIP/2.0/UDP here.com:5060;branch=z9hG4bK74bf9 ;received= Record-Route: <sip:ss2.wcom.com;lr>, <sip:ss1.wcom.com;lr> From: BigGuy To: LittleGuy Call-ID: Contact: CSeq: 2 INVITE Content-Length: 0 F Ringing Proxy 2 -> Proxy 1 SIP/ Ringing Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=z9hG4bK2d4790.1 ;received= Via: SIP/2.0/UDP here.com:5060;branch=z9hG4bK74bf9 ;received= Record-Route: <sip:ss2.wcom.com;lr>, <sip:ss1.wcom.com;lr> From: BigGuy To: LittleGuy Call-ID: Contact: CSeq: 2 INVITE Content-Length: 0 F Ringing Proxy 1 -> A SIP/ Ringing Via: SIP/2.0/UDP here.com:5060;branch=z9hG4bK74bf9 ;received= Record-Route: <sip:ss2.wcom.com;lr>, <sip:ss1.wcom.com;lr> From: BigGuy To: LittleGuy Call-ID: Contact: CSeq: 2 INVITE Content-Length: 0 F OK B -> Proxy 2 SIP/ OK Via: SIP/2.0/UDP ss2.wcom.com:5060;branch=z9hG4bK721e418c4.1 ;received= Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=z9hG4bK2d4790.1 ;received= Via: SIP/2.0/UDP here.com:5060;branch=z9hG4bK74bf9 ;received= Record-Route: <sip:ss2.wcom.com;lr>, <sip:ss1.wcom.com;lr> From: BigGuy To: LittleGuy Call-ID: CSeq: 2 INVITE Contact: Content-Type: application/sdp Content-Length: 147 F OK Proxy 2 -> Proxy 1 SIP/ OK Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=z9hG4bK2d4790.1 ;received= Via: SIP/2.0/UDP here.com:5060;branch=z9hG4bK74bf9 ;received= Record-Route: <sip:ss2.wcom.com;lr>, <sip:ss1.wcom.com;lr> From: BigGuy To: LittleGuy Call-ID: CSeq: 2 INVITE Contact: Content-Type: application/sdp Content-Length: 147 F OK Proxy 1 -> A SIP/ OK Via: SIP/2.0/UDP here.com:5060;branch=z9hG4bK74bf9 ;received= Record-Route: <sip:ss2.wcom.com;lr>, <sip:ss1.wcom.com;lr> From: BigGuy To: LittleGuy Call-ID: CSeq: 2 INVITE Contact: Content-Type: application/sdp Content-Length: 147 F15 ACK A -> Proxy 1 ACK SIP/2.0 Via: SIP/2.0/UDP here.com:5060;branch=z9hG4bK74bf9 Max-Forwards: 70 Route: <sip:ss1.wcom.com;lr>, <sip:ss2.wcom.com;lr> From: BigGuy To: LittleGuy Call-ID: CSeq: 2 ACK Content-Length: 0 F16 ACK Proxy 1 -> Proxy 2 ACK SIP/2.0 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=z9hG4bK2d4790.1 Via: SIP/2.0/UDP here.com:5060;branch=z9hG4bK74bf9 ;received= Max-Forwards: 69 Route: <sip:ss2.wcom.com;lr> From: BigGuy To: LittleGuy Call-ID: CSeq: 2 ACK Content-Length: 0 순천향대학교 정보기술공학부 이 상 정

27 SIP to SIP through two proxies
F18 BYE User B -> Proxy 2 BYE SIP/2.0 Via: SIP/2.0/UDP there.com:5060;branch=z9hG4bKnashds7 Max-Forwards: 70 Route: <sip:ss2.wcom.com;lr>, <sip:ss1.wcom.com;lr> From: LittleGuy To: BigGuy Call-ID: CSeq: 1 BYE Content-Length: 0 F19 BYE Proxy 2 -> Proxy 1 BYE SIP/2.0 Via: SIP/2.0/UDP ss2.wcom.com:5060;branch=z9hG4bK721e418c4.1 Via: SIP/2.0/UDP there.com:5060;branch=z9hG4bKnashds7 ;received= Max-Forwards: 69 Route: <sip:ss1.wcom.com;lr> From: LittleGuy To: BigGuy Call-ID: CSeq: 1 BYE Content-Length: 0 F20 BYE Proxy 1 -> User A BYE SIP/2.0 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=z9hG4bK2d4790.1 Via: SIP/2.0/UDP ss2.wcom.com:5060;branch=z9hG4bK721e418c4.1 ;received= Via: SIP/2.0/UDP there.com:5060;branch=z9hG4bKnashds7 ;received= Max-Forwards: 68 From: LittleGuy To: BigGuy Call-ID: CSeq: 1 BYE Content-Length: 0 F OK User A -> Proxy 1 SIP/ OK Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=z9hG4bK2d4790.1 ;received= Via: SIP/2.0/UDP ss2.wcom.com:5060;branch=z9hG4bK721e418c4.1 ;received= Via: SIP/2.0/UDP there.com:5060;branch=z9hG4bKnashds7 ;received= From: LittleGuy To: BigGuy Call-ID: CSeq: 1 BYE Content-Length: 0 F OK Proxy 1 -> Proxy 2 SIP/ OK Via: SIP/2.0/UDP ss2.wcom.com:5060;branch=z9hG4bK721e418c4.1 ;received= Via: SIP/2.0/UDP there.com:5060;branch=z9hG4bKnashds7 ;received= From: LittleGuy To: BigGuy Call-ID: CSeq: 1 BYE Content-Length: 0 F OK Proxy 2 -> User B SIP/ OK Via: SIP/2.0/UDP there.com:5060;branch=z9hG4bKnashds7 ;received= From: LittleGuy To: BigGuy Call-ID: CSeq: 1 BYE Content-Length: 0 순천향대학교 정보기술공학부 이 상 정

28 Header Fields Routing Header Max-Forwards 최대 Proxy를 거쳐 갈 수 있는 수
Record-Route Proxy 에서 dialog 내의 request를 받고자 할 때 추가 Route Record-Route Header의 List로 만들어 지며, Request가 거쳐 가야 할 Proxy의 경로 순천향대학교 정보기술공학부 이 상 정

29 Header Fields Security Header Authentication-Info
HTTP Digest에서 mutual authentication을 지원하기 위해 사용 Authorization UA의 authentication credentials 를 포함 WWW-Authorization Authentication challenge에 사용 Key를 만들 때 필요한 정보 포함 Proxy-Authorization UA의 authentication information를 포함하는 credentials로 구성 Proxy-Authenticate Proxy에서 credential을 만들기 위해 필요한 정보 포함 순천향대학교 정보기술공학부 이 상 정

30 Header Fields Content Processing Content-Disposition
Message body가 UAC or UAS interpret 할지에 대한 내용 Content-Encoding “media-type”의 modifier로 사용 Content-Language 사용 언어 표기 Content-Type Message-body의 media type을 나타냄 Content-Length Message-body의 길이 MIME-Version MIME Version 순천향대학교 정보기술공학부 이 상 정

31 Capability Information
Header Fields Capability Information Accept 사용 가능한 message format을 나타낸다. Accept Header가 없는 경우 default는application/sdp Accept-Encoding 사용 가능한 encoding 방법을 알려 줌 Accept-Language Message에 사용 가능한 언어를 알려 줌 Allow 처리 가능한 Method를 알려줌 Proxy-Require Proxy가 지원해야 하는 feature를 알려줌 순천향대학교 정보기술공학부 이 상 정

32 Capability Information
Header Fields Capability Information Require Request를 처리하기 위해서 지원해야 하는Extensions Supported 지원하는 Extensions Unsupported 지원 하지 않는 Extensions 순천향대학교 정보기술공학부 이 상 정

33 Header Fields SIP Processing Call-ID
Identify a particular invitation or all registrations of a particular client Call-Info Caller, Callee 의 부가적인 정보 Contact Method, Request, Response에 따라서 의미가 다름 INVITE Request의 경우 Request를 수신할 곳에 대한 정보 CSeq Dialog 에서 transaction의 순서로 사용 Date 날짜와 시간 정보를 포함 Error-Info error status에 대한 부가 정보 순천향대학교 정보기술공학부 이 상 정

34 Header Fields SIP Processing Expires message가 expire 될 상대적인 시간
INVITE method에서는 무시 From Initiator of the request In-Reply-To Enumerate the Call-IDs the this Call references or returns Min-Expires Soft-state가 지원하는 최소 expire 시간 정보 Organization Request나 Response 보낸 Organization의 Name Priority Indicate urgency 순천향대학교 정보기술공학부 이 상 정 Reply-To, Retry-After, Server, Subject, Timestamp, To, User-Agent, Warning, Via

35 User-Agent, Warning, Via
Header Fields SIP Processing Reply-To Logical return URI Retry-After 현재 Call을 수락할 수 없을 때, 얼마나 후에 처리가 가능한지 알려줌 Server UAS가 사용하는 Software 정보 Subject Summary the nature of call Timestamp UAC가 UAS로 request를 보낸 시점 To The logical recipient of the request 순천향대학교 정보기술공학부 이 상 정 User-Agent, Warning, Via

36 Header Fields SIP Processing User-Agent Request를 만든 UAC에 대한 정보 Warning
Additional information about the status of response Via Request가 지나간 path Response가 지나 가야 할 path Branch value는 Transaction identifier로 사용,Loop detect를 가능하게 함 순천향대학교 정보기술공학부 이 상 정

37 Response Code Informational = "100" ; Trying | "180" ; Ringing
| "181" ; Call Is Being Forwarded | "182" ; Queued (temporarily unavailable, server has decided to queue the call) | “183” ; Session Progress Success = "200" ; OK Redirection = "300" ; Multiple Choices | "301" ; Moved Permanently | "302" ; Moved Temporarily | "303" ; See Other | "305" ; Use Proxy | "380" ; Alternative Service 순천향대학교 정보기술공학부 이 상 정

38 Response Code Client-Error = "400" ; Bad Request
| "401" ; Unauthorized | "402" ; Payment Required | "403" ; Forbidden | "404" ; Not Found | "405" ; Method Not Allowed | "406" ; Not Acceptable | "407" ; Proxy Authentication Required | "408" ; Request Timeout | "409" ; Conflict | "410" ; Gone | "413" ; Request Entity Too Large | "414" ; Request-URI Too Large | "415" ; Unsupported Media Type | "416" ; Unsupported URI Scheme | "420" ; Bad Extension 순천향대학교 정보기술공학부 이 상 정

39 Response Code | "421" ; Extension Required
| "423" ; Interval Too Brief | "480" ; Temporarily not available | "481" ; Call Leg/Transaction Does Not Exist | "482" ; Loop Detected | "483" ; Too Many Hops | "484" ; Address Incomplete | "485" ; Ambiguous | "486" ; Busy Here | "487" ; Request Terminated | "488" ; Not Acceptable Here | "491" ; Request Pending | "493" ; Undecipherable 순천향대학교 정보기술공학부 이 상 정

40 Response Code Server-Error = "500" ; Internal Server Error
| "501" ; Not Implemented | "502" ; Bad Gateway | "503" ; Service Unavailable | "504" ; Server Time-out | "505" ; Version not supported | "513" ; Message To Large Global-Failure = "600" ; Busy Everywhere | "603" ; Decline | "604" ; Does not exist anywhere | "606" ; Not Acceptable 순천향대학교 정보기술공학부 이 상 정


Download ppt "SIP (Session Initiation Protocol)"

Similar presentations


Ads by Google