Asterisk 11.19.0 На Астериск несколько фирм, каждая фирма со своей внутренней нумерацией и своими исходящими каналами. Решил не валить CDR в одну таблицу а разложить CDR каждой фирмы в свою таблицу. В filter в cdradaptiveodbc.conf есть директива filter поле => значение Она замечательно работает на всех полях кроме тех что задаю в ручную из диалплана Например filter src => номер и в данную таблицу валятся только те записи у которых номер звонящего совпадает с номером указанным в фильтре Решил сделать каким образом: или создать свое поле или использовать например userfield Задаю из диалплана Set(CDR(userfield)= 1) в соответствующем контексте, звоню, проверяю в нужной таблице mysql SELECT * FROM таблица; значение поля userfield встало в 1 Ну какбы думаю осталось немного добавить строчку filter userfield => 1 в соответствующую секцию cdradaptiveodbc.conf и будут в нужную табличку писаться только те записи где в диалплане сделано Set(CDR(userfield)= 1) Так вот нефига. Не пишется при установке фильтра ничего. Такое чувство что этот самый filter видит значение поля до установки в диалплане или не видит вовсе.
Кто нибудь сталкивался? Может есть еще какие механизмы фильтрации CDR без мудренных функций?
спросил 2015-09-09 07:47:24 +0400
Аноним
Возможно бага. Рекомендую создать репорт на https://issues.asterisk.org/jira/secure/Dashboard.jspa.
Также обратите внимание на описание в конфиге:
; Any filter specified MUST match exactly or the CDR will be discarded
Задан: 2015-09-09 07:47:24 +0400
Просмотрен: 368 раз
Обновлен: Sep 10 '15
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.
Я бы всё в MYSQL сваливал. А там уж как угодно отфильтровать можно.
amonra ( 2015-09-09 08:58:13 +0400 )редактировать