Zeige Ergebnis 1 bis 9 von 9

Thema: Modul mit automatischer DTMF-Eingabe

  1. #1
    STARFACE User

    Registriert seit
    11.07.2017
    Ort
    Berlin
    Beiträge
    11

    Frage Modul mit automatischer DTMF-Eingabe

    Hallo STARFACE-Community,

    ich habe folgendes Anliegen, welches ich mit dem Module Designer abbilden möchte.

    Für die Steuerung einer Türöffnung, haben wir bei einem Kunden ein Rocom Doormaster FTZ verbaut. Darüber lässt sich die Tür mit der Eingabe der Nebenstelle und eines darauffolgenden DTMF-Ton öffnen. Nun möchte der Kunden allerdings nicht immer erst die Nebenstelle wählen müssen und dann auch noch händisch die DTMF-Taste drücken.

    Daher war der Gedanke, diesen Prozess per Modul zu lösen. Sprich das Modul, soll als Funktionstaste auf ein Yealink hinterlegt werden und mit betätigen der Taste soll folgendes automatisch ausgeführt werden:

    -> Anwählen der Nebenstelle des Doormaster
    -> Nach Rufaufbau soll die Eingabe der DTMF-Ton erfolgen
    -> Anruf beenden/ auflegen

    Bis zum Anwählen des Doormaster klappt das auch soweit, allerdings bekomme ich es mit keiner meiner Versuche hin, dass die Taste "8" als DTMF automatisch übertragen wird.

    Folgendes habe ich unter anderem probiert:

    ----------------------------------------
    1. CallPhoneNumber ('21',",",'30',---)--> _success
    2. if(?(_succes))
    3. SendDTMF('8',")
    4. exit
    ----------------------------------------

    Ich habe auch schon probiert, "SendDTMF" als "delayed FORK" zu integrieren, oder auch mit "IsChannelOpen" eine Abfrage zu starten. Jedoch immer ohne Erfolg.

    Die Anforderungen an das Script, sollte eigentlich keine große Herausforderung sein.

    Habe ich hierbei etwas zu beachten? Über hilfreiche Informationen würde ich mich freuen!

    Vielen Dank!

  2. #2
    Ex-STARFACE Crew STARFACE Expert
    Benutzerbild von Niklas
    Registriert seit
    08.12.2014
    Beiträge
    294

    Standard

    Dein Beispiel funktioniert bei mir einwandfrei (6.4.2.19). Schau mal in's PBX-Log (/var/log/asterisk/full), müsste so aussehen:

    Rufnummer (79) wird angerufen:
    Code:
     [Jul 21 16:04:31] VERBOSE[21179][C-00000000] pbx.c:     -- Executing [79@modules:1] AGI("Local/79@modules-00000000;2", "agi:async,X-UCI_ORIGINATE: 0d99709d-0d3c-4e61-a6d7-54cbb4b2b458,,,") in new stack
    [Jul 21 16:04:31] VERBOSE[21179][C-00000000] res_agi.c:     -- AGI Script Executing Application: (SIPRemoveHeader) Options: (X-UCI_ORIGINATE)
    [Jul 21 16:04:31] VERBOSE[21179][C-00000000] res_agi.c:     -- AGI Script Executing Application: (SIPRemoveHeader) Options: (X-UCI_CALLID)
    [Jul 21 16:04:31] VERBOSE[21179][C-00000000] res_agi.c:     -- AGI Script Executing Application: (SIPAddHeader) Options: (X-UCI_CALLID:0d99709d-0d3c-4e61-a6d7-54cbb4
    b2b458)
    [Jul 21 16:04:31] VERBOSE[21179][C-00000000] res_agi.c:     -- AGI Script Executing Application: (Set) Options: (CALLERID(name)=unknown)
    [Jul 21 16:04:31] VERBOSE[21179][C-00000000] res_agi.c:     -- AGI Script Executing Application: (Set) Options: (CALLERID(number)=unknown)
    [Jul 21 16:04:31] VERBOSE[21179][C-00000000] res_agi.c:     -- AGI Script Executing Application: (Dial) Options: (SIP/rawri,120,wWtT)
    [Jul 21 16:04:31] VERBOSE[21179][C-00000000] netsock2.c:   == Using SIP RTP TOS bits 184
    [Jul 21 16:04:31] VERBOSE[21179][C-00000000] netsock2.c:   == Using SIP RTP CoS mark 5
    [Jul 21 16:04:31] VERBOSE[21179][C-00000000] app_dial.c:     -- Called SIP/rawri
    Das Endgerät (SIP/rawri) klingelt und nimmt das Gespräch an:
    Code:
    [Jul 21 16:04:31] VERBOSE[21179][C-00000000] app_dial.c:     -- SIP/rawri-00000000 is ringing
    [Jul 21 16:04:35] VERBOSE[21179][C-00000000] app_dial.c:     -- SIP/rawri-00000000 answered Local/79@modules-00000000;2
    [Jul 21 16:04:31] VERBOSE[21179][C-00000000] app_dial.c:     -- SIP/rawri-00000000 is ringing
    [Jul 21 16:04:35] VERBOSE[21179][C-00000000] app_dial.c:     -- SIP/rawri-00000000 answered Local/79@modules-00000000;2
    DTMF wird in den Channel gespielt:
    Code:
    [Jul 21 16:04:36] VERBOSE[21185][C-00000000] pbx.c:     -- Executing [79@standby:3] AGI("SIP/rawri-00000000", "agi:async,X-UCI_ORIGINATE: 0d99709d-0d3c-4e61-a6d7-54cbb4b2b458,,,") in new stack
    [Jul 21 16:04:36] VERBOSE[21185][C-00000000] res_agi.c:     -- AGI Script Executing Application: (SendDTMF) Options: (8)
    Viele Grüße
    Niklas

    - Ex STARFACE Support: 2014-2020 -

  3. #3
    STARFACE User

    Registriert seit
    11.07.2017
    Ort
    Berlin
    Beiträge
    11

    Unglücklich

    Vielen Dank für das Feedback!

    Ich habe nun die PBX Log-Datei geprüft.

    1. Rufnummer 79 wird angerufen:
    Code:
    [Jul 24 11:55:25] VERBOSE[24424][C-00000002] pbx.c:     -- Executing [79@dialstart:1] AGI("SIP/R01.Yealink.Kai-00000002", "agi:async,,,,") in new stack
    [Jul 24 11:55:25] VERBOSE[24424][C-00000002] res_agi.c:     -- AGI Script Executing Application: (SIPRemoveHeader) Options: (X-UCI_CALLID)
    [Jul 24 11:55:25] VERBOSE[24424][C-00000002] res_agi.c:     -- AGI Script Executing Application: (SIPAddHeader) Options: (X-UCI_CALLID:d2cb5326-6a48-43fd-9656-afccb88fb72b)
    [Jul 24 11:55:25] VERBOSE[24424][C-00000002] res_agi.c:     -- AGI Script Executing Application: (SIPRemoveHeader) Options: (X-UCI_CALLID)
    [Jul 24 11:55:25] VERBOSE[24424][C-00000002] res_agi.c:     -- AGI Script Executing Application: (SIPAddHeader) Options: (X-UCI_CALLID:d2cb5326-6a48-43fd-9656-afccb88fb72b)
    [Jul 24 11:55:25] VERBOSE[24424][C-00000002] res_agi.c:     -- AGI Script Executing Application: (Set) Options: (CONNECTEDLINE(num,i)=15)
    [Jul 24 11:55:25] VERBOSE[24424][C-00000002] res_agi.c:     -- AGI Script Executing Application: (Set) Options: (CONNECTEDLINE(num-pres,i)=allowed)
    [Jul 24 11:55:25] VERBOSE[24424][C-00000002] res_agi.c:     -- AGI Script Executing Application: (Set) Options: (CONNECTEDLINE(name,i)=Francisco)
    [Jul 24 11:55:25] VERBOSE[24424][C-00000002] res_agi.c:     -- AGI Script Executing Application: (Set) Options: (CONNECTEDLINE(name-pres)=allowed)
    [Jul 24 11:55:25] VERBOSE[24424][C-00000002] res_agi.c:     -- AGI Script Executing Application: (Set) Options: (CALLERID(name)=Kai)
    [Jul 24 11:55:25] VERBOSE[24424][C-00000002] res_agi.c:     -- AGI Script Executing Application: (Set) Options: (CALLERID(number)=18)
    [Jul 24 11:55:25] VERBOSE[24424][C-00000002] res_agi.c:     -- AGI Script Executing Application: (Dial) Options: (SIP/1336.ylnkt46,30,wWtT)
    [Jul 24 11:55:25] VERBOSE[24424][C-00000002] netsock2.c:   == Using SIP RTP TOS bits 184
    [Jul 24 11:55:25] VERBOSE[24424][C-00000002] netsock2.c:   == Using SIP RTP CoS mark 5
    [Jul 24 11:55:25] VERBOSE[24424][C-00000002] app_dial.c:     -- Called SIP/1336.ylnkt46
    2. Dann nimmt die Gegenstelle das Gespräch an:

    Code:
    [Jul 24 11:55:25] VERBOSE[24424][C-00000002] app_dial.c:     -- SIP/1336.ylnkt46-00000003 is ringing
    [Jul 24 11:55:29] VERBOSE[24424][C-00000002] app_dial.c:     -- SIP/1336.ylnkt46-00000003 answered SIP/R01.Yealink.Kai-00000002
    3. Aber dann kommt folgende Meldung:

    Code:
    [Jul 24 11:55:29] VERBOSE[24424][C-00000002] res_rtp_asterisk.c:        > 0x7f7890018e30 -- Probation passed - setting RTP source address to 192.168.50.50:12684
    [Jul 24 11:55:29] VERBOSE[24424][C-00000002] res_rtp_asterisk.c:        > 0x7f78d41b3d30 -- Probation passed - setting RTP source address to 192.168.50.47:12422
    4. Und nach dem Auflegen:
    Code:
    [Jul 24 12:40:21] VERBOSE[13489][C-00000006] pbx.c:     -- Executing [h@dialstart:1] NoOp("SIP/R01.Yealink.Kai-00000006", "HC 16") in new stack
    [Jul 24 12:40:21] VERBOSE[13489][C-00000006] pbx.c:     -- Executing [h@dialstart:2] Goto("SIP/R01.Yealink.Kai-00000006", "_exit_,0") in new stack
    [Jul 24 12:40:21] VERBOSE[13489][C-00000006] pbx.c:     -- Goto (dialstart,_exit_,0)
    [Jul 24 12:40:21] VERBOSE[13489][C-00000006] pbx.c:   == Spawn extension (dialstart, 79, 1) exited non-zero on 'SIP/R01.Yealink.Kai-00000006
    Was sagt mir die Meldung bei Position 4 und was kann ich ändern?

    Ein DTMF-Ton wird weiterhin nicht übertragen.

    Nachfolgend die Darstellung im Module Designer:
    Modul.PNG

  4. #4
    STARFACE Expert
    Benutzerbild von nucom
    Registriert seit
    11.12.2012
    Ort
    9443 Widnau
    Beiträge
    2.018

    Standard

    Hallo Kai

    Bitte bau zwischen dem CallPhonenumber und dem DTMF mal noch einen Sleep von 1 Sekunde ein (Expert Mode) ==> System ==> Sleep(1);

    Sonst schickt der die DTMF ins leere, weil eventuell die RTP-Verbindung noch nicht steht.

    Und ich würde beim DTMF ausserdem beim SendDTMF Timeout auf 200 setzen, da zu schnelle DTMF Abfolgen von der Gegenstelle sonst falsch oder nicht vollständig interpretiert werden können.

    Ruf damit mal ein Telefon an, und nimm ab. Dann solltest du die DTMF Töne ja hören

    MfG

    Fabian
    Modulhersteller aus der Schweiz
    __________________________________________________ ________
    STARFACE Excellence Partner: Info | Certified Module Creator Kontakt
    Modul Down. Hier | Wiki URL: Hier

  5. #5
    Ex-STARFACE Crew STARFACE Expert
    Benutzerbild von Niklas
    Registriert seit
    08.12.2014
    Beiträge
    294

    Standard

    Heureka, jetzt habe ich es verstanden! Du rufst das Modul an, welches dann die Türsprechstelle anruft.
    So wie du das programmiert hast werden der ursprüngliche Anruf und der zweite Anruf verbunden.

    Ergo wird der Anruf an das Modul an die Türsprechstelle "weitergeleitet".

    Das passiert immer dann, wenn auf einen bestehenden Channel (Anruf) ein zweiter folgt.

    Probier mal folgendes:
    Z9GKGev.png
    Viele Grüße
    Niklas

    - Ex STARFACE Support: 2014-2020 -

  6. #6
    STARFACE User

    Registriert seit
    11.07.2017
    Ort
    Berlin
    Beiträge
    11

    Standard

    Vielen Dank Niklas! Nun hat es wie gewünscht funktioniert!

  7. #7
    STARFACE Admin

    Registriert seit
    20.11.2015
    Beiträge
    174

    Standard

    Kurze Ergänzung:

    Ihr wisst aber, dass die Türe auch anrufen kann. Bei den Yealinks kann man dann auch direkt eine Taste mit DMTF-Code hinterlege (und sogar ein Kamerabild) so dass wenn jemand an der Türklingel direkt per Telefon informiert wird und mit nur einer Taste die Türe öffnen kann.
    Wenn ja ignoriert meinen Kommentar

    LG Marco

  8. #8
    STARFACE User

    Registriert seit
    11.07.2017
    Ort
    Berlin
    Beiträge
    11

    Frage

    Hallo nochmal!

    erstmal @msc_i22 danke für den Hinweis, ist jedoch in dem Szenario vom Kunden nicht ohne weiteres möglich.

    Wie oben beschrieben funktionierte die Funktionalität in unserer Testumgebung. Modul aktivieren -> Nebenstelle anrufen -> Nebenstelle erhält akustischen DTMF Ton.

    Dieses Modul haben wir dann vor kurzem beim Kunden auf der STARFACE installiert. Jedoch funktioniert es dort nicht wie gewünscht. Der DTMF Ton scheint nicht übertragen zu werden, obwohl es identisch zu der Programmierung in unserer Testumgebung ist. Einziger Unterschied ist, dass sich noch ein Patton SmartNode 4114 zwischen Anlage und dem Doormaster befindet. In unserer Testumgebung waren wir direkt am analogen Port der Compact dran.

    Nun die Frage - Ist es möglich, dass der Patton SmartNode Probleme bei der DTMF Übertragung verursachen kann? Bzw. der DTMF über den Patton verzögert, zu leise oder ähnliches übertragen wird, so dass dieser nicht vom Doormaster erkannt werden kann? Wenn ja, hat jemand eine Idee das zu korrigieren?

    Vielen Dank im Voraus!

  9. #9
    STARFACE Admin

    Registriert seit
    20.11.2015
    Beiträge
    174

    Standard

    Also wir haben ebenfalls ein Patton SmartNode 4114 zu unserer Türgegensprechanlage und hier klappen die DMTFs einwandfrei. Wie löst Ihr den dem DTMF Ton aus? Erzeugt Ihr überhaupt einen DMTF Ton oder schickt ihr nur den Code an das Patton und erwartet das dieser den erzeugt? Gibt hier ja verschiedene Verfahren.

Ähnliche Themen

  1. Automatischer Fallback nach Blindtransfer
    Von Opticom im Forum STARFACE Erweiterungen & Integrationen
    Antworten: 15
    Letzter Beitrag: 22.11.2015, 09:44
  2. Anruferweiterleitung nach Code-Eingabe
    Von keysersoze im Forum STARFACE Einrichtung & Administration
    Antworten: 1
    Letzter Beitrag: 03.12.2014, 06:04
  3. Aus einem Modul heraus DTMF Töne erzeugen
    Von itchybee im Forum Modul-Designer
    Antworten: 2
    Letzter Beitrag: 03.11.2014, 14:45
  4. Auswerten von DTMF in einem Modul
    Von JoergHesse im Forum STARFACE Module
    Antworten: 1
    Letzter Beitrag: 20.11.2012, 13:33
  5. Automatischer Neustart nach Stromausfall
    Von keccargo im Forum STARFACE Einrichtung & Administration
    Antworten: 1
    Letzter Beitrag: 11.05.2012, 09:52

Stichworte

Lesezeichen

Forumregeln

  • Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
  • Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
  • Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
  • Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
  •