Nochmal Fehler in Net/SIP/Dispatcher.pm line 1108 bei Verwendung von 96_SIP.pm

Begonnen von Morte, 05 Januar 2019, 17:25:35

Vorheriges Thema - Nächstes Thema

Morte

Moin Leute,

nachdem die beiden verwandten Posts

https://forum.fhem.de/index.php/topic,95191.msg880764.html#msg880764 

und

https://forum.fhem.de/index.php/topic,90317.msg828799.html#msg828799

mir nicht geholfen haben, dort sind keine erkennbaren Lösungen genannt, hier nochmal der Versuch zur Klärung

Habe nach ein paar erfolgreichen Anrufen - oder wenn er den Listener nach einer Weile neu starten will, auch die genannte Meldung im Log:

2019.01.05 16:58:29.888 1: Timeout for SIP_ListenStart reached, terminated process 713
2019.01.05 16:58:29.890 4: tsip, Reset Listen done
2019.01.05 16:58:29.893 4: tsip, Listen new PID : 3343
2019.01.05 16:58:29.894 4: tsip[3343], my parent is 673
2019.01.05 16:58:29.894 4: tsip[3343], using Leg.pm to find a free port
Can't use string ("default/icoEverything.png") as a HASH ref while "strict refs" in use at /usr/local/share/perl/5.24.1/Net/SIP/Dispatcher.pm line 1108.
2019.01.05 16:59:29.899 2: tsip, cant find listen process 3343 in process list !
2019.01.05 16:59:31.903 4: tsip, Listen new PID : 3620
2019.01.05 16:59:31.904 4: tsip[3620], my parent is 673
2019.01.05 16:59:31.905 4: tsip[3620], using Leg.pm to find a free port
Can't use string ("default/icoEverything.png") as a HASH ref while "strict refs" in use at /usr/local/share/perl/5.24.1/Net/SIP/Dispatcher.pm line 1108.
2019.01.05 17:00:31.935 2: tsip, cant find listen process 3620 in process list !
2019.01.05 17:00:33.938 4: tsip, Listen new PID : 3896
2019.01.05 17:00:33.941 4: tsip[3896], my parent is 673
2019.01.05 17:00:33.941 4: tsip[3896], using Leg.pm to find a free port
Can't use string ("favicon") as a HASH ref while "strict refs" in use at /usr/local/share/perl/5.24.1/Net/SIP/Dispatcher.pm line 1108.
2019.01.05 17:01:33.994 2: tsip, cant find listen process 3896 in process list !
2019.01.05 17:01:35.998 4: tsip, Listen new PID : 4174
2019.01.05 17:01:36.003 4: tsip[4174], my parent is 673
2019.01.05 17:01:36.003 4: tsip[4174], using Leg.pm to find a free port
Can't use string ("favicon") as a HASH ref while "strict refs" in use at /usr/local/share/perl/5.24.1/Net/SIP/Dispatcher.pm line 1108.


Im Attribut listen_alive steht dann "no" und fhem bekommt keine Anrufe mit.
Neustart meines Docker-Containers mit fhem scheint für eine Weile zu helfen. Ebenso "shutdown restart": Dann ist jeweils wieder ein Listener da.

perl Net:SIP ist die neueste Version. update all ist gemacht.
Das Attribut sip_elbc steht bereits auf yes.

Zur Konfig: Ansonsten gehe ich auf den T-Online Registrar im Modus "listen_wfp". Ich nehme gesperrte Rufnummern nach SQL-Query im Notify-Handler mit einer Quatsch-Ansage an ("set mysip fetch"). Bei nicht gesperrten Nummer macht der Notify nichts. Liegt in dieser Art und Weise evtl. das Problem?   

Noch jemand Ideen dazu?

Frohes neues Jahr allerseits,

Martin


Edit:


Internals:
   LPID       20719
   NAME       tsip
   NOTIFYDEV  global
   NR         298
   NTFY_ORDER 50-tsip
   STATE      listen_wfp
   TYPE       SIP
   VERSION    V1.91 / 31.07.18
   READINGS:
     2019-01-05 17:54:17   caller          none
     2019-01-05 17:54:17   caller_name     ---
     2019-01-05 17:54:17   caller_nr       ---
     2019-01-05 17:54:17   caller_state    hangup
     2019-01-05 17:54:17   caller_time     0
     2019-01-05 18:00:38   expire          660
     2019-01-03 19:00:19   last_error      ListenRegister: invalid IP address 127.0.0.1
     2019-01-05 18:02:45   listen_alive    no
     2019-01-05 18:00:38   state           listen_wfp
   helper:
     LISTEN_PID:
       abortArg   
       abortFn   
       arg        tsip
       bc_pid     2
       finishFn   SIP_ListenDone
       fn         SIP_ListenStart
       pid        DEAD:20719
       timeout   
Attributes:
   history_file ./log/tsip.sip
   history_size 0
   sip_audiofile_wfp /opt/fhem/ignore.ulaw
   sip_dtmf_loop once
   sip_dtmf_send audio
   sip_dtmf_size 2
   sip_elbc   yes
   sip_from   XXXXX
   sip_ip     172.17.0.5
   sip_listen wfp
   sip_registrar tel.t-online.de:5060
   sip_ringtime 3000
   sip_user   XXXX
   sip_waittime 30
   verbose    5


Edit 2:

Reproduzieren lässt sich derzeit der sterbende Listener ziemlich verlässlich, indem ich irgendein Attribut des SIP Objekts anpasse. Offenbar wird dabei der alte Listener gekillt und der neue startet mit den genannten Meldungen nicht mehr.

Wzut

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

Morte

Zitat von: Wzut am 09 Januar 2019, 14:53:31
Doch in https://forum.fhem.de/index.php/topic,90317.msg828799.html#msg828799 steht die Lösung deines Problems !
ändern in

sip_port 5060
sip_registrar 217.0.128.133


Danke, das war zwar zu 99% die Lösung, aber noch nicht ganz.
Wenn ich den sip_registrar mit der IP-Adresse wie oben eintrage, bekomme ich ein "ListenRegister: Failed with code 403" zurück. Ich führe das zurück auf
$ua = Net::SIP::Simple->new(
registrar => $registrar,
domain => $registrar
...

in 96_SIP.pm, wo für domain auch immer der registrar verwendet wird. Die Telekom erwartet bei Domain aber ihren Namen "tel.t-online.de" und nicht die IP. Das konnte ich mit einem kurzen Testskript, das direkt das Modul "Net::SIP" verwendet, verifizieren. Bei der Telekom muss man also folgendes eintragen:

sip_port 5060
sip_registrar tel.t-online.de


Damit klappt's dann auch. Danke!

Cheers, Martin