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

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
удалить закрыть спам изменить тег редактировать

спросил 2013-10-30 05:56:15 +0400

thunderamur Gravatar thunderamur
405 61 8 27

3 Ответа

1

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

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

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

описание...

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

ответил 2013-12-11 23:24:04 +0400

boffart Gravatar boffart flag of Russian Federation
51 3 1 4
http://www.telefon1c.ru/

обновил 2013-12-11 23:26:58 +0400

0

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

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

ответил 2013-10-30 11:11:22 +0400

meral Gravatar meral flag of Ukraine
21228 23 18 169
http://pro-sip.net/

Comments

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

thunderamur ( 2013-10-30 13:03:24 +0400 )редактировать

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

boffart ( 2013-12-11 23:24:43 +0400 )редактировать
0

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

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

ответил 2013-11-29 14:14:31 +0400

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 ленту новостей

Статистика

Задан: 2013-10-30 05:56:15 +0400

Просмотрен: 1,040 раз

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

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