Metainformationen zur Seite
Plugin-Daten | |
---|---|
Autor | Christian Wörstenfeld |
Logo | |
Status | STABLE |
Version | 2024.6.24 |
Min. LB Version | 1.0 |
Release Download | https://github.com/Woersty/LoxBerry-Plugin-Text2SIP/archive/refs/tags/2024.06.24.zip |
Beschreibung | Das Text2SIP Plugin bietet die Möglichkeit, eine Sprachausgabe per Telefon zu realisieren. |
Diskussion | https://www.loxforum.com/forum/projektforen/loxberry/plugins |
Text2SIP
Aufgabe des Plugins
- Das Text2SIP Plugin von Christian Wörstenfeld bietet die Möglichkeit, eine Sprachausgabe per Telefon zu realisieren.
- Hierbei verwendet das Plugin einen Text welcher mit einer synthetischen Stimme am Telefon vorgelesen wird.
- Parallel können MFV-Ziffern am Telefon gedrückt werden, welche über das Plugin an eine http://-Adresse weitergeleitet werden können.
- Es können Werte aus dem Miniserver ausgelesen werden, welche in den Text durch die Eingabe von
##
einmalig eingefügt werden können. - Es ist möglich, durch die Eingabe eines vorher definierten MFV-Codes aufzulegen.
Mögliche Einsatzgebiete
- Signalisierung bei Betätigung des Klingelknopfes
- Benachrichtigung bei Alarmen
- Ansagen von Werten oder Zuständen
- …
Konfigurationsoptionen
- PLUGIN_USE - Schaltet die Funktion des Plugins ein oder aus.
- DEBUG_USE - Legt fest, wie ausführlich die Einträge in der Protokolldatei sind.
- LAST_ID=1 - Merker für die zuletzt vergebene Ansagen-ID.
Die Nummern zählen immer hoch und sind nach Löschen einer Ansage nicht mehr fortlaufend, damit jede Ansagen-ID unverwechselbar bleibt.
- P2W_langX - Sprache für die Aussprache der Ansage X
- P2W_TextX - Zu sprechender Text der Ansage X
- SIPCMD_CALLING_USER_NAMEX - Name für Displayanzeige bei Internanrufen
- SIPCMD_CALLING_USER_NUMBERX - Rufnummer des zu benutzenden Teilnehmers im SIP-Proxy (z.B. der Fritz!Box)
- SIPCMD_CALLING_USER_PASSWORDX - Paßwort des zu benutzenden Teilnehmers für die Anmeldung am SIP-Proxy
- SIPCMD_SIP_PROXYX - IP Adresse oder Hostname des SIP-Proxy (z.B. fritz.box)
- SIPCMD_CALLED_USERX - Rufnummer welche angerufen werden soll. (z.B. intern **611 oder 03055151230 für eine Nummer in Berlin)
- SIPCMD_CALL_PAUSE_BEFORE_GUIDEX - Pause nach Abheben in Millisekunden, bevor die Ansage abgespielt wird.
- SIPCMD_CALL_PAUSE_AFTER_GUIDEX - Wartezeit nach der Ansage in Millisekunden (für welche Zeit auf den Bestätigungscode gewartet wird) bevor das Plugin auflegt.
- SIPCMD_CALL_RESULT_VIX - WebAdresse, welche bei MFV-Eingaben aufgerufen wird. (z.B. http://LoxAdmin:loxPass@miniserver:80/dev/sps/io/Text2SIP_X/)
Es kann im Miniserver ein virtueller Eingang mit der Bezeichnung Text2SIP_X für die entsprechende Ansage angelegt werden.
Wenn Ziffern (MFV) gedrückt werden, werden diese sofort an den Miniserver weitergeleitet. Nach Anrufende wird eine 0 gesendet.
- SIPCMD_CALL_TIMEOUTX - Maximale Rufdauer bevor der Anruf abgebrochen wird. Empfehlung: zwischen 30 - 120 Sekunden
- SIPCMD_MSINFOX - Adresse des Miniserver-Wertes, welcher ausgelesen werden soll. z.B:
http://Loxberry:pass@miniserver:80/dev/sps/io/KGI2.4.8/state
- SIPCMD_CONFIRMATION_DIGITX - MFV Zeichen zum sofortigen Auflegen (0 bis 9 und * oder #)
- Alle Optionen werden automatisch vom Webinterface gesetzt.
Download
- Das alte Plugin für LoxBerry 0.2.3/0.2.4 ist noch hier: Version 0.7a erhältlich.
Updates
- Ab Version v2018.2.1 bietet das Plugin automatische Updates bei Änderungen.
- Die Prüfung erfolgt 1x pro Woche, wenn aktiviert.
Installation
- Das Plugin wird über die Plugin-Verwaltung des LoxBerry installiert und benötigt einen Neustart nach der Installation.
- Die Installation dauert einige Minuten - bitte Geduld.
Voraussetzungen
- Für die Verwendung des Plugins muss ein SIP-Proxy zur Verfügung stehen, an dem sich das Plugin als SIP-User anmelden kann.
- Beispiel Fritz!Box 7490:
- Links im Menü Telefonie und dann Telefoniegeräte anklicken
- Rechts die Taste Neues Gerät einrichten anklicken
- Option Telefon (mit und ohne Anrufbeantworter) auswählen und Weiter anklicken
- Option LAN/WLAN (IP-Telefon) auswählen und bei 3. optional einen Namen - z.B. LoxBerry - eingeben, dann Weiter anklicken
- Angezeigte Daten für Registrar (Proxy) und Benutzername merken und komplexes Kennwort vergeben + merken und Weiter anklicken
(das Passwort darf aktuell kein Anführungszeichen (") enthalten)
- Rufnummer für abgehende externe Anrufe auswählen und Weiter anklicken
- Ankommende Anrufe werden nicht benutzt, also nur Anrufe für folgende Rufnummern annehmen auswählen und alle Haken entfernen, danach Weiter anklicken
- Jetzt Übernehmen anklicken
- Anschließend die Daten in das Plugin eintragen.
Einrichtung der Anrufauslösung in der Loxone Config
- Es wird ein virtueller Ausgang in der Loxone Config erstellt.
- Als Adresse wird der LoxBerry angegeben z.B.
http://LoxBerry
- Dann wird ein virtueller Ausgang Befehl in der Loxone Config erstellt.
- Als
Befehl bei EIN
wird das Plugin eingetragen z.B./plugins/text2sip/?mode=make_call&vg=
X
wobei X durch die Nummer der Ansage zu ersetzen ist. - Ab Version 2020.7.17 gibt es eine neue tss Option beim Aufruf. Es wird dann am Ende noch
&tts=Irgend ein vorzulesender Text
angehängt,
durch den das Plugin dann das ## in der Ansage ersetzt, wenn das Plugin keine Werte vom Miniserver lesen kann oder im Plugin ganz unten bei
"URL um Wert vom Miniserver einzulesen" nur tts
eingetragen ist. Das funktioniert nicht in der Admin-Oberfläche beim Hörer (Test) Icon!
Pausen
- Um Pausen einzufügen kann man Punkte verwenden.
- Beispiel:
Alarm! . ## bestätigen mit 2 . . Alarm! . ## bestätigen mit 2 . .
Einrichtung der MFV-Auswertung in der Loxone Config (optional)
- Es wird ein virtueller Eingang in der Loxone Config erstellt.
- Die Bezeichnung des Eingangs sollte
Text2SIP_
X
Als Digitaleingang verwenden
nicht anhaken- Einheit
<v>
Anzeige - nur Statusanzeige
anhaken.
- In der Plugin-Adminseite muss bei
Aufruf folgender Adresse nach Anruf
z.B. folgendes eingetragen werden:http://LoxUser:loxpass@miniserver:80/dev/sps/io/Text2SIP_
X
/
(Der Schrägstrich am Ende ist wichtig und danach darf kein Zeichen mehr folgen)
Hinweise zu den Optionen MSINFO und CONFIRMATION_DIGIT
SIPCMD_MSINFOX
- Adresse des Miniserver-Wertes, welcher ausgelesen werden soll.
Beispiele:
http://Loxberry:pass@miniserver:80/dev/sps/io/KGI2.4.8/state
oder
http://
Loxberry:pass@miniserver:80
/dev/sps/io/Pr%C3%A4senz%20Haus/state
An dieser Stelle kann der Anschlussname z.B. KGI2.4.8 so wie er ist - oder die Bezeichnung z.B. "Präsenz Haus" als URL-codiert eingegeben werden.
Vom Plugin wird dann der Wert bei value
benutzt: <LL control="dev/sps/io/Präsenz Haus/state" value="
Arbeitszimmer/Büro
" Code="200"/>
SIPCMD_CONFIRMATION_DIGITX
- MFV Zeichen zum sofortigen Auflegen (0 bis 9 und * oder #)
Wenn die Funktion nicht benutzt werden soll, irgendetwas anderes als 0 bis 9 oder * oder # eingeben. z.B. -
Das Zeichen wird an den Miniserver gesendet - wenn konfiguriert - und dann wird sofort aufgelegt.
Bei "-" werden alle MFV Zeichen wie eingegeben an den Miniserver versendet, bis vom Angerufenen aufgelegt wird oder die Zeit SIPCMD_CALL_PAUSE_AFTER_GUIDE
abgelaufen ist.
Funktion des Plugins
- Das Plugin generiert aus dem auf der Plugin-Adminseite eingegebenen Text eine entsprechende Ansage, ruft die vorgegebene Rufnummer an und spielt die Ansage vor.
- Wenn z.B. eine Fritz!Box verwendet wird, können auch interne Rufnummern verwendet werden. z.B.
**611
- Man hat die Möglichkeit, die Ansage mit MFV-Ziffern zu bestätigen oder damit einen Türöffner, Licht oder sonstwas zu schalten.
- Am Ende des Anrufs wird immer eine 0 an den virtuellen Eingang gesendet. (Wenn die Funktion benutzt wird)
Beispiel für die Alarmierung per Telefon und Quittierung per Ziffer
- Hier möchte ich ein Anwendungsbeispiel für eine Alarmierung per Telefon vorstellen.
- Zuerst wird die Konfiguration in der Loxone Config vorgenommen.
Schritt 1: Anlegen des virtuellen Ausgangs für die LoxBerry Kommunikation.
-Bei Adresse die IP oder den Namen des LoxBerrys eintragen z.B. http://loxberry
-Sollte schon ein solcher virtueller Ausgang existieren kann dieser verwendet werden.
Schritt 2: Virtueller Ausgang Befehl anlegen
-Bei Bezeichnung Alarmgrund eintragen siehe auch Schritt 10!
-Bei Befehl bei EIN die Ansage des Plugins eintragen z.B. /plugins/text2sip/?mode=make_call&vg=1&tss=Keine Information
-Als Digitalausgang verwenden nicht aktivieren
Schritt 3: Den Virtuellen Ausgang Befehl mit TQa der Alarmanlage verbinden
Schritt 4: Virtuellen Eingang anlegen
-Bei Bezeichnung Text2SIP_1 eintragen - siehe auch Schritt 8!
-Bei Maximaler Wert 9 eintragen
-Als Digitalausgang verwenden nicht aktivieren
Schritt 5: Statusbaustein einfügen
- Eingang AI1 mit den Virtuellen Eingang verbinden
- Ausgang AQ mit dem Eingang C der Alarmanlage verbinden
-1. Regel I auf AI1 und V1 auf == und Wert auf die gewünschte Ziffer für die Quittierung z.B. 2 und Statuswert auf 1
-2. Regel Statuswert auf 0
Noch nicht speichern.
- Jetzt wird das Plugin konfiguriert.
Schritt 6: Ansage anlegen wie auf dieser Seite beschrieben
Schritt 7: Zu lesender Text: Alarm! . ## bestätigenn mit
2
. . Danke
Schritt 8: Bei Aufruf folgender Adresse nach Anruf: http://Loxberry_Benutzer_am_Miniserver:Loxberry_Benutzerpasswort_am_Miniserver@deinminiserver:80/dev/sps/io/Text2SIP_1/ siehe auch Schritt 4
Schritt 9: Bei Bestätigungs-Ziffer z.B. 2 eintragen - siehe auch Schritt 2 und 5.
Schritt 10: Bei URL um Wert vom Miniserver einzulesen: http://Loxberry_Benutzer_am_Miniserver:Loxberry_Benutzerpasswort_am_Miniserver@deinminiserver:80/dev/sps/io/Alarmgrund/state siehe auch Schritt 2
- Überprüfen der Ansagenummer bei Schritt 2 (vg=<Ansagenummer>)
- Anzurufene Nummer eingeben - ich habe z.B. mein Handy eingetragen. (Intern im Video nur als Beispiel)
- Speichern am LoxBerry und Miniserver
Ergebnis:
Fehler melden / Fehlersuche / Troubleshooting
Das Plugin hat eine LogDatei.
Klingt die Ansage bei internen Anrufen stark verzerrt / übersteuert, bitte prüfen, ob die Einstellung HD-Telefonie deaktiviert ist. (z.B. beim DECT Gerät in der Fritz!Box)
Tritt der Fehler "EndedByNoUser
" auf, bitte überprüfen ob die Paßwortlänge passt. Die Anforderungen haben sich geändert.
Das Plugin kann über einen Web-Aufruf angesprochen werden.
http://LoxBerry/plugins/text2sip/?mode=make_call&vg=1
- Aufruf-Beispiel für Ansage 1
Fehlerberichte bitte direkt im Repository auf GitHub melden.
Fragen bitte im loxforum stellen.
Sonderfall Nexxt Mobile
Dem Benutzer Datenkrake156 fiel auf, dass bei der Konfiguration des Plugins genau nach Anweisung für eine SIP Rufnummer bei Nexxt Mobile (über Vodafone-Kabelanschluß) eine grüne Meldung von der Warteschleife erschien, in der Fritz-Box aber kein ausgehender Anruf angezeigt wurde.
Ein Test mit einem Anruf auf eine "normale" Festnetznummer war jedoch erfolgreich. Ursache war, dass nach der Wahl der Rufnummer erst eine Ansage mit dem Minutenpreis für diesen Anruf abgespielt und dann erst durchgewählt wird.
Das bringt Probleme mit dem Defaultwert von Pause vor Ansage. Wird dieser Wert auf 5000 ms hochgesetzt, kann dies helfen.
Bekannte Probleme
Das Plugin wird mit einem vorkompilierten sipcmd Binary ausgeliefert. Dies läuft unter Umständen auf deinem Loxberry nicht. Entweder meldest du das Problem dann auf GitHub und ich kompiliere das Plugin für die letzte Linux Version neu oder du kompilierst es selbst.
Weiterhin funktioniert es standardmäßig nicht in Loxberry-VMs (Virtuellen Maschinen).
Folgende Schritte sind für eine Neukompilierung nötig:
Recompile Quelle erweitern
apt-get update apt-get upgrade apt-get install libopal-dev libpt-dev wget unzip build-essential mkdir /opt/loxberry/sipcmd cd /opt/loxberry/sipcmd wget https://github.com/Woersty/sipcmd/archive/master.zip unzip master.zip cd sipcmd-master/ make clean # optional, wenn vorher schon mal make gemacht wurde make cp /opt/loxberry/sipcmd/sipcmd-master/sipcmd /opt/loxberry/webfrontend/cgi/plugins/text2sip/bin/ chown loxberry:loxberry /opt/loxberry/webfrontend/cgi/plugins/text2sip/bin/sipcmd chmod 755 /opt/loxberry/webfrontend/cgi/plugins/text2sip/bin/sipcmd cp libopal.so.3.10.10 /usr/lib/ chmod 644 /usr/lib/libopal.so.3.10.10 cp libpt.so.2.10.11 /usr/lib/ chmod 644 /usr/lib/libpt.so.2.10.11 cp libspeexdsp.so.1 /usr/lib/ chmod 644 /usr/lib/libspeexdsp.so.1 cp libcapi20.so.3 /usr/lib/ chmod 644 /usr/lib/libcapi20.so.3 cp libodbc.so.2 /usr/lib/ chmod 644 /usr/lib/libodbc.so.2 cp libopal.so.3.10.10 /usr/lib/ chmod 644 /usr/lib/libopal.so.3.10.10 cp libpt.so.2.10.11 /usr/lib/ chmod 644 /usr/lib/libpt.so.2.10.11 cp libspeexdsp.so.1 /usr/lib/ chmod 644 /usr/lib/libspeexdsp.so.1 cp libcapi20.so.3 /usr/lib/ chmod 644 /usr/lib/libcapi20.so.3 cp libodbc.so.2 /usr/lib/ chmod 644 /usr/lib/libodbc.so.2 rm /opt/loxberry/config/plugins/text2sip/modify.me apt-get purge libopal-dev libpt-dev rm -rf /opt/loxberry/sipcmd
Das Plugin überträgt ggf. die Authentifizierungsdaten für den Miniserver in leserlicher Form im Netzwerk. Wer Zugriff auf das Netzwerk hat, könnte die Daten möglicherweise mitlesen.
Es sollte ein Benutzer mit eingeschränkten Rechten verwendet werden.