.titleBar { margin-bottom: 5px!important; }

DTMF im Gespräch

Dieses Thema im Forum "Asterisk Skripte" wurde erstellt von speiderlars, 24 Nov. 2008.

  1. speiderlars

    speiderlars Neuer User

    Registriert seit:
    25 Sep. 2008
    Beiträge:
    21
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Guten Tag,

    folgende 2 Fragen, einmal soll per DTMF ein "#" alle 30 Sekunden während eines gespräches übertragen werden. Dies dient dazu das eine AB Sprechstelle nicht nach einer bestimmten Zeit auflegt.

    Code:
    exten => 3002,1,Dial(SIP/3002,,M(verlaengern)
    
    [macro-verlaengern]
    exten => s,1,wait,30
    exten => s,2,SIPDtmfMode(inband)
    exten => s,3,sendDTMF(3002#)
    exten => s,4,goto(s,1)
    
    Leider wird nur das Macro ausgeführt und nicht mehr Automatisch abgehoben
    von der AB Sprechstelle.

    ------------------------------------------------------------

    Und die 2. Frage ist, ein Script soll aufgrund eines Tastatur eingabe ( zb: PIN Code / Türöffner Taste "#1") ein Shellscript ausgeführt werden.

    Bisher funktioniert es nur durch Anruf einer Nummer (zb: 4000)

    Code:
    exten => _4XXX,1,Dial(SIP/${EXTEN})
    exten => _4XXX,n,System(cd /etc/asterisk && ./cam58.sh)
    exten => _4XXX,n,Hangup(
    
    MfG Speiderlars
     
  2. Dakapo

    Dakapo Mitglied

    Registriert seit:
    10 Aug. 2004
    Beiträge:
    380
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Beruf:
    Dipl. Wirtschaftsinformatiker (FH)
    Hast Du schon gesehen, dass die abschliessende Klammer fehlt?
     
  3. Burmann

    Burmann Mitglied

    Registriert seit:
    16 Feb. 2005
    Beiträge:
    372
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    1.) Lies mal über Answer() nach
    2.) Teste mal die EXTEN "#1" also

    Code:
    exten => #1,1,Dial(SIP/${EXTEN})
    exten => #1,n,System(cd /etc/asterisk && ./cam58.sh)
    exten => #1,n,Hangup()
     
  4. speiderlars

    speiderlars Neuer User

    Registriert seit:
    25 Sep. 2008
    Beiträge:
    21
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ja danke aber das war nur hier ein Tipfehler im Forum. Es bleibt weiterhin das beim Anruf nur das Script ausgeführt wird, aber kein Gespräch aufbaut
    (die gegen Stelle Hebt nicht mal ab / Klingelt).

    MfG Speiderlars


    EDIT: Teste mal Burmanns Post aus...
     
  5. Dakapo

    Dakapo Mitglied

    Registriert seit:
    10 Aug. 2004
    Beiträge:
    380
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Beruf:
    Dipl. Wirtschaftsinformatiker (FH)
    Was mich sehr wundert ist, dass das Makro trotzdem ausgeführt wird. Grundsätzlich muss also das Gespräch angenommen worden sein.

    Makros im Dial-Befehl werden immer erst nach Gesprächsannahme ausgeführt.
     
  6. speiderlars

    speiderlars Neuer User

    Registriert seit:
    25 Sep. 2008
    Beiträge:
    21
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Leider geht es so nicht mit dem "#1". Wenn ich das während eines Gespräches drücke passiert nichts.

    Und das Makro wird wirklich ausgeführt sobald ich nur die Nummeranrufe abnehmen kann der andere Teilnehmer garnicht da es bei ihm nicht Klingelt.

    Mir ist da noch was aufgefallen. Die A/B Sprechstelle geht ran man hört aber nur ein leises klacken Leider kommt dann aber keine Sprachverbindung zustande. Also es geht ran aber man hört nichts (ohne Makro hört man was).
    Das Makro wird dann aber ausgeführt, also wäre jetzt die Frage warum bekomme ich kein Ton?


    --------------------------------------

    Zum Aufbau was erreicht werden soll.

    Es gibt 2 Teilnehmer, der 2. wird vom 1. Angerufen dann kann der 2. Teilnehmer aufgrund "#1" ein Script Ausführen. Das am besten durch die Nummer des Anrufers 1 unterschiedlich abgehandelt wird.

    Und bei der 2. Aufgabe muss halt immer wider ein "#" geschickt werden um das Gespräch aufrecht zuhalten.

    MfG Speiderlars
     
  7. Burmann

    Burmann Mitglied

    Registriert seit:
    16 Feb. 2005
    Beiträge:
    372
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Lies dir mal die Möglichkeiten der 'features.conf' durch.
     
  8. speiderlars

    speiderlars Neuer User

    Registriert seit:
    25 Sep. 2008
    Beiträge:
    21
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo,

    nun habe ich noch folgende Fragen,
    wie kann ich wärend eines gesprächs automatisch ständig das makro ausführen, so dass alle 20 sekunden einen DTMF-Ton gesendet wird?
    (Zum Anruf Halten)

    wie kann nachdem ein Gesprächsteilnehmer ein Gespräch beendet hat, ein DTMF-Tone an den anderen Teilnehmer gesendet werden, bevor die Verbindung beendet wird? (Zum Auflegen der A/B Stelle)

    Und zu guter Letzt habe ich es mit der "features.conf" jetzt erst mal hinbekommen, Problem ist nur das ich rasendschnell zb: #8 Tippen muss. Ich habe hier im Forum schon gelesn das man das zeitlich verlängern kann nur finde ich den Thread nicht mehr.

    Also Aufgabe 1 ist sogut wie gelöst ;)

    Wenn ich das dann alles Fertig habe können sich Intressenten gern Melden. In diesem Aufbau wird genutzt (Asterisk / GXV3000/ Mobotix) wer möchte kann sich per PN melden.


    MfG Speiderlars
     
  9. lampel

    lampel Neuer User

    Registriert seit:
    21 März 2009
    Beiträge:
    1
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hat schon jemand eine Antwort auf diese Frage gefunden ?

    wie kann nachdem ein Gesprächsteilnehmer ein Gespräch beendet hat, ein DTMF-Tone an den anderen Teilnehmer gesendet werden, bevor die Verbindung beendet wird? (Zum Auflegen der A/B Stelle)
     
  10. speiderlars

    speiderlars Neuer User

    Registriert seit:
    25 Sep. 2008
    Beiträge:
    21
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo ich habe jetzt beide Aufgaben lösen können.
    Die eine Lösung schreibe ich euch die andere am MO.

    Also bei Aufgabe 2 ging es ja darum das zb ein Script aufgrund der # ausgeführt wird oder eine art PIN (1234).

    Die geht folgender maßen:

    extensions.conf:
    Code:
    
    ;Dieser teil ist wichtig damit die Richtige seite die DTMF Töne schicken kann.
    ;Die 1000 ist virtuell und dient zb für die Außensprechstelle um zuermöglichen 
    ;das die innere Sprechstelle die DTMF Kommandos schicken kann.
    ;Dies wird nicht benötigt wenn der Rufenden die Kommandos schicken soll.
    ;Mit dem originate wird dann eine Verbindung von innen nach Außen aufgebaut
    exten => 1000/10,1,answer()
    exten => 1000/10,2,Wait(1)
    exten => 1000/10,3,system(asterisk -rx "originate sip/11 extension 10@oeffnen")
    exten => 1000/10,4,hangup()
    
    
    ;Beim verbinden wird das Feature dtm geladen
    ;Womit auch die DTMF kombi 1234 geladen wird
    [oeffnen]
    exten => 10,1,SIPDtmfMode(RFC2833)
    exten => 10,2,Set(DYNAMIC_FEATURES=dtmf)
    exten => 10,3,Wait(1)
    exten => 10,4,Dial(SIP/${EXTEN})
    
    ;Hier wird festgelegt was passieren soll wenn der DTMF ton erkannt wurde
    [macro-dtmf]
    exten => s,1,NooP(Tuer_OK)
    exten => s,2,System[COLOR="Red"](cd /etc/asterisk && ./open.sh)[/COLOR]
    
    features.conf:
    Code:
    
    ;Hier wird die DTMF kombination festgelegt
    ;und am ende welches macro in den extensions ausgeführt werden soll
    [applicationmap]
    dtmf = [COLOR="Red"]1234[/COLOR],self/both,Macro,[COLOR="Red"]dtmf[/COLOR]
    
    Somit kann man zb eine Schranke oder Tür von Innen oder von außen über ein berechtigtes Handy öffnen :)

    Mit freundlichen Gruß
    Speiderlars