[[Vorlage(Archiviert)]] {{{#!vorlage Warnung Die Verwendung dieses Howto geschieht auf eigene Gefahr. Insbesondere enthält das Howto das Beschreibbarmachen der Systempartition bei Ubuntu Touch Geräten, um per apt-get Programme installieren zu können. Dies ist keine offiziell unterstützte Funktion von Ubuntu Touch. Bei zukünftigen OTAs (Over the Air Aktualisierungen) kann es zu Problemen, z.B. wegen mangelndem Speicher auf der Systempartition, kommen. __Eventuell ist bei Problemen das erneute Flashen von Ubuntu auf das Gerät notwendig.__ Dazu kann z.B. das [:Ubuntu Touch/flash_tool/: flash tool][7] oder ein [https://github.com/MariusQuabeck/magic-device-tool spezielles Batch Tool] {en} für Ubuntu Geräte verwendet werden. Bei Problemen mit der Anleitung melde dies bitte in der dazugehörigen Diskussion und wende dich zusätzlich an den Verfasser des Howtos. }}} {{{#!vorlage Hinweis Diese Howto-Anleitung wurde zuletzt von "romensch2" am 12.08.2016 unter '''Ubuntu Touch 15.04 (OTA 12)''' erfolgreich getestet. Das Testgerät war ein BQ Aquaris E4.5. }}} {{{#!vorlage Wissen [:Ubuntu_Touch:Übersichtsartikel zu Ubuntu Touch] [:apt/apt-get:apt-get] [:linphone:linphone] [:Ubuntu_Touch/Terminal:Terminal unter Ubuntu Touch benutzen] [:SSH:SSH] [:Ubuntu_Touch/OpenStore:OpenStore], optional [:Ubuntu_Touch/flash_tool/:flash tool], optional }}} [[Inhaltsverzeichnis]] = Einleitung = Der Artikel beschreibt das Nachrüsten einer SIP Telefoniefunktion [wikipedia:Session_Initiation_Protocol:] für das Ubuntu Phone bzw. generell für Geräte, die mit [:Ubuntu_Touch/:][1] laufen. Dazu wird über apt-get[2] das Programm linphone[3] installiert. Da nicht alle Ubuntu Touch Geräte Libertine bzw. X11 Apps unterstützen, wird linphone dann nur im Terminal ausgeführt. Erfolgreich getestet wurden folgende Funktionen: Anrufen lassen, Anruf annehmen, andere Nummern anrufen. [[Bild(Linphonec.png)]] = Anleitung = == Konfiguration von linphone == Am einfachsten erfolgt die Konfiguration von linphone am Ubuntu Desktop mit grafischer Oberfläche. Dazu installiert und konfiguriert man linphone nach Anleitung[3] für seinen SIP-Account. Nachdem im Grafikmodus die Funktion geprüft wurde, kann man die App am Desktop schonmal im Terminal ausprobieren. {{{#!vorlage Befehl linphonec }}} Zur Bedienung von linphone über das Terminal gibt es hier [http://www.linphone.org/technical-corner/linphone/documentation eine Anleitung] {en}. Die wichtigsten Befehle sind: * `call 1234`: Nummer 1234 anrufen * `answer`: Eingehenden Anruf annehmen * `terminate`: Auflegen * `quit`: linphone beenden == linphone auf dem Phone installieren == Um linphone auf dem Phone zu installieren, muss man das Image beschreibbar machen[4]: [:Ubuntu_Touch/Terminal/#Systempartition-beschreibbar-machen:]. Um Speicherprobleme bei der Installation mit apt-get zu vermeiden [2], wird vorsichtshalber der Cache zuerst ausgelagert: [:Ubuntu_Touch/Terminal/#Freien-Speicher-beobachten:]. Dann erfolgt die eigentliche Installation von linphone: {{{#!vorlage Befehl #Paketquellen einlesen sudo apt-get update #linphone installieren sudo apt-get install linphone #Aufraeumen: Cache leeren sudo apt-get clean }}} Danach am besten die Systempartition wieder sperren. {{{#!vorlage Befehl sudo mount -o remount,ro / }}} == linphone Konfigurationsdaten kopieren == Als nächstes kopiert man die Konfigurationsdaten von linphone vom Homeverzeichnis auf dem Desktop ('''~/''') auf das Homeverzeichnis am Phone ('''/home/phablet'''). Am besten werden alle Dateien mit '''.linphone''' aus dem Home-Verzeichnis kopiert, damit die nötigen Konfigurationsdateien enthalten sind. Bei der Erstellung dieser Anleitung waren das der Ordner '''.linphone-web''' sowie die Dateien '''.linphonec_history''', '''.linphone-history.db''' und '''.linphonerc'''. == linphone per phablet-shell ausführen == Nun ergibt sich das Problem, dass linphone nicht direkt in der Terminal App ausgeführt werden kann, da es nicht genug Rechte für die Terminal App gibt. Man bekommt beim Versuch, ein Telefonat zu führen, immer eine Fehlermeldung `pulseaudio error`. Dies kann man umgehen, indem man linephone aus einer SSH-Sitzung über die phablet-shell ausführt. Diese verfügt über mehr Rechte, um den nötigen Audiostream zu initialisieren. Dazu muss man sich per ssh vom Phone mit dem Phone selbst verbinden [4][5]: [:Ubuntu_Touch/Terminal/#SSH:] Zum Einrichten der SSH-Verbindung wie folgt vorgehen: {{{#!vorlage Warnung Der Schritt der Schlüsselerzeugung mit `ssh-keygen` muss unbedingt von der Terminal App aus ausgeführt werden, ansonsten kann man von der Terminal App aus später nicht die ssh Verbindung starten! }}} {{{#!vorlage Befehl cd ~/.ssh #Schluesselpaar erzeugen und in die Liste vertrauenswürdiger Keys aufnehmen #Hierbei am besten keine Passphrase eingeben, sondern nur bestätigen ssh-keygen -t rsa -f localhost_rsa cat localhost_rsa.pub >authorized_keys #Mit beliebigem Editor die Datei authorized_keys bearbeiten nano ~/.ssh/authorized_keys #Am Anfang der letzten Zeile eine Ergänzung vornehmen from="127.0.0.1"LEERZEICHEN #Die Zeile sieht nun so aus: from="127.0.0.1" ssh-rsa AAARESTDESKEYS #ssh Verbindung in Config Datei anlegen nano ~/.ssh/config #Inhalt der Datei Host localhost Hostname 127.0.0.1 IdentityFile /home/phablet/.ssh/localhost_rsa }}} Dann kann man von der Terminal App aus die SSH Verbindung starten und linphone ausführen: {{{#!vorlage Befehl ssh localhost #... linphonec #... call 1234 #ruft Nummer 1234 an usw, siehe Dokumentation von linephone #... quit #linphone beenden exit #ssh Verbindung schließen }}} Zum Telefonieren empfiehlt sich ein Headset, da Gespräche immer im Lautsprecher-Modus laufen. == Optional: Lifetime Exception anlegen == Zum Telefonieren reicht die oben beschriebene Installation bereits aus. Allerdings beendet der ''"deep sleep"'' Modus der Energieverwaltung die ssh Verbindung automatisch nach einer bestimmten Zeit. Dadurch werden laufende Telefonate zwar nicht beendet, aber im Terminal kann z.B. ein laufender Anruf nicht mehr beendet werden. Das Telefonat kann dann nur noch über das Schließen der Terminal App beendet werden. Um das zu verhindern und außerdem nach der Anmeldung mit `linphonec` auch für eingehende Anrufe erreichbar zu sein, setzt man eine Lifecycle-Ausnahme für die Terminal App. Am einfachsten funktioniert das mit dem [https://open.uappexplorer.com/app/ut-tweak-tool.sverzegnassi '''UT Tweak Tool'''] {en} aus dem [https://open.uappexplorer.com/ OpenStore] {en}[6]. Die Installation des OpenStore ist im [:Ubuntu_Touch/OpenStore/: dazugehörigen Wiki-Artikel] beschrieben. Nach Installation des Tweak Tool muss man zum Start das Passwort eingeben, um die nötigen Rechte zu erhalten. Dann wählt man im Menü den Punkt ''"App Scopes"'' aus. In der folgenden Liste sucht man die '''Terminal''' Anwendung heraus und aktiviert dort die Option ''"Prevent app suspension"''. Wer keine Fremdquellen benutzen will, kann alternativ die Ausnahmen auch über die Kommandozeile verwalten. Mit folgendem Befehl im Terminal zeigt man die Liste der Apps an, die im Hintergrund ausgeführt werden dürfen: {{{#!vorlage Befehl gsettings get com.canonical.qtmir lifecycle-exempt-appids }}} Dies wird mit einer Ausgabe z.B. wie der folgenden quittiert {{{ ['com.ubuntu.music', 'com.ubuntu.gallery'] }}} Um eine weitere Ausnahme für das Terminal hinzuzufügen, führt man folgenden Befehl aus {{{#!vorlage Befehl gsettings set com.canonical.qtmir lifecycle-exempt-appids "['com.ubuntu.music', 'com.ubuntu.gallery', 'com.ubuntu.terminal']" }}} = Links = * [wikipedia:Session_Initiation_Protocol:] * [http://www.linphone.org/technical-corner/linphone/documentation] {en} * [https://open.uappexplorer.com/] {en} * [https://github.com/MariusQuabeck/magic-device-tool magic device tool zum erneuten Flashen in Notfällen] {en} #tag: Howto