592 просмотров
от (1.5 тыс. баллов) в категории Тонкая настройка
Перестали записываться разговоры со вчерашнего дня, в веб-интерфейсе пусто, в 1с история вызовов загружается без записей разговоров, на диске есть свободное место, подскажите где причины искать? Версия АТС 2020.1.124

1 Ответ

от (122 тыс. баллов)
выбран от
 
Лучший ответ

Попробуйте следующее:

  1. Выполните резервное копирование истории звонков
  2. Подключитесь по ssh к АТС
  3. Выполните команду sqlite3 /storage/usbdisk1/mikopbx/astlogs/asterisk/cdr.db 'delete from cdr';
от (300 баллов)
Таже сама ошибка. Вышеперечисленные советы результат не принесли.

При создании бекапа истории звоноков и последующем его восстановлении ошибка "не удалось загрузить файл бекапа"

Что делать в этом случае?
от (1.5 тыс. баллов)
Спасибо, помогло. Подскажите почему так произошло и как этого избежать в будущем?
от (122 тыс. баллов)
Природа проблемы до конца не ясна. Предположительно ошибка связана с использованием триггеров в sqlite3.

В новой версии АТС 2020.2.XXX мы отказались от этого механизма.

Ошибка более не воспроизводится.

Основная рекомендация, с появлением нового релиза обновиться на него.
от (300 баллов)
Так может проверить каждое звено которое отвечает за отображение записей в базу.

У вас есть инструкция какие проверить логи, статусы соотв служб, проверить права на запись ?
от (122 тыс. баллов)

Можно проверить worker Ami 

ps | grep Ami

Проверить запущен ли worker Call Event 

ps | grep Call

Проверить запущен ли worker CDR

ps | grep Cdr

См. в логи php, есть ли ошибки. 
/var/log/php_error.log

от (300 баллов)

сервисы запущены
7836 root       0:00 {php} worker_cdr_complete
5932 root       0:00 php -f /etc/inc/workers/worker_ami_listener.php start
6049 root       0:00 php -f /etc/inc/workers/worker_call_events.php

в логе что-то там про guzzle 
для проверки систему перезапустил, тестовый звонок в истории звонков не отобразился.
Файл записи в usbdisk1/mikopbx/voicemailarchive/monitor присутствует.
 доп вопрос как настроено затирание записей звонков - как только заполнится место затирается самая первая запись или както по другому?

от (300 баллов)
Базу cdr проверил на целостность
PRAGMA integrity_check;
ошибок нет
от (122 тыс. баллов)

если запись разговора есть,  то воркеры

5932 root       0:00 php -f /etc/inc/workers/worker_ami_listener.php start
6049 root       0:00 php -f /etc/inc/workers/worker_call_events.php

работают нормально. 

в логе что-то там про guzzle 

приложите логи. пример ошибки

как настроено затирание записей звонков - 

Удаляются старые записи. 

Проблема может быть на уровне базы данных.Но тут не представляю как отлаживать. Триггеры sqlite  в этом плане работают не прозрачно. 

Можно еще попробовать выполнить vacuum запрос к базе данных. 

от (300 баллов)

Воркеры запущены

лог доступен по ссылке на слове "лог"

от (122 тыс. баллов)

 Couldn't resolve host 'update.askozia.ru'

Не настроен DNS или нет интернета. Ошибка была 22ого числа, к текущей ситуации отношения не имеет. 

Для верности ребутните АТС, убедитесь, что этой ошибки нет в свежем логе. 

от (300 баллов)
где на сервере хранится кеш сайта?

после удаления всех записей в базе, и тестового звонка, запись в базе появилась но на странице истории звонков за текущий день пусто, отображаются прошлые звонки. локальный кеш очищен
от (122 тыс. баллов)

Кэш страниц:

rm -rf /var/cache/www/admin-cabinet/cache/css/*; rm -rf /var/cache/www/admin-cabinetcache/volt/*; rm -rf /var/cache/www/admin-cabinet/cache/js/*; 

Cессии php:

rm /var/lib/php/session/*;

от (300 баллов)

не помогло, в базе 1 запись, на сайте другая

как происходит импорт данных cdr.db в админку? чтоб это звено проверить, потому как явно в этом дело, кеш очишен и там и там в базе cdr запись одна, на сайте выводятся прежние записи

от (122 тыс. баллов)

Есть две таблицы в базе данных

  • cdr - временная
  • cdr_general - итоговая, с готовыми. обработанными данными

"worker_ami_listener" ловит AMI events и передает их в очередь на обработку

"worker_call_events" получает задачи из очереди и пишет в cdr сырые данные.

Временные данные обрабатываются скриптом "worker_cdr_complete". Он рассчитывает длительность звонка, проверяет наличие записи разговора и устанавливает для записи флаг "work_completed" = 1

После записи этого поля срабатывает триггер и удаляет строку из cdr и добавляет это строку в cdr_general

от (300 баллов)

в каталоге /storage/usbdisk1/mikopbx/astlogs/asterisk  
arhive_start_all_log.zip
cdr.db
cdr.db-shm 
cdr.db-wal 
events_log.db 
query-debug-cdr.log
базы cdr_general нет ни в одном каталоге

в образ никаких изменений не вносилось

от (300 баллов)

 скрипта worker_cdr_complete тоже нет

~ # find / -iname *worker_*

/var/run/worker_cdr_complete.pid
/etc/inc/cron/worker_cdr.php
/etc/inc/cron/worker_safe_scripts.php
/etc/inc/workers/worker_ami_listener.php
/etc/inc/workers/worker_api_commands.php
/etc/inc/workers/worker_backup.php
/etc/inc/workers/worker_call_events.php
/etc/inc/workers/worker_download.php
/etc/inc/workers/worker_lic.php
/etc/inc/workers/worker_models_events.php
/etc/inc/workers/worker_recover.php
/etc/inc/workers/worker_remove_old_records.php
/etc/inc/workers/worker_udhcpc_configure.php
/etc/rc/worker_reload
для проверки установлю на виртуалке

от (122 тыс. баллов)

базы cdr_general нет ни в одном каталоге

Я писал выше про таблицу, а не про базу данных. База данных одна - это файл "cdr.db", в нем две таблицы. 

скрипта worker_cdr_complete тоже нет

Он именуется иначе:

"/etc/inc/cron/worker_cdr.php" при начале работы он меняем имя своего процесса. 

от (300 баллов)
по итогу, очистка таблицы cdr_general помогла, прошлые данные очистились.

проблема отображения поступившего звонка осталась, в таблицу cdr запись попадает , в таблицу cdr_general нет.

сервисы отвечающие за это взаимодействия запущены
7836 root       0:00 {php} worker_cdr_complete
5932 root       0:00 php -f /etc/inc/workers/worker_ami_listener.php start
6049 root       0:00 php -f /etc/inc/workers/worker_call_events.php
перезагрузка не помогает.
остается вариант переустановить образ и настроить с нуля, полагаю это будет проще и быстрее чем копаться в логах и выяснять причину.
от (122 тыс. баллов)
на этой неделе скорее всего выйдет новая версия MIKOPBX.

на ней описанная проблема более не воспроизводится.
от (300 баллов)

Как дополнение, поверьте чтоб были выставлены соответствующие права доступа на файл базы данных:

find . -type f -name '*.db' -exec chmod 644 {} \+ -exec chown www:www {} \+

На этом сайте можно бесплатно задать вопрос разработчикам MikoPBX и другим членам сообщества. Время ответа не регламентированно, но мы стараемся несколько раз в день заглядывать сюда. Для срочного решения проблем обращайтесь на платную линию поддержки

Популярные теги

askozia входящие-вызовы настройка исходящие маршрутизация провайдер запись-разговоров входящие ivr исходящие-звонки обновление ошибка очередь провайдеры битрикс24 очередь-вызовов переадресация запись установка маршрут история-звонков mikopbx транк панель-телефонии-1с перевод-вызова перевод askozia7 askozia6 битрикс callerid интеграция голосовая-почта логи перехват-вызова ростелеком нерабочее-время факс модуль nat docker запись-разговора веб-интерфейс bitrix24 goip настройка-провайдер история диалплан почта журнал-звонков релиз gsm вызовы звонок внешние-номера web-интерфейс zabbix маршруты cdr sip панель pjsip переадресация-мобильный voicemail ascozia телефонная-книга аон мобильный звонков лицензирование вызовов редактор номер asterisk лицензия ami регистрация оповещения провайдеров время голосовая fax trunk разговоров группы-пользователей #mikopbx пропущенные-звонки донабор beeline monitoring тишина smtp cisco мобильные мультифон мегафон шлюз не-работает электронная-почта не-слышно-звук

2.8 тыс. вопросов

2.4 тыс. ответов

6.7 тыс. комментариев

465 тыс. пользователей

...