#summary|Voice and video calls with Psi/Psi+ (de) #labels Phase-Deploy,Featured

= Einführung =

Worum geht es hier?

Dies ist eine Implementierung von XEP-0167. In anderen Worten, es ist ein XMPP Erweiterungs-Protokoll, welches beschreibt, wie XMPP Clients Audio- und Video-Datenströme übertragen können und diese Seite behandelt die Implementierung in Psi.

Zusammen mit XEP-0167 werden einige andere Technologien eingesetzt. Eine davon ist das Multimedia-Backend GStreamer, eine weitere ist die ICE Transport-Schicht, beschrieben in XEP-0176.

GStreamer wird für eines der leistungsfähigsten verfügbaren Multimedia Systeme gehalten. Es kann einfach erweitert werden und wird von vielen freien Entwicklern genutzt. (Es wird von fast allen Multimedia-Anwendungen unter Gnome benutzt, unter KDE kann es zusammen mit Phonon eingesetzt werden.)

ICE (in diesem Fall insbesondere Jingle ICE-UDP) beschreibt den Prozess des Verbindungsaufbaues zwischen den Clients, welche Ports benutzt werden, usw. (Einzelheiten stehen in den Spezifikationen).

Betreffend die Ports zur Datenübermittlung, werden standardmäßig UDP Port 8010 und einige Ports oberhalb dessen verwendet. IEC im Allgemeinen erlaubt allerdings jeden Port zu benutzen.

Die Projektseite ist hier. Sie können von dort vorkompilierte psmedia für verschiedene Betriebssystem herunterladen.

Kompatibilität mit verschiedenen Betriebssystemen
Bauen auf `*`nix Systemen

Psimedia wird zusammen mit GStreamer benutzt, um die Mediendatenströme zu enkodieren bzw. dekodieren. Andere Systeme werden nicht mehr unterstützt und nicht mehr gepflegt.

Anforderungen zum Bauen

*WICHTIG:* Für die fett gedruckten Pakete benötigen Sie auch die Kopfzeilen-Dateien. Die meisten Distributionen liefern diese in extra -dev Paketen.

Eigentlich ist offiziell nur glib 2.19.x notwendig, es ist aber unklar, welche Version Psimedia wirklich benötigt. Plug-ins: speex, v4l, v4l2, theora, ogg, alsa, jpeg.

Bau-Prozess

Ein einfaches Skript zum Bauen nachdem alle benötigten Pakete installiert sind, findet man hier.

Vor dem bauen müssen Sie den Installationspfad für Psi festlegen. Falls bei der Konfiguration (configure) von Psi kein Präfix (–prefix) angegeben wurde, wurde Psi in /usr/local installiert und der Pfad zu dem Plugin wird zu /usr/local/lib/psi/plugins. Vielfach ist der Pfad auch /usr, in diesem Falle muss das Plugin in /usr/lib/psi/plugins installiert werden. Bitte beachten Sie dies, wenn sie den unten stehenden Anleitungen folgen.

svn co https://delta.affinix.com/svn/trunk/psimedia
cd psimedia
qconf
./configure
make
mkdir -p /usr/local/lib/psi/plugins/
cp gstprovider/libgstprovider.so /usr/local/lib/psi/plugins/

Wenn der Bau-Prozess mit dem folgenden Fehler abbricht:

cc1: warnings being treated as errors

könne Sie folgendes versuchen:

sed 's/ -Werror//' -i gstprovider/gstelements/static/static.pro

es sollte allerdings ohne dieses funktionieren :-)

Testen

Zum testen nach dem Bauen starten Sie demo/demo. In dem Demo-Programm, kopieren Sie die Zeile mit dem Codec in den Rahmen unten, um dort das selbe Bild zu erhalten.

Verbinden über IPv4 mittels STUN

Wenn Sie sich hinter einem Router mit Network Address Translation (NAT) befinden, müssen sie auch noch einen STUN Server angeben. Dies geschieht auf dem letzten Reiter der Kontoeinstellungen. Sie können stun.ekiga.net verwenden (wenn es nicht läuft, müssen Sie Ihre externe IP-Adresse von Hand eingeben), Port 3478. Überprüfen Sie auch Ihre Telefonie- Einstellungen in den Psi Voreinstellungen.

_UPD_: *jabber.ru* betreibt jetzt auch einen STUN Server: *stun.jabber.ru* Port: *5249*. <br><br> {{psiplus_account_props.png<br>

= Fehlersuche bei der Telefonie mit Psi/Psi+ =

Zuallererst: Installieren Sie die neueste Version von Psi/Psi+

Psi 0.14 hat mehrere bekannte Probleme im Zusammenhang mit Telefonie. Um Telefonie stabil zum Laufen zu bringen, ist es unabdingbar, eine aktuelle Version von Psi/Psi+ zu verwenden.

Zweiter Schritt: Stellen Sie sicher, dass Ihr System über IPv6 erreichbar ist

Viel Systeme können nicht über IPv6 erreicht werden so dass eine direkte Verbindung nicht möglich ist. Die einfachste Lösung dieses Problems ist, IPv6-Unterstützung einzuschalten. Selbst wenn Ihr Internet Service Provider keine IPv6-Anschlussfähigkeit anbietet, können Sie IPv6-Unterstützung über Tunnel erhalten. Wenn Sie diese Website aufrufen können, arbeitet IPv6 richtig und Sie können zum nächsten Schritt übergehen.Schauen Sie die unten stehenden Anleitungen an, um IPv6-Anschlussfähigkeit zu bekommen.

Einschalten der IPv6 Verbindungsmöglichkeit

Auf älteren Systemen, wie MS Windows XP, ist die IPv6-Anschlussfähigkeit standardmäßig nicht aktiviert. Das folgende Kommando aktiviert die IPv6-Anschlussfähigkeit unter MS Windows XP:O

netsh interface ipv6 install

Wenn Ihr Internet Service Provider IPv6-Anschlussfähigkeit anbietet, sollten Sie schon die Testseite aufrufen können. Andernfalls schauen Sie weiter unten nach.

Aufsetzen eines IPv6-Tunnels mittels [[http://en.wikipedia.org/wiki/Teredo_tunneling|Teredo]]

Wenn Ihr Internet Service Provider keine IPv6-Anschlussfähigkeit anbietet, können Sie einen Tunnel über IPv4 aufsetzen. Unter MS Windows XP geht das mit dem folgenden Kommando:

netsh interface ipv6 set teredo client

Unter Debian und Ubuntu kann ein Tunnel wie folgt eingerichtet werden:

apt-get install miredo

oder wenn Sie nicht root sind:

sudo apt-get install miredo

Andere GNU/Linux Distributionen sollten auch ein miredo Paket in ihren Repositories haben.

Versuchen Sie erneut die Testseite aufzurufen.

Aufsetzen eines IPv6-Tunnels mittels Freenet6

Wenn Teredo nicht funktioniert, können Sie auch Freenet6 nutzen, um einen IPv6 Tunnel einzurichten. Laden Sie für MS Windows eines der folgenden herunter:

Installieren Sie es und lassen Sie der Client eine Verbindung aufbauen. Dies sollte Ihnen IPv6-Anschlussfähigkeit bescheren. Versuchen Sie erneut die Testseite aufzurufen.

Es gibt auch ein gw6c in Debian und Ubuntu.

Wenn beide Seiten die Testseite aufzurufen können, sollte es immer möglich sein, miteinander zu telefonieren. Wenn es nicht geht, überprüfen Sie Ihre Firewall-Einstellungen.

Letzter Schritt: Lautsprecher und Mikrofon testen

Testen Sie Ihre Lautsprecher und Ihr Mikrofon. Unter GNU/Linux mit ALSA kann mit diesem Befehl ein einfacher Test durchgeführt werden:

arecord | aplay

Unter MS Windows kann der Audiorekorder verwendet werden, um sicherzustellen, dass das Mikrofon richtig funktioniert.

Für Tests mit Psi/Psi+ probieren Sie den (Collabora) Echotest von dieser Seite. Bitte beachten Sie, das diese Tests noch kein IPv6 unterstützen.

= Oft gestellte Fragen =

Warum sollte ich IPv6 benutzen?

Es gibt mehrere Möglichkeiten, IPv4 Verbindungen in jeder Situation vollständig zum Laufen zu bekommen. Eine Option ist es, einen STUN Server wie im vorigen Abschnitt beschrieben aufzusetzen. Diese Ansätze tendieren allerdings deutlich zerbrechlicher zu sein. Der Autor dieses Textes empfiehlt nachdrücklich beiden Parteien, die Anrufe zwischen zwei Psi Instanzen tätigen möchten, IPv6 einzuschalten. Bislang wurde damit ein 100%iger Erfolg erzielt.

Warum kann ich kein Nokia N900 anrufen? Warum unterstützt Psi/Psi+ nur Speex?

Zur Zeit ist es nicht möglich, einen N900 Nutzer anzurufen. Im Diensterkennungsfenster sehen Sie möglicherweise den Fehler „codec mismatch“. Das N900 bietet derzeit die folgenden Audio-Codecs:

Psi+ unterstützt nur:

Da es kein gemeinsames Codec gibt, müssen direkte Anrufe fehlschlagen. Natürlich können sich beide Telefone bei einem Asterisk einwählen und sollte in der Lage sein, an einem Konferenzgespräch teilzunehmen, wobei Asterisk die Umcodierung übernimmt.

Der Grund, weshalb Psimedia nur diese Codecs unterstützt ist, dass es zur Zeit keinerlei Codec-Aushandlung beherrscht. In Zukunft wird eine Codec-Aushandlung mit der Farsight Bibliothek hinzugefügt werden. Diese bringt dann die Unterstützung für viele verbreitete Codecs wie u.a. PCMA und PCMU und erlaubt Anrufe zu Telefonen wie das Nokia N900.

Was ist mit Video-Telefonie?

Es gibt eine undokumentierte Umgebungsvariable, die die Unterstützung für Video-Telefonie kontrolliert. Diese Unterstützung ist allerdings nicht eingehend getestet und funktioniert möglicherweise überhaupt nicht. Wenn Sie es trotzdem probieren möchten, setzen Sie vor dem Start von Psi *PSI_ENABLE_VIDEO=1*.

*Einige Anmerkungen:*

= Weitere =

Noch zu erledigen von Justin

Was bleibt noch zu tun:

Zusätzliche Informationen

[http://lists.affinix.com/pipermail/psi-devel-affinix.com/2009-May/008622.html Voice call howto]]