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

[Frage] Alarmierung / Benachrichtigung über VoIP

Dieses Thema im Forum "Asterisk Allgemein" wurde erstellt von hronny, 4 Feb. 2012.

  1. hronny

    hronny Neuer User

    Registriert seit:
    1 Dez. 2009
    Beiträge:
    14
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Guten Morgen.

    Ich bin schon lange auf der Suche nach einer Möglichkeit, dass die Asterisk in bestimmten Situationen einen Anruf automatisch aufbaut eine WAV Datei abspielt und wieder auflegt. Wenn keiner ans Telefon geht, Anruf nochmal wiederholen.
    Das funktioniert ja erstmal soweit mit den sogenannten Callfiles die ins Spoolerverzeichnis kopiert werden.
    Code:
    Channel: SIP/0123456789@ext-sip-account
    MaxRetries: 10
    RetryTime: 40
    WaitTime: 20
    Context: outbound-alarm
    Extension: s
    Priority: 1
    Archive: yes
    In der /etc/asterisk/extensions.conf Datei gibt es dann den Abschnitt
    Code:
    [outbound-alarm]
    exten => s,1,Set(TIMEOUT(digit)=5)
    exten => s,2,Set(TIMEOUT(response)=10)
    exten => s,3,Answer
    exten => s,4,Wait(1)
    exten => s,n,Set(i=1)
    exten => s,n,While($[${i} < 10])
    exten => s,n,Background( alarm_meldung )
    exten => s,n,Set(i=$[${i} + 1])
    exten => s,n,EndWhile()
    exten => s,n,Hangup()
    exten => s,n,Wait(2)
    exten => 1,1,Goto(s,5)
    exten => 2,1,Goto(msgack,s,1)
    exten => t,1,Playback(vm-goodbye)
    exten => t,2,Hangup
    Das funktioniert ja erstmal soweit gut, aber mir fehlen noch 3 wichtige Dinge:
    • Der Teilnehmer soll den Anruf bestätigen mittels einer Taste
    • Es sollen verschiedene Rufnummern/Teilnehmer in einem Skript abgearbeitet werden, wenn keiner den Ruf bestätigt. Das Callfile ruft ja derzeit nur einen an. Mehrere Callfiles würden ja immer jeden Anrufen, egal ob nötig.
    • Bei einem Anruf soll geprüft werden, welche Ereignisse anliegen und diese sollen dann nacheinander abgespielt werden (incl Bestätigung)
    Das Prinzip funktioniert eigentlich ähnlich eines Anrufbeantworters nur mit dem Unterschied, dass die Asterisk selbst das Gespräch aufbauen soll und dabei verschiedene Teilnehmer anrufen soll.
    Kann man das irgendwie in der Extensionconfig machen? Wenn soetwas schonmal hier im Forum besprochen wurde, gebe ich bestimmt die falschen Begriffe ein.
     
  2. abw1oim

    abw1oim Aktives Mitglied

    Registriert seit:
    26 März 2007
    Beiträge:
    948
    Zustimmungen:
    2
    Punkte für Erfolge:
    18
    Ort:
    Bonn
    Da hilft beispielsweise Read

    In Verbindung mit dem Read kannst Du das Ergebnis (also in Deinem Fall den Timeout) auswerten und bei Timeout, respektive wenn der Call nicht beantwortet wurde, ein weiteres Callfile erstellen, z.B. mit System. Die entsprechende nächste Rufnummer kann dabei im ursprünglichen Callfile als Variable mitgegeben werden, siehe Callfiles, hier insbesondere: Set

    Das kann auch mit Set (siehe vor) erledigt werden oder aber Du machst es etwa über die AstDB. Für jeden Eintrag/jede Variable dann das entsprechende Read zur Bestätigung. Spannender ist hier, was passieren soll, wenn mehrere Messages abgespielt und bestätigt werden sollen, jedoch vom Teilnehmer nur n aus m mit n<>m und n>0 Nachrichten bestätigt werden ...
     
  3. hindi

    hindi Neuer User

    Registriert seit:
    7 Jan. 2010
    Beiträge:
    39
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hi,

    wenn du in Perl oder PHP fit bist, würde ich dies über ein AGI-Skript lösen. Ist 1000 Mal einfacher als über die extensions.conf und du hast mehr Möglichkeiten. (Meine kompletten Asteriskinstallationen werden zu 90% über AGI-Skripte gesteuert wodurch man unendliche Möglichkeiten für verschiedene Lösungen hat. Ist sehr zu empfehlen vorallem bei solch einem Problemfall.)

    Gruß
    Hindi