Asterisk(FreePBX). Как удалить старые записи разговоров.

FreePBX. Чистота-залог здоровья. Чистим CDR.

delete_cdr

В процессе эксплуатации сервера телефонии накапливаются файлы записей, хранить которые бесконечно не имеет смысла. В сегодняшней статье опишу способ удаления старых записей разговоров и очистки базы CDR.

Файлы записей звонков хранятся в директории /var/spool/asterisk/monitor/%год%/%месяц%/%день%, а данные Call Detail Records(CDR) в базе asteriskcdrdb.

Этот способ основан на скрипте, который удаляет файлы записей в формате .wav старше определенной даты, удаляет пустые папки, оптимизирует базу asteriskcdrdb и отправляет на почту письмо с отчетом о проделанной работе.

Сразу хочется поблагодарить автора статьи на Хабре, который и разместил скрипт, вошедший, с небольшими доработками, в эту статью.

Итак, к делу. Давайте, я сначала размещу сам скрипт, а потом немного расскажу о нюансах, с которыми столкнулся.

Скрипт для удаления старых записей

 В данном скрипте удаляются записи разговоров старше 153 дней и данные из таблиц asteriskcdrdb.cdr и asteriskcdrdb.cel старше 5 месяцев. Разместите его на сервере и создайте задачу в crontab на выполнение с нужной периодичностью.

Читайте также:  Freepbx. Уведомление о пропущенных звонках.

Теперь о нюансах.

У меня не получилось заставить работать скрипт с пустым паролем пользователя root для mysql, поэтому я использовал учетку пользователя freepbxuser, которая есть во FreePBX и имеет доступ к нужной нам базе asteriskcdrdb. Пароль от этой учетки можно посмотреть в файле /etc/asterisk/res_odbc_additional.conf

Если хочется использовать другого пользователя для доступа к БД, можно создать нового пользователя mysql и предоставить ему права на необходимые базы данных. Для этого короткое описание некоторых команд mysql:

Посмотреть имеющихся пользователей mysql можно командой:

(Перед этим не забываем подключиться к mysql введя: mysql -uroot -p)

Для создания пользователя:

Посмотреть права пользователя:

Предоставить определенные разрешения :

(Разрешения могут быть: CREATE, DROP, DELETE, INSERT, SELECT, UPDATE),

либо предоставить все права на базу:

Ну и, на всякий случай, отобрать права можно так:

а удалить пользователя так:

Ну, вот, наверное, и всё об очистке старых записей разговоров и CDR в FreePBX.

Поделиться ссылкой:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.