Voicemailbox der Familie Meier

Die Familie Meier stellt im Zuge der Modernisierung des Haushaltes 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

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

[familie-meier]
; Wenn nach 30 Sekunden niemand abnimmt, geht das Gespraech 
; auf die Voicemailbox, das gleiche bei besetzt:
exten => _20[0-3],1,Set(ZIELNR=${EXTEN})
exten => _20[0-3],n,Dial(SIP/${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 er
reichbar behandeln

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

Oder schöner so:

[familie-meier]
exten => _20[0-3],1,Macro(normal|SIP/${EXTEN}|${EXTEN})

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

[macro-normal];
;  ${ARG1} - anzurufendes(s) Gerät(e) (z.B. SIP/123&SIP/124)
;  ${ARG2} - Mailbox (oft gleich ${MACRO_EXTEN})
exten => s,1,Dial(${ARG1},30)               ; max. 30 Sekunden klingeln
exten => s,n,Goto(s-${DIALSTATUS},1)        ; zum Status (NOANSWER,BUSY,
CHANUNAVAIL,CONGESTION,ANSWER)
exten => s-NOANSWER,1,VoiceMail(${ARG2},u)  ; Ansage "nicht erreichbar"
exten => s-BUSY,1,VoiceMail(${ARG2},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 err
eichbar behandeln