Differences

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

Link to this comparison view

eim:laboratoare:laborator09 [2017/05/04 23:33]
andrei.rosucojocaru
eim:laboratoare:laborator09 [2024/03/01 14:44] (current)
dragos.niculescu
Line 23: Line 23:
     - agentul intermediar     - 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);       - 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'';​+      - caută agentul utilizator destinație folosind un server ​de localizare ​ș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ă;     - 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ț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;
Line 62: Line 62:
 ===== Configurare ===== ===== Configurare =====
  
-<note important>​În cadrul acestui laborator este necesar un dispozitiv mobil fizic sau un emulator cu acces la microfonul sistemului de operare. De asemenea, pe dispozitivul mobil trebuie să fie instalat Google Play Services întrucât este necesară descărcarea și instalarea unei aplicații Android ([[https://play.google.com/store/apps/details?id=com.csipsimple&​hl=en|CSipSimple]]) pentru realizarea de apeluri telefonice folosind SIP & VoIP.</​note>​+<note important>​În cadrul acestui laborator este necesar un dispozitiv mobil fizic sau un emulator cu acces la microfonul sistemului de operare. De asemenea, pe dispozitivul mobil trebuie să fie instalat Google Play Services întrucât este necesară descărcarea și instalarea unei aplicații Android ([[https://github.com/eim-lab/util/blob/​master/​apk/​CSipSimple_v1.02.03.com.apk|CSipSimple]], sau Linphone din Playstore) pentru realizarea de apeluri telefonice folosind SIP & VoIP.</​note>​
  
 Se va utiliza, la alegere, un furnizor (gratuit) de servicii SIP, accesibil ulterior înregistrării (creării unui cont): Se va utiliza, la alegere, un furnizor (gratuit) de servicii SIP, accesibil ulterior înregistrării (creării unui cont):
-  * [[https://​www.onsip.com/|OnSIP]] - are avantajul implementării serviciului ​[[https://webrtc.org|WebRTC]] (proiect open-source - susținut de consorțiul World Wide Web (W3C) - ce pune la dispoziție un API pentru realizarea ​de apeluri ​de voce / multimedia, conversații și partajare ​de fișiere printr-o conexiune punct la punct între dispozitive mobile (IoT) și aplicații de tip navigator)dar dezavantajul limitării numărului de accesări într-o oră; +  * recomandare 1: [[https://​www.linphone.org/freesip/|Linphone]] 
-  * [[https://​www3.pbxes.com/​index_e.php|PBXes]]+  * recomandare 2: [[https://www1.pbxes.com/​index.php|PBXES]] 
 +  * sunt mulți alți provideri ​de SIP care oferă diverse servicii contra cost: numere ​de telefon stabile în diverse ​țări, SMS, cutii poștale vocale, rutarea apelurilor ​de la și căre PSTN prin SIPetc  
 +  * În această secțiune vă veti crea un cont, si veti obtine credențiale ​de acest tip  ​
  
-==== OnSIP ==== 
  
-Pentru obținerea unui cont SIP gratuit, folosind serviciul OnSIP, este necesar să se furnizeze o adresă de poștă electronică împreună cu o parolă care va fi utilizată ulterior pentru autentificarea în cadrul contului (în scopuri de administrare a acestuia), urmată de apăsarea butonului //Next//.+^ Phone Configuration ^ SIP account ^  
 +|Address of Record:​|eim-lab@sip.linphone.org | 
 +|SIP Password: | eim |  
 +|Username: |eim-lab | 
 +|Domain/Proxy:​|sip.linphone.org |
  
-{{ :​eim:​laboratoare:​laborator09:​onsip01new.png?​nolink&​500 }} 
  
-Ulterior vor trebui să se precizeze: 
-  * o serie de detalii cu privire la organizația pentru care se creează contul SIP (denumire, număr de angajați). 
  
-{{ :eim:laboratoare:laborator09:onsip02new.png?​nolink&​500 }}+^ Phone Configuration ^ SIP account ^  
 +|Address of Record:|dragosn-200@pbxes.org | 
 +|SIP Password| eim |  
 +|Username|dragosn-200 | 
 +|Domain/​Proxy:|pbxes.org |
  
-  * denumirea unui utilizator împreună cu numărul de telefon (sunt acceptate numai numere de telefon din Statele Unite ale Americii, în acest exemplu a fost utilizat chiar numărul de telefon de suport pentru OnSIP.com) 
  
-{{ :​eim:​laboratoare:​laborator09:​onsip03new.png?​nolink&​500 }} 
  
-Pe baza informațiilor furnizate până în acest punct, se va genera denumirea de domeniu precum și adresa SIP care va fi utilizată pentru apeluri multimedia și mesagerie instantanee folosind VoIP: 
  
-{{ :​eim:​laboratoare:​laborator09:​onsip04new.png?​nolink&​500 }} +==== OnSIP ==== 
- +Serviciul ​[[https://www.onsip.com/getonsip|OnSIP]] nu mai este ușor de folosit pentru ​conturi free din 2021 m
-În urma completării acestor informații,​ se va afișa următorul mesaj: +
- +
-{{ :​eim:​laboratoare:​laborator09:​onsip05new.png?​nolink }} +
- +
-La adresa de poștă furnizată va fi transmisă o legătură Internet, la accesarea căreia utilizatorul va fi redirectat către o pagină în care va putea finaliza procesul de înscriere, prin crearea unui număr de utilizatori asociați contului, pentru care se vor specifica:​ +
-  * un nume asociat contului respectiv;​ +
-  * adresa de poștă electronică;​ +
-  * extensia. +
- +
-{{ :​eim:​laboratoare:​laborator09:​onsip06new.png?​nolink&​500 }} +
- +
-{{ :​eim:​laboratoare:​laborator09:​onsip07new.png?​nolink&​500 }} +
- +
-Conturile care au fost create pentru fiecare dintre utilizatori vor trebui confirmate:​ +
- +
-{{ :​eim:​laboratoare:​laborator09:​onsip08new.png?​nolink&​500 }} +
- +
-În urma realizării cu succes a contului SIP gratuit, acesta va putea fi accesat pe pagina Internet ​[[http://admin.onsip.com|]], prin furnizarea denumirii contului și a parolei specificate anterior: +
- +
-{{ :​eim:​laboratoare:​laborator09:​onsip09new.png?​nolink }} +
- +
-Vor trebui acceptate termenii și condițiile pentru accesarea acestui serviciu SIP gratuit, inclusiv pentru serviciul găzduit E911 (separat):​ +
- +
-{{ :​eim:​laboratoare:​laborator09:​onsip10new.png?​nolink&​500 }} +
- +
-{{ :​eim:​laboratoare:​laborator09:​onsip11new.png?​nolink&​500 }} +
- +
-În secțiunea //​Dashboard//​ unde pot fi vizualizate statistici cu privire la numărul de înregistrări în rețea ale contului SIP, timpul petrecut în convorbiri multimedia VoIP, costurile suplimentare (pentru serviciile plătite), intervalele de timp în care traficul de date a fost cel mai intens. +
- +
-De asemenea, secțiunea //​Users// ​este foarte importantă,​ întrucât acolo sunt furnizate informațiile necesare pentru utilizarea contului SIP din contextul altor dispozitive,​ pentru fiecare cont de utilizator în parte: +
-  * URI-ul SIP (are forma ''<​nume_de_utilizator>​@<​domeniu>''​);​ +
-  * numele de utilizator;​ +
-  * domeniul; +
-  * parola SIP → **atenție!!! această valoare este autogenerată ​și este diferită ​de parola furnizată la înregistrare**;​ +
-  * numele de utilizator furnizat pentru autentificare → **atenție!!! valoarea acestui identificator este diferită de numele de utilizator furnizat la înregistrare (de regulă, acesta este același cu numele de domeniu)**;​ +
-  * proxy-ul ​folosit pentru ​conexiuni ​din afara domeniului ​(''​sip.onsip.com''​). +
- +
-{{ :​eim:​laboratoare:​laborator09:​onsip12new.png?​nolink&​800 }} +
- +
-==== PBXes ==== +
- +
-Pentru obținerea unui cont SIP gratuit, folosind serviciul PBXes, este necesar se accesează legătura Internet //Create Account//​. +
- +
-{{ :​eim:​laboratoare:​laborator09:​pbxes01new.png?​nolink }} +
- +
-Este necesar să se furnizeze mai multe informații,​ legate de: +
-  * limba folosită pentru afișarea interfeței grafice în cadrul paginii Internet; +
-  * contul propriu-zis (denumire - limitată la maximum 15 caractere!!! și parolă - nu sunt permise caracterele speciale);​ +
-  * date personale (nume / prenume, adresă - inclusiv oraș și cod poștal -, zona de timp, data nașterii, numărul de telefon, adresa de poștă electronică);​ +
-  * versiunea aplicației (''​stable''​);​ +
-  * permisiunea de a permite unor moderatori independenți de a inspecta datele de configurare și fișierele de jurnalizare spre a putea oferi suport. +
- +
-{{ :​eim:​laboratoare:​laborator09:​pbxes02new.png?​nolink }} +
- +
-Ulterior înregistrării cu succes, se furnizează adresa care poate fi folosită pentru accesarea serviciilor SIP și VoIP (de regulă, numele de utilizator furnizat în cadrul înregistrării,​ la care se adaugă ''​@pbxes.org''​). +
- +
-{{ :​eim:​laboratoare:​laborator09:​pbxes03new.png?​nolink }} +
- +
-Pentru utilizarea propriu-zisă a serviciului,​ este necesară **definirea unei extensii** (//​Extensions//​ → //Add Extension//​) de tipul SIP: +
- +
-{{ :​eim:​laboratoare:​laborator09:​pbxes04new.png?​nolink }} +
- +
-Este necesar să se furnizeze informații legate de: +
-  * extensia propriu-zisă (număr de extensie și denumire);​ +
-  * date pentru apelul prin Internet (URL, text, GPS - latitudine și longitudine și, opțional, o imagine); +
-  * parola specifică (va fi utilizată în locul parolei furnizată pentru cont). +
- +
-{{ :​eim:​laboratoare:​laborator09:​pbxes05new.png?​nolink }}+
  
 ==== Utilizare pe Dispozitivul Mobil ==== ==== Utilizare pe Dispozitivul Mobil ====
Line 306: Line 241:
 === Aplicația CSIPSimple === === Aplicația CSIPSimple ===
  
-În cazul în care în aplicația //Phone//, opțiunea //Internet Calling// / //SIP Accounts// nu este disponibilă,​ poate fi utilizată aplicația CSipSimple din Play Store. Ulterior descărcării,​ utilizatorului îi sunt solicitate acordarea de permisiuni pentru ca această aplicație să poată fi instalată.+În cazul în care în aplicația //Phone//, opțiunea //Internet Calling// / //SIP Accounts// nu este disponibilă,​ poate fi utilizată aplicația CSipSimple din <del>Play Store</​del>​[[https://​github.com/​eim-lab/​util/​blob/​master/​apk/​CSipSimple_v1.02.03.com.apk|github/​eim-lab]]. Ulterior descărcării,​ utilizatorului îi sunt solicitate acordarea de permisiuni pentru ca această aplicație să poată fi instalată.
  
 {{ :​eim:​laboratoare:​laborator09:​csipsimple01new.png?​nolink&​300 }} {{ :​eim:​laboratoare:​laborator09:​csipsimple01new.png?​nolink&​300 }}
Line 346: Line 281:
  
   * denumirea contului: ''​Pbxes.org''​   * denumirea contului: ''​Pbxes.org''​
-  * numele de utilizator (**se utilizează extensia**):​ ''​informatmob2017-100''​ +  * numele de utilizator (**se utilizează extensia**):​ ''​dragosn-200''​ 
-  * parola ​(**se utilizează extensia**);+  * parola: eim;
  
 {{ :​eim:​laboratoare:​laborator09:​csipsimple12new.png?​nolink&​300 }} {{ :​eim:​laboratoare:​laborator09:​csipsimple12new.png?​nolink&​300 }}
Line 368: Line 303:
  
 <​code>​ <​code>​
-student@eim2017:~$ git clone https://​github.com/​DoubangoTelecom/​imsdroid.git+student@eim-lab:~$ git clone https://​github.com/​DoubangoTelecom/​imsdroid.git
 </​code>​ </​code>​
  
Line 868: Line 803:
 **1.** În contul Github personal, să se creeze un depozit denumit '​Laborator09'​. Inițial, acesta trebuie să fie gol (nu trebuie să bifați nici adăugarea unui fișier ''​README.md'',​ nici a fișierului ''​.gitignore''​ sau a a fișierului ''​LICENSE''​). **1.** În contul Github personal, să se creeze un depozit denumit '​Laborator09'​. Inițial, acesta trebuie să fie gol (nu trebuie să bifați nici adăugarea unui fișier ''​README.md'',​ nici a fișierului ''​.gitignore''​ sau a a fișierului ''​LICENSE''​).
  
-**2.** Să se cloneze în directorul de pe discul local conținutul depozitului la distanță de la [[https://www.github.com/eim2017/​Laborator09|]]. ​+**2.** Să se cloneze în directorul de pe discul local conținutul depozitului la distanță de la [[https://​github.com/​eim-lab/​Laborator09|]]. ​
  
 În urma acestei operații, directorul Laborator09 va trebui să se conțină directorul ''​labtasks''​. ​ În urma acestei operații, directorul Laborator09 va trebui să se conțină directorul ''​labtasks''​. ​
  
 <​code>​ <​code>​
-student@eim2017:~$ git clone https://www.github.com/eim2017/​Laborator09.git+student@eim-lab:~$ git clone https://​github.com/​eim-lab/​Laborator09.git
 </​code>​ </​code>​
  
 **3.** Să se încarce conținutul descărcat în cadrul depozitului '​Laborator09'​ de pe contul Github personal. <​code>​ **3.** Să se încarce conținutul descărcat în cadrul depozitului '​Laborator09'​ de pe contul Github personal. <​code>​
-student@eim2017:~$ cd Laborator09 +student@eim-lab:~$ cd Laborator09 
-student@eim2017:​~/​Laborator09$ git remote add Laborator09_perfectstudent https://​github.com/​perfectstudent/​Laborator09 +student@eim-lab:​~/​Laborator09$ git remote add Laborator09_perfectstudent https://​github.com/​perfectstudent/​Laborator09 
-student@eim2017:​~/​Laborator09$ git push Laborator09_perfectstudent master+student@eim-lab:​~/​Laborator09$ git push Laborator09_perfectstudent master
 </​code>​ </​code>​
  
Line 890: Line 825:
   * numele de utilizator: atributul ''​USERNAME'';​   * numele de utilizator: atributul ''​USERNAME'';​
   * identificatorul utilizatorului:​ atributul ''​IDENTITY_IMPI'';​   * identificatorul utilizatorului:​ atributul ''​IDENTITY_IMPI'';​
-  * parola: atributul ''​IDENTITY_PASSWORD''​.+  * parola: atributul ''​IDENTITY_PASSWORD'';​ 
 +  * domeniul: atributul ''​DOMAIN'';​ 
 +  * rețeaua din care face parte entitatea: ''​NETWORK_REALM''​.
  
-Aceste informații pot fi preluate de la furnizorul de servicii SIP [[OnSip.com|]].+Aceste informații pot fi preluate de la furnizorul de servicii SIP [[http://​admin.onsip.com|]], secțiunea //Users//, pentru fiecare utilizator în parte, în caseta //Phone Configuration//​.
  
 <file java Constants.java>​ <file java Constants.java>​
Line 899: Line 836:
   final public static String IDENTITY_IMPI = "​...";​   final public static String IDENTITY_IMPI = "​...";​
   final public static String IDENTITY_PASSWORD = "​...";​   final public static String IDENTITY_PASSWORD = "​...";​
 +  final public static String DOMAIN = "​...";​
 +  final public static String NETWORK_REALM = "​...";​
   // ...   // ...
 } }
Line 1049: Line 988:
  
 <​code>​ <​code>​
-student@eim2017:/​opt/​android-sdk-linux/​platform-tools$ ./adb -s 192.168.56.101:​5555 shell+student@eim-lab:/​opt/​android-sdk-linux/​platform-tools$ ./adb -s 192.168.56.101:​5555 shell
 </​code>​ </​code>​
  
-În consola sistemului de operare Android, se folosește utilitarul [[http://​www.androidtcpdump.com/​download/4.7.4/​tcpdump|tcpdump]]: ​+În consola sistemului de operare Android, se folosește utilitarul ​''​tcpdump''​ pentru monitorizarea traficului de pachete.  
 + 
 +Binarele pentru acest utilitar, precompilate pentru sisteme de operare Android, folosind arhitecturi ARM, pot fi descărcate ​ de pe [[http://​www.androidtcpdump.com|Android TCP Dump]]. 
 + 
 +În situația în care este necesar ca acest utilitar să fie instalat pe alte arhitecturi (de exemplu, Genymotion folosește ''​x86''​),​ binarul acestuia poate fi obținut folosind utilitarul [[https://github.com/imrivera/​build-android-tcpdump|build-android-tcpdump]] ​care însă are nevoie de NDK precum și de alte programe (''​flex'',​ ''​bison''​). 
 + 
 +Transferul binarului ''​tcpdump''​ de pe mașina fizică pe dispozitivul mobil (rootat) sau pe emulator se face astfel:
  
 <​code>​ <​code>​
-root@android:/./tcpdump ​-s0 -ni eth1 -w /sdcard/DCIM/​sip.pcap '​udp'​+student@eim-lab:/android/​sdk/​platform-tools$ ​./adb -s 192.168.65.101:​5555 push tcpdump ​/data/bin
 </​code>​ </​code>​
  
Line 1064: Line 1009:
 </​code>​ </​code>​
 </​note>​ </​note>​
 +
 +Monitorizarea propriu-zisă a pachetelor UDP pe interfața de rețea ''​eth1''​ poate fi realizată prin intermediul următoarei comenzi:
 +
 +<​code>​
 +root@android:/#​ ./tcpdump -s0 -ni eth1 -w /​sdcard/​DCIM/​sip.pcap '​udp'​
 +</​code>​
 +
  
 Se pornește apelul audio și după ce se termină mesajul, se oprește. ​ Se pornește apelul audio și după ce se termină mesajul, se oprește. ​
Line 1072: Line 1024:
  
 <​code>​ <​code>​
-student@eim2017:/​opt/​android-sdk-linux/​platform-tools$ ./adb -s 192.168.56.3:5555 pull /​sdcard/​DCIM/​sip.pcap +student@eim-lab:/​opt/​android-sdk-linux/​platform-tools$ ./adb -s 192.168.56.101:5555 pull /​sdcard/​DCIM/​sip.pcap 
-student@eim2017:/​opt/​android-sdk-linux/​platform-tools$ wireshark sip.pcap+student@eim-lab:/​opt/​android-sdk-linux/​platform-tools$ wireshark sip.pcap
 </​code>​ </​code>​
  
Line 1183: Line 1135:
  
 **12.** ​ Să se încarce modificările realizate în cadrul depozitului '​Laborator09'​ de pe contul Github personal, folosind un mesaj sugestiv. <​code>​ **12.** ​ Să se încarce modificările realizate în cadrul depozitului '​Laborator09'​ de pe contul Github personal, folosind un mesaj sugestiv. <​code>​
-student@eim2017:​~/​Laborator09$ git add * +student@eim-lab:​~/​Laborator09$ git add * 
-student@eim2017:​~/​Laborator09$ git commit -m "​implemented taks for laboratory 08" +student@eim-lab:​~/​Laborator09$ git commit -m "​implemented taks for laboratory 08" 
-student@eim2017:​~/​Laborator09$ git push Laborator09_perfectstudent master+student@eim-lab:​~/​Laborator09$ git push Laborator09_perfectstudent master
 </​code>​ </​code>​
  
eim/laboratoare/laborator09.1493930018.txt.gz · Last modified: 2017/05/04 23:33 by andrei.rosucojocaru
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0