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.
Doch in https://forum.fhem.de/index.php/topic,90317.msg828799.html#msg828799 steht die Lösung deines Problems !
Zitat von: Morte am 05 Januar 2019, 17:25:35
sip_registrar tel.t-online.de:5060
ändern in
sip_port 5060
sip_registrar 217.0.128.133
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