<p>Hi</p>
<p>I was trying to have realtime voicemail working with ODBC Driver.<br>Everything works fine with MySQL Realtime access, BUT as I want to implement ODBC Storage as well, it seems that everything should go through ODBC ( what I read on voip-info wiki page )
<br>But I do not manage to make it work with ODBC.<br>Outside Asterisk, ODBC works fine, I can access my databases &amp; tables !</p>
<p>Asterisk fails to start if I use &quot;pre-connect = yes&quot; in res_odbc.conf ( See errors below )<br>If I do not use it, then, I get another error message : &quot;res_config_odbc.c: SQL Alloc Handle failed!&quot; when I try to access the voicemail.
</p>
<p>Any ideas would be more than welcome !</p>
<p>Thanks !</p>
<p><strong>Here is my config</strong></p>
<p>/etc/odbcinst.ini<br>[MySQL]<br>Description&nbsp;&nbsp;&nbsp;&nbsp; = ODBC for MySQL<br>Driver&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = /usr/lib/libmyodbc.so<br>Setup&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = /usr/lib/libodbcmyS.so<br>FileUsage&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 1</p>
<p>/etc/odbc.ini<br>[MySQLast]<br>Description&nbsp;&nbsp;&nbsp;&nbsp; = MySQL ODBC Driver Testing<br>Driver&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = MySQL<br>#Socket&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = /var/run/mysqld/mysqld.sock<br>Trace&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = Yes<br>TraceFile&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = odbc_mysql.log<br>Server&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = localhost
<br>User&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = asteriskuser<br>Password&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = amp109<br>Database&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = asteriskrealtime<br>#Option&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 3<br>Port&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 3306</p>
<p><br>isql -v MySQLast and then &quot;help&quot; shows me my Tables correctly,<br>SELECT queries work perfectly</p>
<p>/etc/asterisk/res_odbc.conf<br>[asterisk]<br>enabled = yes<br>dsn = MySQLast<br>username = asteriskuser<br>password = amp109<br>;pre-connect = yes</p>
<p><br>/etc/asterisk/extconfig.conf<br>[settings]<br>voicemail =&gt; odbc,asterisk,voicemail_users</p>
<p><br>Modules in Asterisk :<br>asterisk*CLI&gt; show modules like odbc<br>Module&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Description&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Use Count<br>res_config_odbc.so&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ODBC Configuration&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1
<br>res_odbc.so&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ODBC Resource&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br>cdr_odbc.so&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ODBC CDR Backend&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br>3 modules loaded</p>
<p><br><strong>Error Messages:</strong></p>
<p><em><u>if &quot;pre-connect = yes&quot; is used in res_odbc.conf</u></em><br>Oct 29 16:23:21 VERBOSE[15016] logger.c: MySQL RealTime driver loaded.<br>Oct 29 16:23:21 VERBOSE[15016] logger.c:&nbsp; [res_adsi.so]Oct 29 16:23:21 VERBOSE[15016] 
logger.c:&nbsp; [res_adsi.so] =&gt; (ADSI Resource)<br>Oct 29 16:23:21 VERBOSE[15016] logger.c:&nbsp; [res_odbc.so]Oct 29 16:23:21 VERBOSE[15016] logger.c:&nbsp; [res_odbc.so] =&gt; (ODBC Resource)<br>Oct 29 16:23:21 VERBOSE[15016] logger.c
:&nbsp;&nbsp; == Parsing '/etc/asterisk/res_odbc.conf': Oct 29 16:23:21 VERBOSE[15016] logger.c:&nbsp;&nbsp; == Parsing '/etc/asterisk/res_odbc.conf': Found<br>Oct 29 16:23:21 NOTICE[15016] res_odbc.c: registered database handle 'asterisk' dsn-&gt;[MySQLast]
<br>Oct 29 16:23:21 NOTICE[15016] res_odbc.c: Connecting asterisk</p>
<p><u><em>And this is what I get on the standard error output:</em></u><br>*** glibc detected *** malloc(): memory corruption: 0x09f4daf0 ***<br>/usr/sbin/safe_asterisk: line 50: 14920 Aborted&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (core dumped) ${ASTSBINDIR}/asterisk ${CLIARGS} ${ASTARGS} &gt;&amp;/dev/${TTY} &lt;/dev/${TTY}
<br>Asterisk ended with exit status 134<br>Asterisk exited on signal 6.<br>Automatically restarting Asterisk.<br>*** glibc detected *** malloc(): memory corruption: 0x0a023af0 ***<br>/usr/sbin/safe_asterisk: line 50: 15016 Aborted&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (core dumped) ${ASTSBINDIR}/asterisk ${CLIARGS} ${ASTARGS} &gt;&amp;/dev/${TTY} &lt;/dev/${TTY}
<br>Asterisk ended with exit status 134<br>Asterisk exited on signal 6.<br>Automatically restarting Asterisk.</p>
<p><br><u><em>If no pre-connect, then I can start asterisk, but I get this error when I try to access VM:</em></u><br>Oct 29 16:24:43 VERBOSE[15262] logger.c:&nbsp;&nbsp;&nbsp;&nbsp; -- Executing VoiceMail(&quot;IAX2/telegrupp-4&quot;, &quot;
<a href="mailto:200@default">200@default</a>|&quot;) in new stack<br>Oct 29 16:24:43 DEBUG[15178] channel.c: Avoiding initial deadlock for 'IAX2/telegrupp-4'<br>Oct 29 16:24:43 DEBUG[15178] channel.c: Avoiding initial deadlock for 'IAX2/telegrupp-4'
<br>Oct 29 16:24:43 DEBUG[15178] channel.c: Avoiding initial deadlock for 'IAX2/telegrupp-4'<br>Oct 29 16:24:43 WARNING[15262] res_config_odbc.c: SQL Alloc Handle failed!<br>Oct 29 16:24:43 WARNING[15262] app_voicemail.c: No entry in voicemail config file for '200'
<br>Oct 29 16:24:43 VERBOSE[15262] logger.c:&nbsp;&nbsp;&nbsp;&nbsp; -- Executing Goto(&quot;IAX2/telegrupp-4&quot;, &quot;exit-FAILED|1&quot;) in new stack<br>Oct 29 16:24:43 VERBOSE[15262] logger.c:&nbsp;&nbsp;&nbsp;&nbsp; -- Goto (macro-vm,exit-FAILED,1)<br>
Oct 29 16:24:43 VERBOSE[15262] logger.c:&nbsp;&nbsp;&nbsp;&nbsp; -- Executing Playback(&quot;IAX2/telegrupp-4&quot;, &quot;im-sorry&amp;an-error-has-occured&quot;) in<br></p>