jre: java runtime enviromentDies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
Laborübung zu VoIP mit mjsip
Für die Übung zu VoIP wird der SIP-Proxy mjsip als vermittelndes Element eingesetzt. Im folgenden ist ein kurzes Howto inklusive einer Beispielkonfiguration, die an die eigenen Bedürfnisse anzupassen ist.
Vorbereitung
Der mjsip-Proxy basiert auf java, daher wird eine Runtime-Umgebung für Java benötigt. Mit dem folgenden Befehl lässt sich überprüfen, welche java-Version installiert ist:
java -version
Mögliche Ausgabe:
Java(TM) SE Runtime Environment (build 1.7.0_65-b17) Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)
Sollte keine java-Runtime-Umgebung1) installiert sein, kann sie mit dem folgenden Befehl installiert werden.
sudo apt-get install openjdk-7-jre
HINWEIS: Im Netzwerklabor ist eine geeignete java-Version bereits installiert.
mjsip SIP-Proxy
Download des Proxy
Der Proxy selbst wird unter www.mjsip.org beschrieben. Dort kann er auch als mjproxy heruntergeladen werden. 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.
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:
Alternativ kann die Orginal-Datei durch die Folgende ersetzt werden:
- proxy.sh
#!/bin/sh echo : echo : echo : ----------------------- SIP-Proxy ----------------------- echo : java -classpath lib/sip.jar:lib/server.jar local.server.Proxy -f config/server.cfg $1 $2 $3 $4 $5 $6 $7 $8 $9
Wie immer bei Skripten muss die Datei nach dem herunterladen durch das setzen des eXecute-Bits noch ausführbar gemacht werden.
chmod +x proxy.sh
Im Unterordner config befinden sich die Konfigurationsdateien. Der Proxy-Server selbst wird in der Datei server.cfg konfiguriert. Die User können in aaa.db bzw. user.db angelegt werden.
Die im zip-Archive enthaltene 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 server.cfg und deren Bedeutung:
| Parameter | Bedeutung | Beispiel |
|---|---|---|
default_port | 5060 ist der Standard Port (s. RFC 3261) für SIP | default_port=5060 |
host_port | host_port ist der lokal genutzt Port | host_port=5060 |
default_transport_protocols | Protokoll auf Schicht 4; also TCP bzw. UDP; es können auch beide genutzt werden | transport_protocols=udp |
call_log | Aktiviert das Speichern von Signalisierungsinformationen | call_log=yes |
domain_names | Domains bzw. IP-Adressen, die der Proxy nutzen soll | domain_names=example.com example.net 127.0.0.2 |
is_registrar | Steuert, ob der Proxy auch als Registrar fungiert | is_registrar=yes |
register_new_users | Steuert, ob der Proxy neue User (nicht konfiguriert) akzeptiert | register_new_users=yes |
is_open_proxy | Steuert, ob der Proxy nur lokale User verwaltet (no) oder Anfragen auch weiterleiten kann (yes) | is_open_proxy=yes |
location_service | Hier kann der Lokationsdienst konfiguriert werden; local meint damit die eigenen Config-Dateien; Alternativ kann auch ldap, radius oder mysql verwendet werden | location_service=local |
location_db | Datenbank für den Lokationsdienst; s. location_service | location_db=config/users.db |
do_authentication | Soll authentifiziert werden (Benutzername/Passwort-Abfrage) oder nicht | do_authentication=no |
authentication_realm | Domain/IP-Adresse, für die die Authentifikation aktiviert wird. | authentication_realm=127.0.0.2 |
authentication_db | Datenbank für die Benutzernamen/Passwörter | authentication_db=config/aaa.db |
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 |
Die User werden in der Datei aaa.db (s. Parameter authentication_db) eingerichtet. Die Syntax sieht wie folgt aus:
user= 100@DOMAIN
passwd= 1234
Hier wird ein User mit dem Account-Namen 100@DOMAIN und dem Passwort 1234 angelegt. Als DOMAIN kann beispielsweise die IP-Adresse des Servers genutzt werden. In realen Systemen, bei denen DNS eingesetzt wird steht hier die entsprechende Domain (z.B. @testdomain.de).
Logging des mjsip-Servers
Mit den folgenden Parametern lässt sich die Protokollierung der Verbindungen sowie der Anmeldungen konfigurieren.
call_log=yes # Sollen auch die Verbindungen gespeichert werden? debug_level=6 # Wieviele Informationen sollen gespeichert werden? log_path=log # Wohin sollen die Logfiles gespeichert werden? Unterordner relativ zum Startpunkt des Servers
Weitere Betriebsarten des mjsip-Servers
Zusätzlich gibt es noch die Möglichkeit einen Session-Border-Controller2) zu starten. Die Konfigurationsdatei ist sbc.cfg.
In der Datei mjsip.cfg.txt sind alle verfügbaren Parameter in Bereich unterteilt und ausführlich beschrieben.
Der Client
Die Konfiguration des Clients ist hier beschrieben.
Als Alternative zu diesem Client kann der yate-qt43) Client verwendet werden.
sudo apt-get install yate-qt4
Der Client wird im Untermenü Internet einsortiert.
Die Software ist hier beschrieben.
Hier ein Beispiel-Dialog für den User mit der ID 200 auf dem Server mit der IP-Adresse 192.168.0.197.



Ergänzungen