Hauptmenü

Modul 96_SIP

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

Vorheriges Thema - Nächstes Thema

DerTom

Nabend,

also alles bisher getestete hat super funktioniert, vielen Dank für die Weiterentwicklung des Moduls. Rausrufen mit Texten und / oder Files klappt wunderbar.

Nach den anfänglichen Schwierigkeiten mit dem Erkennen der DTMF-Töne läuft das ja nun auch stabil.

Wäre jemand mal so nett und könnte mal einen Beispielcode für die Auswertung eines DTMF Codes bereit stellen? Irgendwie finde ich nix und meine Versuche scheitern wohl an meinen Kenntnissen.

So ganz was einfaches:

Anruf kommt an, DTMF Code 56 wird übergeben --> Befehl 1 wird ausgeführt. Kommt ein anderer DTMF Code soll ein anderer Befehl ausgeführt werden.

Irgendwie bin ich zu blöd... :-[

Wzut

TIPP : Eventmonitor öffenen , anrufen , Tasten drücken , den passenden Event im Monitor markieren und den Create/Modify Device Button drücken :)
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

DerTom

Oder so. Vielen Dank, der Tipp hat geholfen. Damit kann ich was anfangen.

MarkusLoch

#783
Hallo zusammen,

erstmal vielen Dank für das tolle Modul! Mit Hilfe der Wiki habe ich es sehr schnell eingerichtet bekommen. Ich möchte SIP mit sipgate.de als Anbieter laufen lassen. Ich habe leider ein Problem dabei: Der Anruf funktioniert zwar zuverlässig, aber es dauert sehr lange, bis der Rufaufbau erfolgt. Es vergehen teilweise fast zwei Minuten, bis das Telefon auf der Gegenseite klingelt. Wenn ich sipgate mit einer VoIP-App benutze, dauert es nur wenige Sekunden. Im log zeigt sich gar nichts. Ist das normal? Oder gibt es irgendwie eine Möglichkeit wie ich rausfinden kann, woran es hängt?

Edit: Das zeigt der Eventmonitor wenn ich einen Anruf starte.
2019-01-21 21:16:54 SIP SIPGate call_state: invite
2019-01-21 21:16:54 SIP SIPGate call: 02xxxxxxxx
2019-01-21 21:17:12 SIP SIPGate calling
2019-01-21 21:17:40 SIP SIPGate call_state: calling 02xxxxxx
2019-01-21 21:18:10 SIP SIPGate call_state: established

Gruß,
Markus

Wzut

gleiche Antwort wie immer : list vom Device posten und ein Log Abschnitt vom Vorgang mit verbose 5
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

MarkusLoch

#785
Anbei die Informationen. Ich habe einen Call gemacht, diesen aber am Handy nicht angenommen, sondern weggedrückt. Diesmal hat es auch nur ca. eine Minute gedauert. Finde ich aber trotzdem ziemlich lang.

List von meinem SIP Device:

Internals:
   AC         /usr/bin/sox
   CFGFN     
   NAME       SIPGate
   NOTIFYDEV  TTS_device
   NR         268
   NTFY_ORDER 50-SIPGate
   STATE      initialized
   TYPE       SIP
   VERSION    V1.91 / 31.07.18
   READINGS:
     2019-01-22 16:10:23   call            done
     2019-01-22 16:10:23   call_attempt    0
     2019-01-22 16:10:23   call_state      canceled
     2019-01-22 16:10:23   call_success    0
     2019-01-22 16:10:23   call_time       0
     2019-01-21 21:41:52   caller          fetch
     2019-01-21 21:14:04   listen_alive    no
     2019-01-22 16:10:23   state           initialized
   helper:
     CALL_BYE   canceled
     CALL_ERROR 1
     CALL_NAME  unknown
     CALL_NR    01514xxxxxxx
     CALL_START 1548169761
     CALL_TIME  0
     CALL_TYPE  out
Attributes:
   T2S_Device TTS_device
   audio_converter sox
   history_file ./log/SIPGate.sip
   history_size 0
   room       Sicherheit
   sip_dtmf_loop once
   sip_dtmf_send audio
   sip_dtmf_size 2
   sip_elbc   yes
   sip_from   sip:2594xxxxx@sipgate.de
   sip_ip     192.168.0.101
   sip_listen none
   sip_port   5060
   sip_registrar sipgate.de
   sip_ringtime 3
   sip_user   2594xxxxx


Logfile Verbose 5:
2019.01.22 16:19:17 4: WEB_192.168.0.28_54315 POST /fhem&fw_id=1610&cmd=set+SIPGate+call+01514xxxxxxx; BUFLEN:0
2019.01.22 16:19:17 5: Cmd: >set SIPGate call 01514xxxxxxx<
2019.01.22 16:19:17 4: SIPGate, calling 01514xxxxxxx, ringtime: 30 , no message
2019.01.22 16:19:17 4: SIPGate, SIPGate|01514xxxxxxx|30||0
2019.01.22 16:19:17 4: BlockingCall (SIP_CALLStart): created child (23304), uses telnetForBlockingFn_1547801260 to connect back
2019.01.22 16:19:17 4: SIPGate, call -> SIPGate|01514xxxxxxx|30||0|0
2019.01.22 16:19:17 5: SIPGate, call has pid 23304
2019.01.22 16:19:17 5: Starting notify loop for SIPGate, 2 event(s), first is call_state: invite
2019.01.22 16:19:17 5: createNotifyHash
2019.01.22 16:19:17 4: SIPGate[23304], my parent is 10412
2019.01.22 16:19:17 4: SIPGate[23304], trying to use port 5070
2019.01.22 16:19:17 5: End notify loop for SIPGate
2019.01.22 16:19:35 4: SIPGate[23304], register new expire : 2019-01-22 16:29:35
2019.01.22 16:19:35 4: Connection accepted from telnetForBlockingFn_1547801260_127.0.0.1_56993
2019.01.22 16:19:35 5: Cmd: >{SIP_rSU('SIPGate','state;calling')}<
2019.01.22 16:19:35 5: SIPGate, readingS:state Val:calling
2019.01.22 16:19:35 5: Starting notify loop for SIPGate, 1 event(s), first is calling
2019.01.22 16:19:36 5: End notify loop for SIPGate
2019.01.22 16:19:54 4: SIPGate[23304], CallStart DTMF : ABCD*#123--4567890
2019.01.22 16:20:03 4: SIPGate[23304], calling : 01514xxxxxxx
2019.01.22 16:20:03 5: Cmd: >{SIP_rSU('SIPGate','call_state;calling 01514xxxxxxx')}<
2019.01.22 16:20:03 5: SIPGate, readingS:call_state Val:calling 01514xxxxxxx
2019.01.22 16:20:03 5: Starting notify loop for SIPGate, 1 event(s), first is call_state: calling 01514xxxxxxx
2019.01.22 16:20:03 5: createNotifyHash
2019.01.22 16:20:03 5: End notify loop for SIPGate
2019.01.22 16:20:18 4: SIPGate[23304], cb_final - status : FAIL - final : 486
2019.01.22 16:20:18 5: SIPGate[23304], 0. Ende des ersten Loops
2019.01.22 16:20:18 5: SIPGate[23304], 1. rtp_done : 0
2019.01.22 16:20:18 5: SIPGate[23304], 2. fi : 1
2019.01.22 16:20:18 5: SIPGate[23304], 3. Final   : 486
2019.01.22 16:20:18 5: SIPGate[23304], 4. timeout : 0
2019.01.22 16:20:18 5: SIPGate[23304], 6. call_established : 0
2019.01.22 16:20:18 5: SIPGate[23304], RTP done : 0
2019.01.22 16:20:18 5: SIPGate[23304], Timeout  : 0
2019.01.22 16:20:18 5: SIPGate[23304], Final    : 486
2019.01.22 16:20:18 5: SIPGate[23304], while    : 0
2019.01.22 16:20:18 4: SIPGate[23304], Calltime : 0
2019.01.22 16:20:18 5: Cmd: >{BlockingStart('60')}<
2019.01.22 16:20:18 5: Cmd: >{SIP_CALLDone('SIPGate|1|canceled|0')}<
2019.01.22 16:20:18 4: SIPGate, CALLDone -> SIPGate|1|canceled|0
2019.01.22 16:20:18 5: Starting notify loop for SIPGate, 6 event(s), first is call: done
2019.01.22 16:20:18 5: End notify loop for SIPGate
2019.01.22 16:20:18 5: SIPGate, fifo is empty
2019.01.22 16:20:18 5: SIPGate, no elbc

Wzut

mal als Schnellschuss, ersetze den sip_registrar sipgate.de mal gegen die echte IP  -> 217.10.79.9
sip_user und sip_from so lassen.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

MarkusLoch

Zitat von: Wzut am 22 Januar 2019, 16:51:37
mal als Schnellschuss, ersetze den sip_registrar sipgate.de mal gegen die echte IP  -> 217.10.79.9
sip_user und sip_from so lassen.

Vielen Dank für den Tipp! Habe es geändert, jetzt dauert es nur noch ein paar Sekunden!  :)

no_Legend

So ich hab dann noch mal getestet.
Ich bekomme es einfach nicht hin.
FHEM will per SIP nicht bei der Fritzbox anrufen.

Damit ich weiß ob es überhaupt mit meiner Netzwerk Config funktioniert, habe ich extra einen DoorPi noch mal aufgesetzt.
Hier geht es ohne Probleme.
Mit den gleichen Einstellungen. User Passwort usw.
Soweit ich weiß nimmt Doorpi Linphone, hier auch mal die config von DoorPi.
Weiter unten dann auch noch die aktuelle Config und das LOG von fhem.

Jemand noch eine Idee?
Braucht das Modul / FHEM als User rechte auf ein bestimmtes Programm?


[SIP-Phone]
firewallpolicy = PolicyNoFirewall
audio_codecs = PCMA,PCMU
call_timeout = 30
capture_device = ALSA: USB PnP Sound Device
dialtone = !BASEPATH!/media/ShortDialTone.wav
dialtone_renew_every_start = False
dialtone_volume = 35
echo_cancellation_enabled = False
identity = DoorPi
local_port = 5060
max_call_time = 120
playback_device = ALSA: USB PnP Sound Device
record_while_dialing = False
records = !BASEPATH!/records/%Y-%m-%d_%H-%M-%S.wav
sipphonetyp = linphone
sipserver_password = xyzs1212
sipserver_realm = 192.168.178.1
sipserver_server = 192.168.178.1
sipserver_username = devdoorpi
stun_server =
ua.max_calls = 2
video_codecs = VP8
video_device = StaticImage: Static picture
video_display_enabled = False
video_size = vga



Internals:
   FUUID      5c483e55-f33f-abd1-feae-433b0a209ec077c0
   NAME       sip.fb1.doorpi
   NOTIFYDEV  global
   NR         1082
   NTFY_ORDER 50-sip.fb1.doorpi
   STATE      initialized
   TYPE       SIP
   VERSION    V1.91 / 31.07.18
   Helper:
     DBLOG:
       call:
         DBLog:
           TIME       1548692083.12628
           VALUE      done
       call_attempt:
         DBLog:
           TIME       1548692083.12628
           VALUE      0
       call_state:
         DBLog:
           TIME       1548692083.12628
           VALUE      fail
       call_success:
         DBLog:
           TIME       1548692083.12628
           VALUE      0
       call_time:
         DBLog:
           TIME       1548692083.12628
           VALUE      0
       last_error:
         DBLog:
           TIME       1548692083.12628
           VALUE      CallRegister
       state:
         DBLog:
           TIME       1548692083.12628
           VALUE      initialized
   READINGS:
     2019-01-28 17:14:43   call            done
     2019-01-28 17:14:43   call_attempt    0
     2019-01-28 17:14:43   call_state      fail
     2019-01-28 17:14:43   call_success    0
     2019-01-28 17:14:43   call_time       0
     2019-01-28 17:14:43   last_error      CallRegister: Failed with error 110
     2019-01-28 15:46:48   listen_alive    no
     2019-01-28 17:14:43   state           initialized
   helper:
     CALL_BYE   CallRegister: Failed with error 110
     CALL_ERROR 0
     CALL_NAME  unknown
     CALL_NR    **611
     CALL_START 1548692019.11327
     CALL_TIME  0
     CALL_TYPE  out
Attributes:
   history_file ./log/sip.fb1.doorpi.sip
   history_size 0
   room       9.98_Test
   sip_dtmf_loop once
   sip_dtmf_send audio
   sip_dtmf_size 2
   sip_elbc   yes
   sip_from   sip:devdoorpi@192.168.178.1
   sip_ip     192.168.1.11
   sip_listen none
   sip_registrar 192.168.178.1
   sip_ringtime 3
   sip_user   devdoorpi
   verbose    5



Log Auszug

2019.01.28 17:14:43 5: sip.fb1.doorpi, no elbc
2019.01.28 17:14:43 5: sip.fb1.doorpi, fifo is empty
2019.01.28 17:14:43 4: sip.fb1.doorpi, CALLDone -> sip.fb1.doorpi|0|CallRegister: Failed with error 110|0
2019.01.28 17:14:16 1: PERL WARNING: Use of uninitialized value in subtraction (-) at ./FHEM/73_AutoShuttersControl.pm line 2220.
2019.01.28 17:13:39 4: sip.fb1.doorpi[7484], using Leg.pm to find a free port
2019.01.28 17:13:39 4: sip.fb1.doorpi[7484], my parent is 1629
2019.01.28 17:13:39 5: sip.fb1.doorpi, call has pid 7484
2019.01.28 17:13:39 4: sip.fb1.doorpi, call -> sip.fb1.doorpi|**611|20||0|0
2019.01.28 17:13:39 4: sip.fb1.doorpi, sip.fb1.doorpi|**611|20||0
2019.01.28 17:13:39 4: sip.fb1.doorpi, calling **611, ringtime: 20 , no message
IntelNUC mit Ubuntu mit FHEM immer aktuell,2x HMLAN, CUL443, CUL868 -homekit/siri -tablet ui -homebridge
Device, diverse:
HM-SEC-KEY,HM-LC-BL1-FM,HM-SEC-SD,HM-Sen-DB-PCB,HM-Sec-RHS,HM-Sec-SC-2,HM-WDS10-TH-O,Harmony,Netamo, 433MHz Steckdosen uvm.

Wzut

#789
dein FHEM ist einem anderen Subnetz als die FB ?
Wie sind die Netze verbunden bzw. ist die FHEM IP eine NAT IP ? 
Edit : ich sehe gerade wir hatten dein Thema auf Seite 50 schon eimal , damals bist du die Antwort schuldig geblieben wie der Aufbau deines doppelten NATs auschaut und ob die FB unter 192.168.178.1 direkt mit der 192.168.1.11 reden kann.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

plin

Zitat von: Wzut am 28 Januar 2019, 17:39:47
Edit : ich sehe gerade wir hatten dein Thema auf Seite 50 schon eimal , damals bist du die Antwort schuldig geblieben wie der Aufbau deines doppelten NATs auschaut und ob die FB unter 192.168.178.1 direkt mit der 192.168.1.11 reden kann.
tja, und für mich war es der Anlass ein wenig zu basteln. Lade Dir bitte mal das angehängte Script runter und führe
chmod a+x SIP_checksettings.pl
./SIP_checksettings.pl sip.fb1.doorpi

aus. Der Output sollte uns mehr Aufschluss geben. Ist ein Jungfernlauf im unbekannten Umfeld, kann also auch  in die Hose gehen  ;D
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

Mikka

Hallo no_Legend,

Zitat von: no_Legend am 27 September 2018, 10:47:38

Die FB und das interen Netz haben andere IP Bereiche.
Das ist leider dem Doppelten NAT geschultet, da mir KabelBW hier nichts liefern will als reines Modem und ich eine OPNsense wegen VPN usw. am laufen habe.
Die OPNSense lässt alle Ports durch.

...

kannst du mal bitte in deiner OPNsense mal folgendes tun:
OPNsense -> Firewall -> Log Files -> Live View

und unter filter die IP-Adresse deiner FritzBox und einmal die IP-Adresse des FHEM-Servers eingeben und die entsprechenden Logs während des SIP-call (am besten rufst du aus FHEM dein Handy an...) aufzeichnen bzw. ein Screenshot erstellen?

Viele Grüße
Mikka

no_Legend

Zitat von: plin am 28 Januar 2019, 18:04:28
tja, und für mich war es der Anlass ein wenig zu basteln. Lade Dir bitte mal das angehängte Script runter und führe
chmod a+x SIP_checksettings.pl
./SIP_checksettings.pl sip.fb1.doorpi

aus. Der Output sollte uns mehr Aufschluss geben. Ist ein Jungfernlauf im unbekannten Umfeld, kann also auch  in die Hose gehen  ;D

Danke ich weiß eure Arbeit echt zu Schätzen.
Bin leider nicht vor heute dazu gekommen.


sudo ./SIP_checksettings.pl sip.fb1.doorpi
Hole Device-Attribute für 'sip.fb1.doorpi' von FHEM

Prüfe alle erforderlichen Attribute
--------------------------------------------------------------------------------

Prüfe einige gesetzte Attribute
sip_audiofile_dtmf: File - existiert nicht!
sip_audiofile_dtmf: File - existiert nicht!
--------------------------------------------------------------------------------

Prüfe lokale IP-Adresse 192.168.1.11
Use of uninitialized value in subroutine entry at ./SIP_checksettings.pl line 276.
Bad arg length for Socket::inet_ntoa, length is 0, should be 4 at ./SIP_checksettings.pl line 276.


Zitat von: Mikka am 28 Januar 2019, 20:39:48
Hallo no_Legend,

kannst du mal bitte in deiner OPNsense mal folgendes tun:
OPNsense -> Firewall -> Log Files -> Live View

und unter filter die IP-Adresse deiner FritzBox und einmal die IP-Adresse des FHEM-Servers eingeben und die entsprechenden Logs während des SIP-call (am besten rufst du aus FHEM dein Handy an...) aufzeichnen bzw. ein Screenshot erstellen?

Viele Grüße
Mikka

Hallo Mikka,

wenn ich nach der IP von FHEM Filter kommt garnichts raus.
Wenn ich aber nach der IP Filter von der Fritzbox sehe ich dass der Traffic auf Port 5060 abgelehnt wird.
Er klären kann ich das nicht.
Ich habe den Bogon nd Privat filter auf dem WAN deaktiviert.
Anbei Zwei Screenshots.

Aber warum geht es dann mit DoorPi?

Gruß Robert
IntelNUC mit Ubuntu mit FHEM immer aktuell,2x HMLAN, CUL443, CUL868 -homekit/siri -tablet ui -homebridge
Device, diverse:
HM-SEC-KEY,HM-LC-BL1-FM,HM-SEC-SD,HM-Sen-DB-PCB,HM-Sec-RHS,HM-Sec-SC-2,HM-WDS10-TH-O,Harmony,Netamo, 433MHz Steckdosen uvm.

Mikka

#793
Zitat von: no_Legend am 28 Januar 2019, 21:06:34

Hallo Mikka,

wenn ich nach der IP von FHEM Filter kommt garnichts raus.
Wenn ich aber nach der IP Filter von der Fritzbox sehe ich dass der Traffic auf Port 5060 abgelehnt wird.
Er klären kann ich das nicht.
Ich habe den Bogon nd Privat filter auf dem WAN deaktiviert.
Anbei Zwei Screenshots.

Aber warum geht es dann mit DoorPi?

Gruß Robert

192.168.178.20 ist die WAN-IP deiner OPNsense oder?

Die FritzBox baut eine Verbindung Richtung FHEM auf. Wieso das so ist evtl. Wzut beantworten.

Wenn ich einen mit dem Programm Telefon auf einem Mac aus dem gleichen Netz über die FritzBox mein Handy anrufen, baut die FritzBox keine Verbindung Richtung Mac/Telefon auf.

Geh mal unter OPNsense auf:
Firewall -> NAT -> Port Forward und erstelle die neue Regel wie im Screenshot. FHEM kannst du durch "Single host or Network" und die IP erstzen. Oder unter Firewall -> Aliases einen entsprechenden FHEM-host anlegen ;-)

Mikka

no_Legend

Zitat von: Mikka am 28 Januar 2019, 21:24:31
192.168.178.20 ist die WAN-IP deiner OPNsense oder?

Die FritzBox baut eine Verbindung Richtung FHEM auf. Wieso das so ist evtl. Wzut beantworten.

Wenn ich einen mit dem Programm Telefon auf einem Mac aus dem gleichen Netz über die FritzBox mein Handy anrufen, baut die FritzBox keine Verbindung Richtung Mac/Telefon auf.

Geh mal unter OPNsense auf:
Firewall -> NAT -> Port Forward und erstelle die neue Regel wie im Screenshot. FHEM kannst du durch "Single host or Network" und die IP erstzen. Oder unter Firewall -> Aliases einen entsprechenden FHEM-host anlegen ;-)

Mikka

Komm ich heute nicht mehr dazu.
Welche App zum telefonieren vom mac aus nutz du?

Gruß Robert


Gesendet von iPhone mit Tapatalk Pro
IntelNUC mit Ubuntu mit FHEM immer aktuell,2x HMLAN, CUL443, CUL868 -homekit/siri -tablet ui -homebridge
Device, diverse:
HM-SEC-KEY,HM-LC-BL1-FM,HM-SEC-SD,HM-Sen-DB-PCB,HM-Sec-RHS,HM-Sec-SC-2,HM-WDS10-TH-O,Harmony,Netamo, 433MHz Steckdosen uvm.