Hi,
Ich habe mal wieder was gebastelt ;-)
Ziel war es per Fritzbox einen Anruf zu erhalten, wenn ein Ereignis eintritt.
Getestet mit einer 7490 und Telekom Universal IP Anschluss (Sollte aber auch mit anderen Anschlüssen funktionieren, da die Fritzbox selbst quasi ein Asterisk Server ist)
Todos bei der Fritzbox:
1. Anmelden
2. Links im Menü auf „Telefonie“ klicken
3. Dann auf „Telefonie Geräte“
4. Nun Rechts auf den Button „Neues Gerät einrichten“ anklicken
5. Hier „Telefon (mit und ohne Anrufbeantworter)“ auswählen und weiter klicken
6. Jetzt „LAN/WLAN (IP-Telefon)“ auswählen und einen Namen vergeben – dann weiter
7. Nun noch ein Kennwort festlegen und den Benutzernamen notieren und auf weiter klicken
8. Ausgehende Rufnummer auswählen und weiter klicken
9. nur Anrufe für folgende Rufnummern annehmen: auswählen und den Haken bei der / den Rufnummer/n entfernen
10. zum Schluss noch auf Übernehmen klicken – fertig.
Nun zum Linux:
Soundkarte muss vorhanden sein – Dummy Karte reicht (siehe ALSA)
SIPCMD installieren:
Git Branch herunterladen:
wget https://github.com/tmakkonen/sipcmd/archive/master.zip
die Zip entpacken, in das Verzeichnis wechseln und kompilieren (make)
die SIPCMD-Bin dann einfach ins /BIN/ Verzeichnis kopieren.
Dann ein paar Wav-Dateien aufnehmen oder mit TTS Tools (z.B.: espeak) erstellen.
Darauf achten das 8000 Hz Sample Rate verwendet wird. Sonst ruft euch ein Dalek (Daleks ? Wikipedia) an ;-)
Ich habe mir für jedes Event zudem ich angerufen werden möchte ein "Script" erstellt, welches ich dann in den Rules ausführen lasse:
/opt/openhab/etc/sipcalls/sip_call_fenster_hwr.sh
Inhalt:
Erklärung:
-u ist die Fritzbox Nebenstelle
-c ist das dazugehörige Passwort
-P ist das zu benutzende Protokoll (als SIP)
-w ist die SIP Domain und gleichzeitig der Name der Fritzbox
-x ist die Befehlskette für SIPCMD:
c= die Nummer die Angerufen werden soll
ws= Wartezeit in Millisekunden nach dem die Wavdatei abgespielt wird, wenn die Gegenstelle abgenommen hat.
V= name der Wave-Datei
H= auflegen wenn die Datei abgespielt wurde.
Item:
In einer Rule benutzen:
Das war's.
Wie immer kann man das bestimmt Eleganter Lösen ;-) Vorschläge sind immer Willkommen!
Ich habe mal wieder was gebastelt ;-)
Ziel war es per Fritzbox einen Anruf zu erhalten, wenn ein Ereignis eintritt.
Getestet mit einer 7490 und Telekom Universal IP Anschluss (Sollte aber auch mit anderen Anschlüssen funktionieren, da die Fritzbox selbst quasi ein Asterisk Server ist)
Todos bei der Fritzbox:
1. Anmelden
2. Links im Menü auf „Telefonie“ klicken
3. Dann auf „Telefonie Geräte“
4. Nun Rechts auf den Button „Neues Gerät einrichten“ anklicken
5. Hier „Telefon (mit und ohne Anrufbeantworter)“ auswählen und weiter klicken
6. Jetzt „LAN/WLAN (IP-Telefon)“ auswählen und einen Namen vergeben – dann weiter
7. Nun noch ein Kennwort festlegen und den Benutzernamen notieren und auf weiter klicken
8. Ausgehende Rufnummer auswählen und weiter klicken
9. nur Anrufe für folgende Rufnummern annehmen: auswählen und den Haken bei der / den Rufnummer/n entfernen
10. zum Schluss noch auf Übernehmen klicken – fertig.
Nun zum Linux:
Soundkarte muss vorhanden sein – Dummy Karte reicht (siehe ALSA)
SIPCMD installieren:
Git Branch herunterladen:
wget https://github.com/tmakkonen/sipcmd/archive/master.zip
die Zip entpacken, in das Verzeichnis wechseln und kompilieren (make)
die SIPCMD-Bin dann einfach ins /BIN/ Verzeichnis kopieren.
Dann ein paar Wav-Dateien aufnehmen oder mit TTS Tools (z.B.: espeak) erstellen.
Darauf achten das 8000 Hz Sample Rate verwendet wird. Sonst ruft euch ein Dalek (Daleks ? Wikipedia) an ;-)
Ich habe mir für jedes Event zudem ich angerufen werden möchte ein "Script" erstellt, welches ich dann in den Rules ausführen lasse:
/opt/openhab/etc/sipcalls/sip_call_fenster_hwr.sh
Inhalt:
Code:
sipcmd -u 621 -c geheimespasswort -P sip -w fritz.box -x "c012345678;ws500;vfenster_hwr.wav;h"
-u ist die Fritzbox Nebenstelle
-c ist das dazugehörige Passwort
-P ist das zu benutzende Protokoll (als SIP)
-w ist die SIP Domain und gleichzeitig der Name der Fritzbox
-x ist die Befehlskette für SIPCMD:
c= die Nummer die Angerufen werden soll
ws= Wartezeit in Millisekunden nach dem die Wavdatei abgespielt wird, wenn die Gegenstelle abgenommen hat.
V= name der Wave-Datei
H= auflegen wenn die Datei abgespielt wurde.
Item:
Code:
Switch SIPCALL_FENSTER_HWR "SipCall Fenster HWR INTERNAL" { exec="ON:/opt/openhab/etc/sipcalls/sip_call_fenster_hwr.sh"}
Code:
sendCommand(SIPCALL_FENSTER_HWR, ON)
Wie immer kann man das bestimmt Eleganter Lösen ;-) Vorschläge sind immer Willkommen!
Kommentar