Thanks for your help, don’t know if I should comment on github or here, so I start here:
You are right. ODBC config is working after install, but /etc/asterisk/res_odbc.conf does not include res_odbc_additional.conf(commented out) and uncommenting doesn’t solve the problem, what’s really strange, why does the include not work?
Steps:
Installed fresh 7.4b1, updated, installed nethserver-dc and FreePBX.
Created extension 100 with voicemailbox.
Connected with MicroSIP Sipphone as extension 100 and called 100 to go to voicemailbox.
Trying to save to voicemail shows that the voicemail app is not loaded:
[2017-10-23 12:39:49] WARNING[68135][C-00000000]: pbx.c:2864 pbx_extension_helper: No application 'VoiceMail' for extension (macro-vm, s-BUSY, 3)
After uncommenting noload = app_voicemail_odbcstorage.so in /etc/asterisk/modules.conf and restarting asterisk I get following error:
[2017-10-23 12:44:36] WARNING[68403]: app_voicemail_odbcstorage.c:5757 inboxcount2: Failed to obtain database object for 'asterisk'!
[2017-10-23 12:44:38] WARNING[68435][C-00000000]: app_voicemail_odbcstorage.c:4141 count_messages: Failed to obtain database object for 'asterisk'!
Then I had to copy the [asteriskcdrdb] entry from /etc/asterisk/res_odbc_additional.conf to /etc/asterisk/res_odbc.conf. Uncomment the include line in res_odbc.conf doesn’t work.
My /etc/asterisk/res_odbc.conf:
#include res_odbc_custom.conf
#include res_odbc_additional.conf
[asteriskcdrdb]
enabled=>yes
dsn=>MySQL-asteriskcdrdb
pre-connect=>yes
max_connections=>5
username=>freepbxuser
password=>09081e404001a4af1ed850b022b9c2b3
database=>asteriskcdrdb
Then I had to config freepbx. In Settings/Voicemail Admin Menu under Settings/ODBC Storage I entered asteriskcdrdb in ODBC Storage Name and voicemessages in ODBC Table Name. This sets odbcstorage and odbctable in /etc/asterisk/voicemail.conf.
Then I had to create the voicemessages table to make it finally work:
CREATE TABLE `asteriskcdrdb`.`voicemessages`(`msgnum`INT(11) NULL DEFAULT NULL ,`dir`VARCHAR(80) NOT NULL ,`context`VARCHAR(80) NULL DEFAULT NULL ,`macrocontext`VARCHAR(80) NULL DEFAULT NULL ,`callerid`VARCHAR(40) NULL DEFAULT NULL ,`origtime`VARCHAR(40) NULL DEFAULT NULL ,`duration`VARCHAR(20) NULL DEFAULT NULL ,`flag`VARCHAR(8) NULL DEFAULT NULL ,`mailboxuser`VARCHAR(80) NULL DEFAULT NULL ,`mailboxcontext`VARCHAR(80) NULL DEFAULT NULL ,`recording`LONGBLOB NULL DEFAULT NULL ,`msg_id` VARCHAR(40) NULL DEFAULT NULL ) ENGINE = InnoDB;