Hauptmenü

Modul 96_SIP

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

Vorheriges Thema - Nächstes Thema

Wzut

OK, mit dem Audiofiles war ich eh auf dem Holzweg.
Schau dir doch bitte mal den Quelltext des Moduls an (egal welche Version )
so um die Zeilen Nr 1300 müsstest du folgenden Code Block finden :

if (AttrVal($name,"sip_listen", "none") eq "dtmf")
{
     $hash->{dtmf} = 0;
     $dtmfloop     = 0; # Ende-Flag für die DTMF-Schleife
     $okloop       = 0; # Ende-Flag für die OK-Ansage
     $okloopbye    = 0; # Ende-Flag für recv_bye während der OK-Ansage
     $byebye       = 0; # Anrufer hat aufgelegt
     
     #BlockingInformParent("SIP_rBU", [$name, "caller:none|caller_state:waiting"], 0);

     while(1)
     {
     my $call;
     $hash->{dtmf}         = 0;
     $hash->{dtmf_event}   = "";
     $hash->{old}          ="-";


setze da bitte mal $byebye = 0; direkt hinter my $call :

while(1)
     {
     my $call;
     $byebye =0;
     $hash->{dtmf}         = 0;


speichern , reload 96_SIP , und set <name> reset
Das Problem sollte damit hoffentlich vom Tisch sein
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

tpm88

Zitat von: Wzut am 20 Juli 2018, 20:03:17
Das Problem sollte damit hoffentlich vom Tisch sein

Allerdings. Jetzt funktioniert der automatische Hangup zuverlässig.

Danke & Gruß
Tobias
Test FHEM Server on RPi, CUL_HM
Prod FHEM Server on Odroid HC1, HM-USB, JeeLink
Devices: diverse HM, IT1500, 1wire, LaCrosse, MQTT

Wzut

Ich habe die Version im Posting #654 gegen eine nochmal überarbeitete Version 1.85 ausgetauscht.
Es wäre wirklich schön wenn ausser plin sich noch andere User zum testen erbarmen könnten ..... :(
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

tpm88

Auch V1.85 arbeitet in meinem Szenario listen_dtmf einwandfrei.
Test FHEM Server on RPi, CUL_HM
Prod FHEM Server on Odroid HC1, HM-USB, JeeLink
Devices: diverse HM, IT1500, 1wire, LaCrosse, MQTT

det.

Zitat von: Wzut am 22 Juli 2018, 20:06:14
Ich habe die Version im Posting #654 gegen eine nochmal überarbeitete Version 1.85 ausgetauscht.
Es wäre wirklich schön wenn ausser plin sich noch andere User zum testen erbarmen könnten ..... :(
na ja, es gibt eben User, die nutzen das Modul komplett anders. Seit dem Update legt SIP nicht mehr automatisch auf... Zum Glück öffnet und schließt mein Hof und Garagentor noch nach Anruf der jeweiligen Nummer, nur muss ich aktuell den Anruf von Hand beenden. Das ging vorher automatisch. Da ist die Motivation neue Funktionen zu testen sehr sehr gering, sorry
LG
det.

Wzut

Zitat von: det. am 30 Juli 2018, 20:25:34
Seit dem Update legt SIP nicht mehr automatisch auf...
Geht es vllt. etwas genauer ? Wann genau bei einem ausgehenden Ruf oder in einem der Listen Modi ? und wenn Listen welcher ?
Ein Log Auszug mit verbose 5 wäre ebenfalls hilfreich.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

det.

klar geht es genauer - sorry. SIP lauscht auf ankommenden Anruf von berechtigter Mobilnummer - jeweils eine MSN (Auf/Zu) nur für diesen Zweck reserviert. Daz Ziel ist nur das Event Anruf - danach spielt es das Audio File ab und legte sofort danach automatisch auf - bisher...

defmod TELEFON SIP
attr TELEFON T2S_Timeout 1
attr TELEFON history_file ./log/TELEFON.sip
attr TELEFON history_size 0
attr TELEFON sip_audiofile_wfp ./cache/speech.alaw
attr TELEFON sip_call_audio_delay 2
attr TELEFON sip_dtmf_loop once
attr TELEFON sip_dtmf_send audio
attr TELEFON sip_dtmf_size 1
attr TELEFON sip_elbc no
attr TELEFON sip_filter ***
attr TELEFON sip_from sip:***@fritz.box
attr TELEFON sip_ip ***
attr TELEFON sip_listen wfp
attr TELEFON sip_port 44000
attr TELEFON sip_registrar ***
attr TELEFON sip_ringtime 1
attr TELEFON sip_user ***
attr TELEFON sip_waittime 1
attr TELEFON verbose 0

setstate TELEFON listen_wfp
setstate TELEFON 2017-09-14 18:52:45 call done
setstate TELEFON 2017-09-14 18:52:45 call_state peer hangup
setstate TELEFON 2017-09-14 18:52:45 call_success 0
setstate TELEFON 2017-09-14 18:52:45 call_time 11.7305119037628
setstate TELEFON 2018-07-31 08:48:58 caller none
setstate TELEFON 2018-07-31 08:48:58 caller_name ---
setstate TELEFON 2018-07-31 08:48:58 caller_nr ---
setstate TELEFON 2018-07-31 08:48:58 caller_state hangup
setstate TELEFON 2018-07-31 08:48:58 caller_time 27
setstate TELEFON 2018-07-31 08:52:42 expire 300
setstate TELEFON 2018-07-31 08:52:42 listen_alive 4326
setstate TELEFON 2018-07-31 08:52:42 state listen_wfp
Aufruf mit:defmod Garagecall notify TELEFON:.***.* set TELEFON fetchbei eingehemden Anruf öffnet (schliesst) das Tor:defmod callGarage DOIF ([CALL:internal_number] eq "***" and [?CALL:external_number] eq "***" and  [?rr_***:location] eq "home")  (set HofTor auf,set RollTor auf)
attr callGarage DbLogExclude .*
attr callGarage do always

setstate callGarage cmd_1
setstate callGarage 2018-07-31 08:48:58 Device CALL
setstate callGarage 2018-07-31 08:48:58 cmd 1
setstate callGarage 2018-07-31 08:48:58 cmd_event CALL
setstate callGarage 2018-07-31 08:48:58 cmd_nr 1
setstate callGarage 2018-07-31 08:48:58 e_CALL_internal_number ***
setstate callGarage 2018-04-16 09:08:06 mode enabled
setstate callGarage 2018-07-31 08:48:58 state cmd_1

Die einzige LOG Ausgabe dazu nach dem Update:2018.07.30 07:51:56 1: configfile: TELEFON: unknown attribute event-on-change-reading. Type 'attr TELEFON ?' for a detailed list.
LG
det.

Wzut

OK, ich fang mal hinten an:
  unknown attribute event-on-change-reading
ja da ist in Zeile 115 nach phonebook ein Komma statt einem Punkt  - sorry mein Fehler ändere ich sofort heute Abend :(
Warum du allerdings nicht mehr im Log siehst liegt an deinem verbose 0 statt 5 :)

OK, Betriebsart listen_wfp mit Ausgabe eines Audiofiles ./cache/speech.alaw nach fetch.
Verwendet wird noch sip_filter ?  Ich gehe mal davon aus da steht u.A. deine Handy Nr da sie zu den Berechtigten gehört.
schaue ich mir auch nochmal an obwohl ich denke an wfp (im Gegensatz zu dtmf) nichts geändert zu haben.

Eine Anmerkung noch : ein notify und ein DOIF wäre mir persönlich zu umständlich, ich würde das in einem erledigen.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

det.

Zitat von: Wzut am 31 Juli 2018, 11:17:25
...Eine Anmerkung noch : ein notify und ein DOIF wäre mir persönlich zu umständlich, ich würde das in einem erledigen.
Da hast Du recht, allerdings sind das 6 DOIF (eins für jedes berechtigte iPhone (3 Stück) mit Überprüfung der Anwesenheit des Besitzers und der MSN für AUF oder ZU) und 2 notify (für AUF und ZU). Da hatte ich wenig Motivation das besonders schön zu komprimieren.
Fakt ist nur, das es ewig bis zum letzten Update prima funktioniert hat. Wenn ich es jetzt umschreiben muss ist das auch nicht schlimm, aber nach mehrfachem Lesen der Commandref und des WIKI habe ich keine Idee wie...Wenn unbedingt zur Suche nötig kann ich verbose für diesen Fall mal auf 5 setzen.
LG
det.

Wzut

#669
Zitat von: det. am 31 Juli 2018, 13:59:27
Wenn unbedingt zur Suche nötig kann ich verbose für diesen Fall mal auf 5 setzen.
Wenn es bei mir geht wirst du es wohl tun müssen, aber warten wir mal ab.

Edit :
defmod Garagecall notify TELEFON:.***.* set TELEFON fetch
Könnte es vllt sein das dein notify nicht mehr greift ? Brauchen tust du es ja nur um die das Gespräch zu beenden, da könntest du auch gleich  set TELEFON fetch noch als drittes Kommando in dein DOIF packen.
Kannst du das notify bitte mal nicht ganz so schwer lesbar (die ganzen * ) posten ? Wenn da eine Handynr. vorkommt ersetze sie halt durch 0815 oder 4711.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

det.

Zitat von: Wzut am 31 Juli 2018, 14:09:16
... um die das Gespräch zu beenden, da könntest du auch gleich  set TELEFON fetch noch als drittes Kommando in dein DOIF packen.
Prima, Idee. Gesagt - getan, aber daran lag es nicht. Habe das jetzt eben bei einem Anruf in FHEM beobachtet: fetch erscheint als event, aber der Anruf wird nicht beendet. Habe mal den Eventmonitor aufgezeichnet für einen Anruf:2018-07-31 16:24:07 DOIF callGarage_ZU cmd_nr: 1
2018-07-31 16:24:07 DOIF callGarage_ZU cmd: 1
2018-07-31 16:24:07 DOIF callGarage_ZU cmd_event: CALL
2018-07-31 16:24:07 DOIF callGarage_ZU cmd_1
2018-07-31 16:24:08 FB_CALLMONITOR CALL event: ring
2018-07-31 16:24:08 FB_CALLMONITOR CALL external_connection: SIP5
2018-07-31 16:24:08 FB_CALLMONITOR CALL call_id: 0
2018-07-31 16:24:08 FB_CALLMONITOR CALL external_number: meine Nummer
2018-07-31 16:24:08 FB_CALLMONITOR CALL external_name: mein Name
2018-07-31 16:24:08 FB_CALLMONITOR CALL direction: incoming
2018-07-31 16:24:08 FB_CALLMONITOR CALL internal_number: MSN für ZU
2018-07-31 16:24:08 SIP TELEFON_ZU caller: mein Name sip:meine Nummer@fritz.box
2018-07-31 16:24:08 SIP TELEFON_ZU caller_nr: meine Nummer
2018-07-31 16:24:08 SIP TELEFON_ZU caller_name: mein Name
2018-07-31 16:24:08 SIP TELEFON_ZU caller_time: 0
2018-07-31 16:24:08 SIP TELEFON_ZU caller_state: calling
2018-07-31 16:24:08 SIP TELEFON_ZU caller_state: ringing 1
2018-07-31 16:24:08 ZWave HofTor power: 433.7 W
2018-07-31 16:24:09 SIP TELEFON_ZU caller_state: ringing 2
2018-07-31 16:24:10 SONOS Sonos LastProcessAnswer: 1533047050.47848
2018-07-31 16:24:10 SIP TELEFON_ZU caller_state: ringing 3
2018-07-31 16:24:11 SIP TELEFON_ZU caller_state: ringing 4
2018-07-31 16:24:13 SIP TELEFON_ZU caller_state: ringing 5
2018-07-31 16:24:13 SIP TELEFON_ZU caller: none
2018-07-31 16:24:13 SIP TELEFON_ZU caller_state: waiting
2018-07-31 16:24:13 SIP TELEFON_ZU caller_nr: ---
2018-07-31 16:24:13 SIP TELEFON_ZU caller_time: 0
2018-07-31 16:24:13 SIP TELEFON_ZU caller_name: ---
2018-07-31 16:24:13 SIP TELEFON_ZU caller: fetch
2018-07-31 16:24:13 DOIF callGarage_ZU cmd_nr: 1
2018-07-31 16:24:13 DOIF callGarage_ZU cmd: 1
2018-07-31 16:24:13 DOIF callGarage_ZU cmd_event: CALL
2018-07-31 16:24:13 DOIF callGarage_ZU cmd_1
2018-07-31 16:24:13 FB_CALLMONITOR CALL event: connect
2018-07-31 16:24:13 FB_CALLMONITOR CALL internal_number: MSN für ZU
2018-07-31 16:24:13 FB_CALLMONITOR CALL internal_connection: VoIP_6
2018-07-31 16:24:13 FB_CALLMONITOR CALL direction: incoming
2018-07-31 16:24:13 FB_CALLMONITOR CALL external_name: mein Name
2018-07-31 16:24:13 FB_CALLMONITOR CALL external_number: meine Nummer
2018-07-31 16:24:13 FB_CALLMONITOR CALL call_id: 0
2018-07-31 16:24:13 FB_CALLMONITOR CALL external_connection: SIP5
2018-07-31 16:24:18 SIP TELEFON_ZU listen_wfp
2018-07-31 16:24:18 SIP TELEFON_ZU listen_alive: 6955
2018-07-31 16:24:18 SIP TELEFON_ZU expire: 300
nach Einspielen der letzten Version vor dem Update geht wieder alles wie gewünscht. Jetzt ohne notify, alles im DOIF....
LG
det.

Wzut

Eventlog ist ungeeignet um so einen Fehler zu finden. Ein Log mit verbose 5 erzeugt zwar jede Menge Ausgabe, dafür lässt sich dann aber relativ leicht so ein Fehler aufspüren. Ab morgen früh gibt es die V1.91 via update, dann sollte alles wieder passen.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

det.

Ok, ich teste mal und werde berichten...
LG
det.

det.

Danke, mit Version 1.91 ist wieder alles so wie gewohnt.
LG
det.

Wzut

Na wenigstens mal ne gute Nachricht :)
Ich muss mal schaun deine Verwendung schreit eigentlich nach einem vierten listen Modus, in dem der Ruf automatisch angenommen wird , die Audiodatei übertragen und wieder aufgelegt wird. Also ein wfp ohne fetch, das entspräche quasi einem Anrufbeantworter ohne Möglichkeit der Sprach Aufzeichnung.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher