#summary|Voice and video calls with Psi/Psi+ (de) #labels Phase-Deploy,Featured = Einführung = == Worum geht es hier? == Dies ist eine Implementierung von [[http://www.xmpp.org/extensions/xep-0167.html|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 [[http://www.gstreamer.net/|GStreamer]], eine weitere ist die ICE Transport-Schicht, beschrieben in [[http://xmpp.org/extensions/xep-0176.html|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 [[http://delta.affinix.com/psimedia/|hier]]. Sie können von dort vorkompilierte psmedia für verschiedene Betriebssystem herunterladen. == Kompatibilität mit verschiedenen Betriebssystemen == * MS Windows - eine vorkompilierte Version gibt es auf [[http://delta.affinix.com/psimedia/|der Projektseite]], und [[http://andbit.net/psi_snapshots/win/|hier]] findet man täglich aktualisierte Schnappschüsse des offiziellen Psi mit Psimedia. Es gibt auch ein Psimedia Paket auf der [[http://code.google.com/p/psi-dev/downloads/list?q=setup-psimedia|Psi+ Webseite]]. Psimedia sollt6e in dem Verzeichnis installiert werden, das auch Psi enthält. * Gentoo Linux - emerge psimedia (rion-overlay) * Ubuntu - Unterstützung ab Version 9.04 * Mac OS X - eine vorkompilierte Version gibt es auf[http://delta.affinix.com/psimedia/ der Projektseite]]. == 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 === * [[https://launchpadlibrarian.net/21502583/gstreamer0.10_0.10.22.orig.tar.gz|gstreamer-0.10.22]* * *gstreamer-plugins-base-0.10.22* * gstreamer-plugins-good * *glib-2.20* * [[http://delta.affinix.com/qconf/|qconf]] * *speex-1.2rc1* * *liboil0.3* * *Qt* *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 [[http://psi-dev.googlecode.com/svn/trunk/scripts/posix/psimediabuild.sh|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*.

{{psiplus_account_props.png
= 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 [[http://ipv6.whatismyv6.com/|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 [[http://ipv6.whatismyv6.com/|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 [[http://ipv6.whatismyv6.com/|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: * [[http://api.ning.com/files/eTQek6oePnyKxo4A4xnjAqlL--jue7OrZTywOyNFUEkGLmLsqQLT7dmVedGNEPUmRvEyVbcm-Bq0T1Q-fyLhWi-ctbx52DSn/gogoc1.2RELEASEwin32.exe|gogoCLIENT 1.2 Windows Installer 32-bit]] * [[http://api.ning.com/files/eTQek6oePnyf09jlLkAAW4a-kmGIPcck3HM13gtCQib3eoGx9KaoLLlm5DuufWnrx5b1irL5pXkT0feqbBiA2aPjgUwoSrUS/gogoc1.2RELEASEwin64.exe|gogoCLIENT 1.2 Windows Installer 64-bit]] Installieren Sie es und lassen Sie der Client eine Verbindung aufbauen. Dies sollte Ihnen IPv6-Anschlussfähigkeit bescheren. Versuchen Sie erneut die [[http://ipv6.whatismyv6.com/|Testseite]] aufzurufen. Es gibt auch ein gw6c in Debian und Ubuntu. Wenn beide Seiten die [[http://ipv6.whatismyv6.com/|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 [[http://code.google.com/p/psi-dev/wiki/jingle_bots|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: * G729 * ILBC * PCMA * PCMU Psi+ unterstützt nur: * Speex Wideband * Speex Narrowband (nur in dem Fall, wenn beide Seiten Psi+ und Psimedia+, beide mit den Patches von [[http://psi-dev.googlecode.com/svn/|Psi+ SVN]] versehen, benutzen) 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:* * Unter Linux, wählen Sie die V4L2 Variante Ihrer Kamera. V4L1 funktioniert wahrscheinlich nicht. * Unter Linux wurden zwei verschiedene Kameras mit dem gspca module erfolgreich eingesetzt, eine Kamera mit dem uvcvideo module funktionierte aus ungeklärten Gründen nicht * Unter Windows wird erwartet, dass jede Kamera mit einem laufenden Treiber funktionieren sollte. = Weitere = == Noch zu erledigen von Justin == Was bleibt noch zu tun: * Aufhübschen der calldlg. * Neuer Sound für eingehende Anrufe. * Abgleich mit existierendem VoiceCallManager/Dlg Code, falls sinnvoll. == Zusätzliche Informationen == [http://lists.affinix.com/pipermail/psi-devel-affinix.com/2009-May/008622.html Voice call howto]]