Neues Modul FB_SIP.pm, ein SIP-Client

Begonnen von wmeiners, 21 August 2015, 01:53:56

Vorheriges Thema - Nächstes Thema

AndreasB

Hallo,

ich habe mir in der Defintion ein Reading definiert. Dies steht standardmäßig auf 0. Wenn es klingelt, dann wird es auf 1 gesetzt, dann klingelt das Telefon für eine gewisse Zeit, anschließend wird gewartet und dann wieder auf 0 gesetzt.

Nicht schön, aber funktionell  :)


if (ReadingsVal("haustuer", "zaehler", 0) == 0) {   

      fhem 'setreading haustuer zaehler 1;  set haustuer call **9# 8; sleep 9; setreading haustuer zaehler 0';
     
    }


Andreas

en-trust

Ich habe auf meinem Rapi mal sudo cpan install Net::SIP eingegeben und er hat auch was gemacht... wie kann ich es nun testen ?

fiedel

Hallo,

habe gerade einen ersten Erfolg beim Testen der Audio- Funktion erzielt:

Dieses Script ins Homeverzeichnis geladen, dazu eine passende WAV- Datei und dann das Ganze abgeschickt. Ruf kommt an, Datei wird in recht guter Quali abgespielt und danach legt das Tool auf. Perfekt!
Nun muss das Ganze nur noch ins Modul wandern. Mal sehen ob ich das auch noch schaffe. Dauert wenn aber leider lange.


Download Script:
user1@debian:/home/user1# sudo wget https://gist.github.com/tupinek/6605090/archive/2567e7f2d2e903603d7c9a6a3a24e8be0e6b4782.zip

Entpacken mache ich mit dem MC

Test in der Shell:
user1@debian:/home/user1# sudo perl call.pl -R fritz.box -S /home/user1/Test.wav --username 620 --password voiptest 015201234567


Die Audiodatei wird z.B. mit Audacity hergestellt. Einstellungen: Mono, 8000 Hz, 16 Bit PCM , dann exportieren als "Andere unkompr. Dateien" WAV (Microsoft) mit A-Law Codec (bei Datei -> Exportieren -> Optionen).

Voraussetzungen sind die im Script verwendeten Perlmodule "Net::SIP" und "Getopt::Long" die so instaliert werden, wie in der Anleitung für das FB_SIP.pm Modul gezeigt.
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

om

Hallo Fiedel,

danke für die bis dahin noch offene Befehlszeile in Shell zum Nutzen der call.pl

Es klappt super!!!!!!!!!!!!!!

Dank Dir

Gruß

Oliver
FHEM 5.8 Odroid C2 : Homematic, FS20, Harmony, Alexa (alexa-fhem) IT, Max, LaCrosse, Hue, Sonos, ha-bridge, CO2, FRM, HMS, VCONTROL, 1-wire, FB7490

fiedel

Freut mich, bitteschön! Für mich ist es auch oft ein Krampf aus dem Usage- Text die richtige Syntax herauszulesen. Hier musste ich auch eine Weile probieren. Am meisten Tricky war aber die WAV- Datei: Mit einer normalen MP3 kam nur Rauschen und ich hatte erst versucht dem Net::SIP einen anderen Codec aufzuzwingen. Das geht aber offebar nicht. Der muss da fest eingebaut sein.
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

Wzut

Zitat von: fiedel am 12 Juni 2016, 20:54:13
Die Audiodatei wird z.B. mit Audacity hergestellt. Einstellungen: Mono, 8000 Hz, 16 Bit PCM , dann exportieren als "Andere unkompr. Dateien" WAV (Microsoft) mit A-Law Codec (bei Datei -> Exportieren -> Optionen).
oder direkt auf dem RasPi mit sox ( apt-get install sox )

sox <file>.wav -t raw -r 8000 -c 1 -e a-law <file>.alaw
bsp : sox test.wav -t raw -r 8000 -c 1 -e a-law test.alaw
da sox sehr viele Audio Formate kennt sollte sich beinahe alles nach PCM/8000 konvertieren lassen.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

fiedel

Das hatte ich auch schon gesehen, mich aber noch nicht näher damit beschäftigt. Was meinst du: Wäre es möglich, dass wir per TTS einen Text generieren lassen, diesen "zur Laufzeit" mit sox umwandeln und per Net::SIP abschicken?
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

distel

Hallo,

wirklich tolles module! Endlich kann ich meine Türklingel ohne Investition im 3-4stelligen Bereich sauber mit Bild der IP-Cam auf den Fritz-Fons signalisieren lassen (SIP-Nr als Türsprechanlage in der FritzBox angelegt, Livebild-URL zugewiesen)!  :D

Mir fallen da noch ein paar hübsche Erweiterungen ein:
- Definition von Kurzwahlzielen inkl. Auswertung ob grad ein Call dahin läuft (um das nicht auflegen zu vermeiden)
- Umbenennung, da eher SIP als FB - würde ja sicherlich mit jeder SIP Gegenstelle laufen
- Danke-Button zum Spenden ;)

Gruß
Dirk
NUC-I37100
Docker: eBus, fhem, ha-bridge, unifi
Hardware: Homematic, FS20, Somfy RTS, 1wire, FBAHA, enOcean

Wzut

Zitat von: fiedel am 13 Juni 2016, 21:05:15
Wäre es möglich, dass wir per TTS einen Text generieren lassen, diesen "zur Laufzeit" mit sox umwandeln und per Net::SIP abschicken?
sollte machbar sein , sox ist recht flott.
BTW: Ich habe das Modul auch seit ein paar Tagen in der Mache , mein Schwerpunkt lag/bzw. liegt aber nicht auf den senden von Audiodaten
sondern das ich fhem unter der Nummer anrufen kann und mit den den Telefon Tasten Kommandos schicke.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

hartenthaler

Das klappt ja ganz hervorragend! Hat auf meinem Raspi im Zusammenspiel mit der FritzBox auf Anhieb funktioniert und so kann fhem nun "nach Hause telefonieren". Super. Habt ihr das Abspielen eines Files schon in das Modul integriert? Super wäre tatsächlich die Nutzung von TTS ähnlich wie im Sonos-Modul.
fhem 5.8 auf RaspberryPi 3 mit HMLAN und CCU2, ZWave, JeeLink, FHZ1000 für FS20, HMS, Fritz!Box, Fritz!DECT200, Harmony, Sonos, hue, netatmo, SSCam, Wetter- und Verkehrsmodule, Chat-Bot mit RiveScript/Telegram, IFTTT, pushover, ...

distel

#70
Hallo zusammen,

hat schon jemand außer mir in die Fritte die neue Firmware 6.60 eingespielt? damit wird (bei mir) leider das registrieren an der Box als SIP Client mit der Fehlermeldung "registration error" beschieden...

Die Jungs von AVM erzwingen jetzt wohl "schwere" Passwörter, mien Passwort habe ich entsprechend geändert und wurde so auch akzeptiert. Dennoch klappt es nicht. Irgendwelche Ideen?

Edit:
Letztlich hat entfernen, Neustart, neu anlegen mit komplett neuen Passwort geholfen. Ggf. War auch nur das Passwort Schuld, das mit Teilen des Benutzernamens begann... Das Passwort (also das alte) ließ sich aber dennoch im ui der Fritz Box eingeben...

Wie auch immer: es klappt wieder!
NUC-I37100
Docker: eBus, fhem, ha-bridge, unifi
Hardware: Homematic, FS20, Somfy RTS, 1wire, FBAHA, enOcean

Hifi-Ear

Herzlichen Dank, Werner (wmeiners), super Modul, jetzt ist fhem voll zu gebrauchen!
Und solange es mit den Audiodateien noch nicht so recht funktioniert, behelfe ich mich mit dem Gebrauch von ein paar verschiedenen Telefonnummern zum Herausrufen. Damit werden dann unterschiedliche Alarme indiziert.

Gruß aus Karlsruhe,
Hifi-Ear
Raspberry Pi3 / Jessie: FHEM-Server 5.7
FS20 and HomeMatic (ca. 150 IOs)
FS20 on Contronics Homeputer since 2004

A.Harrenberg

Hallo,

ich nutze das Modul zusammen mit der FB7360 (an einer USV) und einen GSM-USB-Stick um auch im Fall von Stromausfall/Sabotage noch eine Alarmmeldung ausgeben zu können. Hierzu habe ich mir ein ein kleines Perl gestrickt das dann zusammen mit dem Callmonitor und diesem Modul hier nacheinander eine Reihe von Telefonnummern anruft, solange bis einer als Bestätigung rangeht (oder eine maximale Anzahl Versuche erreicht ist).

Anscheinend ist aber der Verbindungsaufbau über den USB-Stick zu langsam...

Ich habe momentan folgendes Verhalten:

Ich rufe über mein Skript quasi ein "set <device> call <number> <time>" auf -> Fritzbox wählt brav über voreingestellte Wahlregel über den GSM-Stick -> Telefon klingelt, ich geh aber nicht ran...
Skript erkennt Timeout an der Meldung "disconnect" vom Callmonitor und geht zu nächsten Rufnummer und ruft die an. Hier kommt im Callmonitor auf die Meldung "call", aber der Ruf geht nicht raus, die zweite Nummer klingelt nicht. Es wird dann trotzdem "disconnect" gesendet und die erste Nummer ist wieder an der Reihe. Die klingelt wieder und so weiter...

Wenn ich jetzt die Rufnummern so eintrage das ich abwechselnd über GSM-Stick und normale Leitung anrufe gehen alle Anrufe sauber raus.

Hat jemand vielleicht eine Idee was hier schiefläuft? Liegt das an der FritzBox, an dem NET::SIP??? Hat vielleicht auch jemand einen GSM-Stick an der FritzBox hängen und kann das Verhalten bestätigen?

Danke,
Andreas.
FB 7360, Homematic und ZWave
Support for ZWave-SECURITY

RaspiCOC

Ich habe das mit dem Abspielen des wav-files erfolgreich in des Shell getestet und dann in der FHEM-"Umgebung".

Dazu habe ich mir erst mal einen dummy angelegt (quasi on / off-Schalter). Sodann ein DOIF:

define TESTANRUF DOIF ([<dummy>] eq "on")(""sudo perl /opt/sipvoice/call.pl -R 192.168.1.1 -S /opt/sipvoice/Test.wav --username 620 --password voiptest 015201234567"")

Es wäre ja nun zu schön gewesen, wenn der Anruf auch angekommen wäre. Im FHEM-Lofile konnte ich den Aufruf sehen, nur leider ging kein Anruf raus. Woran könnte das liegen?

NB: Habe für diesen Test einen weiteren SIP Account in der Fritzbox angelegt, damit es nicht zu einer Rivalität zwischen Shell-Skript und FB_SIP kommt.

RaspiCOC

Kleine Ergänzung noch... Habe dann im Logfile gaaaaanz weit rechts den Fehlerhinweis "not found" entdeckt. Daraufhin habe ich den Shellaufruf um sämtliche Pfadangaben ergänzt. Sieht jetzt so aus:

sh: 1: /usr/bin/sudo /usr/bin/perl /opt/sipvoice/call.pl -R 192.168.1.1 -S /opt/sipvoice/ansage_low.wav --username 623 --password xxxxxxxxxx 010000000000

Dennoch wird weiterhin "not found" im Logfile ausgegeben. Woran kann das liegen?