嘿嘿!
全部博文(140)
分类: LINUX
2012-05-04 18:53:24
编译的asterisk 1.4 已工作了一年半载,因一特殊的需求,需将cdr写入到mssql2000,
默认的环境下,asterisk 1.4 已支持odbc,但因依赖包问题,编译时,没有让odbc模块生效,
现操作如下:
1、安装依赖包
yum install unixODBC unixODBC-devel libtool-ltdl libtool-ltdl-devel
2、安装freetds的mssql 驱动支持
我这里是使用freetds-0.64.tar.gz,并放在/usr/src目录下
tar zxvf freetds-0.64.tar.gz
./configure --prefix=/usr/local/freetds --with-tdsver=8.0
make
make install
3、配置环境
3.1 配置freetds,{具体可参考官网说明}
vi /usr/local/freetds/etc/freetds.conf
加入
[mssql2000]
host = 192.168.20.21
port = 1433
tds version = 8.0
说明:[]名字随意,不重复即可以,host为IP地址,port为端口
测试 /usr/local/freetds/bin/tsql -S mssql2000 -H 192.168.20.21 -p 1433 -U sa -P password
能连接成功,即证明freetds.conf配置成功
3.2 配置unixODBC ,{具体可参考官网说明}
vi /etc/odbcinst.ini
加入
[mssql2000]
Description = MS-SQLServer-2000
Driver = /usr/local/freetds/lib/libtdsodbc.so
Setup = /usr/local/freetds/lib/libtds.so
FileUsage = 1
vi /etc/odbc.ini
[cdrdb]
Driver = mssql2000
Server = 192.168.20.21
Database = asteriskcdrdb
Port = 1433
测试 isql -v cdrdb sa password
能连接成功,即证明unixODBC 配置正常
4、重新编译asterisk,生成cdr_odbc.so模块
make clean
./configure
make menuselect
检查odbc模块是否选上
make
make install
5、配置asterisk,让其连接mssql2000的asteriskcdrdb 表cdr
vi /etc/asterisk/cdr_odbc.conf
加入
[global]
dsn=cdrdb
username=sa
password=password
loguniqueid=yes
dispositionstring=yes
table=cdr ;"cdr" is default table name
usegmtime=no ; set to "yes" to log in GMT
重启asterisk
测试最终写入结果