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

Eine Leitung Teilen- Dail Ansage (Klopfen)

Dieses Thema im Forum "Asterisk Rufnummernplan" wurde erstellt von Fredjam, 22 Sep. 2008.

  1. Fredjam

    Fredjam Mitglied

    Registriert seit:
    7 Mai 2006
    Beiträge:
    362
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Guten Morgen

    Ich habe ein kleines Problem und noch keine Richtige Lösung.
    Habe eine Provider aber nur eine Leitung, wollte jetzt wenn einer telefoniert und eine zweite Person die gleiche Leitung nutzten will, das die erste Person so was wie einen anklopfen oder noch besser eine audio Datei hört.
    Hier bei darf natürlich nur der anrufende diese audio Datei hören.

    Jetzt hatte ich mir erste den Dial befehl angeschaut, aber hier nur den Flag

    L(x[:y][:z])

    "Begrenzt die Dauer des Anrufs auf x Millisekunden, wobei y Millisekunden vor Ablauf der festgesetzten Dauer und danach wiederholt alle z Millisekunden bis zum Anlauf der Frist eine Warnung signalisiert wird. Der x-Parameter muss angegeben werden, y und z sind optional. Die folgenden speziellen Variablen können ebenfalls gesetzt werden und stellen zusätzliche Kontrollmöglichkeiten zur Verfügung:"

    Gefunden was mich aber nicht weiter bringt.


    Jetzt habe ich mir gedacht, den befehl ExtenSpy() zu nutzten
    http://www.das-asterisk-buch.de/2.1/applikationen-extenspy.html

    in Verbindung mit dem dial Flag P[(x)]
    P[(x)]

    "Aktiviert den Geheimhaltungs-Modus, wobei optional x als Familie/Schlüssel-Wert in der AstDB spezifiziert werden kann. Dieser Modus ist beispielsweise nützlich, wenn Anrufe aus einer Blacklist (Anrufe von Nummern aus der Blacklist werden explizit abgelehnt) oder Whitelist (Anrufe von den gelisteten Nummern werden explizit akzeptiert) angenommen werden. Siehe auch LookupBlacklist()."

    Glaubt ihr das geht ?



    Ach ja und noch was hat jemand von euch schon mal hinbekommen nicht vor dem dial, (so mache ich das gerade) sondern wehrend das Dial eine audio datei anzuspielen? also mit dem flag A(x)
    "Spielt dem angerufenen Teilnehmer eine Ankündigung vor. x ist der Dateiname der audio Datei, die als Ankündigung abzuspielen ist."

    Habe hier meine variable eingefügt aber der Ignoriert einfach die Flag

    Schon mal im Voraus Danke für die Hilfe
     
  2. BigBadaBoom

    BigBadaBoom Neuer User

    Registriert seit:
    26 Juni 2008
    Beiträge:
    84
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Die Lösung für dein zweites Problem (audiodatei "beim" DIAL einspielen) ist mittels ChanSpy möglich.
    Ich habe es so realisiert, dass direkt vor dem DIAL eine callfile angelegt wird. Diese ruft zuerst einen lokalen context auf welcher so aussieht:
    Code:
    [announce_spy]
    exten => _.X.,1,Answer()
    exten => _.X.,n,NoCDR()
    exten => _.X.,n,ChanSpy(SIP/${EXTEN},qw)
    exten => _.X.,n,Wait(10)
    exten => _.X.,n,Hangup()
    Das andere Ende dieser Leitung wird hiermit verbunden:
    Code:
    [announce_say]
    exten => s,1,Answer()
    exten => s,n,NoCDR()
    exten => s,n,Wait(0.5)
    exten => s,n,Playback(${CallAnnounce})
    exten => s,n,Hangup()
    In der Callfile wird folgendes abgespeichert:
    Channel: Local/${CHANNEL:4}@announce_spy (in diesem Fall weis ich, dass es sich um ein SIP channel handelt, deswegen kann ich die 4 Buchstaben "SIP/" einfach vorne abschneiden)
    Context: announce_say
    Extension: s
    Set: CallAnnounce=${CallAnnounce} (diese Variable enthält den namen der Sounddatei die abgespielt werden soll)
     
  3. Fredjam

    Fredjam Mitglied

    Registriert seit:
    7 Mai 2006
    Beiträge:
    362
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo und danke für die schnelle antwort.
    Eins habe ich noch nicht ganz verstanden wie weist du welcher der richtiege channel ist...
    ${CHANNEL:4}@announce_spy
    Das verstehe ich nicht so kanns muss ich nicht auch noch beim anfänglichen dial out auch noch was setzten so das der channel gefunden wird?
     
  4. BigBadaBoom

    BigBadaBoom Neuer User

    Registriert seit:
    26 Juni 2008
    Beiträge:
    84
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    ${CHANNEL} ist eine Asterisk-Variable und enthält den Namen des aktuellen Channels z.B. "SIP/1003-824482a4". Dieser wird halt mit in die Callfile geschreiben und in ChanSpy verwendet.
     
  5. Fredjam

    Fredjam Mitglied

    Registriert seit:
    7 Mai 2006
    Beiträge:
    362
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Oki es funktioniert :)

    habe es ein wenig abgeändert usw so

    exten => _X.,n,Set(SPYGROUP=10005)
    den set haeb ich vor dem dial gesetzt also wenn die erste person raustelefoniert wo die leitung noch frei ist.

    und so habe ich es dann an deinen code angepast.

    Code:
    [announce_spy]
    exten => _.X.,1,Answer()
    exten => _.X.,n,NoCDR()
    exten => _.X.,n,ChanSpy(,qwg(10005))
    exten => _.X.,n,Wait(10)
    exten => _.X.,n,Hangup()
    
    das ist einfach super

    Vielleicht werde ich jetzt noch dieses ein wenig Individualisieren und den jeweiliegen teilnehmern die möglich keit zu geben die wichtigkeit und wer überhaubt versucht gerade zu telefonieren dort hinzuzufügen.

    Vielen Danke für deine Hilfe.