FHEM Forum

FHEM - Entwicklung => Wunschliste => Thema gestartet von: forum-merlin am 09 April 2016, 16:13:06

Titel: VOIP Call Modul
Beitrag von: forum-merlin am 09 April 2016, 16:13:06
Hallo Developers!
Ich wünsche mir ein VOIP Call Modul.
Es soll dazu genutzt werden, dass man beispielsweise im Falle eines Feueralarms oder einer anderen Alarmauslösung einen VOIP Call via notify oder DOIF absetzen kann.

Ich habe schon hier im Forum gesehen, dass ich jemand damit befasst hatte, aber wegen der AVM Fritzbox Restriktionen ab 6.30 das Thema wohl vorbei ist.
Das war hier: https://forum.fhem.de/index.php/topic,26136.0.html (https://forum.fhem.de/index.php/topic,26136.0.html)

Dann habe ich noch etwas im Netz gesucht und hier einen netten Ansatz gefunden:
http://www.forum-raspberrypi.de/Thread-messen-steuern-regeln-alarmanruf-von-funksensoren-ausloesen-mit-fritzbox-bzw-sip-voip (http://www.forum-raspberrypi.de/Thread-messen-steuern-regeln-alarmanruf-von-funksensoren-ausloesen-mit-fritzbox-bzw-sip-voip)

Was ich an diesem Beispiel gut finde ist, dass man quasi einen SIP Client hat der sich an der Fritzbox als IP Telefon anmeldet.
Nachdem es hier schon so einige TTS Ansätze gibt, könnte der TTS Teil der Lösung ggf. recycled werden?


Ideal fände ich es wenn man dann in dem Modul noch einen Kurzwahlspeicher hinterlegen könnte, und eine Text Bibliothek
z.B.
Kurzwahl 1 bis 9
KW1=0891234567890
KW2=112
KW3=110
KW4=017..........

TTS Speicher 1-99
TTS1=Achtung, es wurde Feueralarm ausgelöst! Bitte informiere auch die Nachbarn!
TTS2=Heute ist ein schöner Tag!
TTS3=Guten Tag, mein Name ist <Name>, Bitte schicken Sie einen Löschtrupp in die Bahnhofstrasse 1 in 80245 München, es brennt im 1.OG eines 6 stöckigen Hochhauses
TTS4=Alarm! Terrassentür wurde geöffnet, aber niemand ist zuhause!

Und wenn man dann ein DOIF oder Notify definiert, könnte man ggf. sagen
([Rauchmelder:smoke_detect] eq "smoke-Alarm" ) (set VOIPCall callerevent KW2:TTS3)


Oder alternativ auch sowas wie ein Conference Call trigger
Erst werde ich angerufen, und mir wird TTS4 vorgelesen und dann wird als zusätzlicher Conference Teilnehmer die KW3(110) hinzugefügt, und ich kann direkt die Polizei informieren

Oder so in der Art halt.

Gruß

Holger
Titel: Antw:VOIP Call Modul
Beitrag von: betateilchen am 10 April 2016, 02:31:20
Solange es sip-clients gibt, die man per Befehlszeile bedienen kann, braucht es dazu kein eigenes Modul.
Titel: Antw:VOIP Call Modul
Beitrag von: Damu am 10 April 2016, 17:53:31
Habe dazu das gefunden:

http://www.jens-bretschneider.de/fhem-ruft-fritzbox/#more-705 (http://www.jens-bretschneider.de/fhem-ruft-fritzbox/#more-705)

und natürilich:

https://forum.fhem.de/index.php/topic,40219.0.html (https://forum.fhem.de/index.php/topic,40219.0.html)

Oder:

https://knx-user-forum.de/forum/supportforen/openhab/37542-%E2%88%9A-anruf-bei-event-%C3%BCber-fritzbox (https://knx-user-forum.de/forum/supportforen/openhab/37542-%E2%88%9A-anruf-bei-event-%C3%BCber-fritzbox)

Aber das mit der Sprachnachricht absetzen ist wohl nicht so einfach zu machen.

Titel: Antw:VOIP Call Modul
Beitrag von: betateilchen am 10 April 2016, 22:04:49
http://sipcmd.sourceforge.net
Titel: Antw:VOIP Call Modul
Beitrag von: lammy am 02 September 2017, 12:46:46
Hallo,

ich habe mir ein kleines Tool in myUtils geschrieben das einen geschriebenen Text per VoIP dann vor liehst. Es läuft ganz gut aber man kann es sicher optimieren. Wenn jemand Bock auf Optimieren hat kann er sich gerne melden. Ihr braucht natürlich ein paar tool auf dem debian server. espeak, sox und sipcmd. Dumm ist nur das FHEM hängt sobald der Anruf gestartet wird. Wenn jemand dafür ne schicke Lösung hat, wäre ich schon mal sehr dankbar :-)

hier ist der quellcode aus der myutils
######## VoIP Call mit sipcmd starten ############
######## Beispiel:
######## ({voipcall("Guten Tag hier ist Hans Wurst",'08003301000')})
sub
voipcall($$)
{
  my $text = shift;
  my $callnumber = shift;
  my $return_sipcmd = "";
  my $return_espeak = "";
  my $return_sox = "";
  my $ret = "";
  my $name = "FhemVoIP";
  my $konto = "user";
  my $passwrd = "passwort";
  my $provider = "1.1.1.1";
  my $protocol = "sip";
  my $audiofilefolder = "/opt/fhem/voip/messages/";
  my $audiofile = int(rand(9999-1));
  my $dateityp = ".wav";
  my $audiofileextentin = "_mono";
  my $clearcallident = "PlaybackAudioFile";
  Log 1, "-------- voipcall start --------";
  Log 1, "voipcall callnumber: $callnumber";
  Log 1, "voipcall Text: $text";
  Log 1, "voipcall Filename: $audiofile$dateityp";
  Log 1, "voipcall Debug Filename/Folder/Extention: $audiofilefolder$audiofile$dateityp";

  ####### espeak auführen #######
  $return_espeak .= qx(espeak '-vde+m4'  '$text' '-b 1' '-w $audiofilefolder$audiofile$dateityp');
  Log 1, "voipcall espeak returned: $return_espeak";
  ####### sox auführen #######
  $return_sox .= qx(sox '$audiofilefolder$audiofile$dateityp' '-b 16' '-c 1' '-r 8000' '$audiofilefolder$audiofile$audiofileextentin$dateityp');
  Log 1, "voipcall sox returned: $return_sox";

  ####### sipcmd auführen #######
  #system "echo sipcmd -P $protocol -u $konto -c '$passwrd' -w $provider -x 'c$callnumber;ws10000;$audiofilefolder$audiofile$audiofileextentin$dateityp;h'";
  $return_sipcmd .= qx(sipcmd -P $protocol -u $konto -c '$passwrd' -w $provider -x 'c$callnumber;ws1000;v$audiofilefolder$audiofile$audiofileextentin$dateityp;h' &);
  #system "sipcmd -P $protocol -u $konto -c '$passwrd' -w $provider -x 'c$callnumber;ws1000;v$audiofilefolder$audiofile$audiofileextentin$dateityp;h' &";
  $return_sipcmd =~ s,[\r\n]*,,g;    # remove CR from return-string
  ###### Prüfung ob die Konsolenausgabe von sipcmd die in die Variable $return_sipcmd geleitet wurde ein bestimmtes Wort enthält
  if(index($return_sipcmd,$clearcallident) > 0){
    Log 1, "voipcall sipcmd returned: call finished correctly";
  }
  else{
    Log 1, "voipcall sipcmd returned: call failed";
  }

  ####### Bereingung von nicht benötigten Dateien #######
  system "rm '$audiofilefolder$audiofile$dateityp' &";
  system "rm '$audiofilefolder$audiofile$audiofileextentin$dateityp' &";
  Log 1, "voipcall cleaning: nicht benoetigte Dateien wurden geloescht";
  Log 1, "-------- voipcall end --------";
}

Titel: Antw:VOIP Call Modul
Beitrag von: spooy99 am 02 September 2017, 17:38:59
Hallo, warum nicht mit dem Modul SIP von Wzut:

siehe https://forum.fhem.de/index.php/topic,67443.0.html
(https://forum.fhem.de/index.php/topic,67443.0.html)
oder https://wiki.fhem.de/wiki/SIP-Client
(https://wiki.fhem.de/wiki/SIP-Client)