[Frage] Alarmierung / Benachrichtigung über VoIP

hronny

Neuer User
Mitglied seit
1 Dez 2009
Beiträge
14
Punkte für Reaktionen
0
Punkte
1
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.
 
Der Teilnehmer soll den Anruf bestätigen mittels einer Taste

Da hilft beispielsweise Read

Es sollen verschiedene Rufnummern/Teilnehmer in einem Skript abgearbeitet werden, wenn keiner den Ruf bestätigt

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

Bei einem Anruf soll geprüft werden, welche Ereignisse anliegen und diese sollen dann nacheinander abgespielt werden (incl Bestätigung)

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 ...
 
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
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.