Session Initiation Protocol 임형준(hyungjun25@cnu.ac.kr) 충남대학교 컴퓨터공학과 데이터베이스 시스템 연구실 2019년 5월 6일 월요일
목차 SIP에 대한 설명 SIP의 활용 가능성 부분 SIP의 원리 SIP의 개요 SIP의 특징 SIP의 주소 체계
SIP의 원리 Signaling Protocol 역할 Session Advertise Protocol (SAP)로 세션에 대한 정보를 관심이 있는 그룹에 제공 Session Initiation Protocol (SIP)를 통해 대화를 원하는 상대가 세션에 참가하도록 초대 (INVITE) Session Description Protocol (SDP)를 통해 열고자 하는 Media Type에 대한 정보를 교환
SIP의 개요 Session Initiation Protocol (세션 설정 프로토콜) 인터넷상의 실시간 멀티미디어 서비스 프로토콜 Media Transport Protocol Quality-of-Service Related Protocol Peer-to-Peer Signaling Protocol IETF (Internet Engineering Task Force)의 MMUSIC (Multiparty Multimedia Session Control)에 의해 제안 IP-based Networking HTTP (Hyper Text Transfer Protocol)와 같은 Client/Server 구조 멀티미디어 세션 설정, 수정, 종료를 위해 사용 하위 계층 전송 프로토콜 (TCP, UDP, ATM, X.25)과 독립적
SIP의 특징 HTTP의 ASCII 텍스트 기반 프로토콜 Personal (Session) Mobility 제공 URIs (Uniform Resource Indicators) 사용 E-mail 형태의 주소인 SIP-URI 이용해 사용자를 식별 Ex) sip:hjYim@dblab.cnu.ac.kr Personal (Session) Mobility 제공 사용자 이동성 제공 동일한 SIP 주소, 다른 위치 (단말)에서 연결 현재 사용자의 위치 등록, 수정, 삭제, 검색 기능
SIP의 주소 체계 SIP URI (Uniform Resource Indicators) SIP URI 형식 전자 메일 (E-mail) 주소와 유사한 형식 SIP URI 형식 Protocol Prefix:userID@host (Domain or IP) Ex) Domain - sip:hjYim@dblab.cnu.ac.kr Ex) IP – sip:hjYim@168.188.46.34 Protocol Prefix:전화번호@dblab.cnu.ac.kr (Domain or IP);user=phone Ex) Domain – sip:0428217721@dblab.cnu.ac.kr;user=phone Ex) IP – sip:0428217721@168.188.46.34 Authentication Ex) sip:hjYim;passwd=dblab@dblab.cnu.ac.kr
SIP의 동작과정 John INVITE 180 Ringing 200 OK ACK Media Session BYE Alice
SIP Method/Request & Response INVITE – 세션 연결 ACK – INVITE 요청 확인 BYE – 세션 종료 CANCEL – 세션 연결 취소 REGISTER – 사용자 위치(호스트 이름, IP)를 등록 OPTIONS – 상대 노드의 Capability (지원하는 헤더, 파라미터 등) SIP Response 1xx – 정보 응답 (Informational) 2xx – 성공 응답 (Success) 3xx – 경로 변경 응답 (Redirection) 4xx – 요청 실패 (Client Error) 5xx – 서버 오류 (Server Error) 6xx – 전체 실패 (Global Failure)
SIP Message Format SIP Message Methods – Start Line, Request ID, SIP Version Header – Path, Sender, Receiver Address, Context Information Blank Line – Boundary Message Body - Content - Communication Attribute Value
Example SIP Message SIP Message – Request SIP Message – Response INVITE sip:hyungjun25@dblab.cnu.ac.kr SIP/2.0 Via: SIP/2.0/UDP dblab.cnu.ac.kr; branch=33 Max-Forwards: 70 To: sip:hyungjun25@dblab.cnu.ac.kr From: sip:0428217721@dblab.cnu.ac.kr Call-id: sip:hjYim@dblab.cnu.ac.kr Cseq: 1 INVITE Contact: sip:dblab@dblab.cnu.ac.kr Blank Line – Boundary v=0 o=Alice 26764646 46734 IN IP4 192.0.01 s=Let’s talk about swimming techniques c=IN IP4 192.0.0.1 t=0 0 m=audio 20000 RTP/AVP 0 a=sendrecv SIP Message – Response SIP/2.0 200 OK Via: SIP/2.0/UDP dblab.cnu.ac.kr; branch=33 Max-Forwards: 70 To: sip:hyungjun25@dblab.cnu.ac.kr From: sip:0428217721@dblab.cnu.ac.kr Call-id: sip:hjYim@dblab.cnu.ac.kr Cseq: 1 200 OK Contact: sip:dblab@dblab.cnu.ac.kr Blank Line – Boundary v=0 o=Alice 26764646 46734 IN IP4 192.0.01 s=Let’s talk about swimming techniques c=IN IP4 192.0.0.1 t=0 0 m=audio 30000 RTP/AVP 0 a=sendrecv
SIP의 구성요소 (1) User Agent (UA) SIP Network Server 실제 사용자와 동작하는 부분 User Agent Client (UAC): 메시지를 송신할 경우 User Agent Server (UAS): 접속 요청 메시지를 수신 두 부분 모두가 하나의 프로그램에 포함 SIP Network Server 네트워크 망을 관리하는 서버 Proxy Server UAC와 UAS 사이에서 SIP 메시지 라우팅을 담당하는 서버 메시지 처리를 위해 UAC와 UAS로써 동작하며, 경우에 따라 수신 메시지 수정 Redirect Server 요청 메시지에 대한 3xx (경로 변경) 응답을 생성하는 UAS 3xx 응답을 통해 클라이언트 접속주소를 가리키는 대체 URIs 전송
SIP의 구성요소 (2) Registrar Server Location Server UA들이 REGISTER Method를 통해 SIP 주소와 IP 주소를 등록 Registrar Server는 등록된 정보를 Location Server로 제공 인증 과정을 통해 정당한 사용자인지 구별 Location Server Proxy Server나 Redirect Server로부터 SIP 콜의 목적지 노드 (실제 사용자의 위치)의 주소가 요청되면 Resolution하는 역할
SIP의 구조 – Proxy Server User Agent Server User Agent Client
SIP의 구조 – Redirect Server User Agent Server User Agent Client
SIP의 활용 가능성
Personal Mobility SIP uses email-style addresses to identify users Proxy Server
Peer-to-Peer
Outbound Proxy
SIP Request Forking
Event Notification (RFC 3265) To obtain the status of a given resource To track changes in that status E.g. online, offline Alice SUBSCRIBE Event: message-summary Alice’s Voicemail 200 OK NOTIFY Message-Waiting: yes Message-Account: sip:alice@vmail.example.com Voice-Message: 2/8 (0/2) 200 OK