Страница 1 из 1

Перестал работать CDR в Asterisk

Добавлено: 15 дек 2015, 09:10
dit.promoil
Коллеги, странная ситуация, ни с того, ни с сего, Asterisk просто перестал писать в базу все звонки.
в логах все время одна и та же ошибка

Код: Выделить всё

[Dec 14 14:31:27] WARNING[3007][C-000013e3] res_odbc.c: SQL Execute error! Verifying connection to asterisk-cdr [asterisk-cdr]...
[Dec 14 14:31:27] ERROR[3007][C-000013e3] cdr_odbc.c: CDR direct execute failed
Подключение к базе идет через драйвер ODBC, сначала грешил на него, но положительный вывод команды

Код: Выделить всё

echo "select * from cdr LIMIT 30" | isql -v asterisk-cdr
отбросил эту мысль, т.к. подключение происходит.
Давай смотреть как там у меня модуль ODBC в самом астериске

Код: Выделить всё

localhost*CLI> odbc show

ODBC DSN Settings
-----------------

  Name:   asterisk-cdr
  DSN:    asterisk-cdr
    Last connection attempt: 1970-01-01 05:00:00
  Pooled: No
  Connected: Yes
С ним тоже все в порядке, подключение к базе есть.
Посмотрел что с самим CDR

Код: Выделить всё

localhost*CLI> cdr show status

Call Detail Record (CDR) settings
----------------------------------
  Logging:                    Enabled
  Mode:                       Simple
  Log unanswered calls:       No
  Log congestion:             No

* Registered Backends
  -------------------
    csv
    Adaptive ODBC
    ODBC
    cdr-custom
как видно - тоже все в порядке
И что за дела такие - вообще понять не могу, с БД все нормально, доступ у пользователя полный на таблицу, с которой идет работа.

Единственное, что может быть причиной - это то, что были удалены ненужные поля в таблице cdr, которых там и не должно было быть. Но я не думаю что это как то связано.

Re: Перестал работать CDR в Asterisk

Добавлено: 15 дек 2015, 10:18
awsswa
когда вы добавляете кастомные поля в CDR вы их обязаны обьявить в настройках cdr
уберите эти настройки - или поставьте поля обратно

Re: Перестал работать CDR в Asterisk

Добавлено: 15 дек 2015, 10:46
dit.promoil
В cdr_odbc не нашел строчек типа alias realdst => realdst

Решил записать данные в cdr через простой запрос

Код: Выделить всё

INSERT INTO `cdr` (`calldate`,`clid`,`src`,`dst`,`dcontext`,`channel`,`dstchannel`,`lastapp`,`lastdata`,`duration`,`billsec`,`disposition`,`amaflags`,
`accountcode`,`uniqueid`,`peeraccount`,`linkedid`,`sequence`,`userfield`)
VALUES ('2015-12-14 15:26:00','<1021>','1021','92864955','from-office',	'SIP/1021-00000f23','SIP/atel-00000f24','Dial','SIP/atel/92864955,60,tT',
'3','0','NO ANSWER','3',	'','1450081560.3903','','','0','promoil_out_perm')";
Запрос выдал ошибку Unknown column 'realdst' in 'NEW'

Погуглил, как оказалось, такая ошибка выпадает при работе триггеров. Проверил - к таблице был подцеплен триггер, как раз к тому полю, которое было удалено.
Поставил поле обратно - все снова заработало.

Удалил триггер, удалил снова поле - полет нормальный.

Re: Перестал работать CDR в Asterisk

Добавлено: 15 дек 2015, 11:03
awsswa
Посмотрел поля .... и догадался что за контора ...

PS меня туда на собеседование не взяли ... сказали уровень ваших знаний полное г*

Re: Перестал работать CDR в Asterisk

Добавлено: 15 дек 2015, 12:15
dit.promoil
Ну что я могу сказать, быть может по каким то вопросам и не подошли, зато сейчас в астериске неплохо должны разбираться.

Re: Перестал работать CDR в Asterisk

Добавлено: 15 дек 2015, 13:40
Glukinho
Надо было через постель устраиваться)

Re: Перестал работать CDR в Asterisk

Добавлено: 15 дек 2015, 13:47
awsswa
жаль тут не филиал лепрозория а то я бы рассказал пошлый анекдот :)