Se si ha bisogno di eliminare tutti i dati nel PBX Report relativi al Report Code da una certa data in poi ( richiesto dal rivenditore ) si può procedere in questo modo. 

Per prima cosa verificare le tabelle :

mysql asteriskcdrdb;

MariaDB [asteriskcdrdb]> show tables;

Se vi sono tutte le tabelle ( confronta con un altra macchina) , cancellare con :

for table in $(mysql asteriskcdrdb -e "show tables" | grep '^cdr_\|^dashboard_\|^data_\|^distribution_\|^graph_\|^performance_'); do mysql asteriskcdrdb -e 'DROP TABLE `'$table'`'; done


Questo eliminerà tutte le tabelle create dal report ( performance... , graph...., distribution....., dashboard.......)

Resterà :

MariaDB [asteriskcdrdb]> show tables;
+-------------------------+
| Tables_in_asteriskcdrdb |
+-------------------------+
| agent_extensions        |
| agent_status            |
| agentsessions           |
| call_status             |
| cdr                     |
| cel                     |
| cost_details            |
| daily_cdr               |
| ivr_choice              |
| phonebook_map           |
| queue_failed            |
| queue_log               |
| queue_log_history       |
| queue_log_processed     |
| recall_hour             |
| report_queue            |
| report_queue_agents     |
| report_queue_callers    |
| tmp_cdr                 |
| voicemessages           |
| zone                    |
+-------------------------+
Se gli agenti sono statici all'interno della coda e non hanno mai fatto una "pausa"  , la tabella agentsession non verrà popolata ( altrimenti dovrà essere svuotata ), se dinamici viene popolata.


ESEMPIO : in questo caso il rivenditore ha chiesto di svuotare il Report Code fino al 16/04/2023 compreso.


Ogni tabella ha una colonna con tipo di tempo ( bisogna verificare come viene chiamata la colonna del tempo e il dato all'interno)


1 comando :


 delete from queue_log_history where time < '2023-04-17';

Verificare come viene definito il tempo nelle varie tabelle, tipo in report_queue viene chiamato timestamp_in ed in unixtime ( usare sito online per convertire https://www.unixtimestamp.com/index.php)

MariaDB [asteriskcdrdb]> select * from report_queue limit 1;

Eliminare poi : ( 1681682400 sarebbe 17/04/2023 00:00 in unixtime)

delete from report_queue  where timestamp_in < '1681682400';

delete from report_queue_agents where timestamp_in < '1681682400';

 delete from report_queue_callers where timestamp_in < '1681682400';


Otteniamo in asteriskcdrdb sempre le tabelle precedenti ma svuotate ( in nero) :


MariaDB [asteriskcdrdb]> show tables;
+-------------------------+
| Tables_in_asteriskcdrdb |
+-------------------------+
| agent_extensions        |
| agent_status            |
| agentsessions           |
| call_status             |
| cdr                     |
| cel                     |
| cost_details            |
| daily_cdr               |
| ivr_choice              |
| phonebook_map           |
| queue_failed            |
| queue_log               |
| queue_log_history       |
| queue_log_processed     |
| recall_hour             |
| report_queue            |
| report_queue_agents     |
| report_queue_callers    |
| tmp_cdr                 |
| voicemessages           |
| zone                    |
+-------------------------+
21 rows in set (0.00 sec)


Aspettare poi che la notte viene sincronizzato il report, altrimenti lanciare il seguente comando ( meglio lanciare un comando alla volta invece che eseguirlo tutto insieme) :


/opt/nethvoice-report/tasks/tasks cdr && /opt/nethvoice-report/tasks/tasks cost && /opt/nethvoice-report/tasks/tasks views && /opt/nethvoice-report/tasks/tasks queries