Montag, 15. Juli 2013

VoIP mit CSipSimple auf Android-Geräten (insbes. Xperia Mini)

VoIP mit CSipSimple auf Android-Geräten

Voice-over-IP (VoIP) ist eine feine Sache, seit moderne Smartphones auch als VoIP-Client dienen können. Leider steckt der Teufel oftmals im Detail. So ist mir insbes. der eingebaute VoIP-Client von Android (4.0.4) zu unflexibel, um nicht sagen "er macht was er will und ich weiß nicht was und warum". Daher bin ich bei CSipSimple gelandet. Genutzt wird das Ganze dann über WLAN oder UMTS, und seit einiger Zeit auch über meinen UMTS-Hotspot (also zum Handy hin ein WLAN aber die Internetverbindung wird über einen UMTS-Stick hergestellt).


CSipSimple Version und Codecs

Gerade bei knapper Upload-Bandbreite ist die Auswahl eines geeigneten Audio-Codecs wichtig: hohe Kompression bei guter Verständlichkeit. Eine variable Bitrate hat wohl derzeit nur Speex und Silk (Skype) im Angebot, scheidet aber mangels Unterstützung der VoIP-Anbieter leider aus. Daher die folgende Codec-Wahl:

G.711 (auch als PCMA oder PCMU bezeichnet) benötigt 64 kBit/s in jede Richtung netto, mit Netzwerk-Overhead also zwischen 80-100 kBit/s brutto. Und das ununterbrochen und störungsfrei - die beiden Codecs scheiden damit für UMTS-basierte Verbindungen de-facto aus. Mit GSM (EDGE oder GPRS) geht das sowieso nicht. ILBC und G.729 benötigen einiges an Rechenleistung des Handys, kommen aber mit 13-15 kBit/s netto aus, das entspricht lediglich ca. 32 kBit/s brutto - das schafft man mit UMTS eigentlich schon (eine Quelle statt vieler: Bandbreite der verschiedenen Codecs bei VoIP).

Verwendet wird die Version 0.04-05 r2174 aus den CSipSimple Nightlybuilds - leider offiziell nicht mehr zum Download angeboten. Warum? Weil mit r2180 die eingebaute Unterstützung des G.729 Codecs aus lizenzrechtlichen Gründen aus dem Programm herausgenommen wurde. Wer also keine Version <2180 hat, der wird etwas bei Google nach 'ner alten Version suchen müssen. Wem G.729 egal ist (oder dafür ca. 8 EUR zusätzlich ausgeben will), der kann sich auch einfach die aktuellste Version von CSipSimple aus dem Market holen.

Einstellungen CSipSimple

Da ich inzwischen auch ein WLAN mit UMTS-Verbindung zum Internet betreibe, nutzt mir die Unterteilung in "schnelle" und "langsame" Verbindungen leider nichts mehr. Bei mir ist nun für VoIP-Fragen alles "langsam". 

Im Prinzip alles auf Standard mit folgenden Abweichungen: 
  • Keep alive WLAN: 360 (das reicht aus und spart Strom)
  • Keep alive Mobilfunk: 240 
  • STUN aktiviert
  • Eingehend: WLAN (verbraucht nicht viel Strom)
  • Ausgehend: WLAN und UMTS
  • Echounterdrückung: an
  • Abtastrate: 8 Khz (fast alle Codes arbeiten mit 8 Khz)
  • Codecs für Schnelle Verbindung: ILBC, G729 (PCMA, PCMU, GSM)
  • Codecs für Langsame Verbindung: ILBC, G729 (GSM, PCMA, PCMU)
  • Erweiterte Codes-Einstellungen: iLBC = 160 (möglich wäre auch 240; 160 soll geringere Latenzzeiten haben, 240 weniger Bandbreite benötigen)
  • Bluetooth automatisch verbinden: aktiv (nur sinnvoll, wenn wirklich über BT-Freisprecheinrichtung telefoniert werden soll)
  • Audio-Problembehebung: Tone Hack (an), Audio exklusiv (an), Konfiguriere die Audio-Ausgabe vor Init (an), Audio Implementation (java).
Praxisnutzung
  • In (schnellen) WLANs völlig unproblematisch, dann auch bevorzugt mit PCMA/PCMU, d.h. faktisch ISDN-Qualität.
  • Zumindest bei personal-voip.de scheint sich der PCMA-Codec durchzusetzen, auch wenn er in CSipSimple tiefer priorisiert wurde (s. Info-Button in der App). Um wirklich sicherzugehen, dass das gesamte Gespräch nur in bandbreiten-schonenden Modi abgewickelt wird, müssen PCMU/PCMA deaktiviert werden. Soll sichergestellt werden, dass aus den verbliebenen Codecs nicht doch noch GSM serverseitig ausgewählt wird, muss auch dies deaktiviert werden.
  • Die Option "Sprachaktivitätserkennung" ist auch aktiviert leider völlig wirkungslos, jedenfalls bei iLBC.
  • E-Plus-Netz: VoIP ist eigentlich nicht zulässig (wenn die AGB-Klausel denn wirksam sein sollte...) Es funktioniert aber trotzdem, getestet mit einer AldiTalk-Karte (1,5 GB Highspeed für 9,99 EUR, 5 GB Highspeed für 14,99 EUR, monatlich abbestellbar).
  • Vodafone: unproblematisch (Klarmobil-Karte, surf-and-spar-Tarif)
Sipgate ist von den Tarifen deutlich teurer und hat häufiger mal eine größere Verzögerung. Anrufe ins Ausland (Welt) zeitweise schwierig. Personal-VoIP ist deutlich günstiger, geringere Verzögerung, bislang unproblematisch auch ins Ausland. 

Mit gewissen Verzögerungen in der Übertragung ist aber immer zu rechnen, auch wenn die Verbindung und die Sprachqualität insgesamt gut sind.

Nachträge:

  • Die Ausgabe über den eingebauten Lautsprecher (Freisprechen ohne Freisprecheinrichtung) führt zu völlig abgehackten Gesprächen. Auch zum Testen der Verbindung sollte man das Handy wirklich ans Ohr halten. 
  • Die Verbindung zum BT-Freisprechset klappt erst nach mehreren Sekunden Knacksen und "Warmlaufen"; Option Setup audio before init unter Audioprobleme bringt zwar Besserung, führt aber nicht zu einer stabilen Verbindung zwischen Handy und BT-Set. Ergebnis: zuverlässiges Telefonieren mit Bluetooth-Headset geht nicht. Nachtrag: mit der Version r2277 geht es doch; siehe ersten Kommentar!) 
  • Auch über Sipgate sind Verbindungen mit iLBC möglich, obwohl dies offiziell nicht möglich sein soll. Insofern werde ich mal über ein Update von CSipSimple nachdenken, da ich ja G.729 eigentlich nicht mehr bräuchte.
  • Die Nummer der Sprachauskunft (Telefoncomputer) der Deutschen Bahn lautet übrigens 0800 1507090.

2 Kommentare:

  1. Leider lässt CSipSimple die Codec-Prioritäten beim abgehenden Telefonieren unberücksichtigt - das ist mehr eine Wunschliste, aber entscheiden tut der SIP-Server. Und der entscheidet sich bei sipgate und personal-voip für den hochwertigeren PCMA-Codec, obwohl ich das dann gar nicht will. Acrobits Softphone kann das besser, hat aber dafür andere Mängel.

    Dafür funktioniert in der neuesten Nightly von CSipSimple (r2277) endlich das Bluetooth-Headset so wie es soll. Also - auch wenn es etwas umständlich ist:

    CSipSimple macht nur GSM und iLBC (letzteres hakelt von Seiten personal-voip und macht keinen Spaß. GSM ist ok). Und zwar alles mit BT-Headset.

    Bei einer guten WLAN-Verbindung wird der eingebaute Android-SIP-Client genommen. Der verwendet PCMA/PCMU und unterstützt natürlich auch das Bluetooth-Headset.

    AntwortenLöschen
  2. Funktioniert super mit LG Optima 710II
    Keine Verbindungsabbrüche im zusammenhang mit der Fritz 7270 mehr.

    Danke für Deine Mühe.

    AntwortenLöschen

Gerne kannst Du in den Kommentaren eine Nachricht oder eine Ergänzung hinterlassen. Nur eine Bitte: keine Grundsatz- oder Weltanschauungsdiskussionen. Danke!