Handsfree Handyanrufe vom PC

Sparschwein Die Inhalte gefallen Dir?

Unterstütze diese Seite indem du deinen AdBlocker oder Content Blocker deaktivierst. Ich habe einige, wenige eBay-Banner, sowie affiliate Links in die Seite eingebaut mit relevanten Suchergebnissen zu meinen jeweiligen Projekten. Links zu eBay sind durch eine Grünfärbung mit gepunktetem Unterstrich gekennzeichnet.

Erstellt am 24.01.2021

Zunächst: Empfangsprobleme

Vor einer Weile habe ich mal wieder den Anbieter meines Handyvertrags geändert und durfte feststellen, dass der Empfang jetzt eher bescheiden ist. Das hat man wohl davon, wenn man von den großen Netzen auf die kleineren, aber dafür auch günstigeren wechselt. Handyempfang gibt es jetzt am Fenster aber leider nicht im Zimmer selbst. Daher kam die Idee auf, das Handy nur als Relay zu nutzen und das Telefonsignal per Bluetooth an mein Ohr zu bekommen.

Im einfachsten Fall clipst man sich dazu also einfach so ein Bluetoothdongle ans Ohr und kann, sogar handsfree, telefonieren. Nur wie schaut das mit Anrufe tätigen aus? Eher schlecht: Ich müsste zum Handy laufen, die Nummer eintippen (oder aus dem Telefonbuch suchen) und das Telefonat starten.

Da muss es doch auch ein Stück Software geben, wie im Auto, das einem das Wählen direkt am PC ermöglicht? Der Ton sollte dann am besten auch gleich am PC abgespielt werden.

Von Microsoft gibt es das seit Windows 10 in der Tat. Man installiert sich eine App auf dem Handy und ein bisschen Software auf dem PC, koppelt die beiden Geräte per Bluetooth und sollte in der Lage sein, Gespräche zu führen.

Zum Spaß hab ich das mal mit dem Windows 10 eines Bekannten ausprobiert, musste aber leider feststellen, dass der Ton auf der anderen Seite verzerrt angekommen ist. Ich weiß nicht, ob das am Mikrofon im Laptop lag oder mein Telefon da irgendwie gesponnen hat, da ich aber selbst eh keinen Windows PC mehr besitze fiel diese Option ohnehin aus. Auch finde ich die Kopplung mit der Microsoft-ID kontraproduktiv. Was müssen die denn Wissen welche Telefonate ich führe?

Es geht auch ohne MS-ID

Unter Linux stellte sich das Problem unerwarteterweise als fast schon problemlos heraus. Für die Tonausgabe muss die Pulseaudio Konfiguration ein klein wenig angepasst werden. Dann reicht es aus, das Handy und den Computer per Bluetooth zu koppeln. Ein zusätzlicher Dienst (ofono) stellt die Verbindung mit dem Modem des Handys her und erlaubt Nummern zu wählen, Tasten zu drücken und Gespräche anzunehmen und zu beenden.

ofonogui
ofonogui zum Steuern des Handys

Wozu dann also dieser Artikel? Nun vielleicht interessiert es euch ja, welche Konfigurationsänderungen man durchführen muss. Auch musste ich feststellen, dass es kein GUI für ofono gibt. Alles was ich finden konnte, waren Python Codeschnipsel, die ofono direkt über DBus ansteuern. Also wurde fix mal wieder das gute alte Perl ausgegraben und eine Gtk3 Anwendung geschrieben die jetzt die Basisfunktionen eines Telefons implementiert:

  • Anrufe tätigen
  • Anrufe entgegen nehmen
  • DTMF Tasten drücken (für diese Wählmenüs)

Alles was darüber hinaus geht (mehrere Anrufe entgegen nehmen und in Warteschleifen hängen usw.) ist hier bewusst außen vor gelassen. Wenn ihr das selbst noch implementiert habt, dann bitte immer her damit!

OfonoGUI Setup

Als erstes braucht ihr natürlich ein funktionierendes Bluetoothsetup. Das heißt auch einen Bluetoothdongle der das Hands-Free Profil unterstützt. Dann braucht ihr noch ein paar Softwarepakete:

bluez
ofono
ofono-tests

(wenn das ofono-test Paket nicht existiert, dann ladet auch die test-files direkt von der Quelle: ofono-1.31.tar.gz)

Die folgenden Perl Pakete werden ebenfalls benötigt:

Glib
Gtk3
Number::Phone
Net::DBus

Jetzt könnt ihr euch die /etc/pulse/default.pa vorknüpfen und mit einem Editor die folgende Zeile editieren:

load-module module-bluetooth-discover headset=ofono

Zum Echo-cancelling können auch noch folgende Zeilen in die Datei geschrieben werden, sofern sie noch nicht existieren:

.ifexists module-echo-cancel.so
load-module module-echo-cancel aec_method=webrtc source_name=ec_out sink_name=ec_ref
set-default-source ec_out
set-default-sink ec_ref
.endif

Jetzt einmal den Pulseaudioserver neustarten; das sollte sich über ein beherztes

pulseaudio -k

erledigen lassen.

Als nächstes solltet ihr sicherstellen, dass der ofono Dienst läuft:

sudo systemctl start ofono

Und zu guter letzt könnt ihr das Handy mit eurem Computer pairen:

bluetoothctl

  power on
  agent on
  default-agent

  scan on

Jetzt sollte euer Telefon sichtbar sein, sodass ihr die Bluetoothaddresse finden könnt. Wenn ihr sie habt, den scanner wieder ausschalten und die Verbindung aufbauen:

scan off

pair XX:XX:XX:XX:XX:XX
trust XX:XX:XX:XX:XX:XX
connect XX:XX:XX:XX:XX:XX

Der übliche Pinaustausch sollte erscheinen, und schließlich das Telefon und der Rechner ein

Pairing successful
...
trust succeeded
...
Connection successful

anzeigen. Den ersten Test könnt ihr bereits jetzt schon machen. Je nachdem wo ihr eure ofono-test installiert habt, sollte jetzt ein list-modems euer Handy anzeigen.

Der letzte Schritt ist jetzt noch mein Perl-Programm herunter zu laden (https://github.com/thinksilicon/ofonogui) und ofonogui.pl auszuführen. Ihr solltet euch im gleichen Verzeichnis wie die Datei befinden, damit die übrigen Module gefunden werden können.

git clone https://github.com/thinksilicon/ofonogui.git
cd ofonogui
perl ofonogui.pl

Wenn der Ton noch am Handy abgespielt wird, dann stellt es dort einfach auf Bluetooth um und es sollte direkt am Computer ertönen.

Damit hoffe ich, dass dieses Tool hilfreich ist und ich freue mich, wie immer, über Verbesserungsvorschläge. Dieses Mal habe ich es auch auf Github gehostet, es sollte also einfach sein einen Pullrequest einzureichen.

Seitenanfang