среда, 23 декабря 2015 г.

Автоматическое удаление старых записей разговоров в Elastix по расписанию. Правильный способ.

Этот способ полностью автоматизирует удаление старых записей разговоров и корректно вносит изменения базу данных так, что Elastix видит, что файл с записью был удалён.
Elastix хранит все записи разговоров в базе данных asteriskcdrdb в таблице cdr. В этой же таблице в поле userfield есть и ссылка на аудиозапись. Эту ссылку нам и нужно поменять на значение audio:deleted
Для решения этой задачи напишем небольшой php скрипт который удалит файлы по требуемому условию давности и удалит ссылки на них в таблице БД.

понедельник, 21 декабря 2015 г.

Массовое удаление записей разговоров в Elastix

К сожалению, разработчики Elastix не предусмотрели функционал автоматического удаления записей разговоров по прошествии определённого времени. Ручной способ удаления записей тоже реализован далеко от идеала: нужно зайти во вкладку PBX -> Monitoring, там вручную отметить каждую запись и нажать кнопку Delete. А что если записей сотни или тысячи? Кликать по каждой займёт очень много времени.
Погуглив, нашёл пару способов решения этой проблемы. Это не совсем красивые способы решения задачи, но они есть и ими пользуются.
На мой взгляд, мой способ красивее. Он описан в следующем посте.
Если же есть интерес к первым двум - они описаны далее.