Asterisk RealTime Voicemail

Asterisk RealTime Voicemail


Voicemail.conf Setup

::(Move voicemail.conf to some other directory. Create an empty voicemail.conf in its place.)

Attention: Doesn't seem to work with asterisk 1.2.10, had to add at least the following in voicemail.conf:


[general]
searchcontexts=yes

Extconfig.conf Setup

Add the following line, swapping your own personal values if you wish:


voicemail => mysql,asterisk,voicemail_users



You can change mysql to odbc if you want to use odbc.
You can change asterisk to be the name of your database.
You can change voicemail_users to be the name of the voicemail table we will create below.


Database Table

Lets create the table we need:

NOTE: You can use any table name you wish, just make sure the table name matches what you have the family name bound to.


#
# Table structure for table `bit_voicemail_users`
#

Extended table structure - MySQL (Asterisk 1.6.x+) Updated 4/16/2011 (Sherwood McGowan)


CREATE TABLE `bit_voicemail` (
 `uniqueid` INT(4) NOT NULL AUTO_INCREMENT,
 `customer_id` VARCHAR(10) COLLATE utf8_bin DEFAULT NULL,
 `context` VARCHAR(10) COLLATE utf8_bin NOT NULL,
 `mailbox` VARCHAR(10) COLLATE utf8_bin NOT NULL,
 `password` INT(4) NOT NULL,
 `fullname` VARCHAR(150) COLLATE utf8_bin DEFAULT NULL,
 `email` VARCHAR(50) COLLATE utf8_bin DEFAULT NULL,
 `pager` VARCHAR(50) COLLATE utf8_bin DEFAULT NULL,
 `tz` VARCHAR(10) COLLATE utf8_bin DEFAULT 'central',
 `attach` ENUM('yes','no') COLLATE utf8_bin NOT NULL DEFAULT 'yes',
 `saycid` ENUM('yes','no') COLLATE utf8_bin NOT NULL DEFAULT 'yes',
 `dialout` VARCHAR(10) COLLATE utf8_bin DEFAULT NULL,
 `callback` VARCHAR(10) COLLATE utf8_bin DEFAULT NULL,
 `review` ENUM('yes','no') COLLATE utf8_bin NOT NULL DEFAULT 'no',
 `operator` ENUM('yes','no') COLLATE utf8_bin NOT NULL DEFAULT 'no',
 `envelope` ENUM('yes','no') COLLATE utf8_bin NOT NULL DEFAULT 'no',
 `sayduration` ENUM('yes','no') COLLATE utf8_bin NOT NULL DEFAULT 'no',
 `saydurationm` TINYINT(4) NOT NULL DEFAULT '1',
 `sendvoicemail` ENUM('yes','no') COLLATE utf8_bin NOT NULL DEFAULT 'no',
 `delete` ENUM('yes','no') COLLATE utf8_bin NOT NULL DEFAULT 'no',
 `nextaftercmd` ENUM('yes','no') COLLATE utf8_bin NOT NULL DEFAULT 'yes',
 `forcename` ENUM('yes','no') COLLATE utf8_bin NOT NULL DEFAULT 'no',
 `forcegreetings` ENUM('yes','no') COLLATE utf8_bin NOT NULL DEFAULT 'no',
 `hidefromdir` ENUM('yes','no') COLLATE utf8_bin NOT NULL DEFAULT 'yes',
 `stamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
 `attachfmt` VARCHAR(10) COLLATE utf8_bin DEFAULT NULL,
 `searchcontexts` ENUM('yes','no') COLLATE utf8_bin DEFAULT NULL,
 `cidinternalcontexts` VARCHAR(10) COLLATE utf8_bin DEFAULT NULL,
 `exitcontext` VARCHAR(10) COLLATE utf8_bin DEFAULT NULL,
 `volgain` VARCHAR(4) COLLATE utf8_bin DEFAULT NULL,
 `tempgreetwarn` ENUM('yes','no') COLLATE utf8_bin DEFAULT 'yes',
 `messagewrap` ENUM('yes','no') COLLATE utf8_bin DEFAULT 'no',
 `minpassword` INT(2) DEFAULT '4',
 `vm-password` VARCHAR(10) COLLATE utf8_bin DEFAULT NULL,
 `vm-newpassword` VARCHAR(10) COLLATE utf8_bin DEFAULT NULL,
 `vm-passchanged` VARCHAR(10) COLLATE utf8_bin DEFAULT NULL,
 `vm-reenterpassword` VARCHAR(10) COLLATE utf8_bin DEFAULT NULL,
 `vm-mismatch` VARCHAR(10) COLLATE utf8_bin DEFAULT NULL,
 `vm-invalid-password` VARCHAR(10) COLLATE utf8_bin DEFAULT NULL,
 `vm-pls-try-again` VARCHAR(10) COLLATE utf8_bin DEFAULT NULL,
 `listen-control-forward-key` VARCHAR(2) COLLATE utf8_bin DEFAULT NULL,
 `listen-control-reverse-key` VARCHAR(1) COLLATE utf8_bin DEFAULT NULL,
 `listen-control-pause-key` VARCHAR(1) COLLATE utf8_bin DEFAULT NULL,
 `listen-control-restart-key` VARCHAR(1) COLLATE utf8_bin DEFAULT NULL,
 `listen-control-stop-key` VARCHAR(13) COLLATE utf8_bin DEFAULT NULL,
 `backupdeleted` VARCHAR(3) COLLATE utf8_bin DEFAULT '25',
  PRIMARY KEY  (`uniqueid`),
 KEY `mailbox_context` (`mailbox`,`context`)
) ENGINE=INNODB DEFAULT CHARSET=latin1 ; 

Extended table structure - MYSQL


CREATE TABLE `bit_voicemail_users` (
`uniqueid` int(11) NOT NULL auto_increment,
`customer_id` varchar(11) NOT NULL default '0',
`context` varchar(50) NOT NULL default '',
`mailbox` varchar(11) NOT NULL default '0',
`password` varchar(5) NOT NULL default '0',
`fullname` varchar(150) NOT NULL default '',
`email` varchar(50) NOT NULL default '',
`pager` varchar(50) NOT NULL default '',
`tz` varchar(10) NOT NULL default 'central',
`attach` varchar(4) NOT NULL default 'yes',
`saycid` varchar(4) NOT NULL default 'yes',
`dialout` varchar(10) NOT NULL default '',
`callback` varchar(10) NOT NULL default '',
`review` varchar(4) NOT NULL default 'no',
`operator` varchar(4) NOT NULL default 'no',
`envelope` varchar(4) NOT NULL default 'no',
`sayduration` varchar(4) NOT NULL default 'no',
`saydurationm` tinyint(4) NOT NULL default '1',
`sendvoicemail` varchar(4) NOT NULL default 'no',
`delete` varchar(4) NOT NULL default 'no',
`nextaftercmd` varchar(4) NOT NULL default 'yes',
`forcename` varchar(4) NOT NULL default 'no',
`forcegreetings` varchar(4) NOT NULL default 'no',
`hidefromdir` varchar(4) NOT NULL default 'yes',
`stamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
PRIMARY KEY (`uniqueid`),
KEY `mailbox_context` (`mailbox`,`context`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ;



Extended table structure - POSTGRESQL

CREATE TABLE voicemail_users
(
uniqueid serial NOT NULL,
customer_id character varying(11) NOT NULL DEFAULT 0,
context character varying(50) NOT NULL DEFAULT 'default',
mailbox character varying(11) NOT NULL DEFAULT 0,
"password" character varying(5) NOT NULL DEFAULT 0,
fullname character varying(150) NOT NULL DEFAULT '',
email character varying(50) NOT NULL DEFAULT '',
pager character varying(50) NOT NULL DEFAULT '',
tz character varying(10) NOT NULL DEFAULT 'central',
attach character varying(4) NOT NULL DEFAULT 'yes',
saycid character varying(4) NOT NULL DEFAULT 'yes',
dialout character varying(10) NOT NULL DEFAULT '',
callback character varying(10) NOT NULL DEFAULT '',
review character varying(4) NOT NULL DEFAULT 'no',
"operator" character varying(4) NOT NULL DEFAULT 'no',
envelope character varying(4) NOT NULL DEFAULT 'no',
sayduration character varying(4) NOT NULL DEFAULT 'no',
saydurationm smallint NOT NULL DEFAULT 1,
sendvoicemail character varying(4) NOT NULL DEFAULT 'no',
"delete" character varying(4) NOT NULL DEFAULT 'no',
nextaftercmd character varying(4) NOT NULL DEFAULT 'yes',
forcename character varying(4) NOT NULL DEFAULT 'no',
forcegreetings character varying(4) NOT NULL DEFAULT 'no',
hidefromdir character varying(4) NOT NULL DEFAULT 'yes',
stamp timestamp without time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "Primary Key" PRIMARY KEY (uniqueid)
) WITH OIDS;
CREATE UNIQUE INDEX mailbox_context ON voicemail_users (mailbox,context);


Basic table structure - MYSQL


CREATE TABLE `bit_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(10) NOT NULL default '0',
`fullname` varchar(50) NOT NULL default '',
`email` varchar(50) NOT NULL default '',
`pager` varchar(50) NOT NULL default '',
`stamp` timestamp(14) NOT NULL,
PRIMARY KEY (`uniqueid`),
KEY `mailbox_context` (`mailbox`,`context`)
) TYPE=MyISAM;


NOTE: Voicemail `options` such as "attach=yes|saycid=yes" are supported in ARA by creating separate columns in the database, one for each option that you require:

`attach` varchar(3) NOT NULL default 'no',
`saycid` varchar(3) NOT NULL default 'yes',
`hidefromdir` varchar(3) NOT NULL default 'no',


NOTE: The index created on the 2 columns `mailbox` and `context` is because RealTime does its SELECT query using those two columns every time.



Testing


Throw some data into the above table and have fun.

NOTE: 'show voicemail users' will tell you "There are no voicemail users currently defined". This is CORRECT behavior.

Cheers,
Matthew

NOTE: 'uniqueid' column MUST be 'uniqueid' NOT 'id', DO NOT CHANGE to 'id', updating voicemail passwords will not work if changed.

Hard lesson learned.
Hubguru, JR



I had some issues with passwords updating at one point, so remember to have uniqueid as stated by JR. However, I traced it down to a timestamp issue.
Below is my working and slightly optimized database structure:

CREATE TABLE IF NOT EXISTS `voicemail_users` (
`uniqueid` int(4) NOT NULL auto_increment,
`customer_id` varchar(10) collate utf8_bin default NULL,
`context` varchar(10) collate utf8_bin NOT NULL,
`mailbox` varchar(10) collate utf8_bin NOT NULL,
`password` int(4) NOT NULL,
`fullname` varchar(150) collate utf8_bin default NULL,
`email` varchar(50) collate utf8_bin default NULL,
`pager` varchar(50) collate utf8_bin default NULL,
`tz` varchar(10) collate utf8_bin default 'central',
`attach` enum('yes','no') collate utf8_bin NOT NULL default 'yes',
`saycid` enum('yes','no') collate utf8_bin NOT NULL default 'yes',
`dialout` varchar(10) collate utf8_bin default NULL,
`callback` varchar(10) collate utf8_bin default NULL,
`review` enum('yes','no') collate utf8_bin NOT NULL default 'no',
`operator` enum('yes','no') collate utf8_bin NOT NULL default 'no',
`envelope` enum('yes','no') collate utf8_bin NOT NULL default 'no',
`sayduration` enum('yes','no') collate utf8_bin NOT NULL default 'no',
`saydurationm` tinyint(4) NOT NULL default '1',
`sendvoicemail` enum('yes','no') collate utf8_bin NOT NULL default 'no',
`delete` enum('yes','no') collate utf8_bin NOT NULL default 'no',
`nextaftercmd` enum('yes','no') collate utf8_bin NOT NULL default 'yes',
`forcename` enum('yes','no') collate utf8_bin NOT NULL default 'no',
`forcegreetings` enum('yes','no') collate utf8_bin NOT NULL default 'no',
`hidefromdir` enum('yes','no') collate utf8_bin NOT NULL default 'yes',
`stamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
PRIMARY KEY (`uniqueid`),
KEY `mailbox_context` (`mailbox`,`context`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=1;

in extconfig.conf: voicemail => mysql,general,voicemail_users

Also, make sure the second field, general, matches whatever is in the [] area of res_mysql.conf... in mine, it's: [general]
- I have found that in 1.6.2.10, that the second field should NOT match what is in the [] of res_mysql.conf, but instead should match the name of the database you are referencing in
res_mysql.conf .. ie - if it is dbname=asterisk, the you want voicemail => mysql,asterisk, name_of_your_funky_voicemail_table

The saydurationm field is the minimum duration for it to announce the duration of the message.
tz is from the [zonemessages] context of voicemail.conf
On my box, when doing: 'voicemail show users for default', it queries the database and shows the users. Make sure the second entry in extconfig.conf matches for the [context] in res_mysql.
-- danielc[at]darkvoip[dot]net






See Also

Asterisk RealTime Voicemail


Voicemail.conf Setup

::(Move voicemail.conf to some other directory. Create an empty voicemail.conf in its place.)

Attention: Doesn't seem to work with asterisk 1.2.10, had to add at least the following in voicemail.conf:


[general]
searchcontexts=yes

Extconfig.conf Setup

Add the following line, swapping your own personal values if you wish:


voicemail => mysql,asterisk,voicemail_users



You can change mysql to odbc if you want to use odbc.
You can change asterisk to be the name of your database.
You can change voicemail_users to be the name of the voicemail table we will create below.


Database Table

Lets create the table we need:

NOTE: You can use any table name you wish, just make sure the table name matches what you have the family name bound to.


#
# Table structure for table `bit_voicemail_users`
#

Extended table structure - MySQL (Asterisk 1.6.x+) Updated 4/16/2011 (Sherwood McGowan)


CREATE TABLE `bit_voicemail` (
 `uniqueid` INT(4) NOT NULL AUTO_INCREMENT,
 `customer_id` VARCHAR(10) COLLATE utf8_bin DEFAULT NULL,
 `context` VARCHAR(10) COLLATE utf8_bin NOT NULL,
 `mailbox` VARCHAR(10) COLLATE utf8_bin NOT NULL,
 `password` INT(4) NOT NULL,
 `fullname` VARCHAR(150) COLLATE utf8_bin DEFAULT NULL,
 `email` VARCHAR(50) COLLATE utf8_bin DEFAULT NULL,
 `pager` VARCHAR(50) COLLATE utf8_bin DEFAULT NULL,
 `tz` VARCHAR(10) COLLATE utf8_bin DEFAULT 'central',
 `attach` ENUM('yes','no') COLLATE utf8_bin NOT NULL DEFAULT 'yes',
 `saycid` ENUM('yes','no') COLLATE utf8_bin NOT NULL DEFAULT 'yes',
 `dialout` VARCHAR(10) COLLATE utf8_bin DEFAULT NULL,
 `callback` VARCHAR(10) COLLATE utf8_bin DEFAULT NULL,
 `review` ENUM('yes','no') COLLATE utf8_bin NOT NULL DEFAULT 'no',
 `operator` ENUM('yes','no') COLLATE utf8_bin NOT NULL DEFAULT 'no',
 `envelope` ENUM('yes','no') COLLATE utf8_bin NOT NULL DEFAULT 'no',
 `sayduration` ENUM('yes','no') COLLATE utf8_bin NOT NULL DEFAULT 'no',
 `saydurationm` TINYINT(4) NOT NULL DEFAULT '1',
 `sendvoicemail` ENUM('yes','no') COLLATE utf8_bin NOT NULL DEFAULT 'no',
 `delete` ENUM('yes','no') COLLATE utf8_bin NOT NULL DEFAULT 'no',
 `nextaftercmd` ENUM('yes','no') COLLATE utf8_bin NOT NULL DEFAULT 'yes',
 `forcename` ENUM('yes','no') COLLATE utf8_bin NOT NULL DEFAULT 'no',
 `forcegreetings` ENUM('yes','no') COLLATE utf8_bin NOT NULL DEFAULT 'no',
 `hidefromdir` ENUM('yes','no') COLLATE utf8_bin NOT NULL DEFAULT 'yes',
 `stamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
 `attachfmt` VARCHAR(10) COLLATE utf8_bin DEFAULT NULL,
 `searchcontexts` ENUM('yes','no') COLLATE utf8_bin DEFAULT NULL,
 `cidinternalcontexts` VARCHAR(10) COLLATE utf8_bin DEFAULT NULL,
 `exitcontext` VARCHAR(10) COLLATE utf8_bin DEFAULT NULL,
 `volgain` VARCHAR(4) COLLATE utf8_bin DEFAULT NULL,
 `tempgreetwarn` ENUM('yes','no') COLLATE utf8_bin DEFAULT 'yes',
 `messagewrap` ENUM('yes','no') COLLATE utf8_bin DEFAULT 'no',
 `minpassword` INT(2) DEFAULT '4',
 `vm-password` VARCHAR(10) COLLATE utf8_bin DEFAULT NULL,
 `vm-newpassword` VARCHAR(10) COLLATE utf8_bin DEFAULT NULL,
 `vm-passchanged` VARCHAR(10) COLLATE utf8_bin DEFAULT NULL,
 `vm-reenterpassword` VARCHAR(10) COLLATE utf8_bin DEFAULT NULL,
 `vm-mismatch` VARCHAR(10) COLLATE utf8_bin DEFAULT NULL,
 `vm-invalid-password` VARCHAR(10) COLLATE utf8_bin DEFAULT NULL,
 `vm-pls-try-again` VARCHAR(10) COLLATE utf8_bin DEFAULT NULL,
 `listen-control-forward-key` VARCHAR(2) COLLATE utf8_bin DEFAULT NULL,
 `listen-control-reverse-key` VARCHAR(1) COLLATE utf8_bin DEFAULT NULL,
 `listen-control-pause-key` VARCHAR(1) COLLATE utf8_bin DEFAULT NULL,
 `listen-control-restart-key` VARCHAR(1) COLLATE utf8_bin DEFAULT NULL,
 `listen-control-stop-key` VARCHAR(13) COLLATE utf8_bin DEFAULT NULL,
 `backupdeleted` VARCHAR(3) COLLATE utf8_bin DEFAULT '25',
  PRIMARY KEY  (`uniqueid`),
 KEY `mailbox_context` (`mailbox`,`context`)
) ENGINE=INNODB DEFAULT CHARSET=latin1 ; 

Extended table structure - MYSQL


CREATE TABLE `bit_voicemail_users` (
`uniqueid` int(11) NOT NULL auto_increment,
`customer_id` varchar(11) NOT NULL default '0',
`context` varchar(50) NOT NULL default '',
`mailbox` varchar(11) NOT NULL default '0',
`password` varchar(5) NOT NULL default '0',
`fullname` varchar(150) NOT NULL default '',
`email` varchar(50) NOT NULL default '',
`pager` varchar(50) NOT NULL default '',
`tz` varchar(10) NOT NULL default 'central',
`attach` varchar(4) NOT NULL default 'yes',
`saycid` varchar(4) NOT NULL default 'yes',
`dialout` varchar(10) NOT NULL default '',
`callback` varchar(10) NOT NULL default '',
`review` varchar(4) NOT NULL default 'no',
`operator` varchar(4) NOT NULL default 'no',
`envelope` varchar(4) NOT NULL default 'no',
`sayduration` varchar(4) NOT NULL default 'no',
`saydurationm` tinyint(4) NOT NULL default '1',
`sendvoicemail` varchar(4) NOT NULL default 'no',
`delete` varchar(4) NOT NULL default 'no',
`nextaftercmd` varchar(4) NOT NULL default 'yes',
`forcename` varchar(4) NOT NULL default 'no',
`forcegreetings` varchar(4) NOT NULL default 'no',
`hidefromdir` varchar(4) NOT NULL default 'yes',
`stamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
PRIMARY KEY (`uniqueid`),
KEY `mailbox_context` (`mailbox`,`context`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ;



Extended table structure - POSTGRESQL

CREATE TABLE voicemail_users
(
uniqueid serial NOT NULL,
customer_id character varying(11) NOT NULL DEFAULT 0,
context character varying(50) NOT NULL DEFAULT 'default',
mailbox character varying(11) NOT NULL DEFAULT 0,
"password" character varying(5) NOT NULL DEFAULT 0,
fullname character varying(150) NOT NULL DEFAULT '',
email character varying(50) NOT NULL DEFAULT '',
pager character varying(50) NOT NULL DEFAULT '',
tz character varying(10) NOT NULL DEFAULT 'central',
attach character varying(4) NOT NULL DEFAULT 'yes',
saycid character varying(4) NOT NULL DEFAULT 'yes',
dialout character varying(10) NOT NULL DEFAULT '',
callback character varying(10) NOT NULL DEFAULT '',
review character varying(4) NOT NULL DEFAULT 'no',
"operator" character varying(4) NOT NULL DEFAULT 'no',
envelope character varying(4) NOT NULL DEFAULT 'no',
sayduration character varying(4) NOT NULL DEFAULT 'no',
saydurationm smallint NOT NULL DEFAULT 1,
sendvoicemail character varying(4) NOT NULL DEFAULT 'no',
"delete" character varying(4) NOT NULL DEFAULT 'no',
nextaftercmd character varying(4) NOT NULL DEFAULT 'yes',
forcename character varying(4) NOT NULL DEFAULT 'no',
forcegreetings character varying(4) NOT NULL DEFAULT 'no',
hidefromdir character varying(4) NOT NULL DEFAULT 'yes',
stamp timestamp without time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "Primary Key" PRIMARY KEY (uniqueid)
) WITH OIDS;
CREATE UNIQUE INDEX mailbox_context ON voicemail_users (mailbox,context);


Basic table structure - MYSQL


CREATE TABLE `bit_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(10) NOT NULL default '0',
`fullname` varchar(50) NOT NULL default '',
`email` varchar(50) NOT NULL default '',
`pager` varchar(50) NOT NULL default '',
`stamp` timestamp(14) NOT NULL,
PRIMARY KEY (`uniqueid`),
KEY `mailbox_context` (`mailbox`,`context`)
) TYPE=MyISAM;


NOTE: Voicemail `options` such as "attach=yes|saycid=yes" are supported in ARA by creating separate columns in the database, one for each option that you require:

`attach` varchar(3) NOT NULL default 'no',
`saycid` varchar(3) NOT NULL default 'yes',
`hidefromdir` varchar(3) NOT NULL default 'no',


NOTE: The index created on the 2 columns `mailbox` and `context` is because RealTime does its SELECT query using those two columns every time.



Testing


Throw some data into the above table and have fun.

NOTE: 'show voicemail users' will tell you "There are no voicemail users currently defined". This is CORRECT behavior.

Cheers,
Matthew

NOTE: 'uniqueid' column MUST be 'uniqueid' NOT 'id', DO NOT CHANGE to 'id', updating voicemail passwords will not work if changed.

Hard lesson learned.
Hubguru, JR



I had some issues with passwords updating at one point, so remember to have uniqueid as stated by JR. However, I traced it down to a timestamp issue.
Below is my working and slightly optimized database structure:

CREATE TABLE IF NOT EXISTS `voicemail_users` (
`uniqueid` int(4) NOT NULL auto_increment,
`customer_id` varchar(10) collate utf8_bin default NULL,
`context` varchar(10) collate utf8_bin NOT NULL,
`mailbox` varchar(10) collate utf8_bin NOT NULL,
`password` int(4) NOT NULL,
`fullname` varchar(150) collate utf8_bin default NULL,
`email` varchar(50) collate utf8_bin default NULL,
`pager` varchar(50) collate utf8_bin default NULL,
`tz` varchar(10) collate utf8_bin default 'central',
`attach` enum('yes','no') collate utf8_bin NOT NULL default 'yes',
`saycid` enum('yes','no') collate utf8_bin NOT NULL default 'yes',
`dialout` varchar(10) collate utf8_bin default NULL,
`callback` varchar(10) collate utf8_bin default NULL,
`review` enum('yes','no') collate utf8_bin NOT NULL default 'no',
`operator` enum('yes','no') collate utf8_bin NOT NULL default 'no',
`envelope` enum('yes','no') collate utf8_bin NOT NULL default 'no',
`sayduration` enum('yes','no') collate utf8_bin NOT NULL default 'no',
`saydurationm` tinyint(4) NOT NULL default '1',
`sendvoicemail` enum('yes','no') collate utf8_bin NOT NULL default 'no',
`delete` enum('yes','no') collate utf8_bin NOT NULL default 'no',
`nextaftercmd` enum('yes','no') collate utf8_bin NOT NULL default 'yes',
`forcename` enum('yes','no') collate utf8_bin NOT NULL default 'no',
`forcegreetings` enum('yes','no') collate utf8_bin NOT NULL default 'no',
`hidefromdir` enum('yes','no') collate utf8_bin NOT NULL default 'yes',
`stamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
PRIMARY KEY (`uniqueid`),
KEY `mailbox_context` (`mailbox`,`context`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=1;

in extconfig.conf: voicemail => mysql,general,voicemail_users

Also, make sure the second field, general, matches whatever is in the [] area of res_mysql.conf... in mine, it's: [general]
- I have found that in 1.6.2.10, that the second field should NOT match what is in the [] of res_mysql.conf, but instead should match the name of the database you are referencing in
res_mysql.conf .. ie - if it is dbname=asterisk, the you want voicemail => mysql,asterisk, name_of_your_funky_voicemail_table

The saydurationm field is the minimum duration for it to announce the duration of the message.
tz is from the [zonemessages] context of voicemail.conf
On my box, when doing: 'voicemail show users for default', it queries the database and shows the users. Make sure the second entry in extconfig.conf matches for the [context] in res_mysql.
-- danielc[at]darkvoip[dot]net






See Also

Created by: utdrmac, Last modification: Sat 16 of Apr, 2011 (16:22 UTC) by rushowr
Please update this page with new information, just login and click on the "Edit" or "Discussion" tab. Get a free login here: Register Thanks! - Find us on Google+