Può capitare che in certe macchine molto vecchie (con quindi un alto numero di dati) a un certo punto il CTI diventi lento, oppure le schede cliente non si carichino in tempo, oppure che spesso il processo di mysql occupi una cpu al 100% rallentando il sistema.

Queto potrebbe essere dato da un alto numero di record nei database di asterisk e di conseguenza da delle query molto pesanti. E' quindi possibile manualmente cancellare lo storico delle chiamate.


#possiamo intanto verificare il numero dei record con i seguenti comandi:


mysql asteriskcdrdb -e "select count(*) from cel;"
mysql asteriskcdrdb -e "select count(*) from cdr;"
mysql asteriskcdrdb -e "select count(*) from queue_log;"


Un valore alto è quando si superano i 500k di record.


#prima di tutto facciamo un dump dell'attuale DB a scopo cautelativo e di eventuale ripristino (fare attenzione perchè potrebbe occupare parecchio spazio, anche nell'ordine dei 3gb)

#comando per fare il dump dell'attuale db e salvarlo sul file (il dump viene messo nella directory corrente ed etichettato con data e ora)
mysqldump asteriskcdrdb | gzip > $(date +%F_%H-%M)_dumpdbcdr.sql.gz


#ora cancelliamo il contenuto delle tabelle più corpose 
#cancello tutti i record più vecchi di una certa data dalla tabella delle code, del cdr e del cel

#Ricordarsi di sostituire la data con quella necessaria (YYYY-MM-DD)


mysql asteriskcdrdb -e "delete from queue_log where time < '2021-01-01';"
mysql asteriskcdrdb -e "delete from cdr where calldate < '2021-01-01';"
mysql asteriskcdrdb -e "delete from cel where eventtime < '2021-01-01';"