digoDial

Handbuch

Dieselben Texte, die in der App unter „Handbuch“ stehen, hier zum Nachschlagen und Verlinken. Stand: Version 1.6.0.

Überblick

digoDial ist eine Menüleisten-App, die eine Asterisk-Telefonanlage fernsteuert (Computer Telephony Integration).

Die App führt selbst keine Gespräche und überträgt keinen Ton: Gewählt, angenommen und aufgelegt wird immer am Telefon; digoDial gibt der Anlage nur die Kommandos über das Asterisk Manager Interface (AMI).

Das Telefonsymbol in der Menüleiste zeigt den Verbindungszustand und öffnet das Menü mit Wählfeld, aktiven Anrufen und Anrufliste.

Erste Schritte

  • Verbindung einrichten: Einstellungen > Verbindung. Host und Port der Anlage (Standard 5038), AMI-Benutzer und Passwort eintragen. "TLS verwenden" nur aktivieren, wenn die Anlage AMI über TLS anbietet (sonst schlägt der Test mit "bad protocol version" fehl). "Verbindung testen" prüft die Zugangsdaten sofort; das Passwort liegt danach ausschließlich im macOS-Schlüsselbund.
  • Standard für Telefon-Links: Der Knopf "Als Standard für tel:-Links festlegen" registriert digoDial für tel:- und callto:-Links aus anderen Programmen.
  • Voraussetzungen auf der Anlage (einmalig, siehe README im Repository): ein AMI-Benutzer mit den Rechten read=call,system und write=call,originate,system sowie ein Wähl-Kontext, der interne und externe Ziele erreichen kann.

Wählen

Alle Wege führen zum selben Ablauf: digoDial beauftragt die Anlage (Originate), zuerst das eigene Telefon zu rufen; sobald es abgehoben hat, wählt die Anlage das Ziel und verbindet beide.

  • Wählfeld im Menü: Nummer eintippen und mit Enter wählen.
  • Telefon-Links: tel:- und callto:-Links aus beliebigen Apps sowie digodial://call?number=...
  • Anrufliste: Ein Klick auf einen Eintrag wählt die Nummer erneut (egal ob ein-, ausgehend oder verpasst).
  • Hotkey: Standardmäßig wählt Shift+Wahltaste+Cmd+D die aktuell markierte Nummer in der vordersten App. Die Kombination ändern Sie unter Einstellungen > Wählen im Feld "Kurzbefehl" (Feld anklicken, neue Tasten drücken, mit "Sichern" übernehmen). Reagiert sie nicht, belegt sie vermutlich schon macOS, ein anderes Programm oder ein Werkzeug wie BetterTouchTool oder Raycast; wählen Sie dann eine andere. Ist keine Rufnummer markiert, erscheint kurz der Hinweis "Keine Rufnummer markiert". Beim ersten Druck fragt macOS nach der Bedienungshilfen-Berechtigung (die App simuliert cmd+C, um die Markierung zu lesen).
  • Kontextmenü: Markierte Nummer > Rechtsklick > "Mit digoDial anrufen" (je nach App direkt im Menü oder unter "Dienste"; macOS liest den Dienst nach der Installation automatisch ein).
  • Anzeige am Telefon: Während des Rufaufbaus zeigt das Telefon den in den Einstellungen hinterlegten CallerID-Namen plus die Zielrufnummer an.
  • Nummernformat: Region und Wahlformat (E.164, 00-international, national) stehen im Tab "Wählen". Die App normalisiert Eingaben automatisch (z. B. 069... zu +4969...). Ist dort eine eigene Ortsvorwahl hinterlegt, erhalten Eingaben ohne führende 0 oder + mit mindestens 6 Ziffern diese Vorwahl automatisch vorangestellt (z. B. 26546118 zu 06926546118).

Namenssuche: Tippt man im Wählfeld statt einer Nummer einen Namen (mindestens ein Buchstabe), erscheint darunter die Sektion "Adressbuch" mit Treffern aus den macOS-Kontakten und dem LDAP-Verzeichnis, jeweils mit allen hinterlegten Nummern. Ein Klick auf eine Nummer wählt sie sofort und leert das Feld wieder.

Automatisch abheben (Auto-Answer)

Mit "Automatisch abheben (Auto-Answer)" (Tab Telefonie) hebt das eigene Telefon beim Wählen selbst ab und der Ruf zum Ziel startet sofort - wie bei einer klassischen CTI-Lösung. Technisch sendet die App den SIP-Header "Call-Info: ...;answer-after=0" mit.

Das Telefon muss das erlauben: Bei Snom-Geräten die Einstellung "Intercom Policy" (answer_after_policy) auf "only in idle" stellen; normale eingehende Anrufe klingeln dann weiterhin gewohnt.

Auf welches Audiogerät das Telefon dabei geht, bestimmt allein das Telefon selbst (bei Snom-Geräten die Einstellung call_info_audio_device); die App steuert das Zielgerät nicht.

Eingehende Anrufe

  • Bildschirm-Overlay: Bei einem eingehenden Anruf erscheint ein großes Fenster im oberen Bildschirmdrittel mit aufgelöstem Namen, Nummer und (zuschaltbar) der angerufenen Nebenstelle samt angerufener eigener Rufnummer. Knöpfe: "Annehmen" (nimmt das Gespräch am Telefon an, siehe Endgeräte-Steuerung), "Ablehnen" (legt auf), "Nummer kopieren", "Schließen". Das Overlay schließt sich selbst, sobald der Anruf angenommen oder beendet ist.
  • macOS-Mitteilungen: Zusätzlich erscheint eine Mitteilung mit denselben Aktionen; ein verpasster Anruf erzeugt eine eigene Mitteilung mit "Zurückrufen".
  • Gesprächsfenster: Solange ein Anruf verbunden ist, ein- wie ausgehend, schwebt eine schmale Leiste über allen Fenstern mit Name, Nummer und Gesprächsdauer. Knöpfe: "Nummer kopieren", "Weiterleiten" (klappt ein Feld für die Nebenstelle auf, Enter leitet weiter) und "Auflegen". Die Leiste lässt sich an ihrem Hintergrund verschieben und erscheint beim nächsten Anruf an derselben Stelle. Sie schließt sich, sobald das Gespräch endet.
  • Schalter: Overlay, Nebenstellen-Anzeige, Gesprächsfenster und Mitteilungen lassen sich im Tab "Signalisierung" einzeln ein- und ausschalten.

Endgeräte-Steuerung (Snom)

Für den "Annehmen"-Knopf steuert digoDial das Tischtelefon direkt über dessen Weboberfläche (Tastendruck per HTTP). Im Tab "Signalisierung" unter "Endgeräte-Steuerung (Snom)" die Telefon-URL (z. B. http://192.0.2.45), den Web-Benutzer und das Passwort eintragen (Passwort landet im Schlüsselbund). "Annehmen über" bestimmt, ob das Gespräch auf dem Headset oder über Freisprechen angenommen wird.

Ohne diese Angaben wird der Annehmen-Knopf im Overlay ausgeblendet.

Namensauflösung

Eingehende und ausgehende Nummern werden in dieser Reihenfolge zu Namen aufgelöst: macOS-Kontakte (Berechtigung erforderlich), LDAP-Verzeichnis (Server, Base-DN, Bind-Daten, Filter-Template mit {number}), HTTP-Verzeichnis (URL-Template mit {number}, optionaler Header, JSON-Pfad). Ergebnisse werden für die eingestellte Cache-Dauer gemerkt. Nicht aufgelöste Nummern werden unverändert angezeigt.

Mailbox und Nicht stören

  • Mailbox: Das Feld "Mailbox" muss exakt der Asterisk-Mailbox entsprechen, üblich ist die Form 1234@default. Der Zähler im Menü folgt dem Postfach in beide Richtungen (neue Nachricht erhöht, Abhören/Löschen senkt). Bei neuen Nachrichten zeigt zusätzlich ein rotes Zähler-Badge am Menüleistensymbol dieselbe Anzahl (ab 100 als "99+").
  • Abhören-Knopf: Solange die Mailbox konfiguriert ist, erscheint rechts neben der Zahl in der Mailbox-Zeile ein Knopf mit Wiedergabe-Symbol. Ein Klick wählt die im Tab "Mailbox & DND" hinterlegte Abhör-Kurzwahl - das eigene Telefon hebt automatisch ab (Auto-Answer) auf sein eingestelltes Audiogerät und die Mailbox-Abfrage der Anlage (VoiceMailMain) läuft direkt los. Ohne Kurzwahl bleibt der Knopf ausgeblendet.
  • Voraussetzung für die Abhör-Kurzwahl ist ein passender Dialplan-Eintrag auf der Anlage, z. B. exten => 55,1,VoiceMailMain(1234@default,s).
  • Nicht stören (DND): Der Schalter im Menü setzt oder löscht einen Eintrag in der Asterisk-Datenbank (Family/Wert im Tab "Mailbox & DND"). Damit DND wirkt, muss der Wählplan der Anlage den Eintrag vor dem Klingeln prüfen - ein Beispiel steht im README.

Einstellungen im Überblick

  • Verbindung: Anlage, AMI-Benutzer und Passwort, TLS, Standard-App für tel:-Links.
  • Telefonie: eigene Nebenstelle (DND-Schlüssel), überwachte Nebenstellen (WICHTIG: Auf Anlagen, deren Kanalnamen Peer-Namen tragen, gehört hier der Peer-Name hinein, z. B. snom-phone-1 statt 10), Wählgeräte, Originate-Kontext, CallerID-Anzeigename, Auto-Answer.
  • Wählen: Region, Wahlformat, Hotkey, Start bei Anmeldung.
  • Signalisierung: Overlay, Nebenstellen-/Rufnummern-Anzeige, Gesprächsfenster, macOS-Mitteilungen, Endgeräte-Steuerung (Snom, Web-Benutzer) mit "Annehmen über".
  • Namensauflösung: Kontakte, LDAP, HTTP, Cache-Dauer.
  • Mailbox & DND: Mailbox, DND-Family und -Wert.
  • Lizenz: Status von Test oder Vollversion, Kauf und "Käufe wiederherstellen".

Testversion und Vollversion

digoDial ist im Mac App Store kostenlos. Ohne Kauf bleiben die Anzeige eingehender Anrufe mit Namen, die macOS-Mitteilungen, Nicht stören und die Mailbox nutzbar.

  • Vollversion: Wählen auf allen Wegen (Wählfeld, Namenssuche, Hotkey, Kontextmenü, Telefon-Links, Anrufliste), Weiterleiten, die Anrufliste und das Gesprächsfenster. Sie wird mit einem einmaligen In-App-Kauf dauerhaft freigeschaltet.
  • Testversion: "5 Tage alle Funktionen kostenlos testen" schaltet alles für fünf Tage frei. Der Test ist an die Apple-ID gebunden und lässt sich nur einmal starten, auch nach einer Neuinstallation. Danach fällt die App auf die kostenlosen Funktionen zurück, ohne dass Einstellungen verloren gehen.
  • Freischalten: im Tab "Lizenz" der Einstellungen oder über die Zeile unten im Menü. Eine gesperrte Funktion zeigt beim Aufruf einen Hinweis mit Kaufknopf.
  • Käufe wiederherstellen: Auf einem weiteren Mac oder nach einer Neuinstallation holt "Käufe wiederherstellen" im Tab "Lizenz" die Vollversion zurück.

Fehlerbehebung

  • "Verbindung fehlgeschlagen: -9836: bad protocol version": TLS ist aktiviert, die Anlage spricht auf diesem Port aber Klartext-AMI. TLS-Haken entfernen.
  • Keine Mitteilungen: macOS verweigert Ad-hoc-Builds die Anfrage manchmal still. In Systemeinstellungen > Mitteilungen digoDial manuell erlauben; nach einem Neubau der App kann die Freigabe erneut nötig sein.
  • Mailbox-Zähler bleibt 0: Mailbox-Feld prüfen - es muss exakt der Anlage entsprechen (z. B. 1234@default, Tippfehler sind die häufigste Ursache).
  • "Mit digoDial anrufen" fehlt im Kontextmenü: In Systemeinstellungen > Tastatur > Tastaturkurzbefehle > Dienste > Text prüfen, ob der Dienst angekreuzt ist. Er gilt nur für markierten Text; in manchen Apps steckt er im Untermenü "Dienste".
  • Ausgehende Anrufe erscheinen nicht: Die überwachte Nebenstelle muss zum Kanalnamen der Anlage passen (Peer-Name, siehe Tab Telefonie).
  • Telefon-Weboberfläche gesperrt (Endgeräte-Steuerung): Nach mehreren Fehlversuchen blockiert das Snom die Web-Schnittstelle minutenweise; kurz warten und Zugangsdaten prüfen.

Lizenzen

digoDial verwendet die folgenden Open-Source-Bibliotheken, beide unter der MIT-Lizenz.

GRDB.swift

Copyright (C) 2015-2025 Gwendal Roué

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

PhoneNumberKit

The MIT License (MIT)

Copyright (c) 2018 Roy Marmelstein

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Über

digoDial 1.6.0 (3) - native macOS-App (SwiftUI). Anrufliste und Konfiguration bleiben lokal; Passwörter liegen ausschließlich im macOS-Schlüsselbund.