Напишите следующий текст скрипта и сохраните:

#!/bin/bash

flog=/var/log/asterisk/cleanup-asterisk-log.txt

dtFormat="+%Y-%m-%d %H:%M:%S"

log() {

echo $(date "${dtFormat}")" $1" >>$flog

}

removeOld() {

folder=$1

days=$2

patt=$3

lst=/tmp/cleanup-list.txt

find – P "${folder}" – maxdepth 4 – mtime +${days} – iname "${patt}" – delete – print >${lst}

cnt=$(grep – c "" ${lst})

log "OK: ${cnt} files like '${patt}' removed from '${folder}'"

}

log «Cleanup Asterisk files started»

removeOld '/var/spool/asterisk/monitor' "120" '*.wav'

removeOld '/var/www/backup' "60" 'elastixbackup-*-ab.tar'

removeOld '/var/www/faxes' "120" '*.pdf'

removeOld '/var/www/faxes' "120" '*.tif'

removeOld '/var/www/hylafax' "120" '*.pdf'

removeOld '/var/www/hylafax' "120" '*.tif'

log "Cleanup complete"

exit 0

Настройте автоматический запуск, используя команду

crontab – e

убедитесь, что есть определение переменной окружения PATH

PATH=$PATH:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

чтобы запускать скрипт каждую ночь в 01:05 добавьте строку:

5 1 * * * /bin/bash /root/tasks/cleanup-asterisk.sh

Подсказка: для перехода в режим редактирования используйте «i». Для сохранения изменений нажмите «ESC», затем «:wq».

Данный скрипт удаляет:

• аудиозаписи старее 120 дней

• резервные копии конфигурации Elastix старее 60 дней (кроме созданных вручную)

• факсы старее 120 дней

При необходимости по аналогии можно добавить другие папки для удаления старых файлов.

<p>Отключение резервного копирования аудиозаписей</p>

Если Вы включили резервное копирование конфигурации Elastix на закладке «System/Backup/Restore»

по умолчанию создаются резервные копии даже голосовой почты и аудиозаписей разговоров:

Это очень быстро засоряет диск и при переполнении может привести к остановке работы Elastix. Поэтому рекомендую отключить архивирование аудиозаписей, откорректировав скрипт:

nano /var/www/backup/automatic_backup.php

перечислив компоненты для регулярного резервного копирования и дополнив строку запуска процедуры создания резервной копии строкой «' '.$components»:

$components=' – components=as_db,as_config_files,as_voicemail,as_sounds,'

.'as_mohmp3,as_dahdi,fx_db,fx_pdf,em_db,em_mailbox,ep_db,'

.'ep_config_files,sugar_db,vtiger_db,a2billing_db,mysql_db,'

.'menus_permissions,fop_config,calendar_db,address_db,conference_db,eop_db';

system('/usr/share/elastix/privileged/backupengine – backup – backupfile '.

$sBackupFilename.' – tmpdir '.$sBackupDir.' '.$components, $retval);

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

#!/bin/bash

fl=/var/www/html/modules/backup_restore/index.php

cp $fl ${fl}-orig

txt_old='["]as_monitor["]'

txt_new='\/\/ \"as_monitor\"'

sed "s/$txt_old/$txt_new/g" – i $fl

<p>Отключение зависших соединений</p>

Некоторые разговоры не могут быть разорваны автоматически. Чаще всего это происходит при ошибках передачи данных, когда телефонам абонентов и Elastix не удается корректно отреагировать на не доставленные пакеты. Если у абонентов включен режим Ожидания вызова (Call Waiting), то этого никто не заметит, так как новые звонки продолжат поступать. Если же зависнет соединение с абонентом, у которого отключен режим Ожидания вызова (Call Waiting), то связаться с таким абонентом не получится. Также зависшие соединения создают проблемы абонентам, у которых настроена условная переадресация (по состоянию Занято), и операторам Очередей (Queues), из-за чего к ним не будут поступать новые звонки. Зависшие соединения приходится разрывать вручную или автоматически. Далее описаны оба варианта отключения таких соединений.

<p>Ручной разрыв соединений</p>

К сожалению, связь может зависнуть на любой минуте. Есть возможность разорвать зависшее соединение вручную. Для этого следует выполнить в меню PBX \ Tools команду:

core show channels concise

и выяснить уникальный идентификатор соединения, который указан после последнего восклицательного «!» знака:

После чего дать команду вида:

channel request hangup 1422080480.13497

для принудительного разъединения:

Также можно установить бесплатный модуль bSmart Calls Disconnector, отображающий текущие разговоры в табличном виде и позволяющий разъединять соединения:

<p>Автоматический разрыв соединений</p>

Для автоматического разъединения соединений можно настроить опции Elastix, ограничивающие время разговора до 30 минут по внутренним и до 15 минут по внешним линиям при помощи указания опций набора:

L(x[: y[: z]]) – ограничить звонок временем в «x» ms, проиграть предупреждение за «y» ms до разрыва соединения, повторять предупреждение каждые «z» ms. Параметры y и z являются не обязательными.

Перейти на страницу:

Поиск

Похожие книги