Skip to end of metadata
Go to start of metadata
AutorChristian Wörstenfeld
Logo

Status

STABLE

Versionv2019.02.12
Min. LB Version

LB 1.0

Download
Zweck

Das Text2SIP Plugin bietet die Möglichkeit, eine Sprachausgabe per Telefon zu realisieren.

Languages
Diskussionhttps://www.loxforum.com/forum/projektforen/loxberry/plugins
 Version History...

Inhalt



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_NUMBER- Rufnummer des zu benutzenden Teilnehmers im SIP-Proxy (z.B. der Fritz!Box)

  • SIPCMD_CALLING_USER_PASSWORD- 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_GUIDE- Wartezeit nach der Ansage in Millisekunden (für welche Zeit auf den Bestätigungscode gewartet wird) bevor das Plugin auflegt.

  • SIPCMD_CALL_RESULT_VI- 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.
  • Die Version v2019.02.12 und der Sourcecode sind auf GiHub verfügbar.

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.
  • Bitte 

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.

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 lauten, wobei X durch die Nummer der Ansage zu ersetzen ist.
    • Als Digitaleingang verwendennicht 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)

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
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. 

3 Comments

  1. Christian Wörstenfeld Super Plugin. Wie ist denn dein Nick im Loxforum? Hab noch eine Frage. (wink)

  2. Hallo Christian, funktioniert super auf einem Raspberry Pi. Aus welchen Gründen läuft das denn nicht in einer VM? Lässt sich das irgendwie doch lösen? Danke!