Hauptmenü

Modul 96_SIP

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

Vorheriges Thema - Nächstes Thema

JoWiemann

Hallo,

ich würde gerne mehrere Anrufe nacheinander tätigen. Beim folgendem Aufruf denke ich allerdings, dass es zu einem Konflikt kommen wird:


        fhem("set FritzSip call 491...6 60 !Hallo Sohn"."$EventHeute");
        fhem("set FritzSip call 491...7 60 !Hallo Tochter"."$EventHeute");


Am Besten wäre eine Erweiterung von

set <name> call <number> [<maxtime>] [<message>]

auf

set <name> call <number>[,<number>,...] [<maxtime>] [<message>,...] bzw. die Übergabe eines Arrays als Alternative zu den drei Parametern.

Oder habt ihr eine bessere Lösung?

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

Wzut

Zitat von: JoWiemann am 18 März 2017, 13:17:49
Beim folgendem Aufruf denke ich allerdings, dass es zu einem Konflikt kommen wird:
ja das wird schief gehen denn wenn der erste Anruf noch abgearbeitet wird sollte die Nummer 2 eine Fehlermeldung ala
"there is already a call activ with pid" produzieren. D.h. man müsste im Modul ein FIFO einbauen das die Anrufe nach und nach abarbeitet.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

plin

_dtmf_xtc_audio: offenbar kann man (lt.DTMF.pod) die audio-Erkennung ausschalten ... es fehlt aber wieder mal an passenden Beispielen
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

JoWiemann

Hab das erst mal mit versetzten at gelöst. Aber das mit dem FiFo wäre schon schön. Und nun die Frage: Wer baut es ein? [emoji23]


Grüße Jörg

Gesendet von iPhone mit Tapatalk
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

plin

#169
_dtmf_xtc_audio

Nachdem ich keinen konkreten Aufruf für die  _dtmf_xtc_audio bzw. dtmf_extractor gefunden habe (obwohl sie durchlaufen werden), habe ich die These aufgestellt:  geht's auch ohne sie? Ein Test mit der Fritz!App-Fon sowie einem ISDN-Telefon (schaltet automatisch auf hörbare Tonwahl um, sobald der Angerufene abnimmt) zeigt, dass in beiden Fällen die Tasten korrekt erkannt werden. Und das auf einem Raspi2.

Bils zum Beweis des Gegenteils (bzw. einer fehlenden Funktion) lautet der Fix für ARM-Prozessoren:


diff DTMF.pm DTMF.pm.orig
386,389d385
<       return;
<     };
<
< sub xxx_dtmf_xtc_audio {


Unter jessie z.B. im Verzeichnis /usr/local/share/perl/5.20.2/Net/SIP zu finden.

Ich habe bisher nur den Positiv-Test durchgeführt, evtl. Wechselwirkungen mit anderen Funktionen sind daher nicht ausgeschlossen. Falls ihr Probleme feststellt bitte posten.
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

Atze

@Wzut
Zitatund 5 steht nicht für die Anzahl klingeln (siehe https://wiki.fhem.de/wiki/SIP-Client)

Im Wiki steht:
     set <name> call <nummer> [<ringtime>] [<nachricht>]

    Startet einen Anruf an die angegebene Nummer.
    Optional kann die ringtime angegeben werden. Wird keine angegeben zieht das Attribut sip_ringtime. Default ist 10.


Ich versteh das so das ich die Zeit mitgeben kann wie lange das Telefon klingeln soll. (lasse mich gerne eines besseren belehren)
Wie gesagt ich möchte einfach nur ein Telefon intern 3-4 klingekn lassen und wieder auflegen.

Gruß Andreas

ZitatHallo,
ich möchte das Modul als Türklingel nutzen und rufe intern von meinem Fhemserver (alles aktuell) die Fritzbox (6490 mit 6.5)  mit "set mySIP call **610 5" an.

Das Dect Telefon klingelt wie es soll. Allerdings habe ich erwartet das nach 4 mal klingeln aufgelegt wird, was nicht funktioniert.

Habt ihr da eine Idee?
FHEM 5.8 , RPi 2 / CUL 3.2 / JEELINKnano - PCA301 / nanoCUL a-culfw 1.05.03
HMS: rm1002, s300th / FHT: fht8v-3, fht80tf
FS20: fs20st, fs20sm8, fs20s8m, fs20rsu, fs20rbm, fs20pce, fs20pcs, fs20ue1, fs20irp2, fs20dwt, fs20rpt-3, fs20str-2, fs20kse
IT: ITDM-250, ITLS-16, ITW-852, IT-1500
G-Data Milight

plin

#171
Hallo Atze,

die Betonung liegt auf ringtime. Das ist nicht die Anzahl. Du musst mal ausprobieren mit welcher Dauer du auf 4 mal klingeln kommst. Bei mir ist es 08.

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

ja ich habe das im Wiki auch schon mal geändert , das Wort Ringtime hält sich verdammt hartnäckig , genau wie der falsche Defaultwert 10
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Wzut

Zitat von: JoWiemann am 19 März 2017, 09:37:47
Und nun die Frage: Wer baut es ein? [emoji23]
Und nun die Antwort : Ich , morgen via update verfügbar :)
Aber ACHTUNG :
Was nicht geht ist zb :
set mySip call **611 20 !Test 1
set mySip call **611 20 !Test 2
set mySip call **611 20 !Test 3

Selbst wenn man den ersten Ruf annimt, folgt Ruf Nr 2 so schnell das mein FritzPhone nicht reagiert. Nach dem Timeout von Nr. 2 kommt dann aber Nr. 3 wieder an.
Den Test wiederholt mit :
set mySip call **611 20 !Test 1
set mySip call **613 20 !Test 2
set mySip call **611 20 !Test 3

führt zum Erfolg. Ich denke das passt so für deine ersten Versuche. Wenn es so OK ist werde ich noch eine Prüfung der Ziel Rufnummern einbauen und
Anrufe die das gleiche Ziel haben wie der direkte Vorgänger in der Queue verwerfen.   
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

JoWiemann

Zitat von: Wzut am 19 März 2017, 18:50:46
Und nun die Antwort : Ich , morgen via update verfügbar :)

Hi, danke und werde ich morgen testen.

Grüße Jörg

PS: Und mal sehen, wie der Nachwuchs auf den Anruf reagiert, wenn das Haus die Mülltonne nach vorne gestellt haben will  :)
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

MadMax

Hallo, habe einen kurzen Test durchgeführt,  funktioniert soweit super, gute Arbeit.
Könntest du noch eine kleine Verzögerung rein machen wenn man einen Anruf absetzt bist das Audio File oder das Gerede losgeht?

Gruß
Max
Lenovo M910Q Tiny Debian 12, FHEM 6.3, 2x Siemens Logo 0BA7, Homematic CCU3, Philips HUE, 5x SMA Wechselrichter, BYD HVM, SMA EVCharger, Daikin Wärmepumpe über CAN

Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/MadMax

Laserhelge

Hallo,

bis vor ca. zwei Wochen war es noch so, dass nach dem Abspielen der Audiodatei (Mode: listen_wfp) die Verbindung von der fhem-Seite automatisch wieder beendet wurde.
So ist es auch im Wiki beschrieben. Leider bleibt aber seit einiger Zeit die Verbindung bestehen und muss vom Anrufer aktiv beendet werden.
Ist das Absicht (was ich nicht hoffe, da es eher unpraktisch ist) bzw. lässt sich das wieder fixen?

Danke und viele Grüße

Klaus

PS: Von diesem kleinen Manko abgesehen ist es ein echt tolles Modul! Danke dafür.
FHEM auf Raspberry 4 / CUL / KNX / Loxone Miniserver

Wzut

#177
Zitat von: MadMax am 20 März 2017, 17:35:25
Könntest du noch eine kleine Verzögerung rein machen wenn man einen Anruf absetzt bist das Audio File oder das Gerede losgeht?
Bildlich gesprochen , die Zeit die man benötigt um den Hörer abzunehmen und bis zum Ohr zu führen ? 0,5 - 1 Sekunde ?
@plin, bekommt man das mit nem sleep an der richtigen Stelle in den Griff ?

Zitat von: Laserhelge am 20 März 2017, 18:33:19
Leider bleibt aber seit einiger Zeit die Verbindung bestehen und muss vom Anrufer aktiv beendet werden.
Das soll so nicht sein :(
@plin, ist wohl beim DTMF Umbau unter die Räder gekommen ....
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

MadMax

@Wutz, genau das meine ich, also etwa 1s sleep
Lenovo M910Q Tiny Debian 12, FHEM 6.3, 2x Siemens Logo 0BA7, Homematic CCU3, Philips HUE, 5x SMA Wechselrichter, BYD HVM, SMA EVCharger, Daikin Wärmepumpe über CAN

Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/MadMax

tpm88

Zitat von: Wzut am 20 März 2017, 19:39:30
Das soll so nicht sein :(
@plin, ist wohl beim DTMF Umbau unter die Räder gekommen ....

Hallo wzut,

danke für das Modul - funktioniert bei mir größtenteils schon sehr gut.

Habe aber auch bemerkt, daß beim Erkennen von DTMF Tönen nicht immer von alleine aufgelegt wird. Das funktioniert korrekt, wenn während eines Anrufs die erwartete Anzahl (sip_dtmf_size) unterschiedlicher DTMF Töne erkannt wird.

Kommt allerdings vor Erreichen der Anzahl ein Hangup gefolgt von einem neuen Anruf, wird der "Anzahl"-Counter offenbar nicht neu initialisiert.

Siehe hier mit verbose=5:

2017.03.20 10:13:32 5: mySIP[7922], telnet : set mySIP caller Tobi sip:017xxxxxxx@fritz.box
exit

2017.03.20 10:13:32 5: mySIP[7922], telnet : set mySIP caller_state ringing
exit

2017.03.20 10:13:35 5: mySIP[7922], telnet : set mySIP caller_state established
exit

2017.03.20 10:13:42 5: mySIP[7922], DTMF Event: # - 19 ms
2017.03.20 10:13:43 5: mySIP[7922], DTMF Event: # - 388 ms
2017.03.20 10:13:44 5: mySIP[7922], DTMF Event: 5 - 19 ms
2017.03.20 10:13:45 5: mySIP[7922], DTMF Event: 5 - 268 ms
2017.03.20 10:13:45 5: mySIP[7922], DTMF: 5 , Anz: 2
2017.03.20 10:13:45 5: mySIP[7922], DTMF Event: 8 - 19 ms
2017.03.20 10:13:46 5: mySIP[7922], DTMF Event: 8 - 88 ms
2017.03.20 10:13:49 5: mySIP[7922], SIP_bye : HASH(0x2a6c958)
2017.03.20 10:13:49 5: mySIP[7922], telnet : set mySIP caller none
set mySIP caller_state hangup
exit

2017.03.20 10:13:59 5: mySIP, listen prozess 7922 found
2017.03.20 10:14:19 5: mySIP[7922], SIP_filter : a:"Tobi" <sip:017xxxxxxxx@fritz.box>;tag=C4AA49B8D3385564 | b:Net::SIP::Request=HASH(0x2b72720)
2017.03.20 10:14:19 5: mySIP[7922], telnet : set mySIP caller Tobi sip:017xxxxxxx@fritz.box
exit

2017.03.20 10:14:19 5: mySIP[7922], telnet : set mySIP caller_state ringing
exit

2017.03.20 10:14:22 5: mySIP[7922], telnet : set mySIP caller_state established
exit

2017.03.20 10:14:32 5: mySIP[7922], DTMF Event: # - 20 ms
2017.03.20 10:14:33 5: mySIP[7922], DTMF Event: # - 248 ms
2017.03.20 10:14:33 5: mySIP[7922], DTMF: 5# , Anz: 3
2017.03.20 10:14:33 5: mySIP[7922], telnet : set mySIP dtmf_event 5#

2017.03.20 10:14:33 5: mySIP[7922], DTMF Event: 9 - 19 ms
2017.03.20 10:14:34 5: mySIP[7922], DTMF Event: 9 - 88 ms
2017.03.20 10:14:36 5: mySIP[7922], DTMF Event: 8 - 69 ms
2017.03.20 10:14:40 5: mySIP[7922], SIP_bye : HASH(0x2a8c350)
2017.03.20 10:14:40 5: mySIP[7922], telnet : set mySIP caller none
set mySIP caller_state hangup
exit


Hier noch zum Vergleich ein list von meinem SIP Device:

Internals:
   LPID       21523
   NAME       mySIP
   NR         98
   NTFY_ORDER 50-mySIP
   STATE      listen_dtmf
   TYPE       SIP
   VERSION    V1.45 / 19.03.17
   Readings:
     2017-03-20 15:26:52   caller          none
     2017-03-20 15:26:52   caller_state    hangup
     2017-03-20 15:26:51   dtmf            0*
     2017-03-20 10:12:01   last_error      ListenRegister: Failed with code 401
     2017-03-21 15:49:24   state           listen_dtmf
   Helper:
     Listen_pid:
       abortArg
       abortFn
       arg        mySIP
       bc_pid     2
       finishFn   SIP_ListenDone
       fn         SIP_ListenStart
       pid        21523
       timeout
Attributes:
   room       SIP
   sip_dtmf_loop once
   sip_dtmf_send audio
   sip_dtmf_size 2
   sip_from   sip:620@fritz.box
   sip_ip     192.168.8.46
   sip_listen dtmf
   sip_port   5060
   sip_registrar fritz.box
   sip_ringtime 1
   sip_user   620


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