Это старая версия документа.
В поставке по умолчанию (что называется «из коробки») FreePBX ведет БД asteriskcdrdb, а точнее табличку cdr, не совсем так, как это нужно для правильной работы системы статистики ViStep.RU. Также она совсем не пишет в таблицу queue_log, что является необходимым.
Поэтому нам потребуется выполнить несколько шагов настройки, для достижения нужного поведения FreePBX.
[root@localhost ~]# mysql asteriskcdrdb Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1686 Server version: 5.1.73 Source distribution Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
ALTER TABLE cdr ADD COLUMN filename VARCHAR(120) DEFAULT 'none'; UPDATE cdr SET filename=recordingfile; ALTER TABLE cdr ADD COLUMN id INT(11) AUTO_INCREMENT PRIMARY KEY; DELIMITER $$ CREATE TRIGGER `before_insert_cdr` BEFORE INSERT ON `cdr` FOR EACH ROW BEGIN SET NEW.filename=NEW.recordingfile; END $$ DELIMITER ;
При успешном выполнении запросов все должно выглядеть примерно вот так:
alias realdst => dst alias realsrc => src
[root@localhost asterisk]# asterisk -r localhost*CLI> module reload cdr_adaptive_odbc.so Module 'cdr_adaptive_odbc.so' reloaded successfully. localhost*CLI>
[from-internal] exten => _X.,1,GoSub(set_right_src_dst_from-internal,start,1(${EXTEN},${CALLERID(num)})) [from-pstn-custom] exten => _X.,1,GoSub(set_right_src_dst_from-pstn,start,1(${EXTEN},${CALLERID(num)})) [set_right_src_dst_from-pstn] exten => start,1,Set(__FROMPSTNCALL=1) same => n,Set(CDR(realdst)=${ARG1}) same => n,Set(CDR(realsrc)=${ARG2}) same => n,Return() [set_right_src_dst_from-internal] exten => start,1,ExecIF(${FROMPSTNCALL}?Set(CDR_PROP(disable)=true):Set(CDR(realdst)=${ARG1})) same => n,Set(CDR(realsrc)=${ARG2}) same => n,Return()
А вот и скрин, для наглядности В завершении кликнем Save, затем Apply Config, позвоним на АТС, с АТС вовне и проверим корректность заполнения полей dst и src.
CREATE TABLE `queue_log` ( `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `time` TIMESTAMP NULL DEFAULT '0000-00-00 00:00:00', `callid` VARCHAR(32) NOT NULL DEFAULT '', `queuename` VARCHAR(32) NOT NULL DEFAULT '', `agent` VARCHAR(32) NOT NULL DEFAULT '', `event` VARCHAR(32) NOT NULL DEFAULT '', `data1` VARCHAR(100) NOT NULL DEFAULT '', `data2` VARCHAR(100) NOT NULL DEFAULT '', `data3` VARCHAR(100) NOT NULL DEFAULT '', `data4` VARCHAR(100) NOT NULL DEFAULT '', `data5` VARCHAR(100) NOT NULL DEFAULT '', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
[settings] queue_log => odbc,asteriskcdrdb
Скрин: *не забываем про Save и Apply Configs
После выполнения данных действий и совершения звонков в очереди, запрос из консоли mysql
SELECT * FROM queue_log;
должен вернуть вам нечто подобное *на запрос в скрине не ориентируйтесь, там я специально добавил условие, чтобы сократить выхлоп
На этом все настройки завершены.
Если вы все сделали правильно, то через какое-то время (зависит от размера БД) сможете воспользоваться всеми отчетами системы статистики ViStep.RU в своем личном кабинете.
Повторюсь, если у вас остались вопросы и/или есть предложения/замечания, пишите нам на support@vistep.ru.