ВидеоКонф(ВКС)  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

CDR не пишется после hangup (до - нормально пишется)

Проблемы и их решения Asterisk как такового

Модераторы: april22, Zavr2008

Re: CDR не пишется после hangup (до - нормально пишется)

Сообщение Ferrum » 18 фев 2022, 17:55

Не красивое решение
Запись в mysql происходит до H exten
Записываем переменную ${CHANNEL(hangupsource)} в колонку sourcehg

Код: выделить все
exten => h,n,MYSQL(Connect connid mysq.local pbx **** cdr)
exten => h,n,MYSQL(Query resultid ${connid} SELECT id FROM cdr ORDER BY id DESC LIMIT 1)
exten => h,n,MYSQL(Fetch fetchid ${resultid} IDCDR)
exten => h,n,MYSQL(Query resultid ${connid} UPDATE cdr SET sourcehg = '${CHANNEL(hangupsource)}' WHERE id = ${IDCDR})
exten => h,n,MYSQL(Clear ${resultid})
exten => h,n,MYSQL(Disconnect ${connid})
Аватар пользователя
Ferrum
 
Сообщений: 333
Зарегистрирован: 25 ноя 2011, 15:16

Re: CDR не пишется после hangup (до - нормально пишется)

Сообщение Ferrum » 21 фев 2022, 14:52

Правка по способу записи в CDR
При ответе в Dial, запись в CDR происходит сразу после Hangup до h-exten, при отсутствии ответа после h-exten, так что получении информации по последней строке в БД не верно в моем случае (вам нужно подобрать под свою версию Астериск), получаем нужную нам строку по двум параметрам, время поступления вызова и dst

Код: выделить все
exten => _X.,n,SET(__Time=${STRFTIME(${EPOCH},,%Y%m%d%H%M%S)})
exten => _X.,n,SET(__FN=${CALLERID(dnid)})
exten => _X.,n,Dial(Local/${EXTEN}@

exten => h,n,Set(CDR(sourcehg=${CHANNEL(hangupsource)}) ; при отсутствии ответа пишем в CDR по классике
exten => h,n,MYSQL(Connect connid mysql.local pbx ******* cdr)
;exten => h,n,MYSQL(Query resultid ${connid} SELECT id FROM cdr ORDER BY id DESC LIMIT 1)
exten => h,n,MYSQL(Query resultid ${connid} SELECT id FROM cdr WHERE calldate = ${Time} AND dst LIKE ${FN})
exten => h,n,MYSQL(Fetch fetchid ${resultid} IDCDR)
exten => h,n,MYSQL(Query resultid ${connid} UPDATE cdr SET sourcehg = '${CHANNEL(hangupsource)}' WHERE id = ${IDCDR})
exten => h,n,MYSQL(Clear ${resultid})
exten => h,n,MYSQL(Disconnect ${connid})
Аватар пользователя
Ferrum
 
Сообщений: 333
Зарегистрирован: 25 ноя 2011, 15:16

Пред.

Вернуться в Конфигурация и настройка Asterisk

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13

© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH