VoiceMail
Was ist eine Telefonanlage ohne Anrufbeantworter? Genau, „nur“ eine Telfonanlage!
In diesem Kapitel nehmen wir uns der Konfiguration der VoiceMail-Applikation an.
Konfiguration
SIP-/IAX-Definitionen
Bei der Konfiguration unserer SIP-Teilnehmer bzw. der IAX-Teilnehmer hatten wir bereits die zu den Nebenstellen gehörenden Voicemail-Boxen definiert, Bsp. mailbox=60.
Bei Bedarf passen wir die Zuordnung der Voicemailboxen zu der richtigen Nebenstelle an dieser Stelle noch an.
# vim /etc/asterisk/sip.conf
# vim /etc/asterisk/iax.conf
Dialplan
Zur Nutzug der Voicemail-Funktionalitäten bedarf es einer oder besser gesagt zweier Erweiterungen unseres Dialplans. Auf dieser Erweiterungen gehen wir nun weiter ein.
Abfragen der Voicemailboxen
Zum Abfragen der Voicemail erweitern wir nun unseren Dialplan in zwei Schritten.
Abfragen von intern
Zum Abfragen der Voicemailbox vom internen Apparat aus - ohne Abfrage und Eingabe des geheimen Passwortes - auf die zugehörige VoiceMailbox erweitern wir unseren Dialplan wie nachfolgend dargesellt. Auch enthält diese Erweiterung die Option zum Anfragen jeder Mailbox mit Eingabe des zugehörigen Mailboxpasswortes.
# vim /etc/asterisk/extensions.conf
[voicemail_direkt] exten => 60,1,NoOp(${CALLERID(num)} ruft seine eigene VoiceMailbox ab) exten => 60,n,Answer exten => 60,n,Wait(1) exten => 60,n,VoiceMailMain(${CALLERID(num)},s) exten => 60,n,Hangup [voicemail] exten => 61,1,NoOp(${CALLERID(num)} ruft die allgemein VoiceMailbox an (mit anschließender Abfrage der Box-Nummer)) exten => 61,1,Answer exten => 61,n,Wait(1) exten => 61,n,VoiceMailMain() exten => 61,n,Hangup [default] include => voicemail include => voicemail_direkt
Zum Aktivierung unserer Erweiterung laden wir nun unseren Dialplan via Asterisk-CLI
# asterisk -rx "dialplan reload" Dialplan reloaded.
Beim ersten Test rufen wir nun von der internen Nebenstelle 13 die VoiceMailserver-Rufnummer 60, somit gelangen wir also direkt zur zugehörigen Mailbox 13.
asterisk*CLI> == Using SIP RTP CoS mark 5 -- Executing [60@default:1] NoOp("SIP/13-0000001c", "13 ruft seine eigene VoiceMailbox ab") in new stack -- Executing [60@default:2] Answer("SIP/13-0000001c", "") in new stack -- Executing [60@default:3] Wait("SIP/13-0000001c", "1") in new stack -- Executing [60@default:4] VoiceMailMain("SIP/13-0000001c", "13,s") in new stack -- <SIP/13-0000001c> Playing 'vm-youhave.gsm' (language 'de') -- <SIP/13-0000001c> Playing 'vm-no.gsm' (language 'de') -- <SIP/13-0000001c> Playing 'vm-messages.gsm' (language 'de') -- <SIP/13-0000001c> Playing 'vm-goodbye.gsm' (language 'de') -- Executing [60@default:5] Hangup("SIP/13-0000001c", "") in new stack == Spawn extension (default, 60, 5) exited non-zero on 'SIP/13-0000001c' asterisk*CLI>
Beim zweiten Testanruf wählen wir wieder von der Nebenstelle 13 aus die VoiceMail-Applikation an, diesesmal jedoch die Zielrufnummer 61. Hier wird nun nicht direkt die Voicemailbox 13 angeboten, sondern es wird sowohl die Box-Nummer wie auch PIN abgefragt. So kann man also einfach von jeder internen Nebenstelle, jede Voicebox abfragen, vorausgesetzt, man kennt die jeweils zugehörige Mailbox-PIN.
asterisk*CLI> == Using SIP RTP CoS mark 5 -- Executing [61@default:1] NoOp("SIP/13-0000001e", "13 ruft die allgemein VoiceMailbox an (mit anschließender Abfrage der Box-Nummer)") in new stack -- Executing [61@default:2] Wait("SIP/13-0000001e", "1") in new stack -- Executing [61@default:3] VoiceMailMain("SIP/13-0000001e", "") in new stack -- <SIP/13-0000001e> Playing 'vm-login.gsm' (language 'de') -- <SIP/13-0000001e> Playing 'vm-password.gsm' (language 'de') -- <SIP/13-0000001e> Playing 'vm-youhave.gsm' (language 'de') -- <SIP/13-0000001e> Playing 'vm-no.gsm' (language 'de') -- <SIP/13-0000001e> Playing 'vm-messages.gsm' (language 'de') -- <SIP/13-0000001e> Playing 'vm-opts.gsm' (language 'de') -- <SIP/13-0000001e> Playing 'vm-goodbye.gsm' (language 'de') -- Executing [61@default:4] Hangup("SIP/13-0000001e", "") in new stack == Spawn extension (default, 61, 4) exited non-zero on 'SIP/13-0000001e' asterisk*CLI>
Abfragen von extern
Damit unsere Mitarbeiter auch von extern ihre VoiceMailBoxen abfragen können, definieren wir für die Einwahlrufnummer den entsprechenden Zugangspunkt unter dem Kontext [ankommend_(mISDN)]. Im Grunde entspricht die Applikation der zuletzt beschriebenen Option, dem Abfragen einer „fremden Voicebox“.
# vim /etc/asterisk/extensions.conf
[ankommend_(mISDN)]
; Mailboxabfrage von "außen"
exten => 883388,1,NoOp(Externanrufer mit der Nummer ${CALLERID(num)} ruft die Mailboxfernabfrage an.)
exten => 883388,n,Answer
exten => 883388,n,Wait(1)
exten => 883388,n,VoiceMailMain()
exten => 883388,n,Hangup
Auch hier laden wir den Dialplan ert einmal neu auf der Asterisk-Konsole.
# asterisk -rx "dialplan reload" Dialplan reloaded.
Anschließend fragen wir unser Voicmailbox „von der Ferne aus“ ab. Nach Anwahl unserer Einwahlrufnummer, müssen wir natürlich die gewünschte VoiceMailBox und das zugehörige Passwort eingeben.
asterisk*CLI>
-- Executing [883188@ankommend_(mISDN):1] NoOp("mISDN/2-u21", "Externanrufer mit der Nummer 09007422960 ruft die Mailboxfernabfrage an.") in new stack
-- Executing [883388@ankommend_(mISDN):2] Answer("mISDN/2-u21", "") in new stack
-- Executing [883388@ankommend_(mISDN):3] Wait("mISDN/2-u21", "1") in new stack
-- Executing [883388@ankommend_(mISDN):4] VoiceMailMain("mISDN/2-u21", "") in new stack
-- <mISDN/2-u21> Playing 'vm-login.alaw' (language 'de')
-- <mISDN/2-u21> Playing 'vm-password.alaw' (language 'de')
-- <SIP/13-0000001e> Playing 'vm-youhave.alaw' (language 'de')
-- <SIP/13-0000001e> Playing 'vm-no.alaw' (language 'de')
-- <SIP/13-0000001e> Playing 'vm-messages.alaw' (language 'de')
-- <SIP/13-0000001e> Playing 'vm-opts.alaw' (language 'de')
-- <SIP/13-0000001e> Playing 'vm-goodbye.alaw' (language 'de')
office*CLI>
Anrufweiterleitungen
voicemail.conf
derzeit in Arbeit!