7. Mini-VoiceMail (MiniVM)

Philipp Kempgen

MiniVM (Mini-VoiceMail) ist ein alternatives Voicemail-System, das ab Asterisk 1.6 zur Verfügung steht. Es lässt sich etwas modularer gestalten, als dies mit den monolithischen Applikationen VoiceMail() und VoiceMailMain() möglich ist. Die Bezeichnung „Mini“ ist also gewissermaßen eine Untertreibung, „Modular“ wäre passender.

Verzeichnisstruktur

Das Verzeichnis, in dem die Voicemail-Nachrichten eines MiniVM-Benutzers gespeichert werden, ist[67]:

/var/spool/asterisk/voicemail/domain/benutzer/

also z. B.:

/var/spool/asterisk/voicemail/localdomain/philipp/

oder:

/var/spool/asterisk/voicemail/amooma.de/philipp.kempgen/

Darin gibt es jeweils noch folgende Unterverzeichnisse, in denen sich eigene Ansagen des Benutzers in verschiedenen Formaten befinden:

greet/

Ansage des eigenen Namens

busy/

Im Gespräch“-Ansage

unavailable/

Nicht erreichbar“-Ansage

temp/

Temporäre Ansage

minivm.conf

MiniVM wird in der Datei /etc/asterisk/minivm.conf konfiguriert, die analog zur bekannten voicemail.conf (Abschnitt 4, „voicemail.conf) aufgebaut ist. Die Mailbox-Definitionen haben allerdings immer das Format benutzer@domain.

[Wichtig]Wichtig

Achten Sie darauf, dass hier, anders als in den übrigen Asterisk-Konfigurationsdateien, die Sprache nicht als 2-Buchstaben-Code (de, en, ...) angegeben wird, sondern im Format Sprache_Land [68]. Dabei ist Sprache ein 2-buchstabiger Code nach ISO 639-1[69] und Land ein 2-buchstabiger Code nach ISO 3166-1 alpha-2[70].

Beispiele: de_DE (Deutsch, Deutschland), de_AT (Deutsch, Österreich), de_CH (Deutsch, Schweiz), fr_CH (Französisch, Schweiz), en_US (Englisch, USA), en_UK (Englisch, Vereinigtes Königreich), sv_SE (Schwedisch, Schweden), no_NO (Nynorsk, Norwegen), nb_NO (Bokmål, Norwegen).

Eine für Deutschland sinnvolle minivm.conf könnte z. B. so aussehen:

[general]
format=alaw     ; Speicherformat alaw
minmessage=2    ; minimale Länge 2 Sekunden
maxmessage=300  ; maximale Länge 300 Sekunden (5 Minuten)
maxsilence=10   ; nach 10 Sekunden Stille auflegen
maxgreet=120    ; maximale Ansage-Länge 120 Sekunden (2 Minuten)

[template-de_DE_email]
subject = Neue Nachricht
messagebody = Hallo ${MVM_NAME}\n\n${MVM_CALLERID} hat auf Ihrem Anrufbeantworter eine\nNachricht hinterlassen.\n\nMailbox : ${MVM_MAILBOX}\nDatum   : ${MVM_DATE}\nLänge   : ${MVM_DUR}\n
charset = iso-8859-1
dateformat = %A, %d %B %Y um %H:%M
locale = de_DE
attachmedia = yes

[template-de_DE_pager]
subject = Neue Nachricht
messagebody = Sie haben eine neue Nachricht von\n${MVM_CALLERID}.\n
charset = iso-8859-1
dateformat = %A, %d %B %Y um %H:%M
locale = de_DE
attachmedia = no

Statt messagebody kann man auch templatefile und dann eine Datei angeben, absolut oder relativ zum Verzeichnis /etc/asterisk/, also z. B.:

templatefile = minivm-templates/de_de_email.txt

Nach dem Abschnitt [general] und einer oder mehreren [template-...]-Definitionen[71] folgen dann die Definitionen der Mailboxen. Beispiel:

[standardwerte@amooma.de](!)
etemplate = de_DE_email    ; E-Mail-Template [template-de_DE_email]
;ptemplate = de_DE_pager   ; ggf. Pager-Template [template-de_DE_pager]
timezone = de
setvar = x_firma=Amooma GmbH

[philipp@amooma.de](standardwerte@amooma.de)
fullname = Philipp Kempgem
;email = philipp.kempgen@amooma.de  ; ggf. abweichende E-Mail-Adresse
;pager = philipp.kempgen@amooma.de  ; ggf. E-Mail-Adr. für Pager-Nachrichten

[stefan@amooma.de](standardwerte@amooma.de)
fullname = Stefan Wintermeyer

Statt eines richtigen Domain-Namens wie amooma.de könnte man auch einfach localdomain verwenden.

Mit setvar=Feldname=Wert kann man zusätzlich eigene Feld/Wert-Paare setzen, die sich im Dialplan mit der Funktion MINIVMACCOUNT() (Abschnitt 64, „MINIVMACCOUNT()) abfragen lassen. Um dabei nicht mit den fest vorgegebenen Feldnamen in Konflikt zu geraten, empfiehlt sich z. B. ein Präfix wie „x_“.

Verbose(1,### Firma: ${MINIVMACCOUNT(philipp@amooma.de:x_firma)});

Statt in der minivm.conf können die Mailbox-Definitionen alternativ per „Realtime“ aus einer Datenbank-Tabelle gelesen werden.

CLI-Befehle für Mini-VoiceMail

Folgende Befehle für MiniVM gibt es auf dem Asterisk-CLI:

minivm list accounts

Listet die definierten Mailbox-Accounts auf.

minivm list templates

Listet die definierten Nachrichten-Templates auf.

minivm list zones

Listet die definierten Zeitzonen auf.

minivm show settings

Zeigt die allgemeinen Einstellungen aus [general] an.

minivm show stats

Zeigt die Anzahl der eingerichteten Accounts, Templates, Zeitzonen etc. an.

MiniVM-Applikationen und -Funktionen

Folgende Dialplan-Applikationen werden von MiniVM bereitgestellt:

MinivmAccMess() - Abschnitt 94, „MinivmAccMess()
MinivmDelete() - Abschnitt 95, „MinivmDelete()
MinivmGreet() - Abschnitt 96, „MinivmGreet()
MinivmNotify() - Abschnitt 97, „MinivmNotify()
MinivmRecord() - Abschnitt 98, „MinivmRecord()

Dialplan-Funktionen:

MINIVMACCOUNT() - Abschnitt 64, „MINIVMACCOUNT()
MINIVMCOUNTER() - Abschnitt 65, „MINIVMCOUNTER()


[67] mit astspooldir = /var/spool/asterisk in der asterisk.conf

[68] nach RFC 3066, http://tools.ietf.org/html/rfc3066, allerdings mit _ (Unterstrich) statt mit - (Bindestrich)

[71] Genau genommen muss man nicht unbedingt [template-...]-Definitionen verwenden. Man kann die Default-Werte auch im Abschnitt [general] angeben.


AMOOCON 2010

Noch kein Ticket? Dann wird es Zeit. Nur noch wenige Tage.

Twitter

Flattr

Das gedruckte Buch

Werbung