Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
laboratoare:laborator09 [2016/05/06 08:50]
Andrei Roșu-Cojocaru
laboratoare:laborator09 [2016/05/06 09:55] (current)
Andrei Roșu-Cojocaru
Line 17: Line 17:
   * **serverul de redirectare** (//eng.// redirect server) verifică baza de date cu locații, transmițând un răspuns către agentul utilizator;   * **serverul de redirectare** (//eng.// redirect server) verifică baza de date cu locații, transmițând un răspuns către agentul utilizator;
   * **serverul de localizare** (//eng.// location server) oferă informații cu privire la plasarea posibilă a agentului utilizator către serverele intermediare sau serverele de redirectare (doar acestea îl pot accesa)   * **serverul de localizare** (//eng.// location server) oferă informații cu privire la plasarea posibilă a agentului utilizator către serverele intermediare sau serverele de redirectare (doar acestea îl pot accesa)
 +
 +Un **flux operațional** standard al unei sesiuni SIP implică următoarele operații:
 +  - tranzacția 1:
 +    - un agent utilizator (sursă) trimite o cerere de tip ''​INVITE''​ către un agent intermediar în scopul de a contacta un alt agent utilizator (destinație);​
 +    - agentul intermediar
 +      - trimite înapoi (imediat) un răspuns de tip ''​100 Trying''​ către agentul utilizator sursă (pentru ca acesta să nu mai transmită nimic);
 +      - caută agentul utilizator destinație folosind un server locație și îi trimite (mai departe) cererea de tip ''​INVITE'';​
 +    - agentul utilizator destinație transmite, prin intermediul agentului intermediar,​ un răspuns de tipul ''​180 Ringing'',​ către agentul utilizator sursă;
 +  - tranzacția 2: în momentul în care agentul utilizator destinație este contactat, acesta transmite, tot prin intermediul agentului intermediar,​ un răspuns de tipul ''​200 OK'',​ către agentul utilizator sursă și, din acest moment, **conexiunea este realizată**,​ transmițându-se pachete RTP în ambele sensuri;
 +  - tranzacțoa 3: orice participant poate transmite un mesaj de tipul ''​200 BYE''​ pentru a termina legătura, fiind necesar ca acesta să fie confirmat prin ''​200 OK''​ de către cealaltă parte.
 +
 +Se observă faptul că o sesiune de comunicare este împărțită în mai multe **tranzacții** care împreună alcătuiesc un **dialog**.
 +
 +**Mesajele** în protocolul SIP sunt de două tipuri:
 +  * **cereri** au forma ''<​METODĂ>​ <​URI>''​ unde metodele pot fi:
 +    * de bază
 +      * ''​INVITE''​ reprezintă o cerere pentru deschiderea unei sesiuni cu un agent utilizator, putând conține informații de tip multimedia în corpul său; aceasta este considerată că a fost îndeplinită cu succes dacă s-a primit un cod de răspuns de tipul ''​2xx''​ sau s-a transmis un ''​ACK'';​ un dialog stabilit între doi agenți utilizatori continuă până în momentul în care se transmite un mesaj de tipul ''​BYE'';​
 +      * ''​BYE''​ este metoda folosită pentru a închide o sesiune cu un agent utilizator, putând fi trimisă de oricare dintre entitățile din canalul de comunicație,​ fără a trece prin serverul de înregistrare;​
 +      * ''​REGISTER''​ indică o cerere de înregistrare a unui agent utilizator către un server de înregistrare;​ un astfel de mesaj este transmis mai departe până ajunge la o entitate care deține autoritatea de a realiza această operație; o înregistrare poate fi realizată de un agent utilizator în numele altui agent utilizator (//eng.// third party registration);​
 +      * ''​CANCEL''​ este operația folosită pentru a închide o sesiune care nu a fost încă deschisă, putând fi transmisă fie de către un agent utilizator fie de către un agent intermediar;​
 +      * ''​ACK''​ este folosit pentru a confirma o cerere de tip ''​INVITE'';​
 +      * ''​OPTIONS''​ este utilizat pentru a interoga un agent utilizator sau un server intermediar despre capabilitățile sale și pentru a determina disponibilitatea sa, rezultatul fiind o listă a funcționalităților entitpții respective;
 +    * extensii: ''​SUBSCRIBE'',​ ''​NOTIFY'',​ ''​REFER'',​ ''​INFO'',​ ''​UPDATE'',​ ''​PRACK'',​ ''​MESSAGE'';​
 +  * **răspunsuri** reprezintă un mesaj generat de un agent utilizator de tip server sau de un server SIP în replică la o cerere provenită de la un agent utilizator de tip client; acesta poate reprezenta inclusiv o confirmare formală pentru a preveni retransmisiile;​ există mai multe tipuri de coduri de răspuns:
 +
 +^ CLASA ^ TIP ^ DESCRIERE ^ ACȚIUNE ^
 +| 1xx | Provizoriu | Informație | Se precizează starea unui apel înainte ca un rezultat să fie disponibil. |
 +| 2xx | Definitiv | Succes | Cererea a fost procesată cu succes. Pentru cereri de tip ''​INVITE''​ se întoarce ''​ACK''​. Pentru alte tipuri cereri, se oprește retransmiterea acestora. |
 +| 3xx |  ::: | Redirectare | Se indică faptul că au fost furnizate mai multe locații posibile astfel încât ar trebui interogat un alt server pentru a se putea obține informația necesară. |
 +| 4xx |  ::: | Eroare la Client | Cererea nu a fost procesată cu succes datorită unei erori la client, fiind necesar ca aceasta să fie reformulată. |
 +| 5xx |  ::: | Eroare la Server | Cererea nu a fost procesată cu succes datorită unei erori la server, putând fi retransmisă către o altă entitate. |
 +| 6xx |  ::: | Eroare Globală | Cererea a eșuat și nu există nici o șansă de a fi procesată corect pe o altă entitate, nici măcar dacă este reformulată. |
 +
 +Exemple:
 +  * ''​100 Trying'',​ ''​180 Ringing'',​ ''​181 Call is Being Forwarded'',​ ''​182 Call Queue'',​ ''​183 Session Progress'';​
 +  * ''​200 OK'',​ ''​202 Accepted'';​
 +  * ''​300 Multiple Choices'',​ ''​301 Moved Permanently'',​ ''​302 Moved Temporarily'',​ ''​305 Use Proxy'',​ ''​380 Alternative Service'';​
 +  * ''​400 Bad Request'',​ ''​401 Unauthorized'',​ ''​403 Forbidden'',​ ''​404 Not Found'',​ ''​405 Method Not Allowed'',​ ''​406 Not Acceptable'',​ ''​407 Proxy Authentication Required'',​ ''​408 Request Timeout'',​ ''​422 Session Timer Interval Too Small'',​ ''​423 Interval Too Brief'',​ ''​480 Temporarily Unavailable'',​ ''​481 Dialog/​Transaction Does Not Exist'',​ ''​483 Too Many Hops'',​ ''​486 Busy Here'',​ ''​487 Request Terminated'';​
 +  * ''​500 Server Internal Error'',​ ''​501 Not Implemented'',​ ''​502 Bad Gateway'',​ ''​503 Service Unavailable'',​ ''​504 Gateway Timeout'',​ ''​505 Version Not Supported'',​ ''​513 Message Too Large'',​ ''​580 Preconditions Failure'';​
 +  * ''​600 Busy Everywhere'',​ ''​603 Decline'',​ ''​604 Does Not Exist Anywhere'',​ ''​606 Not Acceptable''​.
  
 ===== Configurare ===== ===== Configurare =====
laboratoare/laborator09.txt · Last modified: 2016/05/06 09:55 by Andrei Roșu-Cojocaru
CC Attribution-Share Alike 3.0 Unported
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0