Open fatgreentrol opened 9 years ago
Формат файлов wav задается в конфиге - $system_audio_format. В скрипте логика хранения файлов другая, либо все файлы в одной папке, либо такой "/var/calls/2014/2014-09/2014-09-29".
Чтобы было, как вы написали, надо править файл func.php.
Вообще сначала надо попробовать самим сделать.
Примерно так нужно, пробуйте. Заменяем строчку:
$rec['filename'] = "$mycalldate_y/$mycalldate_ym/$mycalldate_ymd/$recorded_file";
на
$y = substr($row['calldate'], 0, 4);
$m = substr($row['calldate'], 5, 2);
$d = substr($row['calldate'], 8, 2);
$rec['filename'] = "$y/$m/$d/$recorded_file";
Имя файла должно храниться в базе.
У вас получилось? Можно закрывать ветку...
Поменял но не заработало.
Посмотрите какие ошибки выдает, для этого включите дебаг - раскомментируйте первую строчку в index.php. Ишибки типа "undefined" не в счет, напишите, какие ошибки выдает на счет того, что файл не существует.
Или приведите логику хранения записей звонков, как в скрипте.
Вот всё что выдал, других ошибок нет.
Notice: Undefined index: did in /var/www/my/index.php on line 72 Notice: Undefined index: dstchannel in /var/www/my/index.php on line 78 Notice: Undefined index: channel in /var/www/my/index.php on line 86 Notice: Undefined index: clid in /var/www/my/index.php on line 92 Notice: Undefined index: dstchannel in /var/www/my/index.php on line 95 Notice: Undefined index: userfield in /var/www/my/index.php on line 104 Notice: Undefined index: accountcode in /var/www/my/index.php on line 107
Notice: Undefined offset: 1 in /var/www/my/inc/func.inc.php on line 386 Notice: Undefined offset: 2 in /var/www/my/inc/func.inc.php on line 386 Notice: Undefined offset: 3 in /var/www/my/inc/func.inc.php on line 386 Notice: Undefined offset: 4 in /var/www/my/inc/func.inc.php on line 386 Notice: Undefined offset: 4 in /var/www/my/inc/func.inc.php on line 386 Notice: Undefined index: filename in /var/www/my/inc/func.inc.php on line 127 Notice: Undefined index: filename in /var/www/my/inc/func.inc.php on line 127 Notice: Undefined index: filename in /var/www/my/inc/func.inc.php on line 127 Notice: Undefined index: filename in /var/www/my/inc/func.inc.php on line 127 Notice: Undefined index: filename in /var/www/my/inc/func.inc.php on line 127 Notice: Undefined index: filename in /var/www/my/inc/func.inc.php on line 127 Notice: Undefined index: filename in /var/www/my/inc/func.inc.php on line 127 Notice: Undefined index: filename in /var/www/my/inc/func.inc.php on line 127 Notice: Undefined index: filename in /var/www/my/inc/func.inc.php on line 127 Notice: Undefined index: filename in /var/www/my/inc/func.inc.php on line 127 Notice: Undefined index: filename in /var/www/my/inc/func.inc.php on line 127 Notice: Undefined index: filename in /var/www/my/inc/func.inc.php on line 127 Notice: Undefined index: filename in /var/www/my/inc/func.inc.php on line 127 Notice: Undefined index: filename in /var/www/my/inc/func.inc.php on line 127 Notice: Undefined index: filename in /var/www/my/inc/func.inc.php on line 127
Советую хорошо прочитать Readme в папке docs, там все написано как настроить.
Обратите внимание на строку:
Notice: Undefined index: filename in /var/www/my/inc/func.inc.php on line 127
Не может найти имя файла записи звонка, котороое должно храниться в базе. В какой колонке БД у вас хранится имя файла записи ? Если название колонки не filename, то задайте свое в конфиге.
Спасибо большое получилось! Скачивает!
А можете ещё помочь с одним вопросом? Там ещё есть кнопка чтоб проигрывать звонок, но когда нажимаешь её, открывается плеер но он ничего не проигрывает...
Это зеленая кнопка такая... Только вот прочитал, что uppod (плеер) не поддерживает воспроизведение wav. С mp3 все работает. Настройте лучше прозрачную конвертацию в mp3 сразу во время звонка, в Readme все написано. Главное примемущество - размер файла в несколько раз меньше и можно будет прослушать через браузер. Имеющиеся записи можно конвертнуть в MP3, но тут надо небольшой скрипт написать. А так больше нормальных плееров нет, html5 в том числе. Перебрал очень много.
Можете поставить в конфиге
$system_audio_format = 'mp3';
Тогда исчезнет зеленая стрелка, т.е. можно будет только скачать.
Кстати файлы можно скачать но не всегда... Сегодня показывало вчерашние записи и фалы можно было скачать. Через время перестало показывать вчерашние записи. В новых записях уже аудио фалы не находит...
И ещё показывает звонки абсолютно все. Из под всех екстеншенов...
и ошибки в логах такого характера:
2015/07/28 13:16:21 [error] 13152#0: *1 FastCGI sent in stderr: "PHP message: PHP Notice: Undefined index: did in /var/www/my/index.php on line 72 PHP message: PHP Notice: Undefined index: dstchannel in /var/www/my/index.php on line 78 PHP message: PHP Notice: Undefined index: channel in /var/www/my/index.php on line 86 PHP message: PHP Notice: Undefined index: clid in /var/www/my/index.php on line 92 PHP message: PHP Notice: Undefined index: dstchannel in /var/www/my/index.php on line 95 PHP message: PHP Notice: Undefined index: userfield in /var/www/my/index.php on line 104 PHP message: PHP Notice: Undefined index: accountcode in /var/www/my/index.php on line 107" while reading upstream
PHP Notice - это не ошибки, а уведомления. Надо закомментировать первую строчку в index.php.
И ещё показывает звонки абсолютно все. Из под всех екстеншенов...
Так и должно быть, чтобы отсортировать - есть "Условия поиска".
Кстати файлы можно скачать но не всегда...
Все правильно. У вас записи звонков по папкам год/месяц/день распределяет Asterisk или скрипт ? Если Asterisk пишет запись звонка сразу в нужную папку (год/месяц/день), то надо сделать так:
в конфиге
$system_storage_format = 0
в func.inc.php
$rec['filename'] = $recorded_file;
на
$y = substr($row['calldate'], 0, 4);
$m = substr($row['calldate'], 5, 2);
$d = substr($row['calldate'], 8, 2);
$rec['filename'] = "$y/$m/$d/$recorded_file";
Поменял но абсолютно ничего не меняться. :worried:
Стоит у меня FreePBX и Астериск сам складывает файлы по папкам.
Вот если настроить так как ранее вы писали то звонки видно становиться на следующий день. То есть скачать звонки можно только за прошедший день. За текущий день файлы не находит.
За прошедший день:
За текущий:
А если внести последнее изменения которые вы написали то файлы абсолютно не видит.
Чтобы я мог что-то понять, закиньте содержимое файлов (как они есть на текущий момент) config.inc.php (убрав данные подключения к базе) и func.inc.php на https://gist.github.com/. И напишите ссылки здесь. Тогда что-то смогу сделать.
Кстати обновите скрипт, кроме конфига, сейчас немного дизайн поправлен, стало получше.
Вот так вот сейчас всё выглядит.
Не удивительно, что не работает. Вы не сделали, как я написал.
Для чего у вас заменена эта строчка ?
$rec['filesize'] = file_exists($rec['path']) ? filesize($rec['path'])/1024 : 0;
на $rec['filesize'] = file_exists($rec['path']) ? filesize($rec['path'])/1 : 0;
В конфиге можно же поставить размер файла $system_fsize_exists
, больше которого считается, что файл существует.
Надо сделать так: Конфиг в порядке, заменяете в func.inc.php всю функцию formatFiles
на это: https://gist.github.com/prog-it/5e489f6ce72ebaa46e3f
Пробуйте.
Спасибо огромное!!! :+1: Пока вроде работает.
У меня возникли ещё два вопроса:
location ~ \.php$ { ... }
. Скопируйте ее в location с авторизацией. Сделайте примерно так:
location /path/to/script {
auth_basic "Asterisk";
auth_basic_user_file /path/to/.htpasswd;
location ~ .php$ {
.....
}
}auth_basic "Asterisk";
!Низкий Вам поклон, за кропотливую работу. Я к Вам с проблемой. Не качаются и не прослушиваются файлы: http://c2n.me/3nZn3c6 - видно что они есть, но при нажатии скачивание/воспроизведение не происходит. После нажатия СКАЧАТЬ выдает вот такой адрес: https://192.168.1.120/acdr/dl.php?f=MTQ0MzE5NjY1OS4xNS0yMDE1LTA5LTI1LTE4XzU3LTA2NzQ0MzQ4NDQtMDk2MzE1NzQ3MC5tcDM= (понятно, что ничего тут не прочитаешь) Воспроизведение: http://c2n.me/3nZnnLQ
Вводные: Elastixs 2.5 http://c2n.me/3nZnHbd - Данные по астеру Файл MP3 лежит /var/calls Права на папку 777 http://c2n.me/3nZnVYq Имя файла в папке соответствует занесенной в базу SQL. Как мне кажется это что то с правами на Apache http://c2n.me/3nZoXAG
Я правильно понял, что у вас все файлы хранятся в одной папке (скрипт для рапределения по папкам не используется) ? Выдает ли какие-либо ошибки, если нажать скачать ? Какая у вас версия PHP ?
Закиньте текущее содержимое конфиг файла (config.inc.php) на Gist, уберите только параметры подключения к базе и напишите ссылку здесь.
В файле dl.php замените строчку
<?php
на
<?php error_reporting(E_ALL | E_STRICT); ini_set('display_errors', 'On');
После этой замены опять попробуйте скачать файл, если выдает какие-либо ошибки, скопируйте их полностью и поместите на Gist, ссылку напишите здесь. Можно скрином.
Ссылка вида https://192.168.1.120/acdr/dl.php?f=MTQ0MzE5NjY1OS4xNS0yMDE1LTA5LTI1LTE4XzU3LTA2NzQ0MzQ4NDQtMDk2MzE1NzQ3MC5tcDM= - это нормально, используется base64. Права на папку тут совсем не причем, что-то с dl.php, скорее всего в вашей версии php отсутствует класс finfo.
На последнем скрине вы пытаетесь обратиться к папке records, но в скрипте она отсутствует. Вы случайно не делали симлинк на /var/calls ? Он не нужен.
Советую еще раз прочитать Readme.
Большое спасибо Вам что находите время вникать в МОИ проблемы. Я на 100% уверен, что касяк у меня.
"у вас все файлы хранятся в одной папке" - Да, записи хранятся в одной папке, скрипт не используется.
php -v PHP 5.1.6 (cli) (built: Jun 27 2012 12:21:16) Copyright (c) 1997-2006 The PHP Group Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies
https://gist.github.com/Pavel-Skiba/5d765dea43fd026b5a15 - config.inc.php
Да, симлинк на /var/calls (и records) стоял, это я пытался понять отсутствия подключения. Ну что с ним, что без него, разницы никакой.
Что меня еще смущает, это ошибка в файле "Index.php" когда расскоментируеш первую строку "<?php error_reporting(E_ALL | E_STRICT); ini_set('display_errors', 'On');" https://gist.github.com/Pavel-Skiba/a85e3a4dedde6af2432e - сам файл Индекса. https://gist.github.com/Pavel-Skiba/c49a0f6cd81ce711ba18 - ошибки на станице
dl.php - Заменил строку. Никаких ошибок не появилось. при попытке скачать выводиться чистая страница в середине которой ничего нету, ни одно строки. По эксперементировал - удалил ДЛ и попытался скачать - реакция идентичной первой. По моему, он до файла ДЛ не доходит. Может пригодиться файл func.inc.php https://gist.github.com/Pavel-Skiba/e2a8a92945fe509472e5
"Советую еще раз прочитать Readme." - Спасибо, перечитал. Переустановил пакет с нуля, изменив; подключение к базе,Формат хранения файлов и путь Путь к файлу с тарифами, также этот путь прописан в настройках плагина $callrate_csv_file = '/var/www/asterisk-cdr-viewer/inc/plugins/' . $callrate_csv_fileName; Увы, озарение не наступило. Файл не скачивается и не воспроизводиться. Если адрес будет: https://192.168.1.120/asterisk-cdr-viewer/ Появились ошибки: http://c2n.me/3o0kKpC Если https://192.168.1.120/acdr/? - таких ошибок нету. Вот внутрянка: http://c2n.me/3o0mSml
Только увидел ваше сообщение.
PECL - fileinfo
.
Скачайте последнюю версию скрипта, добавил проверку на существование класса.
Должно работать. Напишите, если все заработало.inc/plugins/gen_callrates.csv
.
Так как у вас версия PHP ниже 5.3, то вместо прописывания полного пути от корня, можете заменить __DIR__
на dirname(__FILE__)
.date.timezone
, раз ругаетсяб что не выбрана зона.Я понял причина: в Elasix 2.5 стоит PHP версия 5.1, а Ваш модуль рассчитан на 5,3. Обновление PHP Elasix до 5.3 - не представляется возможным (вернее оно обновляется и потом перестает работать сам Elaistx, таблетки к этому не существует). Вопрос: а есть такой-же модуль для PHP версии 5.1 ?
Чтобы работало с 5.1 необходимо сделать некоторые правки в файлах.
__DIR__
на dirname(__FILE__)
в конфиге и my_callrates.inc.phpnamespace SendFile;
в sendfile.class.phpuse SendFile\sendFile as sendFile;
в dl.php$send->ContentTypeAuto = false;
перед $send->send();Попробуйте и отпишитесь.
prog-it ПРИ МНОГО БЛАГОДАРЕН ЗАРАБОТАЛО!!! Воспроизводит и дает скачивать файл.
Добрый день, подскажите пожалуйста , дистрибутив elastix , 'filename' заменил на uniqueid, паз в конфиге поменял, в описание имя файла вижу , а вот воспроизвести или скачать немогу . [Wed Jan 20 09:51:10 2016] [error] [client 10.10.10.2] PHP Notice: Undefined index: did in /var/www/html/cd/index.php on line 70, referer: http://X.X.X.X/cd/index.php [Wed Jan 20 09:51:10 2016] [error] [client 10.10.10.2] PHP Notice: Undefined index: channel in /var/www/html/cd/index.php on line 77, referer: http://X.X.X.X/cd/index.php [Wed Jan 20 09:51:10 2016] [error] [client 10.10.10.2] PHP Notice: Undefined index: clid in /var/www/html/cd/index.php on line 83, referer: http://X.X.X.X/cd/index.php [Wed Jan 20 09:51:10 2016] [error] [client 10.10.10.2] PHP Notice: Undefined index: dstchannel in /var/www/html/cd/index.php on line 86, referer: http://X.X.X.X/cd/index.php [Wed Jan 20 09:51:10 2016] [error] [client 10.10.10.2] PHP Notice: Undefined index: userfield in /var/www/html/cd/index.php on line 95, referer: http://X.X.X.X/cd/index.php [Wed Jan 20 09:51:10 2016] [error] [client 10.10.10.2] PHP Notice: Undefined index: accountcode in /var/www/html/cd/index.php on line 98, referer: http://X.X.X.X/cd/index.php [Wed Jan 20 09:51:11 2016] [error] [client 10.10.10.2] PHP Notice: Undefined offset: 1 in /var/www/html/cd/inc/func.inc.php on line 396, referer: http://X.X.X.X/cd/index.php [Wed Jan 20 09:51:11 2016] [error] [client 10.10.10.2] PHP Notice: Undefined offset: 2 in /var/www/html/cd/inc/func.inc.php on line 396, referer: http://X.X.X.X/cd/index.php [Wed Jan 20 09:51:11 2016] [error] [client 10.10.10.2] PHP Notice: Undefined offset: 3 in /var/www/html/cd/inc/func.inc.php on line 396, referer
Здравствуйте, подскажите пожалуйста. Возможно ли реализовать работу загрузки с модуля аудио файлов? Если путь к файлам и формат аудиозаписей такой как у меня: /var/spool/asterisk/monitor/год/месяц/день/external-100-+380637581052-20150722-173232-1437575552.2.wav
PS Help please! Я разбираюсь в php не очень.