Beispielanwendungen

Die folgenden Beispiele geben einen schnellen Überblick über typische Konstellationen. Anschließend gehen wir in Applikationen auf die Besonderheiten und Möglichkeiten von Voicemail-Systemen unter Asterisk ein.

Die Voicemailbox der Familie Meier

Die Familie Meier stellt im Zuge der Modernisierung des Haushalts auf eine Asterisk-Telefonanlage um. Dies beinhaltet eine moderne Voicemailbox für alle Familienmitglieder.

Aufgabenstellung

Folgende Personen müssen mit einer Voicemailbox ausgerüstet werden:

Name Extension Bemerkung

Horst Meier

200

Normale Voicemailbox

Eva Meier

201

Normale Voicemailbox

Peter Meier

202

Normale Voicemailbox und Benachrichtigung per E-Mail. Die Sprachnachricht wird der E-Mail beigefügt.

Lisa Meier

203

Normale Voicemailbox, Benachrichtung per E-Mail (Sprachnachricht wird der E-Mail beigefügt) und danach automatische Löschung der Voicemail im System

Lösung

Die voicemail.conf sieht in diesem Fall wie folgt aus:

[general]
format = wav
attach = yes

[default]
; Die Syntax fuer die Eintraege lautet:
; MailboxNr => Passwort,Name,E-Mail,Pager,Optionen
; (wobei die MailboxNr oft der Extension entspricht)
200 => 1234,Horst Meier
201 => 1234,Eva Meier
202 => 1234,Peter Meier,peter@die-familie-meier.de
203 => 1234,Lisa Meier,lisa@die-familie-meier.de,,delete=yes

In der extensions.conf wird wie folgt auf die Voicemailbox verwiesen:

[familie-meier]
; Wenn nach 30 Sekunden niemand abnimmt, geht das Gespräch
; auf die Voicemailbox, das Gleiche passiert bei besetzt:
exten => _20[0-3],1,Set(ZIELNR=${EXTEN})
exten => _20[0-3],n,Dial(PJSIP/${EXTEN},30)
exten => _20[0-3],n,Goto(s-${DIALSTATUS},1)  ; zum Status (NOANSWER,BUSY,CHANUNAVAIL,CONGESTION,ANSWER)
exten => s-NOANSWER,1,VoiceMail(${ZIELNR},u) ; Ansage "nicht erreichbar"
exten => s-BUSY,1,VoiceMail(${ZIELNR},b)     ; Ansage "besetzt"
exten => s-ANSWER,1,Hangup()                 ; zur Sicherheit nach Gespräch auflegen
exten => _s-.,1,Goto(s-NOANSWER,1)           ; alles andere wie nicht erreichbar behandeln

; auf der Extension 250 kann jeder Teilnehmer mit seinem
; Telefon seine persönliche Voicemailbox abrufen:
exten => 250,1,VoiceMailMain(${CALLERID(num)})

Schöner wäre es mit einem Gosub()-Unterprogramm statt der früheren — inzwischen aus Asterisk entferntenMacro()-Applikation:

[familie-meier]
exten => _20[0-3],1,Gosub(sub-normal,s,1(PJSIP/${EXTEN},${EXTEN}))

exten => 250,1,VoiceMailMain(${CALLERID(num)}@default)

[sub-normal]
;  ${ARG1} - anzurufendes(s) Gerät(e) (z. B. PJSIP/123&PJSIP/124)
;  ${ARG2} - Mailbox (oft gleich ${EXTEN} der rufenden Extension)
exten => s,1,Dial(${ARG1},30)                       ; max. 30 Sekunden klingeln
 same => n,Goto(s-${DIALSTATUS},1)                  ; zum Status (NOANSWER, BUSY, ...)
 same => n,Return()

exten => s-NOANSWER,1,VoiceMail(${ARG2}@default,u)  ; Ansage "nicht erreichbar"
 same => n,Return()
exten => s-BUSY,1,VoiceMail(${ARG2}@default,b)      ; Ansage "besetzt"
 same => n,Return()
exten => s-ANSWER,1,Return()
exten => _s-.,1,Goto(s-NOANSWER,1)                  ; alles andere wie "nicht erreichbar"

Die Apfelmus GmbH

Die in der Case-Study vorgestellte Apfelmus GmbH benötigt ein umfangreicheres Voicemail-System. Wir bedienen uns dieses Szenarios, um die Möglichkeiten des Voicemail-Systems näher zu erläutern.

Aufgabenstellung

Folgende Einstellungen sollen für jede Voicemailbox als Grundeinstellung vorgegeben werden:

  • Sprachnachrichten werden im WAV-Format abgespeichert.

  • Jede Voicemailbox kann maximal 200 Nachrichten abspeichern.

  • Eine Sprachnachricht darf maximal 5 Minuten lang sein.

  • Sprachnachrichten werden auf dem System gespeichert und dem Nutzer als Attachment per E-Mail zugestellt.

Einzelne Abteilungen haben darüber hinaus noch zusätzliche Wünsche und Bedürfnisse für ihre Voicemailboxen:

Voicemailbox Funktion Bemerkung

150

Hausmeister

Eine Benachrichtigung wird nur per Pager zugestellt und nicht per E-Mail.Anrufer dürfen die Sprachnachricht vor dem Abspeichern noch einmal anhören und gegebenenfalls ändern.Nach dem Abhören der Nachricht kann der Anrufer aus dem Menü zurückgerufen werden.

160 - 169

IT

In der IT-Abteilung bekommt jeder Mitarbeiter eine eigene Voicemailbox.Es wird nur dann auf die Voicemailboxen umgeleitet, wenn kein Mitarbeiter ans Telefon geht. Bei besetztem Anschluss kann hingegen keine Nachricht hinterlassen werden.[1]

802

Verkauf Inland

Es wird keine E-Mail verschickt.[2]Bei der Abfrage der Voicemailbox muss kein Passwort eingegeben werden.

803

Verkauf Ausland

Es wird keine E-Mail verschickt.Bei der Abfrage der Voicemailbox muss kein Passwort eingegeben werden.

201

Geschäftsführer 1

Anrufer dürfen die Sprachnachricht vor dem Abspeichern noch einmal anhören und gegebenenfalls ändern.Nach dem Abhören der Nachricht kann der Anrufer aus dem Menü zurückgerufen werden.

202

Geschäftsführer 2

Anrufer dürfen die Sprachnachricht vor dem Abspeichern noch einmal anhören und gegebenenfalls ändern.Nach dem Abhören der Nachricht kann der Anrufer aus dem Menü zurückgerufen werden.

804

Sekretariat

Anrufer dürfen die Sprachnachricht vor dem Abspeichern noch einmal anhören und gegebenenfalls ändern.

Lösung

Die voicemail.conf der Apfelmus GmbH sieht wie folgt aus:

[general]
; Die Sprachnachrichten werden im qualitativ hochwertigen
; WAV-Format gespeichert.
format = wav

; Die E-Mails mit den Sprachnachrichten für die Nutzer erhalten
; als Absender: voicemailsystem@apfelmus-gmbh.de
serveremail = voicemailsystem@apfelmus-gmbh.de

; Es dürfen maximal 200 Nachrichten pro Mailbox
; gespeichert werden.
maxmsg = 200

; Die maximale Länge einer Sprachnachricht ist 5 Minuten.
maxsecs = 300

; Text für die Benachrichtigungs-E-Mail.
; Muss in einer Zeile stehen!
emailbody = Guten Tag ${VM_NAME},\n\nSie haben eine neue Nachricht von ${VM_CALLERID} in Ihrer Voicemailbox ${VM_MAILBOX}. Bitte rufen Sie die 800 an, um die Nachricht abzuhoeren.\n\n-- Asterisk Voicemail System\n

; Text für die Benachrichtigung per Pager.
; Muss in einer Zeile stehen!
pagerbody = Neue Voicemail von ${VM_CALLERID} um ${VM_DATE}.

; Voice-Nachrichten anhängen:
attach = yes

[default]
; Die Syntax für die Konfigurationszeilen ist:
; MailboxNr => Passwort,Name,E-Mail,Pager,Optionen
150 => 1234,Hans Hausmeister,,pager.hausmeister@apfelmus-gmbh.de,review=yes|callback=interne-gespraeche
802 => 1234,Verkauf Inland
803 => 1234,Verkauf Ausland
201 => 1234,Hans Wichtig,geschaeftsfuehrer1@apfelmus-gmbh.de,,review=yes|callback=interne-gespraeche
202 => 1234,Uwe Wichtig,geschaeftsfuehrer2@apfelmus-gmbh.de,,review=yes|callback=interne-gespraeche
804 => 1234,Sekretariat,sekr@apfelmus-gmbh.de,,review=yes

Und in der extensions.conf wird auf die Voicemailbox wie folgt verwiesen:

[hausmeister]
include => interne-gespraeche
include => voicemailsystem-hausmeister

[it]
include => interne-gespraeche
include => voicemailsystem-komfort
include => voicemailsystem-normal

[geschaeftsfuehrer]
include => interne-gespraeche
include => voicemailsystem-komfort

[sekretariat]
include => interne-gespraeche
include => voicemailsystem-komfort

[verkauf-national]
include => interne-gespraeche
include => voicemailsystem-verkauf-national

[verkauf-ausland]
include => interne-gespraeche
include => voicemailsystem-verkauf-ausland

[versand]
include => interne-gespraeche
include => voicemailsystem-komfort

[produktion]
include => interne-gespraeche
include => voicemailsystem-komfort

[sonstige]

[sub-simple]
;  ${ARG1} - anzuklingelnde(s) Gerät(e) (z. B. PJSIP/123&PJSIP/124)
;  ${ARG2} - Mailbox (oft gleich der rufenden Extension)
exten => s,1,Dial(${ARG1},30)                        ; max. 30 Sekunden klingeln
 same => n,Goto(s-${DIALSTATUS},1)

exten => s-NOANSWER,1,VoiceMail(${ARG2}@default,u)
 same => n,Return()
exten => s-BUSY,1,VoiceMail(${ARG2}@default,b)
 same => n,Return()
exten => s-ANSWER,1,Return()
exten => _s-.,1,Goto(s-NOANSWER,1)

[interne-gespraeche]
; Wenn der Hausmeister nicht ans Telefon geht, wird
; das Telefonat auf die Voicemailbox 150 geleitet:
exten => _15X,1,Gosub(sub-simple,s,1(PJSIP/${EXTEN},150))

; Die IT hat normale Voicemailboxen:
exten => _16X,1,Gosub(sub-simple,s,1(PJSIP/${EXTEN},${EXTEN}))

; Die beiden Geschäftsführer haben eine eigene Voicemailbox:
exten => _20[1-2],1,Gosub(sub-simple,s,1(PJSIP/${EXTEN},${EXTEN}))

; Das Sekretariat hat eine Gruppenmailbox:
exten => _2[3-6]X,1,Gosub(sub-simple,s,1(PJSIP/${EXTEN},804))

; Der Verkauf Inland hat eine Gruppenmailbox:
exten => _3[0-4]X,1,Gosub(sub-simple,s,1(PJSIP/${EXTEN},802))

; Der Verkauf Ausland hat eine Gruppenmailbox:
exten => _3[5-9]X,1,Gosub(sub-simple,s,1(PJSIP/${EXTEN},803))

; Alle anderen erhalten keine Voicemailbox.
exten => _[4-5]XX,1,Dial(PJSIP/${EXTEN},30)

[voicemailsystem-komfort]
exten => 800,1,VoiceMailMain(${CALLERID(num)}@default)

[voicemailsystem-normal]
exten => 801,1,VoiceMailMain()

[voicemailsystem-hausmeister]
exten => 800,1,VoiceMailMain(150@default)

[voicemailsystem-verkauf-national]
exten => 800,1,VoiceMailMain(802@default,s)

[voicemailsystem-verkauf-ausland]
exten => 800,1,VoiceMailMain(803@default,s)

Besonderheiten

Die extensions.conf der Apfelmus GmbH sieht jetzt schon etwas aufwendiger aus. Das liegt daran, dass wir verschiedene Voicemailbox-Arten verwenden. Es gibt einmal die normale Voicemailbox und dann noch die Gruppenvoicemailboxen für den Verkauf und das Sekretariat. Weiterhin sollen die Mitarbeiter des Verkaufs ihre Voicemailboxen ohne Passwort-Eingabe abrufen können. Das Ganze soll natürlich für den einzelnen Mitarbeiter möglichst komfortabel abgebildet werden. Aus diesem Grund bleibt für alle User des Systems die 800 die Rufnummer der Voicemailbox, unter der sie dieselbe abrufen können.


1. Dies ist eine Vorsichtsmaßnahme, die einen Denial-of-Service im Falle eines großen IT-Problems verhindern soll. Wenn alle Mitarbeiter eine Nachricht auf dem Voicemail-System hinterlassen würden, dann käme die IT-Abteilung mit dem Abhören dieser Nachrichten nicht mehr nach.
2. In der Verkäufergruppe sind mehrere Personen, es soll daher nicht eine E-Mail an eine bestimmte Einzelperson geschickt werden. Man könnte aber die Funktion vieler SIP-Telefone nutzen, mit einem Blinklicht anzuzeigen, ob eine Nachricht in der Voicemailbox vorhanden ist.