SIP-메시징
SIP 메시지는 두 가지 유형이 있습니다. requests 과 responses.
요청의 시작 줄에는 요청을 정의하는 메서드와 요청을 보낼 위치를 정의하는 Request-URI가 포함됩니다.
마찬가지로 응답의 시작 줄에는 응답 코드가 포함되어 있습니다.
요청 방법
SIP requests통신을 설정하는 데 사용되는 코드입니다. 그들을 보완하기 위해SIP responses 일반적으로 요청의 성공 여부를 나타냅니다.
METHODS로 알려진 이러한 SIP 요청은 SIP 메시지를 작동 가능하게 만듭니다.
METHODS는 다른 사용자 에이전트 또는 서버에서 수행 할 특정 작업을 요청하기 때문에 SIP 요청으로 간주 할 수 있습니다.
방법은 두 가지 유형으로 구분됩니다-
핵심 방법
확장 방법
핵심 방법
아래에서 설명하는 6 가지 핵심 방법이 있습니다.
초대
INVITE는 사용자 에이전트와의 세션을 시작하는 데 사용됩니다. 즉, 사용자 에이전트간에 미디어 세션을 설정하는 데 INVITE 방법이 사용됩니다.
INVITE는 메시지 본문에 발신자의 미디어 정보를 포함 할 수 있습니다.
INVITE가 성공 응답 (2xx)을 받았거나 ACK가 전송 된 경우 세션이 설정된 것으로 간주됩니다.
성공적인 INVITE 요청은 dialog 세션을 종료하기 위해 BYE가 전송 될 때까지 계속되는 두 사용자 에이전트 사이.
설정된 대화 상자 내에서 전송 된 INVITE를 re-INVITE.
Re-INVITE는 세션 특성을 변경하거나 대화 상태를 새로 고치는 데 사용됩니다.
INVITE 예
다음 코드는 INVITE가 사용되는 방법을 보여줍니다.
INVITE sips:[email protected] SIP/2.0
Via: SIP/2.0/TLS client.ANC.com:5061;branch = z9hG4bK74bf9
Max-Forwards: 70
From: Alice<sips:[email protected]>;tag = 1234567
To: Bob<sips:[email protected]>
Call-ID: [email protected]
CSeq: 1 INVITE
Contact: <sips:[email protected]>
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
Supported: replaces
Content-Type: application/sdp
Content-Length: ...
v = 0
o = Alice 2890844526 2890844526 IN IP4 client.ANC.com
s = Session SDP
c = IN IP4 client.ANC.com
t = 3034423619 0
m = audio 49170 RTP/AVP 0
a = rtpmap:0 PCMU/8000
안녕
BYE는 설정된 세션을 종료하는 데 사용되는 방법입니다. 세션을 종료하기 위해 호출자 또는 수신자가 보낼 수있는 SIP 요청입니다.
프록시 서버에서 보낼 수 없습니다.
BYE 요청은 일반적으로 프록시 서버를 우회하여 종단 간 라우팅합니다.
대기중인 INVITE 또는 설정되지 않은 세션에는 BYE를 보낼 수 없습니다.
레지스터
REGISTER 요청은 사용자 에이전트의 등록을 수행합니다. 이 요청은 사용자 에이전트가 레지스트라 서버로 전송합니다.
REGISTER 요청은 지정된 도메인의 권한있는 등록 기관에 도달 할 때까지 전달되거나 프록시 될 수 있습니다.
AOR (Address of Record)을 To 등록중인 사용자의 헤더입니다.
REGISTER 요청에는 기간 (3600 초)이 포함됩니다.
한 사용자 에이전트는 다른 사용자 에이전트를 대신하여 REGISTER 요청을 보낼 수 있습니다. 이것은third-party registration. 여기,From 태그에는에서 식별 된 당사자를 대신하여 등록을 제출하는 당사자의 URI가 포함됩니다. To 머리글.
취소
CANCEL은 설정되지 않은 세션을 종료하는 데 사용됩니다. 사용자 에이전트는이 요청을 사용하여 이전에 시작된 보류중인 통화 시도를 취소합니다.
사용자 에이전트 또는 프록시 서버에서 보낼 수 있습니다.
CANCEL은 hop by hop 즉, 사용자 에이전트 사이의 요소를 거쳐 다음 stateful 요소에 의해 생성 된 응답을 수신합니다.
ACK
ACK는 INVITE 메서드에 대한 최종 응답을 확인하는 데 사용됩니다. ACK는 항상 INVITE 방향으로 진행되며, INVITE에서 사용할 수없는 경우 ACK에는 SDP 본문 (미디어 특성)이 포함될 수 있습니다.
ACK는 초기 INVITE에서 이미 전송 된 미디어 설명을 수정하는 데 사용할 수 없습니다.
ACK를 수신하는 상태 저장 프록시는 ACK가 다운 스트림으로 다른 프록시 또는 사용자 에이전트로 전달되어야하는지 여부를 결정해야합니다.
2xx 응답의 경우 ACK는 종단 간이지만 다른 모든 최종 응답의 경우 상태 저장 프록시가 관련 될 때 홉 단위로 작동합니다.
옵션
OPTIONS 메소드는 기능에 대해 사용자 에이전트 또는 프록시 서버를 조회하고 현재 가용성을 발견하는 데 사용됩니다. 요청에 대한 응답은 사용자 에이전트 또는 서버의 기능을 나열합니다. 프록시는 OPTIONS 요청을 생성하지 않습니다.
확장 방법
구독
SUBSCRIBE는 사용자 에이전트가 특정 이벤트에 대한 알림을받을 목적으로 구독을 설정하는 데 사용됩니다.
그것은 포함합니다 Expires 구독 기간을 나타내는 헤더 필드입니다.
기간이 지나면 구독이 자동으로 종료됩니다.
구독은 사용자 에이전트 간의 대화를 설정합니다.
만료 시간 전에 대화 상자에서 다른 SUBSCRIBE를 전송하여 다시 구독 할 수 있습니다.
사용자로부터 구독에 대해 200 OK가 수신됩니다.
사용자는 Expires 값이 0 (영) 인 다른 SUBSCRIBE 메서드를 전송하여 구독을 취소 할 수 있습니다.
알림
NOTIFY는 사용자 에이전트가 특정 이벤트의 발생을 가져 오는 데 사용됩니다. 일반적으로 NOTIFY는 구독자와 알림 자 사이에 구독이있을 때 대화 상자 내에서 트리거됩니다.
모든 NOTIFY는 알림자가 수신하면 200 OK 응답을받습니다.
NOTIFY 포함 Event 이벤트를 나타내는 헤더 필드와 subscriptionstate 구독의 현재 상태를 나타내는 헤더 필드입니다.
알림은 항상 구독 시작 및 종료시 전송됩니다.
게시
PUBLISH는 사용자 에이전트가 이벤트 상태 정보를 서버로 보내는 데 사용됩니다.
PUBLISH는 이벤트 정보 소스가 여러 개인 경우 대부분 유용합니다.
PUBLISH 요청은 대화 상자에 전송되지 않는다는 점을 제외하면 NOTIFY와 유사합니다.
PUBLISH 요청에는 Expires 헤더 필드 및 Min-Expires 헤더 필드.
보내다
REFER는 사용자 에이전트가 다른 사용자 에이전트를 참조하여 대화의 URI에 액세스하는 데 사용됩니다.
REFER에는 Refer-To머리글. REFER의 필수 헤더입니다.
REFER는 대화 상자 내부 또는 외부로 보낼 수 있습니다.
ㅏ 202 Accepted 다른 사용자 에이전트가 참조를 수락했음을 나타내는 REFER 요청을 트리거합니다.
정보
INFO는 사용자 에이전트가 미디어 세션을 설정 한 다른 사용자 에이전트에 통화 신호 정보를 보내는 데 사용됩니다.
이것은 종단 간 요청입니다.
프록시는 항상 INFO 요청을 전달합니다.
최신 정보
UPDATE는 세션이 설정되지 않은 경우 세션 상태를 수정하는 데 사용됩니다. 사용자는 UPDATE로 코덱을 변경할 수 있습니다.
세션이 설정되면 다시 초대를 사용하여 세션을 변경 / 업데이트합니다.
PRACK
PRACK은 잠정적 응답 (1XX)의 신뢰할 수있는 전송 수신을 확인하는 데 사용됩니다.
일반적으로 PRACK은 클라이언트가 다음을 포함하는 임시 응답을받을 때 생성됩니다. RSeq 신뢰할 수있는 시퀀스 번호 및 supported:100rel 머리글.
PRACK은 (RSeq + CSeq) 값을 rack 머리글.
PRACK 방법은 안정적으로 전송되지 않는 100 Trying 응답을 제외한 모든 잠정 응답에 적용됩니다.
PRACK에는 메시지 본문이 포함될 수 있습니다. 제안 / 답변 교환에 사용될 수 있습니다.
메시지
SIP를 사용하여 인스턴트 메시지를 보내는 데 사용됩니다. IM은 일반적으로 텍스트 대화에 참여한 참가자가 실시간으로 교환하는 짧은 메시지로 구성됩니다.
MESSAGE는 대화 내에서 또는 대화 밖에서 보낼 수 있습니다.
MESSAGE의 내용은 메시지 본문에 MIME 부착.
ㅏ 200 OK 응답은 일반적으로 메시지가 목적지에 전달되었음을 표시하기 위해 수신됩니다.