2. Mehrstufige IVR-Systeme

Das Problem bei mehrstufigen IVRs ist, dass der Benutzer je nach Menüstruktur mehrmals eine einstellige Zahl (evtl. sogar die gleiche) drücken soll, aber jeweils ein anderes Ergebnis erhält oder eine andere Aktion erfolgt. Da innerhalb eines Contextes eine Zahl aber nur einmal vergeben werden kann, bliebe der Anrufer immer auf dieser Menüebene hängen. Sollen mehrere Menüs hintereinander geschaltet werden und in jedem Menü gleiche Eingaben andere Ergebnisse bringen, so muss man diese Untermenüs in andere Contexte (in unserem Beispiel [kantine]) legen. Der Sprung zwischen den einzelnen Positionen erfolgt dann mit Goto() (siehe Abschnitt 49, „Goto()). Nehmen wir an, Sie haben folgende Soundfiles im Verzeichnis /var/lib/asterisk/sounds/ abgespeichert:

  • grundmenue.gsm

    Bitte drücken Sie die 1 für den Verkauf, die 2 für den Hausmeister und die 3 für die Kantine.

  • kantine.gsm

    Drücken Sie die 1 für den Essensplan dieser Woche und die 2 für den Essensplan der nächsten Woche.

  • essensplan-diese-woche.gsm

    Montag gibt es Nudeln mit Tomatensoße, Dienstag gibt es Jägerschnitzel, ...

  • essensplan-naechste-woche.gsm

    Montag gibt es Eintopf, Dienstag gibt es Jägerschnitzel, ...

Wenn der Verkauf unter der Extension 100 und der Hausmeister unter der Extension 150 erreichbar ist, sieht der Dialplan für diese IVR folgendermaßen aus:

[beispiel-ivr]
; Das Menue wird staendig wiederholt.
;
exten => 30,1,Answer()
exten => 30,2,Background(grundmenue)
exten => 30,3,Background(silence/3)
exten => 30,4,Goto(2)

exten => 1,1,Dial(SIP/100)

exten => 2,1,Dial(SIP/150)

; Goto() springt in einen anderen 
; Context ([kantine])
;
exten => 3,1,Goto(kantine,100,1)

exten => i,1,Goto(30,2)

[kantine]
exten => 100,1,Background(kantine)
exten => 100,2,Background(silence/3)
exten => 100,3,Goto(1)

exten => 1,1,Playback(essensplan-diese-woche)
exten => 1,2,Wait(2)
exten => 1,3,Goto(1)

exten => 2,1,Playback(essensplan-naechste-woche)
exten => 2,2,Wait(2)
exten => 2,3,Goto(1)

; Bei einer Falscheingabe wird 
; wieder in das Start-Menue 
; gesprungen.
;
exten => i,1,Goto(beispiel-ivr,30,2)

$Revision:473 $

Beta-Version!

Sie befinden sich auf der Entwickler-Version des 2008er Asterisk Buches. Diese Version ist noch nicht so vollständig wie die alte stabile Version. Dafür sind andere und neue Sachen nur in der neuen Version enthalten. Deshalb sind beide online.

Bitte melden Sie Fehler und Feedback zur neuen Version per E-Mail an den Autor.

Asterisk-Tag 2008

Lernen Sie Mark Spencer (den Erfinder von Asterisk) kennen! Viele Vorträge, Case-Studies und Workshops rund um die Themen VoIP und Asterisk. Asterisk-Tag.org

Werbung