Benutzer-Werkzeuge

Webseiten-Werkzeuge


lager:oeff_netze:voip_mjsip

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Letzte ÜberarbeitungBeide Seiten der Revision
lager:oeff_netze:voip_mjsip [17.02.2015 17:19] richardlager:oeff_netze:voip_mjsip [13.06.2019 10:35] richard
Zeile 4: Zeile 4:
 ===== Überblick zur Übung ===== ===== Überblick zur Übung =====
  
-Der grundsätzliche Netzaufbau wird im folgenden Bild dargestellt. Es handelt sich um zwei Clients auch UA((UA: User Agent))genannt und einem Server auch SIP-Proxy oder kurz Proxy bezeichnet. +Der grundsätzliche Netzaufbau wird im folgenden Bild dargestellt. Es handelt sich um zwei Clients auch UA((UA: User Agent)) (hier als Softphone also als PC-Software) genannt und einem Server auch SIP-Proxy oder kurz Proxy bezeichnet. 
 {{ :lager:oeff_netze:bilder:w02-voip-laboraufbau.png | Laboraufbau}} {{ :lager:oeff_netze:bilder:w02-voip-laboraufbau.png | Laboraufbau}}
  
-Alle notwendigen Dateien wurden in einem Archive zusammengepackt und liegt hier zum {{:lager:oeff_netze:mjsip.tar.gz|DOWNLOAD}} bereit. +Im Ordner ''/home/keinpasswort/tools/mjsip/'' liegen alle notwendigen Scripte und Konfigurationsdateien.
-In den jeweiligen Ordnern ''proxy'' und ''ua'' befinden sich Start-Scripte (mit der Endung .sh) und Unterordner für die Konfiguration ''config''.+
  
-Das gesamte Paket ist so aufgebaut, dass sie auf einem PC laufen kann. Allerdings werden dann nur ''localhost'' IP-Adressen verwendet ((''localhost''-IP-Adressen aus dem Bereich 127.0.0.0/24)). Realistischer ist es allerdings die UAs und den Proxy auf jeweils unterschiedlichen PCs zu betreiben.+In den jeweiligen Ordnern ''proxy'' und ''ua'' befinden sich Start-Scripte (mit der Endung ''.sh'') und Unterordner für die Konfiguration ''config''
 + 
 +Das gesamte Paket ist so aufgebaut, dass sie auf einem PC laufen kann. Allerdings werden dann nur ''localhost'' IP-Adressen verwendet ((''localhost''-IP-Adressen aus dem Bereich ''127.0.0.0/24'')). Realistischer ist es allerdings die UAs und den Proxy auf jeweils unterschiedlichen PCs zu betreiben.
  
 ^ Netzelement ^ ''localhost''-Adresse ^ Port ^ ^ Netzelement ^ ''localhost''-Adresse ^ Port ^
Zeile 17: Zeile 18:
 | Bob | 127.0.0.1 | 5080  | | Bob | 127.0.0.1 | 5080  |
  
-HINWEIS: Der Standard-Port für SIP ist 5060. Die beiden Ports 5070 bzw. 5080 für die UAs werden verwendet, damit alle Netzelement lokal auf einem PC arbeiten können.+HINWEIS: Der Standard-Port für SIP ist ''5060''. Die beiden Ports ''5070'' bzw. ''5080'' für die UAs werden verwendet, damit alle Netzelement lokal auf einem PC arbeiten können.
  
 Die Kommunikation ist in zwei Phasen unterteilt. Die Kommunikation ist in zwei Phasen unterteilt.
Zeile 90: Zeile 91:
  
 ==== Wichtige Client-Dateien ==== ==== Wichtige Client-Dateien ====
-Der Proxy liegt im Unterordner ''proxy'' wird dort über die Datei ''proxy.sh'' gestartet. (ggf. muss noch per ''cd <ORDNER>'' ((cd: **c**hange **d**irectory)) gewechselt werden). ''proxy.sh'' ist bereits als ausführbar markiert((ausführbar machen durch: ''chmod +x <DATEINAME>'')).  +Der Client liegt im Unterordner ''ua'' wird dort über die Datei ''alice.sh'' bzw. ''bob.sh'' gestartet. (ggf. muss noch per ''cd <ORDNER>'' ((cd: **c**hange **d**irectory)) gewechselt werden). ''proxy.sh'' ist bereits als ausführbar markiert((ausführbar machen durch: ''chmod +x <DATEINAME>'')).  
-<code>./proxy.sh</code>+<code>./alice.sh</code> 
 +bzw.  
 +<code>./bob.sh</code>
  
-Im Unterordner ''config'' befinden sich die KonfigurationsdateienDer Proxy-Server selbst wird in der Datei ''server.cfg'' konfiguriert. Die User können in ''aaa.db'' bzw. ''user.db'' angelegt werden.+Will man eine eigene Konfigurationsdatei (hier: ''myconfig.cfg'' der Pfad muss relativ angegeben werden)verwenden, so kann dies über diesen Aufruf geschehen: 
 +<code>uaw.sh -f myconfig.cfg</code>
  
 +Im Unterordner ''config'' befinden sich die Konfigurationsdateien. Es existieren zwei Beispiel-Konfigurationen für ''Alice'' und ''Bob'' in den Dateien ''alice.cfg'' bzw. ''bob.cfg''.
 +
 +Die folgende Tabelle enthält alle wichtigen Dateien und die jeweilige Aufgabe.
 ^ Datei ^ Aufgabe ^ ^ Datei ^ Aufgabe ^
 | ''alice.sh'' | Startscript für den ''Alice''-UA verweist auf die ''config/alice.cfg'' | | ''alice.sh'' | Startscript für den ''Alice''-UA verweist auf die ''config/alice.cfg'' |
Zeile 103: Zeile 110:
  
 ==== Konfiguration der UAs ==== ==== Konfiguration der UAs ====
 +Die Konfigurationsdateien sind so vorbereitet, dass sich die Clients ''Alice'' und ''Bob'' (auf einem PC) gegenseitig über den Proxy anrufen können. Diese Konfigurationen können als Ausgangspunkt für eigene Konfigurationen dienen, bei denen z.B. alle Netzelemente auf unterschiedlichen PC laufen.
 +HINWEIS: Vor allem die IP-Adressen als Domänen sind hier anzupassen.
 +
 Die Datei ''config/mjsip.cfg.txt'' enthält eine ausführliche Beschreibung der einzelnen Parameter. Die Datei ''config/mjsip.cfg.txt'' enthält eine ausführliche Beschreibung der einzelnen Parameter.
-Vertiefender Hinweis: Auf der ''mjsip''-Homepage findet man unter dem Menüpunkt ''Dokumentation'' ein Tutorial-PDF, in dem einige Zustandsdiagramme gezeigt werden. 
  
-Hier die wichtigsten Parameter für die UAs ''alice.cfg'' bzw. ''bob.cfg'' und deren Bedeutung:+Hier die wichtigsten Parameter für die UAs ''config/alice.cfg'' bzw. ''config/bob.cfg'' und deren Bedeutung:
  
 ^Parameter ^Bedeutung ^Beispiel ^ ^Parameter ^Bedeutung ^Beispiel ^
Zeile 126: Zeile 135:
 | ''debug_level'' | Es werden zusätzliche Inforamtionen gespeichert; 0 bedeutet deaktiviert; je höher, umso mehr Informationen werden gespeichert | ''debug_level=3'' | | ''debug_level'' | Es werden zusätzliche Inforamtionen gespeichert; 0 bedeutet deaktiviert; je höher, umso mehr Informationen werden gespeichert | ''debug_level=3'' |
 | ''log_path'' | Pfad für die ''log''-Dateien | ''log_path=log'' | | ''log_path'' | Pfad für die ''log''-Dateien | ''log_path=log'' |
 +Vertiefender Hinweis: Auf der ''mjsip''-Homepage findet man unter dem Menüpunkt ''Dokumentation'' ein Tutorial-PDF, in dem einige Zustandsdiagramme gezeigt werden.
  
 +==== Audio- / Videokonfiguration ====
 Die Audio- bzw. Video-Übertragung wird mit den folgenden Parametern eingestellt. Geregelt ist die im [[https://tools.ietf.org/html/rfc4566 | RFC 4566]] im sogenannten ''SDP'' ((SDP: Session Description Protocol)) eine Unterprotokoll für SIP.  Die Audio- bzw. Video-Übertragung wird mit den folgenden Parametern eingestellt. Geregelt ist die im [[https://tools.ietf.org/html/rfc4566 | RFC 4566]] im sogenannten ''SDP'' ((SDP: Session Description Protocol)) eine Unterprotokoll für SIP. 
 Innerhalb des ''SDP'' werden die Parameter für das RTP ((RTP: **R**eal-Time **T**ransport-**P**rotocol)) festgelegt. Eine Liste mit möglichen Codecs findet sich [[http://de.wikipedia.org/wiki/Real-Time_Transport_Protocol| hier (deutsch)]] und [[http://en.wikipedia.org/wiki/RTP_audio_video_profile| hier (englisch)]] Innerhalb des ''SDP'' werden die Parameter für das RTP ((RTP: **R**eal-Time **T**ransport-**P**rotocol)) festgelegt. Eine Liste mit möglichen Codecs findet sich [[http://de.wikipedia.org/wiki/Real-Time_Transport_Protocol| hier (deutsch)]] und [[http://en.wikipedia.org/wiki/RTP_audio_video_profile| hier (englisch)]]
Zeile 157: Zeile 167:
 Der Codec ''PCMA'' steht für **P**ulse **C**ode **M**odulation nach dem sogenannten **a**-Law. Es gibt noch die **µ**-Law-Variante. Der Codec ''PCMA'' steht für **P**ulse **C**ode **M**odulation nach dem sogenannten **a**-Law. Es gibt noch die **µ**-Law-Variante.
  
 +===== Aufgaben =====
  
-===== Linphone-Client =====+Protokollieren Sie den folgende Vorgänge mit: 
 + 
 +  - Anmeldung der Benutzer (einmal korrekt, einmal mit falschem Passwort, einmal mit falschem Benutzernamen) 
 +  - Verbindungsaufbau (einmal zu korrektem Ziel, einem zu nicht existierendem Ziel) 
 +  - Wiederanmeldung (Reregister) der Benutzer 
 + 
 +Zusatzaufgabe (optional): Leiten Sie die Registrierung und Verbindungsauf-/abbau über zwei Proxys. 
 + 
 +Achten Sie insbesondere auf die Statusmeldungen. 
 + 
 +Arbeiten Sie zunächst auf einem Rechner (Alice, Bob und Proxy). 
 + 
 +Verwenden Sie anschließend pro Netzelement EINEN Rechner (also alle getrennt). Planen Sie Ihre IP-Adressen und passen Sie die jeweiligen Konfigurationsdateien an. 
 + 
 +===== Proxy-to-Proxy Signalisierung ===== 
 + 
 +Die folgende Konfiguration kann für die Verbindung von zwei Domainen auf zwei unterschiedlichen Proxies verwendet werden. 
 + 
 +<code> 
 +domain_names=example.com example.net 192.168.33.119 
 +... 
 +domain_proxying_rules={domain=192.168.33.116,nexthop=192.168.33.116:5060} 
 +</code> 
 +Dabei ist ''192.168.33.116'' die "fremde" Domain und ''192.168.33.119'' die eigene Domain (s. ''domain_names''). 
 +ACHTUNG: Der Parameter ''outbound_proxy'' darf für die Proxies nicht verwendet werden (LOOP-Bildung). 
 +Auf den Clients kann der ''outbound_proxy'' als Default-Gateway interpretiert werden. Sprich alle Calls außerhalb der eigenen Domain (''192.168.33.119'') gehen an diesen Proxy (i.d.R. der eigene Proxy). 
 + 
 +===== Alternative Clients ===== 
 +==== Linphone-Client ====
 Die Konfiguration des Clients ist [[lager:oeff_netze:voip#sip-client_softphone_linphone|hier]] beschrieben.  Die Konfiguration des Clients ist [[lager:oeff_netze:voip#sip-client_softphone_linphone|hier]] beschrieben. 
 +
 +
 +==== YATE-Client ====
 +Derzeit ist der Client nicht auf den Labor-PCs installiert. Es wird demnach eine VM benötigt.
 Als Alternative zu diesem Client kann der ''yate-qt4''((yate: yet another telephone engine)) Client verwendet werden. Als Alternative zu diesem Client kann der ''yate-qt4''((yate: yet another telephone engine)) Client verwendet werden.
 <code>sudo apt-get install yate-qt4</code> <code>sudo apt-get install yate-qt4</code>
-Der Client wird im Untermenü ''Internet'' einsortiert.+ 
 +Der ''YATE''-Client wird im Untermenü ''Internet'' einsortiert.
  
 Die Software ist [[http://yateclient.yate.ro/|hier]] beschrieben.  Die Software ist [[http://yateclient.yate.ro/|hier]] beschrieben. 
Zeile 193: Zeile 237:
 Die dort abgelegte Version 1.7 enthält in den Start-Scripten kleinere Fehler, daher wird hier ein Paket bereitgestellt, welches diese Fehler nicht enthält und etwas anders aufgebaut ist. Die dort abgelegte Version 1.7 enthält in den Start-Scripten kleinere Fehler, daher wird hier ein Paket bereitgestellt, welches diese Fehler nicht enthält und etwas anders aufgebaut ist.
  
-==== Download des Proxy ==== +==== Korrekturen für die Start-Scripte ==== 
-Dort kann er auch [[http://www.mjsip.org/download/mjproxy_1.7.zip| als mjproxy heruntergeladen]] werden.+ 
 +Hier die Download-Links, der Original-Software: 
 +^ Netzelement ^ Download ^ 
 +| UA / Client | [[http://www.mjsip.org/download/mjua_1.7.zip| DOWNLOAD]] 
 +| Proxy | [[http://www.mjsip.org/download/mjproxy_1.7.zip| DOWNLOAD]] | 
 Weitere Informationen finden sich auf der Homepage der Entwickler. Weitere Informationen finden sich auf der Homepage der Entwickler.
  
-In der ZIP-Datei befindet sich das Start-Skript ''proxy.sh''. Unglücklicherweise haben die Entwickler als Zeilenende die DOS/Windows Variante ''^M''  verwendet. Das Skript funktioniert daher nicht direkt.+In den ZIP-Datei befinden sich mehrere Start-Skripte z.B. ''proxy.sh'' und ''uaw.sh''. Unglücklicherweise haben die Entwickler als Zeilenende die DOS/Windows Variante ''^M''((''^M'' steht für STRG-M)) verwendet. Das Skript funktioniert daher nicht direkt.
  
 Durch öffnen und wieder speichern im richtigen Format kann dieses Problem gelöst werden. Hierzu öffnet man die ausgepackte Datei mit ''gedit''. Der ''Speichern unter''-Dialog enthält die Möglichkeit das Zeilenende von ''Windows'' auf ''Unix/Linux'' umzustellen: Durch öffnen und wieder speichern im richtigen Format kann dieses Problem gelöst werden. Hierzu öffnet man die ausgepackte Datei mit ''gedit''. Der ''Speichern unter''-Dialog enthält die Möglichkeit das Zeilenende von ''Windows'' auf ''Unix/Linux'' umzustellen:
 {{ :lager:oeff_netze:bilder:voip_mjproxy_save.png?600 | Zeilenende korrigieren}} {{ :lager:oeff_netze:bilder:voip_mjproxy_save.png?600 | Zeilenende korrigieren}}
 +
 +Alle notwendigen Dateien wurden korrigiert und in dem folgenden Archive zusammengepackt und liegt hier zum 
 +
 +**{{:lager:oeff_netze:mjsip.tar.gz|DOWNLOAD}}** bereit.
 +
lager/oeff_netze/voip_mjsip.txt · Zuletzt geändert: 05.09.2019 11:06 von richard

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki