Hauptmenü

Modul 96_SIP

Begonnen von Wzut, 19 Februar 2017, 19:10:09

Vorheriges Thema - Nächstes Thema

plin

Hi,

wenn ich mich recht erinnere baut der SIP-Client eine Verbindung zur FB auf, registriert sich dort mit seinem Listener-Port und baut dann die Verbindung wieder ab. Will die FB den SIP-Client kontaktieren, spricht sie den registrierten Port an.

VG plin
FHEM1 (Main) Raspi4 mit CUL, Homematic, SDUINO 433/OOK, zentrale Steuerung
FHEM2 (Keller) x86 mit CUL/hmland, IP-basierte Module
FHEM3 (Erdgeschoss) Raspi2 mit SDUINO 868/GFSK
FHEM4 (Hausanschlussraum), USV und OBIS-Modul
FHEM5 (Docker) mit FHEM2FHEM, InfluxDB

Wzut

Zitat von: sweetie-pie am 23 August 2017, 23:17:43
Macht der Prozess  13982 einen lokalen Port 44864 auf den sich dann die Fritzbox verbinden müsste?
ja und der Pot ist per Zufall ausgewählt da manche User Probleme mit dem fixen Ports 5060  und 5070 hatten. Du solltest aber sip_port fest auf 5060 setzen und bitte die Anmerkung von sbiermann auf der vorherigen Seite beachten und Port 5060 und 5070 übergeben
Zitat von: sbiermann am 23 August 2017, 18:26:45
Macht hier das SIP Modul einen eigenen Port auf? Wenn ja muss dieser beim starten des Containers exposed werden, sonst ist der nur lokal innerhalb des Containers verfügbar aber nicht von außen erreichbar.

Wenn man nun in dem Modul den Port 5060 und 5070 eintragen kann als feste Ports und die IP des Wirtrechners (z.B. 192.168.2.110) dann sollte der FHEM Container zusätzlich zu den Webports noch -p 5060:5060 -p 5070:5070 als Startparameter bekommen um die Ports zu exposen.
Teste das bitte mal mit beiden IPs unter sip_ip und GANZ WICHTIG ändere bitte sip_from da du eine neue FB OS Version benutzt (steht so auch im Wiki ) :
   
Zitat
sip_from
Default ist sip:620@fritz.box für ältere Fritz!OS-Versionen. Ab 6.8 ist das Format sip:Benutzername@fritz.box.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

juliar

Hallo zusammen,

hab gestern mit etwas Krampf auch das SIP Modul auf meinem Raspberry mit Fritzbox soweit ans laufen bekommen. Aber ein Problem habe ich noch.

Wenn ich in FHEM ein "set siptest call telenr 30" absetze, klingelt das gewünschte Telefon. Wenn ich dran gehe höre ich ca. 5 Sekunden diverse Pieptöne und dann wird das Gespräch beendet. Ich möchte aber das das "Gespräch" 30 Sekunden aufrecht erhalten wird. Jemand eine Idee warum die Verbindung getrennt wird und wo die Pieptöne herkommen?

Danke und Gruß
Julia

Wzut

ja das steht so alles im Wiki https://wiki.fhem.de/wiki/SIP-Client
Wenn du Hilfe brauchst must du schon etwas konkreter werden was du mit dem Modul wirklich anstellen willst
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

juliar

OK, hatte das Wiki glaube ich fehlinterpretiert. Mit "Dauer" dachte ich es wäre die Gesprächsdauer gemeint. Aber wenn ich es richtig sehe ist es die Dauer wie lange es klingeln soll?

Ich möchte eine meiner Nummern anrufen, 30 Sekunden die Verbindung aufrechterhalten und die Verbindung wieder trennen. Gibt es eine Möglichkeit die "Gesprächsdauer" anzugeben ganz unabhängig von Texten/Tönen/Soundfiles?

Danke und Gruß
Julia

Wzut

#320
Zitat von: juliar am 26 August 2017, 09:28:54
wenn ich es richtig sehe ist es die Dauer wie lange es klingeln soll?
Nein , es ist die Überwachungszeit wie lange der ganze Vorgang max. dauern darf bis es als erfolgloser Versuch abgebrochen wird.
Mir erschliesst sich noch immer nicht der Sinn deines Vorhabens. Normalerweise lässt man sich vom Modul anrufen um entweder eine bestimmte Sound Datei sich vorspielen zu lassen oder eine gesprochene Textnachricht. Was bringt es wenn das Telefon klingelt, man abnimmt und dann 30 Sekunden Stille hört bis die Gegenstelle wieder auflegt ? Kannst natürlich machen , erzeuge dir 30 Sekunden "Sound of Silence" als alaw und übergebe die dem Call.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

juliar

Hallo Wzut,

OK, Danke. Jetzt habe ich verstanden wozu "Dauer" gedacht ist.  8)

Mit dem 30 Sekunden Stille File ist eine gute Idee. Auch hierfür Danke. Werde ich mal so testen.

Eine ganz andere Frage hätte ich noch: Wenn ich eine Nummer anrufen möchte die nach Abheben eine Pin-Eingabe benötigt, gibt es da eine Möglichkeit das mit dem SIP Modul zu übergeben? Beim Handy klappt das z.B. mit einem "P" zwischen Nummer und Pin (also z.B.: 03012345P1111). Das "p" scheint für pause zu stehen. Aber beim Test über das Modul schien mir das nicht zu klappen. Wobei ich nicht weiß ob es am Modul, an der Fritzbox, oder an meiner Unfähigkeit liegt.  ;)

Gruß
Julia

Wzut

ja das geht und hast du auch schon im ersten Versuch gemacht als du die Töne beim annehmen gehört hast.
Übergeben wird diese Codefolge nicht mit P1234 sondern wie im Wiki :) beschrieben mit
Zitatals DTMF-Sequenz angegeben werden. Diese mit einem Prefix '-' versehen werden, also z.B. -#47.
https://wiki.fhem.de/wiki/SIP-Client#Anruf_t.C3.A4tigen_und_DTMF-T.C3.B6ne_senden
wichtig wird dabei das Attribut sip_dtmf_send
ZitatBestimmt die Übertragungsart der angegebenen DTMF-Töne und bietet folgende Möglichkeiten:
    'audio': Es werden Audiotöne übermittelt
    'rfc2833': Es erfolgt eine Übertragung nach RFC2833 (für das menschliche Ohr weniger ansprechend)

Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

juliar

Ehrlich gesagt hatte mich das Wiki wieder etwas verwirrt. Erst heißt es "set <device> call <nummer> <dauer> <-tastenkombination>", Zeile drunter steht dann "Die Tastenkombination muss mit einem Minus (-) nach der Zielnummer folgen". Einmal also vor der Dauer und einmal soll es dahinter sein. Aber ich denke ich habe es hinbekommen.

Danke und Gruß
Julia

knodono

Hallo,
ich kann mit dem Modul bei einem ausgehenden Ruf DTMF Töne senden, ein Audiofile abspielen oder eine Text-zu-Sprache Nachricht ausgeben. Funktioniert alles gut. Was ich jetzt gerne hätte, wäre eine Kombination, also z.B. erst ein Audiofile abspielen und direkt anschließend DTMF Töne.
Ich würde das so gerne für meinen Türöffner einsetzen: erst eine "Begrüßungsmelodie" über die Sprechanlage und dann DTMF für den Türöffner.
Wenn ich nichts übersehen habe, ist das so bisher noch nicht möglich.

Gruß
Otto

Wzut

Richtig und es hat auch einen einfachen Grund : Es gab bisher einfach keine Anforderung dafür.
I.d.R. geht doch der eigentliche Rufaubau recht flott. Hast du mal versucht einfach zwei getrennte Aktionen direkt hintereinander auszuführen ? D.h. Audio File senden und dann  mittels notify Auswertung des call end direkt danach die DTMF Sequenz. Würde mich mal interessieren ob die Pause zwischen den beiden Aktionen überhaupt auffällt.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

knodono

Das funktioniert so ohne weiteres leider nicht. Der Grund ist vermutlich, dass die Türsprechanlage das Auflegen nicht schnell genug erkennt bzw. nicht schnell genug selbst auflegt.

plin

Wechselt die Tastenkombination? Vermutlich nein, wenn es sich um um die Kombination für den Türöffner handelt. Folglich ist alles Audio.

Also nehme den Text für die Willkommenansage auf, zeichen die DTMF-Töne auf und kopiere alles in ein Audiofile. Das kannst du dann abspielen.

VG plin
FHEM1 (Main) Raspi4 mit CUL, Homematic, SDUINO 433/OOK, zentrale Steuerung
FHEM2 (Keller) x86 mit CUL/hmland, IP-basierte Module
FHEM3 (Erdgeschoss) Raspi2 mit SDUINO 868/GFSK
FHEM4 (Hausanschlussraum), USV und OBIS-Modul
FHEM5 (Docker) mit FHEM2FHEM, InfluxDB

RaspiCOC

Hallo zusammen, ich meine ich habe alles zu TTS und SIP hier im Thread gelesen. Funktioniert soweit prima.

Aber, gibt es eine Möglichkeit eine Variable an den TTS zu übergeben? Dann könnte man Ansagen entsprechend dynamisieren.

z.B.
set MySIPNr call **610 30 !Achtung es wurde der Bewegungsmelder $DYNAMISCHER_TEXT ausgelöst.

Es könnte aber dann auch ein Reading ausgegeben werden.

set MySIPNr call **610 30 !Achtung die Kesseltemperatur beträgt nur noch [HM_403B31_T2.temperature] Grad.

Geht so was?

Wzut

#329
jein, d.h. direkt auf der Kommandozeile nicht, aber T2S will Text und ob dieser Text nun komplett von Hand geschrieben ist oder via Perl erst aus Teilen zusammen gebaut wird ist vollkommen wurscht.
Versuchs doch mal in einem notify ala
define n_test_call notify HM_403B31_T2:temperature:.* {fhem("set MySIPNr call **610 30 !Achtung die Kesseltemperatur beträgt nur noch ".$EVTPART1." Grad");}
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher