AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

Статистика с логированием пользователя и отображением статистики только его номеров

Биллинг 29 сообщений -
#1

Здравствуйте!
Подскажите статистику, чтобы клиент мог логинится под своим аккаунтом и видел статистику входящих и исходящих только своих номеров, а не всю базу данных. А также чтобы можно было прикрутить запись разговоров, я делал на арески статитстике в поле "userfield" вставлял ссылку на файл записи.

Спасибо.
#2

Имхо готовой нет, надо самим дописывать.
_________________
Gentoo Linux || Asterisk 11.2-cert3
Решения телефонии на базе Asterisk || http://it-need.ru
#3

a2billing разве такое не сможет сделать? Он же вроде как на провайдера заточен, тоесть статистику клиенту по своим номерам должен давать возможность смотреть.
Кстати откуда кто берет документацию (а то решил посмотреть что он может)? Установить вроде установил (во всяком случае вебинтерфейс работает), а по настройке не могу нормальные доки найти, хоть бы на английском, но чтобы все понятно было. У них в онлайн документации вообще как кот наплакал, и половина ссылок не рабочих. Или это я один такой непонимающий ихние мануалы.

Tariscope должен с логированием справиться насколько помню, но запись разговоров в него не прикрутишь и минус еще что его нужно ставить на отдельный сервер и платная.

Но это все что я знаю, хотелось бы услышать кто сталкивался с данной задачей и к каким решениям пришел.
#4

дак не сложно же написать небольшую веб морду для cdr, чтоб из базы выборку делал
#5

...как вариант: http://code.google.com/p/asterisk-cdr-viewer/ ( то что с версией 0.5 или в svn )

идея такая:
- права рулятся через .htacces
- если пользователь просит урл http://ip/acdr - это админ, показываеть все CDR
- если пользователь просит урл http://ip/acdr/2280 - это узер 2280 и показываеть ему только CDR с cid || did = 2280
- если пользователь просит url http://ip/acdr/_22XX - это тоже узер и показывать ему можно все CDR с cid||did _22XX

соответственно в .htpasswd завести админа, 2280, _22XX.


критика/пожелания/замечания принимаются.
#6

Поставил в "http://172.16.1.1/asterisk-cdr-viewer/", в конфиге прописал данные для подключения.
Захожу на веб, вижу форму, но записи не отображаются

_________________
Gentoo Linux || Asterisk 11.2-cert3
Решения телефонии на базе Asterisk || http://it-need.ru
#7

там в ридми пример конфига апача, пример урла по которому ходить... cdr оно показывает после того как нажать поиск...

а вообще ноги от сюда растут: http://asteriskforum.ru/viewtopic.php?t=4908

+ оно только для mysql
#8

там в конфиге только алиас, сделал его.
Когда захожу "http://172.16.1.1/acdr" то отображается форма, но без картинок!
Записи по прежнему не отображатся после нажатия напоиск.

PS
В areski-stat записи отображаются нормально.

_________________
Gentoo Linux || Asterisk 11.2-cert3
Решения телефонии на базе Asterisk || http://it-need.ru
#9

2 aven: спасиб. про картинки и стили правда Ваша. поправил.
про то что нет CDR хз... дату запроса и ошибки проверить больше даже не знаю чего предложить...
#10

Вроде то что мне нужно.

Но у меня выдает:
Query failed: [SELECT calldate, clid, src, dst, dcontext, channel, dstchannel, lastapp, lastdata, duration, billsec, disposition, amaflags, accountcode, uniqueid, userfield, unix_timestamp(calldate) as call_timestamp FROM asterisk.asterisk_cdr WHERE calldate BETWEEN '2011-04-01 00:00:00' AND '2011-04-30 23:59:59' ORDER BY calldate DESC LIMIT 100] SELECT command denied to user ''@'localhost' for table 'asterisk_cdr'

Я так понимаю это из-за того что у меня cdr слаживается в psql? Хотя в строке написано что юзеру отказано, но прописал как и в asterisk-stat.
#11

ну вот и проблема aven, выборка делается не из той таблицы, у меня например таблица называется `cdr`
#12

У меня тоже так называется, в конфиге правильно прописано, что не так? Smile
_________________
Gentoo Linux || Asterisk 11.2-cert3
Решения телефонии на базе Asterisk || http://it-need.ru
#13

Игорь а нету подобного чтобы с psql? Нехочется перенастраивать базу. Это твоя разработка? Улучшать не будешь?
Я вот думаю переделать статистику от арески используя поле accountcode. В диалплане присваивать accountcode какое то значение для нужного клиента, тоесть на входящую и исходящую связь с его номеров. А потом в арески делать запросы к базе с "WHERE accountcode=лалала".
Теоретически уверен что должно работать, а вот практически буду мучать пхп и запросы к базе.
#14

2 JackW810:

нее, я правил только начальный вариант... который был таки как раз на pgsql. по поводу переписывания назад на pgsql - мне оно не сильно актуально, у меня только мускл да и php я не сильно знаю... По поводу дописывания - вот, пару дней назад появилось возможность разными пользователями ходить Smile.

если есть желание, то арески пропатчите, если по простому - делаете авторизацю на сервере, проверяете пользователя, потом к запросам добавляете что то типа `" AND ( dst = '$auth_name' or src = '$auth_name' )`
ну или с accountcode.
#15

Только что попробовал через акаунткод, нормально все, одно "но", придется каждому такому юзеру делать разные странички, тоесть в папке html\www\ делать html\www\юзер1 и html\www\юзер2 в которых будет свой арески настроенный под конкретного пользователя. Но думаю для начала хватит, пока нашел где изменить на первой странице запросы, попозже займусь измениями на других страницах, думаю проблем не будет. Игорь если есть ссылка буду благодарен если дашь исходника cdr на psql, который переделал на mysql.
#16

Вообщем полез в код сам Smile

Не отображаются картинки и стили, что за странный путь указан?
Код:


Заменил на нормальный и все появилось:
Код:


Что бы стало отображать записи, закомментировал условие:
Код:
//if ( isset($_POST['need_html']) && $_POST['need_html'] == 'true' ) {
$query = "SELECT calldate, clid, src, dst, dcontext, channel, dstchannel, lastapp, lastdata, duration, billsec, disposition, amaflags, accountcode, uniqueid, userfield, $
$result = mysql_query($query) or die("Query failed: [$query] " . (mysql_error()));
//}

_________________
Gentoo Linux || Asterisk 11.2-cert3
Решения телефонии на базе Asterisk || http://it-need.ru
#17

2 aven:

1 - acdrdata - альяс который прописан в конфиге апача лежащего в contrib...
2 - это условие - галочка в верхнем правом углу экрана ( CDR Search ). Что конкретно нужно показывать настраивается. Там нет страничной разбивки CDR и все выплевывается разом, тоесть если хочется посмотреть сгруппированную по дням загрузку за например месяц, и нет желяния читать портянку CDR, то легким движением мыша портянка не показывается....
#18

в Редмихе только это:
Код:

AuthName "Asterisk-CDR-Stat"
AuthType Basic
AuthUserFile /var/www/asterisk-cdr-viewer/.htpasswd
AuthGroupFile /dev/null
require valid-user


Файл нашел, редми все же надо обновить Smile

А галочка стоит по умолчанию, все равно не показывается (невыполняется то условие)

_________________
Gentoo Linux || Asterisk 11.2-cert3
Решения телефонии на базе Asterisk || http://it-need.ru
#19

процитированный кусок конфига надо раскоментировать для работы под разными пользователями, но ридми поправить наверное стоит.

...по поводу галочки... а остальные ( CSV / Call Graph / Concurent Calls ) работают ?

перевый экран вроде как задумывался без всяких данных, но да, по дефолту после нажатия поиска должны показаться последние 100 CDR за текущий месяц...
#20

Нет, галочки ни на что не влияют
_________________
Gentoo Linux || Asterisk 11.2-cert3
Решения телефонии на базе Asterisk || http://it-need.ru
#21

предлагаю забить и воспользоваться старым проверенным арески.
#22

подскажите: поставил вьювер. через веб отображается картинка, но не выводится статистика.
в логах выдает:
[Thu May 05 15:10:38 2011] [error] [client 192.168.1.14] PHP Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'apache'@'localhost' (using password: NO) in /var/www/html/index.php on line 10, referer: http://192.168.1.75/
[Thu May 05 15:10:38 2011] [error] [client 192.168.1.14] PHP Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in /var/www/html/index.php on line 10, referer: http://192.168.1.75/

В чем может быть проблема?
#23

вероятно, проверить пароль

?
#24

где проверить пароль?
в файле /etc/httpd/conf.d/asterisk-cd-viewer.conf
прописано: AuthUserFile /var/www/asterisk-cdr-viewer/.htpasswd

в данном файле задано 2 поль-ля c паролями:
apache
root
пароль перепроверен много раз.
что не так?
и при запросе внизу выдает:
Query failed: [SELECT calldate, clid, src, dst, dcontext, channel, dstchannel, lastapp, lastdata, duration, billsec, disposition, amaflags, accountcode, uniqueid, userfield, unix_timestamp(calldate) as call_timestamp FROM asterisk.cdr WHERE calldate BETWEEN '2011-05-01 00:00:00' AND '2011-05-31 23:59:59' AND clid LIKE '60%' ORDER BY clid DESC LIMIT 100] Unknown column 'uniqueid' in 'field list'
#25

> где проверить пароль?

./include/config.inc.php, в самом начале $db_*. Там где смотрели Вы пароли для доступа к морде

> и при запросе внизу выдает:

выполнить тот же запрос в консоле mysql ?, если обругается выполнить select * from asterisk.cdr limit 1 и посмотреть что там есть а чего нет...
#26

У меня после нажатия на кнопку Search в /var/log/httpd/error_log валится много сообщений:
Код:
[Sat Jun 11 18:38:56 2011] [error] [client ххх.хх.хх.хх] PHP Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'apache'@'localhost' (using password: NO) in /var/www/asterisk-cdr-viewer/index.php on line 10, referer: http://82.144.ххх.хх/acdr/
[Sat Jun 11 18:38:56 2011] [error] [client ххх.ххх.хх.хх] PHP Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in /var/www/asterisk-cdr-viewer/index.php on line 10, referer: http://82.144.ххх.хх/acdr/


/include/config.inc.php -- прописан конект правильно, поскольку на домашней странице нету сообщения:
Код:
Could not connect: Access denied for user 'cdruser'@'localhost' (using password: YES)

которое есть когда неправильно настроен конект.

То есть оно подключается в базу с user 'apache'@'localhost' (using password: NO) а не с прописанными в /include/config.inc.php настройками.

Что у меня не так?

Эта проблема только с версией отсюда http://code.google.com/p/asterisk-cdr-viewer/
Версия выложенная в этом топике работает нормально, но хочется новую версию. Smile
#27

2 Oleg78:

вообще я с php не сильно дружу... Smile судя по ошибке вылезающей в mysql_real_escape_string(), mysql_real_escape_string таки тоже хочет установленного с БД соединения, поэтому яб предложил
либо закоментировать все вызовы mysql_real_escape_string ( в index.pho и config.inc.php ) до коннекта
с БД или прописать коннект с базой выше mysql_real_escape_string ( например в тот же config.inc.php ).
Если это полечит то закоммитить плиз баг с решением на гугл или сюда.

ps у меня centos'ы и я если чесно не могу это воспроизвести.
#28

У меня тоже Centos.
Но вижу Вы уже пофиксили -- версия 0.7.3 работает нормально.
Спасибо. Smile
#29

Вопрос не совсем по этой теме но все таки:

Не работает вывод в CSV file.
Код:
Query failed: [(SELECT 'calldate', 'clid', 'src', 'dst','dcontext', 'channel', 'dstchannel', 'lastapp', 'lastdata', 'duration', 'billsec', 'disposition', 'amaflags', 'accountcode', 'uniqueid', 'userfield') union (SELECT calldate, clid, src, dst, dcontext, channel, dstchannel, lastapp, lastdata, duration, billsec, disposition, amaflags, accountcode, uniqueid, userfield into outfile '/tmp/03c6183554332740cf6b4506411dfa1d.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' FROM asterisk.cdr WHERE calldate BETWEEN '2011-06-10 00:00:00' AND '2011-06-10 23:59:59' ORDER BY calldate DESC LIMIT 100)] Access denied for user 'cdruser'@'localhost' (using password: YES)

В консоли тоже выдает ту же ошибку.
Когда делаю запрос в консоли под суперпользователем то все работает.
Самого пользователя создавал так:
Код:
GRANT ALL PRIVILEGES ON asterisk.* TO 'cdruser'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;

Что я не так сделал?