#summary|Voice and video calls with Psi/Psi+ (de) #labels Phase-Deploy,Featured
= Einführung =
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.
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.
*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.
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
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.
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+ =
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.
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.
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.
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.
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.
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 =
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.
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.
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 =
Was bleibt noch zu tun:
[http://lists.affinix.com/pipermail/psi-devel-affinix.com/2009-May/008622.html Voice call howto]]