Запись asterisk CDR в БД MS SQL с последующей обработкой в 1С
Если Вы хотите сохранять asterisk CDR в базу данных Microsoft SQL с целью последующей обработки в 1С, то до начала настройки прочтите эту статью.
Статья, позволяющая сохранять CDR в базу Microsoft SQL совершенно правильная, и написана верно.
Однако, в процессе последующей эксплуатации выяснилось, что у Microsoft SQL некоторые ключевые слова являются зарезервированными, и (к примеру) поле под названием "end" не может быть использовано в 1С с такой же легкостью, как (например) поле billsec.
Поэтому необходимо модифицировать структуру базы данных Microsoft SQL для записи asterisk CDR. Самый простой вариант не требует внесения каких-либо изменений со стороны Asterisk, FreeTDS, ODBC, а требует только изменения самой базы данных. Достаточно просто создать несколько вычисляемых полей, при этом собственно никаких вычислений производиться не будет, просто новые поля будут равны уже имеющимся.
Если Вы еще не создали базу данных в Microsoft SQL, то для ее создания используйте следующий SQL запрос:
Если база данных MS SQL уже создана, то используйте сделующую команду SQL для ее модификации:
В результате Вы получите таблицу с несколькими вычисляемыми полями. Какие поля использовать в 1С? Для этого воспользуйтесь таблицей:
Название поля в базе данных |
Название поля для использования в 1С |
calldate |
(не нужно, если БД не mysql) |
clid |
clid |
src |
call_from |
dst |
call_to |
dcontext |
dcontext |
channel |
channel |
dstchannel |
dstchannel |
lastapp |
lastapp |
lastdata |
lastdata |
duration |
duration |
billsec |
billsec |
start |
call_start |
answer |
call_answer |
end |
call_end |
disposition |
call_status |
amaflags |
call_type |
accountcode |
accountcode |
uniqueid |
uniqueid |
userfield |
userfield |
Теперь Вы можете переходить к статье Asterisk CDR - запись в базу данных Microsoft SQL server через cdr_tds.
|