SIP-메시징

SIP 메시지는 두 가지 유형이 있습니다. requestsresponses.

  • 요청의 시작 줄에는 요청을 정의하는 메서드와 요청을 보낼 위치를 정의하는 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 응답은 일반적으로 메시지가 목적지에 전달되었음을 표시하기 위해 수신됩니다.