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

Macro im Hintergrund

Dieses Thema im Forum "Asterisk Skripte" wurde erstellt von Teleandi, 27 Nov. 2008.

  1. Teleandi

    Teleandi Neuer User

    Registriert seit:
    27 Nov. 2008
    Beiträge:
    5
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo,

    ich habe folgendes Problem.
    Ich möchte zyklisch DTMF-Töne senden. Hierfür habe ich ein eigenes Macro geschrieben:

    [macro-verlaengern]
    exten => s,1,(Start),SIPDtmfMode(inband)
    exten => s,n,sendDTMF(#)
    exten => s,n,wait,60
    exten => s,n,Goto(Start)

    Wenn ich dieses mit

    exten => 3002,1,Dial(SIP/${EXTEN},,M(verlaengern))

    anstoße, wird es zwar ausgeführt aber der Caller hört immer noch ein Kingeln, obwohl der Calle schon geantwortet hat und es kommt nie zu einer Verbindung, da das Macro in einer Endlosschleife hängt.
    Des Weiteren wird das Macro nach Auflegen auch nicht mehr beendet.
    Für dieses Problem hätte ich schon eine theoretische Lösung. Ich lasse einfach ein Makro laufen, was eine While-Schleife hat, die auf das Gespräch lauscht.
    Wie aber kann ich das Makro ausführen, ohne dass es direkten Einfluss auf mein Gespräch nimmt? Es soll nur neben dem eigentlichen Gespräch laufen und jede Minute einmal eine # als DTMF senden.
    Das hat den Sinn, dass der Anruf einer A/B-Schnittstelle gehalten wird, da die sonst automatisch auflegt.
     
  2. Teleandi

    Teleandi Neuer User

    Registriert seit:
    27 Nov. 2008
    Beiträge:
    5
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hat keiner eine Idee?

    Ich habe jetzt einen neuen Ansatz für die Lösung meines Problems.

    Mir schwebt vor, es mit "Extenspy()" zu versuchen.

    Etwa so:

    exten => _XXXX/3002,1,Setglobalvar(Test=${EXTEN})
    exten => _XXXX/3002,n,Dial(SIP/${EXTEN},,g)
    exten => _XXXX/3002,n,SIPDtmfMode(inband)
    exten => _XXXX/3002,n(Start),sendDTMF(*)
    exten => _XXXX/3002,n,Hangup()

    exten => 7000,1,Extenspy(${TEST},wq)
    exten => 7000,n,SIPDtmfMode(inband)
    exten => 7000,n,sendDTMF(#)

    Leider funktioniert das aus selben Grund wie schon oben beschrieben nicht.
    Meine Idee ist jetzt, dass man asterisk irgendwie per shellscript dazu veranlasst, die Extension 7000 anzurufen, eine Raute mitzusenden [etwa so...dial(...,#)] und dann sofort wieder aufzulegen. Das Script muss dann nur alle Minute asteriskt anstoßen. Hierbei besteht dann das nächste Problem, dass das Script automatisch beendet wird, sobald das gespäch beendet ist.

    Vieleicht hat ja doch jemand ne Idee?

    Gruß Teleandi