همانطور که می دانید mssql مزایایی به مراتب بهتر از mysql دارد و استریسک از mysql و دیتابیس asteriskcdr استفاده می نماید. حال اگر بخواهیم این table را به صورت یکپارچه و جدا گانه در sqlserver داشته باشیم به صورت زیر عمل می کنیم.این کار در پروژه های بزرگ و همچنین آنالیز تماس ها می تواند بسیار مفید باشد.

1) ابتدا با دستور زیر پکیج ODBC را بر روی لینوکس نصب می کنیم.

yum install unixODBC* freetds*

2)در مسیر etc/odbc.ini

[asterisk-connector]
Description = Voip Today - Asterisk Connector
Driver = ms-sql
Port = 1433
server = 192.168.1.69
Database = voipdb
Table=cdr
tds_version = 7.0
language = us_english

3)در مسیرetc/odbcinst.ini



[ms-sql]
Description = TDS connection
Driver = /usr/lib64/libtdsodbc.so
Setup = /usr/lib64/libtdsS.so
UsageCount = 1
FileUsage = 1

4)در مسیر /etc/asterisk/cdr_adaptive_odbc.conf

[third]
connection=asteriskcdrdb
table=cdr

5)در مسیر etc/asterisk/cdr_odbc.conf

[global]
dsn=asterisk-connector
username=sa
password=123456
loguniqueid=yes

6) در مسیر etc/asterisk/res_odbc_custom.conf



[asteriskcdrdb]
enabled=>yes
dsn=>asterisk-connector
pooling=>no
limit=>1
pre-connect=>yes
username=>sa
password=>123456

7) در آخر دیتابیس زیر در sql ایجاد نمایید.

CREATE TABLE cdr (
[calldate] [datetime] NOT NULL ,
[clid] [varchar] (80) NULL ,
[src] [varchar] (80) NULL ,
[dst] [varchar] (80) NULL ,
[dcontext] [varchar] (80) NULL ,
[channel] [varchar] (80) NULL ,
[dstchannel] [varchar] (80) NULL ,
[lastapp] [varchar] (80) NULL ,
[lastdata] [varchar] (80) NULL ,
[duration] [int] NULL ,
[billsec] [int] NULL ,
[disposition] [varchar] (20) NULL ,
[amaflags] [varchar] (16) NULL ,
[accountcode] [varchar] (20) NULL ,
[uniqueid] [varchar] (150) NULL ,
[userfield] [varchar] (256) NULL,
[recordingfile] [varchar] (256) NULL,
[cnum] [varchar] (40) NULL,
[cnam] [varchar] (40) NULL,
[outbound_cnum] [varchar] (40) NULL,
[outbound_cnam] [varchar] (40) NULL,
[dst_cnam] [varchar] (40) NULL,
[did] [varchar] (50) NULL
)






موفق باشید :