Обработка пользовательских полей в CDR через ODBC-Mysql
Добавлено: 22 янв 2014, 10:15
Всем привет!
Опять новая задача: возникла необходимость в создании и обработке дополнительных полей в CDR... Такое прокатывает, если астер с БД Mysql "общается" на прямую без драйвера ODBC: в файле cdr_mysql.conf создаем секцию [columns] и прописываем алиасы:
Но с ODBC такое не прокатывает (или я плохо искал как это сделать...) - нужные мне поля не заносятся в БД, хотя в диалплане значения присваиваются и астер "не ругается"...
Поигравшись с конфигами cdr_odbc.conf и cdr.conf я обратил внимание на cdr_adaptive_odbc.conf - он умеет работать с алиасами... Прописал параметры конекта к нужной мне табличке и алиасы:
Оказалось, что дата и время звонка не заносится в поле calldate, а остальные поля (и стандартные, и мной добавленные) обрабатываются... пришлось делать через за... подругому: в диалплане добавил строку всеравно не пишется... добавил в cdr_adaptive_odbc.conf алиас заработало...
Отсюда возникает вопрос: можно ли как-то это всё сделать по другому (особенно танцы с бубном вокруг даты звонка), более правильно?
Опять новая задача: возникла необходимость в создании и обработке дополнительных полей в CDR... Такое прокатывает, если астер с БД Mysql "общается" на прямую без драйвера ODBC: в файле cdr_mysql.conf создаем секцию [columns] и прописываем алиасы:
Код: Выделить всё
[columns]
alias calldate => calldate
alias serverid => serverid
alias calcount => calcount
Поигравшись с конфигами cdr_odbc.conf и cdr.conf я обратил внимание на cdr_adaptive_odbc.conf - он умеет работать с алиасами... Прописал параметры конекта к нужной мне табличке и алиасы:
Код: Выделить всё
[first]
connection=asteriskcdrdb
table=cdr_new
alias serverid => serverid
alias calcount => calcount
Код: Выделить всё
exten => _X.,n,Set(CDR(calldate)= ${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)})
Код: Выделить всё
alias calldate => calldate
Отсюда возникает вопрос: можно ли как-то это всё сделать по другому (особенно танцы с бубном вокруг даты звонка), более правильно?