First time here? Check out the FAQ!

Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

CDR ODBC : Пользовательские поля не пишутся в таблицу!

0

Перешел на использование записи в 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

спросил Oct 30 '13

thunderamur Gravatar thunderamur
444 70 12 39

3 Ответа

1

используйте cdr_adaptive_odbc

модуль cdr_odbc НЕ пишет кастомные поля CDR

[PT1C_Global]
connection
=PT1C_asteriskcdrdb
table
=PT1C_cdr
alias recordingfile=>recordingfile
alias start=>call date

описание...

ссылка удалить спам редактировать

ответил Dec 11 '13

boffart Gravatar boffart flag of Russian Federation
61 3 2 5
http://www.telefon1c.ru/

обновил Dec 11 '13

0

перегрузить астриск надо.

ссылка удалить спам редактировать

ответил Oct 30 '13

meral Gravatar meral flag of Ukraine
23347 24 20 177
http://pro-sip.net/

Comments

перегружал... щас даже целиком сервер перезагрузил. Не фурычит.

thunderamur (Oct 30 '13)edit

сомнительное решение )

boffart (Dec 11 '13)edit
0

может попробовать использовать [columns] в cdrodbc.conf так же как в cdrmysql.conf

ссылка удалить спам редактировать

ответил Nov 29 '13

alexk787 Gravatar alexk787
1

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку

подписаться на rss ленту новостей

Статистика

Задан: Oct 30 '13

Просмотрен: 2,139 раз

Обновлен: Dec 11 '13

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.