Hauptmenü

Modul 96_SIP

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

Vorheriges Thema - Nächstes Thema

Wzut

#465
So wie bereist versprochen hier eine neue Beta Version zum Testen.

NEU : die vorhin beschriebene Änderung zu Force mit neuem Attribut sip_force_max

FiX: teilweise nicht gesetzte CALL_TIME

UPDATE : Die Random Port Vergabe ( attr sip_port nicht gesetzt oder 0 ) wurde komplett entfernt und wird nun wenn vom User kein fester Port gesetzt ist komplett von Leg.pm übernommen (Problem von Rewe2000 in Verbindung mit dem externen HM RPC Server) 

UPDATE : User wie Muschelpuster haben das Problem das die FB nach erreichen der max Time einfach weiterklingelt.
Nachdem Muschelpuster direkten Kontakt mit Steffen Ullrich (dem Autor von Net::SIP) aufgenommen hatte, hat dieser im CPAN eine neue Version (0.812) zur Verfügung gestellt. Allerdings löste diese neue Version das Klingelproblem nocht nicht ganz, das sollte nun hoffentlich hiermit erledigt sein.

ACHTUNG : Diese angehängte V1.70 ist ausführlich mit Net::SIP 0.812 getestet, es kann daher sein das u.U. mit der bisherigen 0.808 neue Probleme enstehen.
Frohes Testen , mit dem svn Update werde ich wieder eine Zeitlang eure (hoffentlich) positiven Rückmeldungen abwarten.


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

plin

Das erste schnelle Feedback (vor dem Abendessen):

  • sip_port gelöscht
  • sip_force_interval und sip_force_max gesetzt, CALL mit & abgesetzt, klingeln lassen -> ok, Intervall und Anzahl passen
  • sip_force_interval und sip_force_max gelöscht, CALL mit &10,5,0 abgesetzt, klingeln lassen -> ok, Intervall und Anzahl passen
  • sip_force_interval und sip_force_max gelöscht, CALL mit &10,5,0 abgesetzt, beim ersten Klingeln abgehoben -> nok
Bei der Rufannahme wurde mir krächzend die DTMF-Folge vorgespielt. Sah also gut aus. Aber call_success stand immer noch auf 0. Und nach dem Intervall gings weiter. Noch ein Anruf. Nimmt man ihn an, wird kein DTMF mehr vorgespielt. Der Anruf dauert bis man ihn aktiv beendet. Das beendet aber nicht den Telefonterror, nach dem nächsten Intervall kommt der nächste Anruf.
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

hmm komisch , d.h. bei dir passt das was im Temp at steht nicht zu deinem eigentlich abgesetzten Call ?
Kannst du bitte mal von so einem Fall ein verbose 5 Log Abschnitt posten ?
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

plin

kurze Ergänzung vor dem verbose log:
sip_port auf 5070 gesetzt
sip_force_interval und sip_force_max gesetzt
CALL **622 5 -123 & abgesetzt
2x klingeln lassen,
dritten Anruf angenommen
DTMF wird vorgespielt
Call endet
Anrufserie endet
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

plin

Und hier das fhem-log zu Call **622 5 -123 &10,5,0


2017.12.03 19:59:11 5: SipTest, listen process 2279 found
2017.12.03 19:59:12 4: SipTest[2279], register new expire : 2017-12-03 20:04:12
2017.12.03 19:59:12 5: SipTest[2279], telnet : set SipTest state listen_echo set SipTest listen_alive PID_2279 set SipTest expire 300 exit
2017.12.03 19:59:40 3: SipTest, force call &10,5,0
2017.12.03 19:59:40 4: SipTest, listen process 2279 must be killed befor we start a new call !
2017.12.03 19:59:40 1: Timeout for SIP_ListenStart reached, terminated process 2279
2017.12.03 19:59:40 4: SipTest, message DTMF = -123
2017.12.03 19:59:40 4: SipTest, SipTest|**622|5|-123|0
2017.12.03 19:59:40 4: SipTest, call -> SipTest|**622|5|-123|0|&10,5,0
2017.12.03 19:59:40 5: SipTest, call has pid 2395
2017.12.03 19:59:40 4: SipTest[2395], my parent is 1694
2017.12.03 19:59:40 4: SipTest[2395], trying to use port 5080
2017.12.03 19:59:41 4: SipTest[2395], register new expire : 2017-12-03 20:04:41
2017.12.03 19:59:41 5: SipTest[2395], telnet : set SipTest state calling set SipTest listen_alive PID_2395 set SipTest expire 300 exit
2017.12.03 19:59:41 4: SipTest[2395], CallStart DTMF : 123
2017.12.03 19:59:41 4: SipTest[2395], calling : **622
2017.12.03 19:59:41 5: SipTest[2395], telnet : set SipTest call_state calling **622 exit
2017.12.03 19:59:46 5: SipTest[2395], 0. Ende des ersten Loops
2017.12.03 19:59:46 5: SipTest[2395], 1. rtp_done : 0
2017.12.03 19:59:46 5: SipTest[2395], 2. fi : 0
2017.12.03 19:59:46 5: SipTest[2395], 4. timeout : 1
2017.12.03 19:59:46 5: SipTest[2395], 6. call_established : 0
2017.12.03 19:59:46 5: SipTest[2395], call->cancel
2017.12.03 19:59:46 4: SipTest[2395], cb_final - status : FAIL - final : 487
2017.12.03 19:59:46 5: SipTest[2395], RTP done : 0
2017.12.03 19:59:46 5: SipTest[2395], Timeout  : 1
2017.12.03 19:59:46 5: SipTest[2395], Final    : 487
2017.12.03 19:59:46 5: SipTest[2395], while    : 0
2017.12.03 19:59:46 4: SipTest, CALLDone -> SipTest|1|no answer
2017.12.03 19:59:46 4: SipTest, at_forcecall_622 at +00:00:10 set SipTest call **622 5 -123 *0 &10,5,1
2017.12.03 19:59:46 5: SipTest, fifo is empty
2017.12.03 19:59:46 4: SipTest, try restarting listen process after call ends
2017.12.03 19:59:46 4: SipTest, Listen new PID : 2399
2017.12.03 19:59:46 4: SipTest[2399], my parent is 1694
2017.12.03 19:59:46 4: SipTest[2399], trying to use port 5070
2017.12.03 19:59:48 4: SipTest[2399], register new expire : 2017-12-03 20:04:48
2017.12.03 19:59:48 5: SipTest[2399], telnet : set SipTest state listen_echo set SipTest listen_alive PID_2399 set SipTest expire 300 exit
2017.12.03 19:59:48 3: SipTest[2399], audio file /tmp/myaudio.araw not found, ignoring it
2017.12.03 19:59:48 3: SipTest[2399], audio file /tmp/beep-02-short.alaw not found, ignoring it
2017.12.03 19:59:56 3: SipTest, force call &10,5,1
2017.12.03 19:59:56 4: SipTest, listen process 2399 must be killed befor we start a new call !
2017.12.03 19:59:56 1: Timeout for SIP_ListenStart reached, terminated process 2399
2017.12.03 19:59:56 4: SipTest, message DTMF = -123
2017.12.03 19:59:56 4: SipTest, SipTest|**622|5|-123|0
2017.12.03 19:59:56 4: SipTest, call -> SipTest|**622|5|-123|0|&10,5,1
2017.12.03 19:59:56 5: SipTest, call has pid 2403
2017.12.03 19:59:56 4: SipTest[2403], my parent is 1694
2017.12.03 19:59:56 4: SipTest[2403], trying to use port 5080
2017.12.03 19:59:56 4: SipTest[2403], register new expire : 2017-12-03 20:04:56
2017.12.03 19:59:56 5: SipTest[2403], telnet : set SipTest state calling set SipTest listen_alive PID_2403 set SipTest expire 300 exit
2017.12.03 19:59:57 4: SipTest[2403], CallStart DTMF : 123
2017.12.03 19:59:57 4: SipTest[2403], calling : **622
2017.12.03 19:59:57 5: SipTest[2403], telnet : set SipTest call_state calling **622 exit
2017.12.03 20:00:00 4: SipTest[2403], cb_final - Status : OK
2017.12.03 20:00:00 4: SipTest[2403], call established
2017.12.03 20:00:00 5: SipTest[2403], telnet : set SipTest call_state established exit
2017.12.03 20:00:01 5: SipTest[2403], 0. Ende des ersten Loops
2017.12.03 20:00:01 5: SipTest[2403], 1. rtp_done : 0
2017.12.03 20:00:02 5: SipTest[2403], 2. fi : 0
2017.12.03 20:00:02 5: SipTest[2403], 4. timeout : 1
2017.12.03 20:00:02 5: SipTest[2403], 6. call_established : 1
2017.12.03 20:00:02 5: SipTest[2403], call->bye
2017.12.03 20:00:02 5: SipTest[2403], RTP done : 0
2017.12.03 20:00:02 5: SipTest[2403], Timeout  : 1
2017.12.03 20:00:02 5: SipTest[2403], while    : 0
2017.12.03 20:00:02 4: SipTest, CALLDone -> SipTest|1|timeout
2017.12.03 20:00:02 4: SipTest, at_forcecall_622 at +00:00:10 set SipTest call **622 5 -123 *0 &10,5,2
2017.12.03 20:00:02 5: SipTest, fifo is empty
2017.12.03 20:00:02 4: SipTest, try restarting listen process after call ends
2017.12.03 20:00:02 4: SipTest, Listen new PID : 2407
2017.12.03 20:00:02 4: SipTest[2407], my parent is 1694
2017.12.03 20:00:02 4: SipTest[2407], trying to use port 5070
2017.12.03 20:00:02 4: SipTest[2407], register new expire : 2017-12-03 20:05:02
2017.12.03 20:00:02 5: SipTest[2407], telnet : set SipTest state listen_echo set SipTest listen_alive PID_2407 set SipTest expire 300 exit
2017.12.03 20:00:02 3: SipTest[2407], audio file /tmp/myaudio.araw not found, ignoring it
2017.12.03 20:00:02 3: SipTest[2407], audio file /tmp/beep-02-short.alaw not found, ignoring it
2017.12.03 20:00:12 3: SipTest, force call &10,5,2
2017.12.03 20:00:12 4: SipTest, listen process 2407 must be killed befor we start a new call !
2017.12.03 20:00:12 1: Timeout for SIP_ListenStart reached, terminated process 2407
2017.12.03 20:00:12 4: SipTest, message DTMF = -123
2017.12.03 20:00:12 4: SipTest, SipTest|**622|5|-123|0
2017.12.03 20:00:12 4: SipTest, call -> SipTest|**622|5|-123|0|&10,5,2
2017.12.03 20:00:12 5: SipTest, call has pid 2411
2017.12.03 20:00:12 4: SipTest[2411], my parent is 1694
2017.12.03 20:00:12 4: SipTest[2411], trying to use port 5080
2017.12.03 20:00:12 4: SipTest[2411], register new expire : 2017-12-03 20:05:12
2017.12.03 20:00:12 5: SipTest[2411], telnet : set SipTest state calling set SipTest listen_alive PID_2411 set SipTest expire 300 exit
2017.12.03 20:00:13 4: SipTest[2411], CallStart DTMF : 123
2017.12.03 20:00:13 4: SipTest[2411], calling : **622
2017.12.03 20:00:13 5: SipTest[2411], telnet : set SipTest call_state calling **622 exit
2017.12.03 20:00:18 5: SipTest[2411], 0. Ende des ersten Loops
2017.12.03 20:00:18 5: SipTest[2411], 1. rtp_done : 0
2017.12.03 20:00:18 5: SipTest[2411], 2. fi : 0
2017.12.03 20:00:18 5: SipTest[2411], 4. timeout : 1
2017.12.03 20:00:18 5: SipTest[2411], 6. call_established : 0
2017.12.03 20:00:18 5: SipTest[2411], call->cancel
2017.12.03 20:00:18 4: SipTest[2411], cb_final - status : FAIL - final : 487
2017.12.03 20:00:18 5: SipTest[2411], RTP done : 0
2017.12.03 20:00:18 5: SipTest[2411], Timeout  : 1
2017.12.03 20:00:18 5: SipTest[2411], Final    : 487
2017.12.03 20:00:18 5: SipTest[2411], while    : 0
2017.12.03 20:00:18 4: SipTest, CALLDone -> SipTest|1|no answer
2017.12.03 20:00:18 4: SipTest, at_forcecall_622 at +00:00:10 set SipTest call **622 5 -123 *0 &10,5,3
2017.12.03 20:00:18 5: SipTest, fifo is empty
2017.12.03 20:00:18 4: SipTest, try restarting listen process after call ends
2017.12.03 20:00:18 4: SipTest, Listen new PID : 2415
2017.12.03 20:00:18 4: SipTest[2415], my parent is 1694
2017.12.03 20:00:18 4: SipTest[2415], trying to use port 5070
2017.12.03 20:00:18 4: SipTest[2415], register new expire : 2017-12-03 20:05:18
2017.12.03 20:00:18 5: SipTest[2415], telnet : set SipTest state listen_echo set SipTest listen_alive PID_2415 set SipTest expire 300 exit
2017.12.03 20:00:18 3: SipTest[2415], audio file /tmp/myaudio.araw not found, ignoring it
2017.12.03 20:00:18 3: SipTest[2415], audio file /tmp/beep-02-short.alaw not found, ignoring it
2017.12.03 20:00:26 4: ESPEasy EspDev3con: set statusRequest
2017.12.03 20:00:26 4: ESPEasy EspDev3con: presence: absent
2017.12.03 20:00:26 5: ESPEasy EspDev3con: Start internalTimer +304 => 2017-12-03 20:05:30
2017.12.03 20:00:28 3: SipTest, force call &10,5,3
2017.12.03 20:00:28 4: SipTest, listen process 2415 must be killed befor we start a new call !
2017.12.03 20:00:28 1: Timeout for SIP_ListenStart reached, terminated process 2415
2017.12.03 20:00:28 4: SipTest, message DTMF = -123
2017.12.03 20:00:28 4: SipTest, SipTest|**622|5|-123|0
2017.12.03 20:00:28 4: SipTest, call -> SipTest|**622|5|-123|0|&10,5,3
2017.12.03 20:00:28 5: SipTest, call has pid 2419
2017.12.03 20:00:28 4: SipTest[2419], my parent is 1694
2017.12.03 20:00:28 4: SipTest[2419], trying to use port 5080
2017.12.03 20:00:28 4: SipTest[2419], register new expire : 2017-12-03 20:05:28
2017.12.03 20:00:28 5: SipTest[2419], telnet : set SipTest state calling set SipTest listen_alive PID_2419 set SipTest expire 300 exit
2017.12.03 20:00:28 4: SipTest[2419], CallStart DTMF : 123
2017.12.03 20:00:28 4: SipTest[2419], calling : **622
2017.12.03 20:00:28 5: SipTest[2419], telnet : set SipTest call_state calling **622 exit
2017.12.03 20:00:32 4: SipTest[2419], cb_final - Status : OK
2017.12.03 20:00:32 4: SipTest[2419], call established
2017.12.03 20:00:32 5: SipTest[2419], telnet : set SipTest call_state established exit
2017.12.03 20:00:33 5: SipTest[2419], 0. Ende des ersten Loops
2017.12.03 20:00:33 5: SipTest[2419], 1. rtp_done : 0
2017.12.03 20:00:33 5: SipTest[2419], 2. fi : 0
2017.12.03 20:00:33 5: SipTest[2419], 4. timeout : 1
2017.12.03 20:00:33 5: SipTest[2419], 6. call_established : 1
2017.12.03 20:00:33 5: SipTest[2419], call->bye
2017.12.03 20:00:34 5: SipTest[2419], RTP done : 0
2017.12.03 20:00:34 5: SipTest[2419], Timeout  : 1
2017.12.03 20:00:34 5: SipTest[2419], while    : 0
2017.12.03 20:00:34 4: SipTest, CALLDone -> SipTest|1|timeout
2017.12.03 20:00:34 4: SipTest, at_forcecall_622 at +00:00:10 set SipTest call **622 5 -123 *0 &10,5,4
2017.12.03 20:00:34 5: SipTest, fifo is empty
2017.12.03 20:00:34 4: SipTest, try restarting listen process after call ends
2017.12.03 20:00:34 4: SipTest, Listen new PID : 2423
2017.12.03 20:00:34 4: SipTest[2423], my parent is 1694
2017.12.03 20:00:34 4: SipTest[2423], trying to use port 5070
2017.12.03 20:00:34 4: SipTest[2423], register new expire : 2017-12-03 20:05:34
2017.12.03 20:00:34 5: SipTest[2423], telnet : set SipTest state listen_echo set SipTest listen_alive PID_2423 set SipTest expire 300 exit
2017.12.03 20:00:34 3: SipTest[2423], audio file /tmp/myaudio.araw not found, ignoring it
2017.12.03 20:00:34 3: SipTest[2423], audio file /tmp/beep-02-short.alaw not found, ignoring it
2017.12.03 20:00:44 3: SipTest, force call &10,5,4
2017.12.03 20:00:44 4: SipTest, listen process 2423 must be killed befor we start a new call !
2017.12.03 20:00:44 1: Timeout for SIP_ListenStart reached, terminated process 2423
2017.12.03 20:00:44 4: SipTest, message DTMF = -123
2017.12.03 20:00:44 4: SipTest, SipTest|**622|5|-123|0
2017.12.03 20:00:44 4: SipTest, call -> SipTest|**622|5|-123|0|&10,5,4
2017.12.03 20:00:44 5: SipTest, call has pid 2427
2017.12.03 20:00:44 4: SipTest[2427], my parent is 1694
2017.12.03 20:00:44 4: SipTest[2427], trying to use port 5080
2017.12.03 20:00:44 4: SipTest[2427], register new expire : 2017-12-03 20:05:44
2017.12.03 20:00:44 5: SipTest[2427], telnet : set SipTest state calling set SipTest listen_alive PID_2427 set SipTest expire 300 exit
2017.12.03 20:00:44 4: SipTest[2427], CallStart DTMF : 123
2017.12.03 20:00:44 4: SipTest[2427], calling : **622
2017.12.03 20:00:44 5: SipTest[2427], telnet : set SipTest call_state calling **622 exit
2017.12.03 20:00:48 4: SipTest[2427], cb_final - Status : OK
2017.12.03 20:00:48 4: SipTest[2427], call established
2017.12.03 20:00:48 5: SipTest[2427], telnet : set SipTest call_state established exit
2017.12.03 20:00:49 5: SipTest[2427], 0. Ende des ersten Loops
2017.12.03 20:00:49 5: SipTest[2427], 1. rtp_done : 0
2017.12.03 20:00:49 5: SipTest[2427], 2. fi : 0
2017.12.03 20:00:49 5: SipTest[2427], 4. timeout : 1
2017.12.03 20:00:49 5: SipTest[2427], 6. call_established : 1
2017.12.03 20:00:49 5: SipTest[2427], call->bye
2017.12.03 20:00:49 5: SipTest[2427], RTP done : 0
2017.12.03 20:00:49 5: SipTest[2427], Timeout  : 1
2017.12.03 20:00:49 5: SipTest[2427], while    : 0
2017.12.03 20:00:49 4: SipTest, CALLDone -> SipTest|1|timeout
2017.12.03 20:00:49 3: SipTest, at_forcecall_622 max count 5 reached giving up !
2017.12.03 20:00:49 5: SipTest, fifo is empty
2017.12.03 20:00:49 4: SipTest, try restarting listen process after call ends
2017.12.03 20:00:49 4: SipTest, Listen new PID : 2431
2017.12.03 20:00:49 4: SipTest[2431], my parent is 1694
2017.12.03 20:00:49 4: SipTest[2431], trying to use port 5070
2017.12.03 20:00:49 4: SipTest[2431], register new expire : 2017-12-03 20:05:49
2017.12.03 20:00:49 5: SipTest[2431], telnet : set SipTest state listen_echo set SipTest listen_alive PID_2431 set SipTest expire 300 exit
2017.12.03 20:00:49 3: SipTest[2431], audio file /tmp/myaudio.araw not found, ignoring it
2017.12.03 20:00:49 3: SipTest[2431], audio file /tmp/beep-02-short.alaw not found, ignoring it
2017.12.03 20:01:49 5: SipTest, listen process 2431 found
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

Also das Thema Force und meine dazu gemachten Änderungen sehen gut aus :
2017.12.03 19:59:40 4: SipTest, call -> SipTest|**622|5|-123|0|&10,5,0
--snipp--
2017.12.03 20:00:44 4: SipTest, call -> SipTest|**622|5|-123|0|&10,5,4
2017.12.03 20:00:49 3: SipTest, at_forcecall_622 max count 5 reached giving up !


was mir aber in deinem Log negativ auffällt ist das Thema der Änderungen zwischen bye und cancel :
2017.12.03 19:59:46 5: SipTest[2395], call->cancel
2017.12.03 19:59:46 4: SipTest, CALLDone -> SipTest|1|no answer
2017.12.03 20:00:02 5: SipTest[2403], call->bye
2017.12.03 20:00:02 4: SipTest, CALLDone -> SipTest|1|timeout
2017.12.03 20:00:18 5: SipTest[2411], call->cancel
2017.12.03 20:00:18 4: SipTest, CALLDone -> SipTest|1|no answer
2017.12.03 20:00:33 5: SipTest[2419], call->bye
2017.12.03 20:00:34 4: SipTest, CALLDone -> SipTest|1|timeout
2017.12.03 20:00:49 5: SipTest[2427], call->bye
2017.12.03 20:00:49 4: SipTest, CALLDone -> SipTest|1|timeout

D.h. bei meinen Tests hatte ich da immer cancel da der Ruf ja gar nicht angenommen wurde.
Kann es sein das du mit dem Intervall von 10 Sekunden einfach zu schnell warst ? Ich hatte immer mit 60 Sekunden getestet. Wenn da wirklich ein Problem sein sollte werde ich intern einfach keine Wartezeiten kleiner 60 Sekunden zulassen.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

plin

Also ein CALL **622 5 -123 &60,5,0 hat auch nichts geändert. Ich habe beim ersten Anruf angenommen, habe die 123 gehört, es wurde aufgelegt und nach 60 Sekunden ging's weiter. Wenn ich den Anruf wegdrücke ändert das auch nichts. call_success bleibt auf 0. Wie gesagt, bei all dem sind weder sip_force_interval noch sip_force_max gesetzt.

Setze ich hingegen sip_force_interval = 10 und sip_force_mx = 5 und wähte **622 5 -123 &, hebe beim ersten Anruf ab geht call_success auf 1 und die Rufreihe endet.


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

hmmm, jetzt bin ich platt  :( und habe auch keine logische Erklärung. Aber anyway werde ich natürlich testen
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Rewe2000

#473
Hallo Wzut,

das mit der Änderung ging aber absolut flott, sorry ich war seit gestern Abend offline, daher konnte ich erst jetzt testen.

Ich teste mit dem Original Debian "libnet-sip-perl 0.808-1" Modul, denn das neueste würde ich nur über "cpan" installieren wenn ich damit Probleme bekomme.

Das Attribut "attr sip_port" ist bei mir nicht gesetzt!

1. Versuch: "set TelefonClient call **52 30"
Telefon klingelt wie immer und spielt nach dem abheben DMTF Töne vor; call_attempt = 0; call_success = 1; call_state = ok
Meine alles sollte so passen.

2. Versuch: "set TelefonClient call **52 30 !Hallo &60,2"
Anruf wird im Abstand von einer Minute 2 x widerholt, der Ruf wird jedoch nicht angenommen; call_attempt = 2; call_success = 0; call_state = no answer
Nach dem 2. Ruf wird kein at mehr erzeugt. Genau so soll es sein.

3. Versuch: "set TelefonClient call **52 30 !Hallo &60,4"
Anruf wird beim dritten Anruf, nach dem 3. Klingeln angenommen; call_attempt = 2; call_success = 1; call_state = ok
Der Text wird vorgesprochen, nach dem 3. Ruf wird kein at mehr erzeugt. -> OK.

4. Versuch: "set TelefonClient call **52 30 !Hallo &30,10"
Anruf wird nicht angenommen; call_attempt = 10; call_success = 0; call_state = no answer
Nach dem 10. Ruf wird kein at mehr erzeugt. -> OK.

5. Versuch: "set TelefonClient call **52 30 !Hallo, ist da jemand zu Hause &120,5"
Anruf wird nach dem 3. Ruf und beim 3. Klingelzeichen angenommen; call_attempt = 2; call_success = 1; call_state = ok
Nach dem 3. Ruf wird kein at mehr erzeugt. -> OK.

6. Versuch: "set TelefonClient call **52 30 !Hallo, ist da jemand zu Hause &"
Der unter Attribute eingestellte Wert für "sip_force_interval" wird wieder verwendet.
Das "at" muss nach einem "set xx reset" von Hand gelöscht werden, oder der Anruf angenommen werden, damit die Telefone nicht ewig klingeln. Während eines ausgehenden Rufs, wird das "set xxx reset" auch nicht wirksam.

Auch der "sip_force_interval" wird absolut korrekt durch die Angabe nach dem "&" im Befehlsstring übernommen.
Ich wüsste nicht, welche Konstellation ich da noch testen sollte.

Ein Punkt ist mir noch aufgefallen, hab jedoch keine Ahnung wie es "früher" einmal war. Habe ich "&xx,10" Wiederholungen gewählt und führe "set xxxxx reset" aus, so gehen die Rufe noch weiter bis jemand den Ruf annimmt oder die Anzahl an Wiederholungen abgelaufen ist. Kannst du das angelegte "at_forcecall_52" bei "set "reset" irgendwie löschen?

Ergänzung!!!
sip_force_interval = 300 bei allen Versuchen
sip_force_max war nicht definiert
Alle Rufversuche bisher am ISDN Telefon angenommen (ja so etwas aus der Steinzeit gibt es noch! :))

Gruß Reinhard


Fhem 6.3 auf Raspberry Pi4 SSD mit Raspbian Bookworm, Homematic, Homematic IP, CCU3 mit RapberryMatic, WAGO 750-880, E3DC S10E Hauskraftwerk, E3DC Wallbox, my-PV AC ELWA-E Heizstab, Fritz!Box 7590, KIA Bluelinky

plin

Ach ja, die Technik. Um es noch etwas komplizierter zu machen: Ich habe gerade hausintern mein DECT-Telefon angerufen, abgenommen und die Welt ist in Ordnung: call_success = 1.

Die bisherigen Tests liefen hausintern mit meiner FritzFonApp!

Da gibt's also Unterschiede im Verhalten.

Der Testanruf aufs Handy verhält sich so wie die FritzFonApp.
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

Rewe2000

#475
Hallo,

@plin:
Irgendwie kurios, bei mir funktioniert es so wie es sein sollte.
Befehl "set TelefonClient call **620 30 !Hallo &60,4,0" Rufannahme nach den ersten klingeln beim ersten Anruf, Text wird vorgelesen und kein weiterer Ruf kommt mehr an.
Habe eben meine Attribute "sip_force_interval" und "sip_force_max" gelöscht (ohne restart SIP) das Verhalten ändert sich bei mir aber nicht.
Egal ob FritzAppPhone oder ISDN Apparat intern (FritzBox 7390).

Was mir noch aufgefallen ist, sporadisch bei Anrufannahme mit dem Handy (FritzAppFone) höre ich die Ansage nicht oder abgebrochen, ich denke aber dies ist kein Problem von SIP sondern ein Verbindungsproblem mit WLAN, am ISDN Anschluss klappt es dagegen immer bestens.

Hab ich da irgenwas verpasst, was genau bedeutet die 3. Dimension nach dem Komma"&60,4,0"?

Gruß Reinhard
Fhem 6.3 auf Raspberry Pi4 SSD mit Raspbian Bookworm, Homematic, Homematic IP, CCU3 mit RapberryMatic, WAGO 750-880, E3DC S10E Hauskraftwerk, E3DC Wallbox, my-PV AC ELWA-E Heizstab, Fritz!Box 7590, KIA Bluelinky

Wzut

#476
ZitatKannst du das angelegte "at_forcecall_52" bei "set "reset" irgendwie löschen?
was genau bedeutet die 3. Dimension nach dem Komma"&60,4,0
Jein, denn das Modul hat ja keine Ahnung das es dieses Temp at überhaupt gibt und kennt daher auch dessen Namen nicht.
Aprpo Namen : Bisher war at_forcecall_ fix danach kam die reduzierte Zielrufnummer. Das hat den Nachteil das es pro Ziel nur ein Force geben darf, da sich die ats sonst gegenseitig überschreiben. Ich habe inzwischen bei mir da noch den Zusatz _xxxx anghängt, wobei xxxx eine CRC Prüfsumme aus DTMF oder .alaw Datei ist.

Die dritte Zahl ist nicht für den User sondern für das at, d.h es reicht &60,4 anzugeben. Schau dir mal ein temp at an dort gibt die letzte Zahl die bereits gelaufenen Versuche an.

Dank erst mal euch beiden fürs testen. Das mit der Fritz App und dem Handy war ein guter Hinweis. Ich denke da brauch gar nicht groß im Modul suchen sondern kann gleich wieder tcpdump und Wireshark anwerfen. U.u. muss mir dann später Muschelpuster noch bei der Auswertung helfen. Ich sehe schon 0.812 wird nicht die letzte Net::SIP Version bleiben.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Rewe2000

#477
Hallo,

mir ist da noch etwas augefallen, was ich mir nicht erklären kann.
Der Fehler könnte natürlich auch bei mir liegen, da ich mit Perl nicht so bewandert bin.

Weshalb wird bei Eingabe von "set TelefonClient call **52 30 !Kältewarnung  Fenster oder Terassentüre in der Küche bitte schließen  der Raum kühlt aus. *2 &60,5" auf der Fhem Eingabezeile das Attribut "sip_force_max" überschrieben?
Ist absolut korrekt so, das will ich ja mit Anhang von ",5" auch erreichen.

Verwende ich den Aufruf dagegen in einem Doif, wird strikt "sip_force_max" beachtet und die Rufe enden nach der Anzahl, welche unter "sip_force_max" eingetragen sind. Die Angabe "...&60,5" bleibt ohne Wirkung.
DEF ([du_temp] == 1 and [Aussentemperatur] < 10)(set TelefonClient call **52 30 !Kältewarnung  Fenster oder Terassentüre in der Küche bitte schließen  der Raum kühlt aus. *2 &60,5)

Im Doif kommt als Reading:
error              5: Unknown command 5, try help.

Anscheinend macht das Komma im Doif Probleme, oder muss da noch etwas maskiert oder geklammert werden?
Ist dieses Verhalten für euch irgendwie erklärbar?

Die Lösung habe ich selbst gefunden, der set Befehl muss doppelt mit Klammern eingeschlossen werden.
([du_temp] == 1 and [Aussentemperatur] < 10)((set TelefonClient call **52 30 !Kältewarnung Fenster oder Terassentüre in der Küche bitte schließen der Raum kühlt aus. *2 &30,3))

Noch etwas ist mir aufgefallen:
Wird im Befehlsstring "set TelefonClient call **52 30 !Hallo *2 &300,5" ein Wiederholungsfaktor "*nn"zusätzlich mit verwendet
wird der "call_state" nicht mehr mit "ok" sondern mit "peer_hangup" gemeldet und die Anrufe kommen per "at" nun 5 mal zwingend an, wenn bei laufender Ansage aufgelegt wird.

Gruß Reinhard
Fhem 6.3 auf Raspberry Pi4 SSD mit Raspbian Bookworm, Homematic, Homematic IP, CCU3 mit RapberryMatic, WAGO 750-880, E3DC S10E Hauskraftwerk, E3DC Wallbox, my-PV AC ELWA-E Heizstab, Fritz!Box 7590, KIA Bluelinky

plin

Zitat von: Wzut am 04 Dezember 2017, 19:30:12
Ich sehe schon 0.812 wird nicht die letzte Net::SIP Version bleiben.
Sehe ich nicht unbedingt so. Bei meinen Tests hat sich unser Modul bei gesetzten Attributen sip_force_intervall und sip_force_max so verhalten wie ich es erwartet habe. Nur die Variante CALL **622 5 -123 &60,5,0 läuft aus dem Ruder.
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

Muschelpuster

Also mal zurück zu den Basics: Der unbeantwortete Call wird jetzt sauber nach der eingestellten Zeit abgebrochen. Jetzt ist also auch meine Fritte mit dem Protokoll soweit zufrieden.
Damit sollte das Problem wohl auch bei allen anderen Betroffenen gelöst sein.

minimalistische Grüße
Niels
fhem @ ZBOX mit 1,6MHz Celeron, 4GB RAM & 120GB SSD mit Debian Bullseye # MiLight # Homematic via CCU3 # W&T WebIO # Rademacher DuoFern # ESPeasy # logdb@mysql # configdb@mysql # Shelly @ MQTT2 # go-eCharger mit PV-Überschussladung via DOIF