Auch die Voiceboxen können aus einer Datenbank heraus erstellt werden, was sich bei vielen Usern sehr empfiehlt.
In der extconfig.conf wird folgender Eintrag hinzugefügt:
voicemail => mysql,asterisk,voicemail_users
Die Tabelle in der Datenbank sieht so aus:
CREATE TABLE `voicemail_users` (
`uniqueid` int(11) NOT NULL auto_increment,
`customer_id` int(11) NOT NULL default '0',
`context` varchar(50) NOT NULL default '',
`mailbox` int(5) NOT NULL default '0',
`password` varchar(4) NOT NULL default '0',
`fullname` varchar(50) NOT NULL default '',
`email` varchar(50) NOT NULL default '',
`pager` varchar(50) NOT NULL default '',
`attach` varchar(3) NOT NULL default 'no',
`saycid` varchar(3) NOT NULL default 'yes',
`hidefromdir` varchar(3) NOT NULL default 'no',
`stamp` timestamp(14) NOT NULL,
PRIMARY KEY (`uniqueid`),
KEY `mailbox_context` (`mailbox`,`context`)
) TYPE=MyISAM?;
Ein User wird dann so angelegt:
insert into voicemail_users set context='default', mailbox='2001', password='1234', fullname='Rolf Winterscheidt', email='irgendwer@example.com';
Und in der extensions.conf (oder zugehörigen Tabelle) wird dann, um in die Mailbox zu gelangen etwas in dieser Art gemacht:
exten => 2001,1,Dial(SIP/2001,20,r)
exten => 2001,2,VoiceMail(u2001)
exten => 2001,102,VoiceMail(b2001)
Erklärung:
In Priorität 1 wird wie gehabt angewählt. Ist der User nicht erreichbar, d.h. hat es 20 Sekunden geklingelt oder der Anschluss ist nicht online, dann kommt Priorität 2 zum Zuge und spricht die Mailbox an. Der Parameter u2001 heisst hierbei, dass die Voicebox 2001 als "Nicht erreichbar" angesprochen wird, was dann in der Ansage zu hören ist. Der Parameter b2001 heisst hingegen, dass besetzt ist. Hier sprint Asterisk dann gleich in eine um 100 höhere Priorität, also in diesem Fall 102.