Maybe somebody can help me here. I've finally got another server together, so I can test and upgrade a couple of my older 1.4.x installations. I figured that while I'm at it, I'll give func_odbc a try (have been using the mysql addon), knowing full well that when I finally move over to 1.8.x, it's what I'm planning on using. I've installed all the requisites listed for ODBC, compiled and install the current 1.4.41.1 (Was current a couple days ago) and set out Googling how-tos and digging into voip-info.org After an hour, I had what seemed to be a good test case, so did a copy of my dialplan and started making changes. On querying my database, everything is working as expected, but for the life of me, I cannot get entries in my database to update the master mysql server I've seen lots of conflicting data on how it should be written out in the func_odbc.conf and a lot of the info is for 1.6. My setup: 1 master mysql server 1 test slave The test Asterisk system reads from the local mysql database and writes back to the master. My /etc/odbc.ini [MySQL-Conferencing] Description = Conferencing MySQL ODBC Driver = MySQL Socket = /var/lib/mysql/mysql.sock Server = 127.0.0.1 User = username Password = password Database = Conferencing Option = 3 [MySQL-Corporate] Description = Conferencing MySQL ODBC Driver = MySQL Server = 192.168.104.142 User = username Password = password Database = Conferencing Option = 3 My /etc/asterisk/res_odbc.conf [MySQL-Conferencing] enabled => yes dsn => MySQL-Conferencing username => username password => password preconnect => yes [MySQL-Corporate] enabled => yes dsn => MySQL-Corporate username => username password => password preconnect => yes My /etc/asterisk/func_odbc.conf [CONFERENCE] dsn=MySQL-Conferencing read=SELECT room, password, admin, scheduled, owner, comments FROM ${ARG1} WHERE ${ARG2}=${SQL_ESC(${ARG3})} [CONFERENCE_WRITE] dsn=MySQL-Corporate write=UPDATE Corporate SET room=${VAL1}, password=${VAL2}, admin=${VAL3}, scheduled=${VAL4}, owner=${VAL5}, comments=${VAL6} WHERE admin=${VAL3} The reading from ODBC works fine: exten => s-verify,n,Set(ARRAY(conference.room,conference.password,conference.admin,conference.scheduled,conference.owner,conference.comments)=${ODBC_CONFERENCE_WRITE(Corporate,admin,${get-admin-password})}) The Writing does not work. exten => s-setup,n,Set(ODBC_CONFERENCE_WRITE(room=${conference.room}\,password=${put-new-password}\,admin=${conference.admin}\,scheduled=${TODAY}\,owner=${conference.owner}\,comments=${conference.comments}) Any suggestions would be appreciated, Doug -- Ben Franklin quote: "Those who would give up Essential Liberty to purchase a little Temporary Safety, deserve neither Liberty nor Safety."
Doug Lytle
2011-Jun-30 00:56 UTC
[asterisk-users] [SOLVED] Re: Asterisk 1.4 func_odbc frustrations
Doug Lytle wrote:> exten => > s-setup,n,Set(ODBC_CONFERENCE_WRITE(room=${conference.room}\,password=${put-new-password}\,admin=${conference.admin}\,scheduled=${TODAY}\,owner=${conference.owner}\,comments=${conference.comments})exten => s-setup,n,Set(ODBC_CONFERENCE_WRITE()=${conference.room}\,${put-new-password}\,${conference.admin}\,${TODAY}\,${conference.owner}\,${conference.comments}) Just to get this in the archives, the above modified command works for me. Doug