SIP - Messaging

Wiadomości SIP są dwojakiego rodzaju - requests i responses.

  • Wiersz otwierający żądania zawiera metodę, która definiuje żądanie, oraz identyfikator URI żądania, który określa, gdzie żądanie ma zostać wysłane.

  • Podobnie, pierwszy wiersz odpowiedzi zawiera kod odpowiedzi.

Metody żądania

SIP requeststo kody używane do nawiązania komunikacji. Aby je uzupełnić, sąSIP responses które ogólnie wskazują, czy żądanie powiodło się, czy nie.

Te żądania SIP, które są znane jako METODY, sprawiają, że wiadomość SIP działa.

  • METODY można traktować jako żądania SIP, ponieważ żądają one podjęcia określonej akcji przez innego agenta użytkownika lub serwer.

  • METODY wyróżnia się na dwa typy -

    • Metody podstawowe

    • Metody rozszerzeń

Metody podstawowe

Istnieje sześć podstawowych metod omówionych poniżej.

ZAPRASZAM

INVITE służy do zainicjowania sesji z agentem użytkownika. Innymi słowy, metoda INVITE służy do ustanowienia sesji medialnej między agentami użytkownika.

  • INVITE może zawierać informacje o multimediach osoby dzwoniącej w treści wiadomości.

  • Sesja jest uważana za ustanowioną, jeśli INVITE otrzymało odpowiedź (2xx) lub ACK zostało wysłane.

  • Pomyślne żądanie INVITE powoduje utworzenie dialog między dwoma agentami użytkownika, która trwa do wysłania BYE w celu zakończenia sesji.

  • ZAPROSZENIE wysłane w ramach ustalonego okna dialogowego jest znane jako re-INVITE.

  • Ponownie INVITE służy do zmiany charakterystyki sesji lub odświeżenia stanu okna dialogowego.

ZAPROŚ Przykład

Poniższy kod ilustruje sposób użycia 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

PA

BYE to metoda używana do kończenia ustanowionej sesji. Jest to żądanie SIP, które może zostać wysłane przez dzwoniącego lub odbierającego w celu zakończenia sesji.

  • Nie można go wysłać przez serwer proxy.

  • Żądanie BYE zwykle kieruje od końca do końca, omijając serwer proxy.

  • BYE nie może zostać wysłane do oczekującej sesji INVITE lub nierozstrzygniętej sesji.

ZAREJESTROWAĆ

Żądanie REGISTER wykonuje rejestrację agenta użytkownika. To żądanie jest wysyłane przez agenta użytkownika do serwera rejestracyjnego.

  • Żądanie REJESTRACJI może zostać przekazane lub przekazane dalej, aż dotrze do autorytatywnego rejestratora określonej domeny.

  • Niesie AOR (adres rejestracji) w formacie To nagłówek rejestrowanego użytkownika.

  • Żądanie REGISTER zawiera okres (3600 sekund).

  • Jeden agent użytkownika może wysłać żądanie REGISTER w imieniu innego użytkownika. Jest to znane jakothird-party registration. TutajFrom tag zawiera identyfikator URI strony dokonującej rejestracji w imieniu strony określonej w To nagłówek.

ANULUJ

CANCEL służy do zakończenia sesji, która nie została nawiązana. Klienty użytkownika używają tego żądania do anulowania oczekującej próby połączenia zainicjowanej wcześniej.

  • Może zostać wysłany przez agenta użytkownika lub serwer proxy.

  • ANULUJ to plik hop by hop request, tj. przechodzi przez elementy między agentem użytkownika i otrzymuje odpowiedź wygenerowaną przez następny element stanowy.

ACK

ACK służy do potwierdzenia końcowych odpowiedzi na metodę INVITE. ACK zawsze idzie w kierunku INVITE.ACK może zawierać treść SDP (charakterystykę mediów), jeśli nie jest dostępna w INVITE.

  • ACK nie może być używane do modyfikowania opisu mediów, który został już wysłany w początkowym INVITE.

  • Pełnostanowe proxy odbierające ACK musi określić, czy ACK powinno być przekazane dalej do innego proxy lub agenta użytkownika.

  • W przypadku odpowiedzi 2xx ACK działa od końca do końca, ale w przypadku wszystkich pozostałych odpowiedzi końcowych działa na zasadzie przeskoku, gdy zaangażowane są stanowe proxy.

OPCJE

Metoda OPTIONS służy do wysyłania zapytań do agenta użytkownika lub serwera proxy o jego możliwości i wykrywania ich aktualnej dostępności. Odpowiedź na żądanie zawiera listę możliwości agenta użytkownika lub serwera. Serwer proxy nigdy nie generuje żądania OPTIONS.

Metody rozszerzeń

Subskrybuj

SUBSCRIBE jest używane przez agentów użytkownika do ustanawiania subskrypcji w celu otrzymywania powiadomień o określonym wydarzeniu.

  • Zawiera plik Expires pole nagłówka, które wskazuje czas trwania subskrypcji.

  • Po upływie tego czasu subskrypcja wygaśnie automatycznie.

  • Subskrypcja ustanawia dialog między agentami użytkownika.

  • Możesz ponownie zasubskrybować, wysyłając kolejną SUBSKRYPCJĘ w oknie dialogowym przed upływem czasu.

  • 200 OK zostanie otrzymane za subskrypcję od użytkownika.

  • Użytkownicy mogą zrezygnować z subskrypcji, wysyłając inną metodę SUBSCRIBE z wartością Expires 0 (zero).

NOTYFIKOWAĆ

NOTIFY jest używany przez programy użytkownika do uzyskania informacji o wystąpieniu określonego zdarzenia. Zwykle NOTIFY zostanie wywołane w oknie dialogowym, gdy istnieje subskrypcja między subskrybentem a powiadamiającym.

  • Każde powiadomienie NOTIFY otrzyma 200 odpowiedzi OK, jeśli zostanie odebrane przez zgłaszającego.

  • NOTIFY zawiera rozszerzenie Event pole nagłówka wskazujące na zdarzenie oraz a subscriptionstate pole nagłówka wskazujące aktualny stan subskrypcji.

  • POWIADOMIENIE jest zawsze wysyłane przy rozpoczęciu i zakończeniu subskrypcji.

PUBLIKOWAĆ

OPUBLIKUJ jest używane przez agenta użytkownika do wysyłania informacji o stanie zdarzenia do serwera.

  • OPUBLIKUJ jest szczególnie przydatne, gdy istnieje wiele źródeł informacji o wydarzeniach.

  • Żądanie OPUBLIKUJ jest podobne do POWIADOMIENIA, z tą różnicą, że nie jest wysyłane w oknie dialogowym.

  • Żądanie OPUBLIKUJ musi zawierać rozszerzenie Expires pole nagłówka i Min-Expires pole nagłówka.

ODNOSIĆ SIĘ

REFER jest używany przez agenta użytkownika w celu skierowania innego klienta użytkownika do dostępu do identyfikatora URI dla okna dialogowego.

  • REFER musi zawierać Refer-Tonagłówek. To jest obowiązkowy nagłówek REFER.

  • REFER można wysłać w oknie dialogowym lub poza nim.

  • ZA 202 Accepted wywoła żądanie REFER, które wskazuje, że inny klient użytkownika zaakceptował odniesienie.

INFO

INFO jest używane przez agenta użytkownika do wysyłania informacji sygnalizujących wywołanie do innego agenta użytkownika, z którym nawiązał sesję medialną.

  • To jest kompleksowa prośba.

  • Proxy zawsze przekaże żądanie INFO.

AKTUALIZACJA

UPDATE służy do modyfikowania stanu sesji, jeśli sesja nie została ustanowiona. Użytkownik może zmienić kodek za pomocą UPDATE.

Jeśli sesja jest ustanowiona, ponowne zaproszenie jest używane do zmiany / aktualizacji sesji.

PRACK

PRACK służy do potwierdzenia otrzymania wiarygodnego przesłania tymczasowej odpowiedzi (1XX).

  • Generalnie PRACK jest generowany przez klienta, gdy otrzymuje tymczasową odpowiedź zawierającą plik RSeq niezawodny numer kolejny i a supported:100rel nagłówek.

  • PRACK zawiera (RSeq + CSeq) wartość w pliku rack nagłówek.

  • Metoda PRACK ma zastosowanie do wszystkich tymczasowych odpowiedzi z wyjątkiem odpowiedzi 100 Trying, która nigdy nie jest niezawodnie przekazywana.

  • PRACK może zawierać treść wiadomości; może służyć do wymiany ofert / odpowiedzi.

WIADOMOŚĆ

Służy do wysyłania wiadomości błyskawicznych przy użyciu protokołu SIP. Komunikator składa się zwykle z krótkich wiadomości wymienianych w czasie rzeczywistym przez uczestników biorących udział w rozmowie tekstowej.

  • WIADOMOŚĆ można wysłać w oknie dialogowym lub poza nim.

  • Treść MESSAGE jest przenoszona w treści wiadomości jako plik MIME Załącznik.

  • ZA 200 OK zwykle otrzymywana jest odpowiedź wskazująca, że ​​wiadomość została dostarczona do miejsca przeznaczenia.