перегружал... щас даже целиком сервер перезагрузил. Не фурычит.
thunderamur ( 2013-10-30 13:03:24 +0400 )редактироватьПерешел на использование записи в mysql через odbc (ранее пользовался cdr_mysql.conf), теперь пользовательские (те, что я задаю в диалплане extensions.conf - Set(CDR(...)=...) поля не пишутся в БД.
extensions.conf
[incoming-call-rabotaem]
exten=>s,1,Set(fname=${STRFTIME(${EPOCH},,%Y-%m-%d__%H-%M-%S)}__${CALLERID(number)}-${EXTEN})
same=>n,Set(dfname=${path2rec}/${fname})
same=>n,Set(monopt=nice -n 19)
same=>n,Set(AUDIOHOOK_INHERIT(MixMonitor)=yes)
same=>n,MixMonitor(${dfname}.wav)
same=>n,Dial(SIP/501&SIP/502,60,t)
same=>n,Hangup
exten=>h,1,Set(fname2=${fname}_${DIALEDPEERNUMBER})
same=>n,Set(dfname2=${path2rec}/${fname2})
same=>n,System(oggenc ${dfname}.wav -Q -q 0 -o ${dfname2}.ogg && rm -f ${dfname}.wav)
same=>n,Set(CDR(userfield)=in)
same=>n,Set(CDR(record)=${fname2}.ogg)
same=>n,Set(CDR(dialedpeernumber)=${DIALEDPEERNUMBER})
Видно, что последние 3 строчки - запись в CDR.
Консоль сообщает, что значения получены
-- Executing [h@incoming-call-rabotaem:4] Set("SIP/teledyne-00000003", "CDR(userfield)=in") in new stack
-- Executing [h@incoming-call-rabotaem:5] Set("SIP/teledyne-00000003", "CDR(record)=2013-10-30__11-41-11__4162773731-s_502.ogg") in new stack
-- Executing [h@incoming-call-rabotaem:6] Set("SIP/teledyne-00000003", "CDR(dialedpeernumber)=502") in new stack
При этом в БД пишется только userfield, поля record и dialedpeernumber пусты. В БД поля есть, тип выбран правильно, ранее с cdr_mysql в них писалась информация.
Как настраивал ODBC
/etc/odbc.ini
;
; DSN definitions
;
[asterisk-cdr]
Description = Asterisk CDR Backend ODBC
Driver = MySQL
Socket = /var/run/mysqld/mysqld.sock
Server = localhost
User = asterisk_user
Pass = password
Database = asterisk
Option = 3
/etc/asterisk/res_odbc.conf
;
; CDR ODBC Backend
; Environment variables
[ENV]
; Connections
[asterisk-cdr]
enabled => yes
dsn => asterisk-cdr
username => asterisk_user
password => password
pre-connect => yes
idlecheck => 600
/etc/asterisk/cdr_odbc.conf
;
; cdr_odbc.conf
;
[global]
dsn=asterisk-cdr
loguniqueid=yes
dispositionstring=yes
table=cdr
usegmtime=no
hrtime=yes
используйте cdr_adaptive_odbc
модуль cdr_odbc НЕ пишет кастомные поля CDR
[PT1C_Global]
connection=PT1C_asteriskcdrdb
table=PT1C_cdr
alias recordingfile=>recordingfile
alias start=>call date
перегрузить астриск надо.
перегружал... щас даже целиком сервер перезагрузил. Не фурычит.
thunderamur ( 2013-10-30 13:03:24 +0400 )редактироватьможет попробовать использовать [columns] в cdrodbc.conf так же как в cdrmysql.conf
Задан: 2013-10-30 05:56:15 +0400
Просмотрен: 2,130 раз
Обновлен: Dec 11 '13
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.