====== Конвертация истории FreePBX -> MikoPBX ====== [[:faq|Обратно, к основному разделу... ]] ===== FreePBX ===== - Перейдем в рабочий каталог FreePBX mkdir -p /usr/src/miko-mysql-to-sqlite; cd /usr/src/miko-mysql-to-sqlite - Скачаем скрипт конвертации таблицы MySQL в Sqlite3. Скачать, если его нет. curl 'https://gist.githubusercontent.com/esperlu/943776/raw/be469f0a0ab8962350f3c5ebe8459218b915f817/mysql2sqlite.sh' -o 'mysql2sqlite.sh' - Запускаем скрипт конвертации: ./mysql2sqlite.sh -ufreepbxuser -p123 asteriskcdrdb PT1C_cdr | grep -v 'CREATE INDEX' | sqlite3 ./master.db ===== MIKOPBX ===== Архив со скриптами доступен по [[https://files.miko.ru/s/0vzK6bUhcUjqk3M | ссылке]] - Файл **master.db**, полученный на предыдущем этапе необходимо перенести на MIKOPBX в каталог "**/storage/usbdisk1/mikopbx/freepbx-dmp**" - Перейти в рабочий каталог MIKOPBX: mkdir -p /storage/usbdisk1/mikopbx/freepbx-dmp; cd /storage/usbdisk1/mikopbx/freepbx-dmp; - Подготовка списка файлов к загрузке в качестве даты следует указать свою "2020-02-07": sqlite3 master.db 'SELECT strftime("%Y/%m/%d/", calldate) || recordingfile FROM PT1C_cdr WHERE recordingfile<>"" AND calldate > "2020-02-07"' > file-for-download.txt - Загрузка записей разговоров и конвертация в MP3 curl 'http://files.miko.ru/s/zYyMAyhpqtLZ7Qf/download' -o ./download-and-convert.sh sh ./download-and-convert.sh file-for-download.txt 10.70.10.6:443 - Выполним резервное копирование базы данных истории звонков: cp /storage/usbdisk1/mikopbx/astlogs/asterisk/cdr.db /storage/usbdisk1/mikopbx/astlogs/asterisk/cdr.db.dmp - Скопируем базу данных истории звонков в текущий каталог: cp /storage/usbdisk1/mikopbx/astlogs/asterisk/cdr.db ./cdr.db - Конвертация истории звонков в формат MIKOPBX. История в cdr.db будет ОЧИЩЕНА. sqlite3 << EOF ATTACH DATABASE 'cdr.db' as 'new'; ATTACH DATABASE 'master.db' as 'old'; delete from new.cdr_general; INSERT INTO new.cdr_general ( src_num, dst_num, src_chan, dst_chan, start, answer, endtime, duration, billsec, disposition, UNIQUEID, did, linkedid, recordingfile ) SELECT src, dst, channel, dstchannel, calldate, answer, "end", duration, billsec, disposition, linkedid || id, did, linkedid, "/storage/usbdisk1/mikopbx/voicemailarchive/monitor/" || strftime("%Y/%m/%d/", calldate) || recordingfile || ".mp3" FROM old.PT1C_cdr; DETACH DATABASE 'new'; DETACH DATABASE 'old'; .exit EOF - Очистка пустых полей recordingfile в базе данных sqlite3 ./cdr.db 'UPDATE cdr_general SET recordingfile="" where recordingfile LIKE "%/.mp3"' - До "2020-02-07" нет записей разговоров. Очистим поле recordingfile sqlite3 ./cdr.db 'UPDATE cdr_general SET recordingfile="" where start<"2020-02-07"' - Переместив файл базы данных. cp ./cdr.db /storage/usbdisk1/mikopbx/astlogs/asterisk/cdr.db - Готово. Можно проверять историю звонков в web интерфейсе. [[:faq|Обратно, к основному разделу... ]]