Asterisk realtime sip to oracle 10 via unixodbc?

system version:
Red Hat Enterprise Linux AS release 4 (Nahant Update 5)

asterisk version:
Asterisk 1.6.1.4 built by root @ localhost.localdomain on a i686 running Linux on 2009-09-25 12:46:01 UTC

UnixODBC:
unixODBC 2.2.14

Oracle instantclient version:
11.1.0.7.0

Oracle database version:
10.2.0.4.0

SIP_BUDDIES:

create table SIP_BUDDIES
(
ID NUMBER(11) not null,
NAME VARCHAR2(80) not null,
HOST VARCHAR2(31) not null,
NAT VARCHAR2(5) default ‘no’ not null,
TYPE VARCHAR2(10) default ‘friend’ not null,
ACCOUNTCODE VARCHAR2(20),
AMAFLAGS VARCHAR2(13),
CALLGROUP VARCHAR2(10),
CALLERID VARCHAR2(80),
CANCALLFORWARD CHAR(3) default ‘yes’ not null,
CANREINVITE CHAR(3) default ‘yes’ not null,
CONTEXT VARCHAR2(80),
DEFAULTIP VARCHAR2(15),
DTMFMODE VARCHAR2(7),
FROMUSER VARCHAR2(80),
FROMDOMAIN VARCHAR2(80),
INSECURE VARCHAR2(4),
LANGUAGE CHAR(2),
MAILBOX VARCHAR2(50),
MD5SECRET VARCHAR2(80),
DENY VARCHAR2(95),
PERMIT VARCHAR2(95),
MASK VARCHAR2(95),
MUSICONHOLD VARCHAR2(100),
PICKUPGROUP VARCHAR2(10),
QUALIFY CHAR(3),
REGEXTEN VARCHAR2(80),
RESTRICTCID CHAR(3),
RTPTIMEOUT CHAR(3),
RTPHOLDTIMEOUT CHAR(3),
SECRET VARCHAR2(80),
SETVAR VARCHAR2(100),
DISALLOW VARCHAR2(100) default ‘all’,
ALLOW VARCHAR2(100) default ‘g729;ilbc;gsm;ulaw;alaw’ not null,
FULLCONTACT VARCHAR2(80) default ’ ',
IPADDR VARCHAR2(15) default ’ ',
PORT NUMBER(5) default ‘0’,
REGSERVER VARCHAR2(100),
REGSECONDS NUMBER(11) default ‘0’ not null,
LASTMS NUMBER(11) default ‘0’ not null,
USERNAME VARCHAR2(80) default ’ ',
DEFAULTUSER VARCHAR2(80) default ’ ',
SUBSCRIBECONTEXT VARCHAR2(80),
CALLLIMIT NUMBER(5),
USERAGENT VARCHAR2(100)
)

isql execute result:

[root@localhost tmp]# isql orcl -v
±--------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
±--------------------------------------+
SQL>

DSN connect is ok

but
Asterisk error log:

[Sep 25 16:00:24] WARNING[23869]: res_config_odbc.c:886 require_odbc: Realtime table sip_buddies@asterisk requires column ‘name’, but that column does not exist!
[Sep 25 16:00:24] WARNING[23869]: res_config_odbc.c:886 require_odbc: Realtime table sip_buddies@asterisk requires column ‘ipaddr’, but that column does not exist!
[Sep 25 16:00:24] WARNING[23869]: res_config_odbc.c:886 require_odbc: Realtime table sip_buddies@asterisk requires column ‘port’, but that column does not exist!
[Sep 25 16:00:24] WARNING[23869]: res_config_odbc.c:886 require_odbc: Realtime table sip_buddies@asterisk requires column ‘regseconds’, but that column does not exist!
[Sep 25 16:00:24] WARNING[23869]: res_config_odbc.c:886 require_odbc: Realtime table sip_buddies@asterisk requires column ‘defaultuser’, but that column does not exist!
[Sep 25 16:00:24] WARNING[23869]: res_config_odbc.c:886 require_odbc: Realtime table sip_buddies@asterisk requires column ‘fullcontact’, but that column does not exist!
[Sep 25 16:00:24] WARNING[23869]: res_config_odbc.c:886 require_odbc: Realtime table sip_buddies@asterisk requires column ‘regserver’, but that column does not exist!
[Sep 25 16:00:24] WARNING[23869]: res_config_odbc.c:886 require_odbc: Realtime table sip_buddies@asterisk requires column ‘useragent’, but that column does not exist!
[Sep 25 16:00:24] WARNING[23869]: res_config_odbc.c:886 require_odbc: Realtime table sip_buddies@asterisk requires column ‘lastms’, but that column does not exist!

extconfig.conf :
sipusers => odbc,asterisk,sip_buddies
sippeers => odbc,asterisk,sip_buddies

res_odbc.conf:
[asterisk]
enabled => yes
dsn => orcl
;username => test2
;password => srttest2
pre-connect => yes
;
; What should we execute to ensure that our connection is still alive? The
; statement should return a non-zero value in the first field of its first
; record. The default is “select 1”.
;sanitysql => select 1

because nat is “not” to cause x-lite can’t connect asterisk,set nat ‘yes’ x-lite can connect asterisk.