개요
Session Initiation Protocol
- IP 네트워크 상으로 콜을 설정하는 방법을 제공한다. 어떤 미디어 인코딩을 사용할 것인지에 대해서 정할 수도 있고, 콜을 종료할 수도 있다.
- 콜 요청자가 콜 응답자의 현재 IP 주소를 알 수 있도록 하는 방법을 제공한다.
- 콜 진행중에 새로운 미디어 스트림을 추가하고, 인코딩 방식을 바꾸는등 콜 관리 방법을 제공한다.
콜 설정하기
- 송신자는 수신자의 식별자와 주소, 자신의 원하는 인코딩 방식 자신의 아이피 주, 패킷 수신 포트가 포함된 SIP INVITE 헤더에서 원하는 정보를 수신자로 보낸다.
- 수신자는 200OK 메시지와 함께 수신자의 IP 주소, 수신을 원하는 인코딩 방식 및 패킷 방식, 오디오 패킷이 전송될 패킷 번호가 포함된 응답을 전송한다.
- 수신자와 송신자는 서로 다른 인코딩 방식을 사용할 수 있다.
- 수신자는 송신을 거부할 수 있는데, 코덱 지원하지 않음, 바쁨, 자리비움, 요금 지불 바람과 같은 거부 응답 코드들을 보낼 수 있다.
특징
- SIP 은 Out-of-band 프로토콜이다. SIP 메시지는 5060번 포트를 통해 전송되며, 인코딩된 메시지는 정해진 포트를 사용하지 않는다.
- SIP 메시지는 ASCII로 이루어져 있으며, HTTP 패킷과 비슷하다.
- SIP 주소는 단순히 IP 주소로 이루어져 있지 않을 수도 있으며, SIP 프록시와 연관되는 주소를 등록 할 수도 있다.
SIP 헤더
- INVITE: 초대할 사람의 주소와 SIP 버전 정보
- Via: SIP 메시지가 거쳐간 SIP 장치
- From/To: 보낸이와 받는이
- Call-ID: 콜을 유일하게 식별하는 식별자
- Content-Type: SIP 메시지에 포함되어 있는 내용을 기술하는 데 사용한 포맷
- Content-Length: SIP 메시지의 길이
이름 변환과 사용자 위치 찾기
SIP 메시지를 프록시를 통해서 등록해 놓은 뒤 송신자는 그 프록시에 접속하여 주소를 획득한다.