server-nutzer
Goto Top

Mit Mac (OS Sierra) via Wählhilfe FritzBox einen Anruf initiieren

Hallo Leute,

ich habe hier eine FritzBox 7490, ein daran registriertes DECT-Headset und würde gern via "Wählhilfe" von meinem alten Mac (mit OS Sierra) Anrufe initiieren.

Sprich, ich tippe oder kopiere die zu wählende Nummer in eine simple Programmoberfläche und diese veranlasst die FritzBox, das eingerichtete DECT-Headset mit diesem Teilnehmer zu verbinden.

Mit einer Android-App names "Wählhilfe" klappt das, aber für nen Mac habe ich keine vergleichbar einfache Software (am liebsten OpenSource, kostenfrei) entdeckt. Für Windows gibt es da einiges, aber für nen Mac?

Habt Ihr da Tipps für mich?

Herzlichen Dank
Es grüßt Jörg

Content-ID: 492419

Url: https://administrator.de/contentid/492419

Ausgedruckt am: 21.11.2024 um 12:11 Uhr

colinardo
Lösung colinardo 06.09.2019, aktualisiert am 04.03.2020 um 10:43:40 Uhr
Goto Top
Servus Jörg,
das lässt sich auch ohne Tools mit einem Shell-Skript auf MAC abfackeln und zwar über einen TR-064 SOAP Request face-smile.
Variablen anpassen im Kopf des Skripts anpassen (USERNAME,PASSWORD und FQDN oder IP der Fritzbox) und das Skript abspeichern und ausführbar machen.
Dann noch in der Fritzbox unter Heimnetz > Netzwerk > Netzwerkeinstellungen > Heimnetzfreigaben die Option Zugriff für Anwendungen zulassen aktivieren damit SOAP Requests funktionieren.
Jetzt das Skript ausführen und in der Eingabeaufforderung die Rufnummer eingeben, ENTER drücken und warten bis das Telefon klingelt (Achtung Hinweis: Das Telefon klingelt erst wenn der angerufene auch den Hörer abnimmt!!. Nimmt derjenige nicht ab klingelt das jeweilige Telefon auch nicht).
back-to-topSHELL SCRIPT
#!/bin/bash
# ------------------------
# Benutzername
USERNAME='USERNAME'  
# Kennwort
PASSWORD='PASSWORD'  
# FQDN oder IP der Fritzbox
FQDN="fritz.box"  
# ------------------------
read -p "Geben sie die Telefonnummer ein:" number  

# Get SSL Security-Port -----------
data=$(cat <<EOF
<?xml version="1.0"?>  
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">  
    <s:Body>
        <u:GetSecurityPort xmlns:u="urn:dslforum-org:service:DeviceInfo:1" />  
    </s:Body>
</s:Envelope>
EOF
)
SSLPORT=$(curl -k --anyauth -u "${USERNAME}:${PASSWORD}" "http://${FQDN}:49000/upnp/control/deviceinfo" -H 'Content-Type: text/xml; charset="utf-8"' -H 'SOAPAction:urn:dslforum-org:service:DeviceInfo:1#GetSecurityPort' --data "$data" | grep -Eo 'NewSecurityPort>[0-9]+' | cut -d'>' -f2)   
# --------------

# call helper 
data=$(cat <<EOF
<?xml version="1.0"?>  
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">  
    <s:Body>
        <u:X_AVM-DE_DialNumber xmlns:u="urn:dslforum-org:service:X_VoIP:1">  
            <NewX_AVM-DE_PhoneNumber>${number}</NewX_AVM-DE_PhoneNumber>
        </u:X_AVM-DE_DialNumber>
</s:Body>
</s:Envelope>
EOF
)

curl -s -k --anyauth -u "${USERNAME}:${PASSWORD}" "https://${FQDN}:${SSLPORT}/upnp/control/x_voip" -H 'Content-Type: text/xml; charset="utf-8"' -H 'SOAPAction:urn:dslforum-org:service:X_VoIP:1#X_AVM-DE_DialNumber' --data "$data" >/dev/null  

echo "Die Rufnummer : $number wird angewählt, das Telefon sollte in Kürze klingeln."  
Das ganze lässt sich bei Bedarf auch noch mit dem Automator aufhübschen und mit einer Dialogbox etc. versehen oder die Nummer auch aus der Zwischenablege verwenden wenn du willst face-wink.
Hier der entsprechende Workflow mit dem sich im Automator auch eine Anwendung erzeugen lässt. (Auch hier im Workflow die Variablen anpassen!)
back-to-topAUTOMATOR SCRIPT (NUMMER als "Argument" im Workflow übergeben")
#!/bin/bash
# ------------------------
# Benutzername
USERNAME='USERNAME'  
# Kennwort
PASSWORD='PASSWORD'  
# FQDN oder IP der Fritzbox
FQDN="fritz.box"  
# ------------------------
number="$1"  
# Get SSL Security-Port -----------
data=$(cat <<EOF
<?xml version="1.0"?>  
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">  
    <s:Body>
        <u:GetSecurityPort xmlns:u="urn:dslforum-org:service:DeviceInfo:1" />  
    </s:Body>
</s:Envelope>
EOF
)
SSLPORT=$(curl -k --anyauth -u "${USERNAME}:${PASSWORD}" "http://${FQDN}:49000/upnp/control/deviceinfo" -H 'Content-Type: text/xml; charset="utf-8"' -H 'SOAPAction:urn:dslforum-org:service:DeviceInfo:1#GetSecurityPort' --data "$data" | grep -Eo 'NewSecurityPort>[0-9]+' | cut -d'>' -f2)   
# --------------

# call helper 
data=$(cat <<EOF
<?xml version="1.0"?>  
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">  
    <s:Body>
        <u:X_AVM-DE_DialNumber xmlns:u="urn:dslforum-org:service:X_VoIP:1">  
            <NewX_AVM-DE_PhoneNumber>${number}</NewX_AVM-DE_PhoneNumber>
        </u:X_AVM-DE_DialNumber>
</s:Body>
</s:Envelope>
EOF
)

curl -s -k --anyauth -u "${USERNAME}:${PASSWORD}" "https://${FQDN}:${SSLPORT}/upnp/control/x_voip" -H 'Content-Type: text/xml; charset="utf-8"' -H 'SOAPAction:urn:dslforum-org:service:X_VoIP:1#X_AVM-DE_DialNumber' --data "$data" >/dev/null  

echo "Die Rufnummer : $number wird angewählt, das Telefon sollte in Kürze klingeln."  

fb_dial_assistent.workflow_492419.zip

screenshot

Ausgeführt

screenshot


Viel Spaß
Grüße Uwe
Server-Nutzer
Server-Nutzer 06.09.2019 aktualisiert um 21:09:58 Uhr
Goto Top
Danke für Deine Mühe.

Das sieht schon gut aus. Muss ich morgen mal probieren.
Hatte schon einen anderen Tipp bekommen (https://www.mengelke.de/Projekte/FritzBoxTools#dial).

Das geht in der Tat. Ist ein wenig unkomfortabel. Mir fehlen leider die Programmierskills, um mir selbst ein Script zu schreiben.
Aus "./fb_tools.php Dial 0172987654321 60" müsste "<befehl> Frage nach der zu wählenden Nummer" werden.
Sprich, ich mach mir dann nen Alias auf den Desktop, doppelklicke das, tippe die Rufnummer ein, Enter. Fertig.

(60 in dem Befehl ist übrigens das erste DECT-Device, welches dann beim Rufaufbau das Gespräch bekommt)
Lochkartenstanzer
Lochkartenstanzer 07.09.2019 aktualisiert um 07:37:02 Uhr
Goto Top
Moin,

Das kannst Du direkt über die Weboberfläche der Fritte machen: Einfach im Telefonbuch die Nummer auswählen und wählen lassen.

lks
cykes
cykes 07.09.2019 um 07:33:03 Uhr
Goto Top
Moin,

alternativ wäre vielleicht noch https://www.hosy.de/dialfritz/index.php?lang=ger&ref=store zu nennen. Nachteil: NIcht kostenlos, dafür etwas mehr Funktionen als eine reine "Wählhilfe".

Noch etwas teurer ist die fritz.mac Suite von TKR: https://www.tkr-telekom.de/direkt/software/cti-mac.html

Bis vor einiger Zeit gab es noch eine MacOS-Version von "Roger Router" (kostenlos): https://tabos.gitlab.io/project/rogerrouter/
Vielleicht findet sich eine ältere Version davon noch irgendwo, allerdings wird diese nicht mehr weiterentwickelt.

Gruß

cykes
Server-Nutzer
Server-Nutzer 07.09.2019 um 10:36:37 Uhr
Goto Top
Moin lks,

der Punkt ist, dass die Nummern nicht im Telefonbuch stehen, daher entfällt das leider.

Aber trotzdem dankeschön.
Server-Nutzer
Server-Nutzer 07.09.2019 um 10:55:31 Uhr
Goto Top
Hi cykes.

Roger Router scheint leider nur noch Windows zu supporten, ältere Mac-Versionen hab ich jetzt auf die schnelle nicht entdeckt.

Dail!List sieht für die knapp 20 € angemessen aus.

Die Suite ist mir zu oversized und auch dafür (für mich) zu teuer.

Die von mir oben verlinkte FritzboxTools-Lösung wäre im Grunde schon ausreichend.

Hätte nur noch gern nen Script: Doppelklick auf Icon(Alias), Terminal geht auf und startet fritzboxtools mit der Abfrage der zu wählenden Nummer (Enter, Anruf wird eingeleitet). Warten auf Taste, Fenster schließt. Muss mal probieren... face-smile
Im Grunde muss eine Abfrage der Rufnummer "nur noch" an den fritzboxtools-Aufruf übergeben werden. Kann ja nicht sooo schwer sein.

Danke nochmal.
colinardo
colinardo 07.09.2019 aktualisiert um 11:24:57 Uhr
Goto Top
Hätte nur noch gern nen Script: Doppelklick auf Icon(Alias), Terminal geht auf und startet fritzboxtools mit der Abfrage der zu wählenden Nummer (Enter, Anruf wird eingeleitet). Warten auf Taste, Fenster
Mit dem Automator ist das doch schnell zusammengeklickt brauchst noch nicht mal was Skripten nur abtippen, siehe bereits oben (Screenshot u. DL), das speicherst du dir dann im Automator als *.app und schon hast du das Gewünschte per Doppelklick, was willst du mehr? Die Rufnummer die die Fritzbox intern klingeln lässt legt man ja schon in der Fritte fest.
Ich sehe dein Problem jetzt nicht. Klappt hier einwandfrei auf einer 7590 und auch auf einer 7490.
Die ganzen Tools machen auch nichts anderes als ich oben, simpler SOAP Request via uPnP an die entsprechende Funktion, mit der Rufnummer als Parameter.
Server-Nutzer
Server-Nutzer 07.09.2019 um 12:04:47 Uhr
Goto Top
Nagut, probiere da mal rum, Bin halt nicht so programmieraffin face-wink
Bin eher ambitionierter Nutzer.
Server-Nutzer
Server-Nutzer 07.09.2019 um 12:41:54 Uhr
Goto Top
Hm, im Automator kommt dann folgende Ausgabe bei Ergebnisse (habe die Sprachausgabe für Tests erst mal weggelassen:

(
  "<!DOCTYPE html>",  
  "<html>",  
  "<head>",  
  "<meta http-equiv=content-type content="text/html; charset=utf-8" />",  
  "<meta http-equiv="Cache-Control" content="private, no-transform" />",  
  "<meta http-equiv="X-UA-Compatible" content="IE=edge" />",  
  "<meta name="format-detection" content="telephone=no" />",  
  "<meta http-equiv="x-rim-auto-match" content="none" />",  
  "<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui" />",  
  "<meta name="mobile-web-app-capable" content="yes" />",  
  "<meta name="apple-mobile-web-app-capable" content="yes" />",  
  "<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />",  
  "<meta http-equiv="cleartype" content="on">",  
  "<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />",  
  "<link rel="apple-touch-icon" href="/css/rd/logos/logo_fritzDiamond.png" />",  
  "<link rel="apple-touch-startup-image" href="/css/rd/logos/logo_fritzDiamond.png">",  
  "<link rel="stylesheet" type="text/css" href="/css/rd/singleside_old.css"/>",  
  "<title>FRITZ!Box</title>",  
  "</head>",  
  "<body>",  
  "<div id="main_page_all">",  
  "<header class="" name="" id="blueBarBox">",  
  "<div class="blue_bar_titel" name="" id="blueBarTitel">FRITZ!Box</div>",  
  "</header>",  
  "<div id="page_content_no_menu_box">",  
  "<div class="area_box">",  
  "<div class="blue_bar_back" >",  
  "<div><h2>FRITZ!Box</h2></div>",  
  "</div>",  
  "<div class="page_content">",  
  "<p>Die angegebene URL wurde nicht gefunden. Sie werden auf die Startseite der FRITZ!Box weitergeleitet.</p>",  
  "<p>Falls Sie nicht automatisch auf die Startseite der FRITZ!Box weitergeleitet werden, klicken Sie <a href="/">hier</a>.</p>",  
  "<br>",  
  "</div>",  
  "</div>",  
  "</div>",  
  "</div>",  
  "<script>",  
  "window.setTimeout(function () {",  
  "window.location.href = "/";",  
  "}, 10000);",  
  "</script>",  
  "</body>",  
  "</html>"  
)

Also die URL würde nicht stimmen.

Der Shellscript-Code (einzige Änderungen: IP der Fritzbox statt fritz.box und Zugangsdaten/SSL-Port.
Rückfrage: Ist der SSL-Port die Zahl die unter Internet > Freigaben > FritzBox-Dienste > TCP-Port für HTTPS steht?

#!/bin/bash
# ------------------------
USERNAME='xyz'  
PASSWORD='abc123'  
SSLPORT=112233
# ------------------------
read -p "Geben sie die Telefonnummer ein:" number  

data=$(cat <<EOF
<?xml version="1.0"?>  
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">  
    <s:Body>
        <u:X_AVM-DE_DialNumber xmlns:u="urn:dslforum-org:service:X_VoIP:1">  
            <NewX_AVM-DE_PhoneNumber>${number}</NewX_AVM-DE_PhoneNumber>
        </u:X_AVM-DE_DialNumber>
</s:Body>
</s:Envelope>
EOF
)

curl -k --anyauth -u "${USERNAME}:${PASSWORD}" "https://192.168.178.1:${SSLPORT}/upnp/control/x_voip" -H 'Content-Type: text/xml; charset="utf-8"' -H 'SOAPAction:urn:dslforum-org:service:X_VoIP:1#X_AVM-DE_DialNumber' --data "$data"  
colinardo
colinardo 07.09.2019 aktualisiert um 14:40:05 Uhr
Goto Top
Automator hast du falsch angepasst. Da darf keine HTML Seite zurückkommen sondern nur XML Code.
SSLPORT=112233
Öhm du weißt aber schon das es nur 65535 Ports gibt ?!
Rückfrage: Ist der SSL-Port die Zahl die unter Internet > Freigaben > FritzBox-Dienste > TCP-Port für HTTPS steht?
Habe dir oben im ursprünglichen Beitrag die Skripte ergänzt, diese lesen jetzt den SSL-Port automatisch aus und du musst ihn nicht mehr angeben.

Oben genannte Einstellung für die Anwendungsfreigabe nicht vergessen!

Ansonsten Teamviewer ...
Server-Nutzer
Server-Nutzer 07.09.2019 aktualisiert um 14:48:14 Uhr
Goto Top
SSLPORT=112233: Ja klar, ist bei mir eine Zahl zwischen 10.000 und 20.000. Hatte das nur anonymisiert wie die Userdaten.

SSL-Port: ok, wollte nur sichergehen, da ich bezüglich SSL nirgends woanders was zum eintragen fand.

Programmieraffin: Hab ich ja jetzt auch so gemacht. Aber allein schon "Automator hast du falsch angepasst. Da darf keine HTML Seite zurückkommen sondern nur XML Code.", tja muss man halt wissen face-wink
Wo passe ich das denn an?

Dann teste ich weiter.

Zeitgleich hatte ich noch mit dem PHP-Script experimentiert und Deinem Automator-Script.
Die Rufnummernabfrage (dessen Ergebnis in $data) wollte ich im Automator an das PHP-Script übergeben:
/User/fb_tools.php Dial $data
ging nicht und
/User/fb_tools.php Dial "$data"  
leider auch nicht.

Dann hätte ich meine Lösung.

Danke Dir übrigens für Deine Mühen.
colinardo
Lösung colinardo 07.09.2019 aktualisiert um 14:52:22 Uhr
Goto Top
Skripte sind oben angepasst, Port musst du jetzt nicht mehr selbst ermitteln macht jetzt das Skript.
140913
140913 07.09.2019 aktualisiert um 14:59:15 Uhr
Goto Top
Gerade mal mit einer 7490 ausprobiert, klappt super! Danke dir @colinardo.
Server-Nutzer
Server-Nutzer 07.09.2019 um 15:16:47 Uhr
Goto Top
COOL. Nee, MEGACOOL!

Geht!

Hab dann den Automator Workflow noch als Automator Programm gespeichert, dann macht er genau das:
Doppelklick > Fenster fragt Rufnummer ab (Enter) > Anwahl startet und ich übernehme am DECT-Headset per Taste nur noch das initiierte Gespräch.

Super!

Schönen Dank, colinardo! Das hilft mir enorm weiter. Danke auch an die anderen für Input und Ideen.

Ich wünsche Dir und den anderen ein schönes Wochenende.
colinardo
colinardo 07.09.2019 aktualisiert um 16:17:51 Uhr
Goto Top
Zitat von @Server-Nutzer:
Ich wünsche Dir und den anderen ein schönes Wochenende.
Freut mich zu hören, wünsche euch ebenso ein angenehmes WE.