Hauptmenü

Modul 96_SIP

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

Vorheriges Thema - Nächstes Thema

Wzut

#720
linphone auf dem Handy bringt dir IMHO jetzt nichts mehr, der Weg von aussen nach innen steht ja.
Du kannst natürlich jetzt linphone auf einem deiner PCs oder Tablets installieren zum testen der Gegenrichtung. Ich vermute dein Prob aber eher bei deiner Swisscom Box :
Kann es sein das sie SIP von innen nach aussen blockt , Stichwort Firewall ? (bei der FB gibt es so eine versteckte gemeine Option)

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

choetzu

Es hat geklappt! ! Yeah..

Und zwar durch eine Fehlmanipulation meinerseits. Ich habe einfach ,,set SIP call meineNr" gemacht, was unvollständig war. Mit ,,set SIP call meineNr 30 !So gehts" hat es funktioniert. Wer lesen kann ist im Vorteill. :)

Wo ich immer noch definitiv anecke, ist, dass nach dem ausgehenden Call immer ein reset danach gemacht werden muss, damit er aus dem calling status rauskommt.  Ist das normal? Oder hab ich wieder was überlesen? ;)
Raspi3, EnOcean, Zwave, Homematic

Wzut

Nein normal ist das nicht !
Der einzige Unterschied zwischen set SIP call meineN und set SIP call meineNr 30 !So gehts  ist das bei der ersten Variante ein paar DTMF Töne gesendet werden und beim anderen der Text "so gehts". Die Überwachungszeit beträgt jedesmal 30 Sekunden. Klarheit kann hier wieder nur ein verbose 5 Log schaffen.
Ich würde drei Veruuche loggen , nimn jedsmal  set SIP call meineNr 10 !Irgend ein Text
1. sofort abnehmen und den Text anhöhren
2. beim ersten Klingeln wegdrücken
3. klingeln lassen bis die 10 Sekunden um sind , d.h. gar nicht rangehen
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Dia81

Hallo zusammen,

Wollte mal fragen ob das Modul hier jemand im Zusammenhang mit dem Gira tk Gateway nutzt. Die Verknüpfung mit den dortigen einstellcodes krieg ich irgendwie nicht hin. Warum das ganze?

Fände es chic wenn ich das Haus verlasse die Einstellungen der hausklibgel zu ändern. Aktuell kriege ich ein Foto und ein Hinweis über Telegram, danach Schellen die Telefone. Wenn ich nicht da bin möchte ich aber statt die Telefone eine Weiterleitung zum Handy. Eine Umschaltung müsste per dmft klappen aber in Verbindung mit dem Modul kriege ich da nicht hin. Falls wer ähnliche Ambitionen hat gerne melden :)

Wzut

Du müsstest halt schon verraten was du bisher gemacht hast (inkl list vom Device und verbose 5 Log). DTMF senden sollte im Gegensatz zum Empfang kein Problem sein.
Gegensprechanlagen via DTMF umschalten hatten wir hier schon, ggf. muss man mit Pausen vor und zwischen den Tönen arbeiten.
Es gab auch schon Leute die haben  die DTMF Tonfolge aufgezeichnet und dann mit dem Modul einfach als Audiofile zur Anlage geschickt.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Dia81

#725
Moin und hallo!

Zitat von: Wzut am 23 September 2018, 08:17:36
Du müsstest halt schon verraten was du bisher gemacht hast (inkl list vom Device und verbose 5 Log). DTMF senden sollte im Gegensatz zum Empfang kein Problem sein.
Gegensprechanlagen via DTMF umschalten hatten wir hier schon, ggf. muss man mit Pausen vor und zwischen den Tönen arbeiten.
Es gab auch schon Leute die haben  die DTMF Tonfolge aufgezeichnet und dann mit dem Modul einfach als Audiofile zur Anlage geschickt.

Dann mal ausführlicher :)

hier im Thread gab es schonmal eine ähnliche Frage.
Ich habe ein Türgateway, auf welches ich mich mit dem Fritzfon einwählen kann.
Dazu wähle ich **2 und warte ca. 1-2 Sekunde auf den "Kommandomoduston".
Ist dieser da kann ich dann Einstellungen vornehmen z.B. Varianten umschalten Nummern ändern etc.
Um z.B. Die Masterumleitungsnummer zu ändern müsste ich dann eingeben *1*01701234567# um auf die Nummer 01701234567 zu ändern.

Gebe ich alles hinternander im Telefon ein also:  **2*1*01701234567# funktioniert dies nicht, da wohl die Pause nach **2 nicht eingehalten wird.

Im Thread hier wurde jemand empfohlen beim SIP Modul mit "," Pausen einzufügen, aber das klappt mit dem Modul nicht.
Warum möchte ich das? Weil z.B. je nach An oder Abwesenheit meine Türstation auf andere Nummern weiterleiten soll. Ich muss also irgendwie hinbekommen diesen "call" funktionierend abzusetzen. Alternativ könnte ich einfach eine interne Rufnummer z.B. *504 anrufen und in der Fritzbox dort den "Code" im Telefonbuch hinterlegen, aber dort ist es ebenfalls nicht möglich Pausen einzutragen.

Vielleicht kann mir hier jmd weiterhelfen?

Folgendes hat leider NICHT funktioniert

set SIP call  ...

... **2*1*01701234567#
... 10 **2,,,,,*1*01701234567#
... **2,,,,,*1*01701234567#
... **2----*1*01701234567#
... **2-*1*01701234567#

[edit]

habe aus baulichen Gründen den Anschluss des Gateway auf Fon1 gelegt dahr müsste es jetzt immer mit **1 statt **2 anfangen.
Ein Verbose 5 Auszug einer Variante:


2018.09.23 11:25:23.522 4: FRITZ_SIP, calling **1----*1*123456#, ringtime: 30 , no message
2018.09.23 11:25:23.527 4: FRITZ_SIP, FRITZ_SIP|**1----*1*123456#|30||0
2018.09.23 11:25:23.552 4: FRITZ_SIP, call -> FRITZ_SIP|**1----*1*123456#|30||0|0
2018.09.23 11:25:23.553 5: FRITZ_SIP, call has pid 7465
2018.09.23 11:25:23.575 4: FRITZ_SIP[7465], my parent is 10952
2018.09.23 11:25:23.576 4: FRITZ_SIP[7465], trying to use port 5080
2018.09.23 11:25:23.682 4: FRITZ_SIP[7465], register new expire : 2018-09-23 11:30:23
2018.09.23 11:25:23.687 5: FRITZ_SIP, readingS:state Val:calling
2018.09.23 11:25:23.713 4: FRITZ_SIP[7465], CallStart DTMF : ABCD*#123--4567890
2018.09.23 11:25:23.722 4: FRITZ_SIP[7465], calling : **1----*1*123456#
2018.09.23 11:25:23.723 5: FRITZ_SIP, readingS:call_state Val:calling **1----*1*123456#
2018.09.23 11:25:23.739 4: FRITZ_SIP[7465], cb_final - status : FAIL - final : 481
2018.09.23 11:25:23.740 5: FRITZ_SIP, readingS:call_state Val:ringing
2018.09.23 11:25:24.184 4: FRITZ_SIP[7465], cb_final - Status : OK
2018.09.23 11:25:24.184 4: FRITZ_SIP[7465], call established
2018.09.23 11:25:24.186 5: FRITZ_SIP, readingS:call_state Val:established
2018.09.23 11:25:34.193 5: FRITZ_SIP[7465], 0. Ende des ersten Loops
2018.09.23 11:25:34.193 5: FRITZ_SIP[7465], 1. rtp_done : OK
2018.09.23 11:25:34.193 5: FRITZ_SIP[7465], 2. fi : 0
2018.09.23 11:25:34.194 5: FRITZ_SIP[7465], 4. timeout : 0
2018.09.23 11:25:34.194 5: FRITZ_SIP[7465], 6. call_established : 1
2018.09.23 11:25:34.194 5: FRITZ_SIP[7465], call->bye
2018.09.23 11:25:34.217 5: FRITZ_SIP[7465], RTP done : OK
2018.09.23 11:25:34.217 5: FRITZ_SIP[7465], Timeout  : 0
2018.09.23 11:25:34.217 5: FRITZ_SIP[7465], while    : 0
2018.09.23 11:25:34.218 4: FRITZ_SIP[7465], Calltime : 10
2018.09.23 11:25:34.230 4: FRITZ_SIP, CALLDone -> FRITZ_SIP|1|ok|10
2018.09.23 11:25:34.254 5: FRITZ_SIP, fifo is empty
2018.09.23 11:25:34.254 5: FRITZ_SIP, no elbc


List vom Device:


.oldstate  initialized
   .reset     0
   NAME       FRITZ_SIP
   NOTIFYDEV  global
   NR         584
   NTFY_ORDER 50-FRITZ_SIP
   STATE      initialized
   TYPE       SIP
   VERSION    V1.9 / 27.07.18
   .attraggr:
   .attrminint:
   READINGS:
     2018-09-23 11:25:34   call            done
     2018-09-23 11:25:34   call_attempt    0
     2018-09-23 11:25:34   call_state      ok
     2018-09-23 11:25:34   call_success    1
     2018-09-23 11:25:34   call_time       10
     2018-09-22 20:04:06   listen_alive    no
     2018-09-23 11:25:34   state           initialized
   helper:
     CALL_BYE   ok
     CALL_ERROR 1
     CALL_NAME  unknown
     CALL_NR    **1----*1*123456#
     CALL_START 1537694723
     CALL_TIME  10
     CALL_TYPE  out
Attributes:
   history_file ./log/FRITZ_SIP.sip
   history_size 0
   sip_dtmf_loop once
   sip_dtmf_send audio
   sip_dtmf_size 2
   sip_elbc   yes
   sip_from   sip:xxxxxx@fritz.box
   sip_ip     192.168.178.33
   sip_listen none
   sip_port   5070
   sip_registrar 192.168.178.1
   sip_ringtime 3
   sip_user   xxxxxx
   verbose    5

Wzut

dein Aufruf ist falsch , das sieht man auch schön im Log :
Zitat von: Dia81 am 23 September 2018, 11:21:03
2018.09.23 11:25:23.713 4: FRITZ_SIP[7465], CallStart DTMF : ABCD*#123--4567890
2018.09.23 11:25:23.722 4: FRITZ_SIP[7465], calling : **1----*1*123456#

du rufst die  Nr **1----*1*123456# an un sendest den default DTMF Code ABCD*#123--4567890
du must aber die **1 anrufen und *01701234567# senden !
Das erste - leitet DTMF ein und jedes weitere erzeugt eine kleine Pause
set call mysip **1 ------*01701234567#
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Dia81

#727
Zitat von: Wzut am 23 September 2018, 11:58:01
dein Aufruf ist falsch , das sieht man auch schön im Log :du rufst die  Nr **1----*1*123456# an un sendest den default DTMF Code ABCD*#123--4567890
du must aber die **1 anrufen und *01701234567# senden !
Das erste - leitet DTMF ein und jedes weitere erzeugt eine kleine Pause
set call mysip **1 ------*01701234567#

Danke für deine Antwort aber irgedwie check ich es nicht... das würde doch genau dem Code "**2----*1*01701234567#" entsprechen. Umgesetzt auf den geänderten analogeingang:

**1----*1*01701234567#



Irgendwie sehe ich da gerade kein Unterscheid außer die "Leerzeile" nach dem **1 ...

Versuche ich "**1 -----*1*487654321#" meckert Fhem wegen invadlid Maxtime "-----*1*487654321#

Versuche ich **1 5 -----*1*487654321# meckert eh nicht aber es klappt auch nicht, die Nummer wird nicht geändert

2018.09.23 12:15:58.616 4: FRITZ_SIP, message DTMF = -----*1*487654321#
2018.09.23 12:15:58.617 4: FRITZ_SIP, FRITZ_SIP|**1|5|-----*1*487654321#|0
2018.09.23 12:15:58.641 4: FRITZ_SIP, call -> FRITZ_SIP|**1|5|-----*1*487654321#|0|0
2018.09.23 12:15:58.642 5: FRITZ_SIP, call has pid 8929
2018.09.23 12:15:58.662 4: FRITZ_SIP[8929], my parent is 10952
2018.09.23 12:15:58.663 4: FRITZ_SIP[8929], trying to use port 5080
2018.09.23 12:15:58.774 4: FRITZ_SIP[8929], register new expire : 2018-09-23 12:20:58
2018.09.23 12:15:58.778 5: FRITZ_SIP, readingS:state Val:calling
2018.09.23 12:15:58.803 4: FRITZ_SIP[8929], CallStart DTMF : ----*1*487654321#
2018.09.23 12:15:58.812 4: FRITZ_SIP[8929], calling : **1
2018.09.23 12:15:58.813 5: FRITZ_SIP, readingS:call_state Val:calling **1
2018.09.23 12:15:58.829 4: FRITZ_SIP[8929], cb_final - status : FAIL - final : 481
2018.09.23 12:15:58.830 5: FRITZ_SIP, readingS:call_state Val:ringing
2018.09.23 12:15:59.235 4: FRITZ_SIP[8929], cb_final - Status : OK
2018.09.23 12:15:59.236 4: FRITZ_SIP[8929], call established
2018.09.23 12:15:59.237 5: FRITZ_SIP, readingS:call_state Val:established
2018.09.23 12:16:03.800 5: FRITZ_SIP[8929], 0. Ende des ersten Loops
2018.09.23 12:16:03.800 5: FRITZ_SIP[8929], 1. rtp_done : 0
2018.09.23 12:16:03.801 5: FRITZ_SIP[8929], 2. fi : 0
2018.09.23 12:16:03.801 5: FRITZ_SIP[8929], 4. timeout : 1
2018.09.23 12:16:03.801 5: FRITZ_SIP[8929], 6. call_established : 1
2018.09.23 12:16:03.801 5: FRITZ_SIP[8929], call->bye
2018.09.23 12:16:03.822 5: FRITZ_SIP[8929], RTP done : 0
2018.09.23 12:16:03.822 5: FRITZ_SIP[8929], Timeout  : 1
2018.09.23 12:16:03.823 5: FRITZ_SIP[8929], while    : 0
2018.09.23 12:16:03.823 4: FRITZ_SIP[8929], Calltime : 4
2018.09.23 12:16:03.835 4: FRITZ_SIP, CALLDone -> FRITZ_SIP|1|timeout|4
2018.09.23 12:16:03.852 5: FRITZ_SIP, fifo is empty
2018.09.23 12:16:03.853 5: FRITZ_SIP, no elbc


weitere Versuche wie:


**1 10 -------*1--*487654321#

leider ebenfalls erfolglos. Telefontest **1 (kurz warten) *1*487654321# weiterhin erfolgreich



Wzut

ja die Timeoutzeit muss noch dazwischen, sorry mein Fehler (die Leerzeichen machen den entscheidenden Unterschied zwischen den Varianten) 
Deine 5 Sekunden waren zu wenig laut Log, aber dein letztes Beispiel mit den 10 Sekunden schaut so eigentlich gut aus. Ggf kannst du auch noch Pausen nach jedem Zeichen einfügen. Aber auf jeden Fall ruf zu den ersten Tests ein normales Telefon an und höre dir an wie das klingt. bzw  nur so erfährst du ob überhaupt DTMF Töne versendet werden. Wie bereits geschrieben bleibt als letzter Ausweg dann immer noch die Option die Tonfolge aufzuzeichen  und als komplette Audio Datei an das GW zu schicken.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Dia81

#729
Zitat von: Wzut am 23 September 2018, 13:13:27
ja die Timeoutzeit muss noch dazwischen, sorry mein Fehler (die Leerzeichen machen den entscheidenden Unterschied zwischen den Varianten) 
Deine 5 Sekunden waren zu wenig laut Log, aber dein letztes Beispiel mit den 10 Sekunden schaut so eigentlich gut aus. Ggf kannst du auch noch Pausen nach jedem Zeichen einfügen. Aber auf jeden Fall ruf zu den ersten Tests ein normales Telefon an und höre dir an wie das klingt. bzw  nur so erfährst du ob überhaupt DTMF Töne versendet werden. Wie bereits geschrieben bleibt als letzter Ausweg dann immer noch die Option die Tonfolge aufzuzeichen  und als komplette Audio Datei an das GW zu schicken.

OK dann teste ich mit den Infos nochmal rum... wieviel Pause macht ein "-" denn ?

Hat sich beantwortet die Frage. Habe mein Telefon angerufen und es kommen ach alle zu erwartenden Töne.

Noch mal EDIT: es klappt jetzt. Super lieben Dank:

**1 20 ------*-1-*-4-8-7-6-5-4-3-2-1-#

choetzu

Zitat von: Wzut am 22 September 2018, 08:46:32
Nein normal ist das nicht !
Der einzige Unterschied zwischen set SIP call meineN und set SIP call meineNr 30 !So gehts  ist das bei der ersten Variante ein paar DTMF Töne gesendet werden und beim anderen der Text "so gehts". Die Überwachungszeit beträgt jedesmal 30 Sekunden. Klarheit kann hier wieder nur ein verbose 5 Log schaffen.
Ich würde drei Veruuche loggen , nimn jedsmal  set SIP call meineNr 10 !Irgend ein Text
1. sofort abnehmen und den Text anhöhren
2. beim ersten Klingeln wegdrücken
3. klingeln lassen bis die 10 Sekunden um sind , d.h. gar nicht rangehen

Also, es funktioniert bei mir nun auch. Keine Ahnung wieso. Evtl. Habe ich eine falsche Telnr. gewählt, denn nur da bleibt er auf ,,calling". Ansonsten läufts nun bestens! Danke Wzut, ein wirklich tolles Modul.

Frisst eigentlich dei Modul viel Ressourcen im Listen-Modus?
Raspi3, EnOcean, Zwave, Homematic

Wzut

Schön das es jetzt geht, aber auch bei einer nicht reagierenden Nummer sollte der Timeout greifen und den Call sauber beenden. Was die Belastung des Systems durch einen aktiven Listen Prozess betrifft kann man nur wie Radio Eriwan antworten : "Im Prinzip nein, aber ..."
D.h. es hängt halt von deinem System ab.  Hast du nun Blut geleckt ? denn nach deinen ersten Anforderungen war eigentlich kein aktiver Listen Prozess nötig :)
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

choetzu

Zitat von: Wzut am 24 September 2018, 10:34:34
Schön das es jetzt geht, aber auch bei einer nicht reagierenden Nummer sollte der Timeout greifen und den Call sauber beenden.

und wie lange dauert der Timeout. Ich habe eine unvollständige Nummer gewählt (also anstelle von 7 nur 6 Nummern). Es steht seit 5 Min auf "calling". Im Eventmonitor zeigt es mir auch jede Minute SIP Calling an. Ich kann timeout nicht konfigurieren, oder?

Was die Belastung des Systems durch einen aktiven Listen Prozess betrifft kann man nur wie [url=https://de.wikipedia.org/wiki/Radio_Eriwan]Radio Eriwan[/url] antworten : "Im Prinzip nein, aber ..."

ok, dann überlege ich mir, ob ich das auf einen zweiten Raspi3 verschiebe, damit mein Hauptraspi möglichst wenig Ressourcen braucht.

  Hast du nun Blut geleckt ? denn nach deinen ersten Anforderungen war eigentlich kein aktiver Listen Prozess nötig :)
Mit dem Apetit kommt der Hunger ;) Eigentlich ist meine Anforderung unverändert, aber ich will halt ein bischen rumspielen und sehen, was alles machbar ist... COol ist das Modul auf jedenfall..! Klasse Arbeit, Wzut.. ;)
Raspi3, EnOcean, Zwave, Homematic

Wzut

#733
Zitat von: choetzu am 24 September 2018, 15:02:19
und wie lange dauert der Timeout.
Das bestimmst du (siehe Doku:)  default ist 30 Sekunden

Edit : ok, unvollständige Nr, habe ich selbst nie probiert. Kann daher gut sein das der Timeout nie kommt.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

choetzu

Ok, das hab ich kapiert ;) aber dann liegts eh an der unvollständigen Nummer. Das muss man dann ein set Sip reset machen..
Raspi3, EnOcean, Zwave, Homematic