Установка CDR-Stats на ubuntu server

Всё о биллингах.

Модераторы: Admins, Модераторы

Ответить
Аватара пользователя
nikto
Сообщения: 198
Зарегистрирован: 26 май 2012, 16:12
Откуда: Резиновск

Установка CDR-Stats на ubuntu server

Сообщение nikto » 20 ноя 2012, 16:42

Доброго времени суток уважаемые.
Кто нибуть ставил на ubuntu server 12.04 cdr-stats?

Пытался ставить скриптами, возникло куча проблем, начиная от того что git+git:// не работает, надо переписывать на git+https:// заканчивая внутренними заморочками django

Заранее спасибо.
Мы всегда можем уметь...

Аватара пользователя
anest
Модератор
Сообщения: 5698
Зарегистрирован: 28 ноя 2004, 10:04

Сообщение anest » 21 ноя 2012, 11:39

не ставил но могу подсказать что можно сделать:
прочесть мануал по установке на офф сайте. возможно что и так все станет понятно что и никакие скрипты не понадобятся ;)
но всеже, если - открыть скрипт в тхт виде и копируя оттуда вставлять в открытую в другом окне консоль. смотреть в скрипте что делается по шагам и все тоже делать в другой консоли и смотреть результат. если все прошло успешно (ошибок нет) то двигаемся дальше. если чтото не так - стараемся вникнуть почему ошибки выдает, может какой пакет нужно доустановить и тд (гугл в помощь), решили этот момент - двигаемся дальше. по сути инсталяция занимает три шага: конфигурация, компиляция, инсталяция. ну и перед всем этим - доустановка нужных пакетов по зависимостям (если такие есть). все просто. чаще всего весь процесс по шагам расписан в файле readme или install в пакете программы. включая названия пакетов для установки перед компиляцей, если таковые нужны. както так вобщем. успехов!

Аватара пользователя
nikto
Сообщения: 198
Зарегистрирован: 26 май 2012, 16:12
Откуда: Резиновск

Сообщение nikto » 21 ноя 2012, 14:02

Да уж поставил, с горем пополам, только все равно не работает. Как Вы предлагаете делает тут товарищ. Но по его мануалу сделать установку нельзя, так как уже в начале нас ждет жеский облом, файла requirements.txt не существует, разраб разбил зависимости на кучу файлов и залил в папку requirements...

Вообщем после "установки" кучу пишется в логи, сам apache пишет кучу ошибок..

На форуме у разрабов ошибок чуть больше over9000. Куча мануалов по установке, разраб пили каждый день новые версии...
Хаос!

2_anest Может Вы порекомендуете более-мение нормальную статистику? Просто надо дать возможность абонентам смотреть кому звонили и слушать записи.
Ну и просто статистику смотреть, кто куда..неудобно все же это делать через csv файл.
Мы всегда можем уметь...

s68
Сообщения: 20
Зарегистрирован: 30 сен 2011, 08:19
Откуда: Москва

Сообщение s68 » 22 ноя 2012, 09:06

Просто надо дать возможность абонентам смотреть кому звонили и слушать записи.
Без прослушивания записей вот очень неплохая вещь: http://asteriskforum.ru/viewtopic.php?t=11482
Устанавливается весьма просто.

Аватара пользователя
nikto
Сообщения: 198
Зарегистрирован: 26 май 2012, 16:12
Откуда: Резиновск

Сообщение nikto » 23 ноя 2012, 09:05

Спасибо =) ставиться без проблемно =)
Правда не совсем то что надо (нельзя пользователю дать смотреть свою статистику), но все равно, это лучше чем ничего.

Вот правда заметил что в строке 240 файла call-log.php не корректно написано (если таблица не cdr), там

Код: Выделить всё

FROM cdr WHERE ".$FG_TABLE_CLAUSE." GROUP BY substring(calldate,1,10)";
а надо

Код: Выделить всё

FROM $FG_TABLE_NAME WHERE ".$FG_TABLE_CLAUSE." GROUP BY substring(calldate,1,10)";
Мы всегда можем уметь...

McMerfy
Сообщения: 236
Зарегистрирован: 19 ноя 2008, 07:34

Сообщение McMerfy » 26 ноя 2012, 07:18

Попробуйте Crystal - CRI. Можно просматривать статистику и слушать записи есть разделение по пользователям. Ставиться несложно.
Этот продукт бесплатен, разработчики пишут:
Try our advanced Call Recording Interface with no time limit – this is our contribution to the Asterisk community.
Посмотреть можно здесь http://www.tikalnetworks.com/support/download/

Аватара пользователя
anest
Модератор
Сообщения: 5698
Зарегистрирован: 28 ноя 2004, 10:04

Сообщение anest » 26 ноя 2012, 18:56

не работает с php5, так и не удалось поглядеть.

McMerfy
Сообщения: 236
Зарегистрирован: 19 ноя 2008, 07:34

Сообщение McMerfy » 27 ноя 2012, 06:08

Странно, вроде работает.

[spoiler]

Код: Выделить всё

root@tst:/var/www/cri# dpkg -l | grep php
ii  libapache2-mod-php5                5.3.3-7+squeeze14            server-side, HTML-embedded scripting language (Apache 2 module)
ii  libphp-adodb                       5.10-1                       The ADOdb database abstraction layer for PHP
ii  php-pear                           5.3.3-7+squeeze14            PEAR - PHP Extension and Application Repository
ii  php5                               5.3.3-7+squeeze14            server-side, HTML-embedded scripting language (metapackage)
ii  php5-adodb                         5.04-6                       Extension optimising the ADOdb database abstraction library
ii  php5-cli                           5.3.3-7+squeeze14            command-line interpreter for the php5 scripting language
ii  php5-common                        5.3.3-7+squeeze14            Common files for packages built from the php5 source
ii  php5-gd                            5.3.3-7+squeeze14            GD module for php5
ii  php5-mysql                         5.3.3-7+squeeze14            MySQL module for php5
ii  php5-suhosin                       0.9.32.1-1                   advanced protection module for php5
[/spoiler]

Аватара пользователя
anest
Модератор
Сообщения: 5698
Зарегистрирован: 28 ноя 2004, 10:04

Сообщение anest » 27 ноя 2012, 12:07

вот что браузер вываливает:
[spoiler]
set_var("lnug","english"); if($_POST['selected_lang'] ) { include($part1."languages/".$_POST['selected_lang'].".php"); $_SESSION['selected_lang']=$_POST['selected_lang']; $t->set_var("lnug",$_POST['selected_lang']); } else { if($_SESSION['selected_lang']) { include($part1."languages/".$_SESSION['selected_lang'].".php"); $t->set_var("lnug",$_SESSION['selected_lang']); } else include($part1."languages/english.php"); } ##############Array for building menu################ $menuvar = array( MENU_CALL_MONITOR =>"index.php?cat=callmonitor", MENU_ON_DEMAND =>"index.php?cat=ondemand", MENU_VOICE_MAIL =>"index.php?cat=voicemail", MENU_VOICE_MAIL_SETTING =>"index.php?cat=setagnt", MENU_CALL_REPORTS =>"index.php?cat=reports" ); $agentmenuvar = array( MENU_CALL_MONITOR =>"index.php?cat=callmonitor", MENU_ON_DEMAND =>"index.php?cat=ondemand", MENU_VOICE_MAIL_SETTING =>"index.php?cat=setagnt", MENU_CALL_REPORTS =>"index.php?cat=reports"); $adminmenuvar = array( MENU_CALL_MONITOR =>"index.php?cat=callmonitor",MENU_USER_MANAGER =>"index.php?cat=usrmanager"); $usernmenuvar = array( MENU_CALL_MONITOR =>"index.php?cat=callmonitor"); $alldefcons=get_defined_constants(); foreach($alldefcons as $def=>$defval) { if(ereg("DEF_",$def)) $t->set_var($def,$defval); } include($part1."includes/secure.php"); if($login_name == "Administrator" OR $login_name == "Supervisor" )$menuvar=$adminmenuvar ; if(isset($_GET["cat"])) $category=$_GET["cat"]; if($login_name == "Administrator" AND !$category ) $category="callmonitor"; if($login_name == "Supervisor" AND !$category ) $category="callmonitor"; if($login_name == "User" ) { $menuvar=$usernmenuvar ; if(!$category ) $category="callmonitor"; } if($voicemail == $login_id ) { //$menuvar=$agentmenuvar ; if( !$category ) $category="voicemail"; } elseif($login_name == "Agent" ) { $menuvar=$agentmenuvar ; if( !$category ) $category="ondemand"; } if(is_array($langnames)) foreach($langnames as $lk=>$lv) $langopt.=' '; $t->set_file("body","blank.tpl"); $t->set_block("daf", "tmenuBlock", "tmBlock"); $t->set_block("daf", "tmenulangBlock", "tmlngBlock"); $t->set_var(array("tmBlock"=>"","tmenu_title"=>"","tmenu_link"=>"", "pge"=>$pge,"pposs"=>"?cat=".$category,"tmlngBlock"=>"","langopt"=>$langopt, "previouse"=>"","nn"=>"","next"=>"","last"=>"","first"=>"", "calicontop"=>"images/icons/dd".date("m")."_01.gif", "caliconfut"=>"images/icons/dd".date("d")."_02.gif", "show_bd"=>"", "show_ed"=>"", "bd"=>"", "ed"=>"" )); foreach( $menuvar as $k=>$v) { $t->set_var("tmenu_title",$k); $t->set_var("tmenu_link",$v); $t->parse('tmBlock', 'tmenuBlock', true); } ###### SQL date filter ######## if(isset($_GET['bd']) AND $_GET['bd'] > "") { $bgd=$_GET['bd'] ; } if(isset($_POST['bd']) AND $_POST['bd'] > "") { $bgd=$_POST['bd'] ;} if(isset($_GET['ed']) AND $_GET['ed'] > "" ) { $eed=$_GET['ed'] ; } if(isset($_POST['ed']) AND $_POST['ed'] > "" ) { $eed=$_POST['ed'] ;} if(!$bgd) $bgd=date("Y-m-d H:i", mktime( 0,0,0,date("m"),date("d"),date("Y") ) ); if(!$eed) $eed=date("Y-m-d H:i", mktime( 0,0,0,date("m"),date("d")+1,date("Y") ) ); ###### fix bgd by rami - this is not the way to fix this!!! must fix the post so it doesn't send space in the end!!, for now we can use this: ####### // if ($bgd[strlen($bgd)] == "") // $bgd[strlen($bgd)-1] = NULL; ###### SET navigation for links and paging ######## $pposdate=$pposs="?cat=".$category; $datesel=" AND ($t2_date <= '".$eed."') "; $datesel.=" AND ($t2_date > '".$bgd."') "; $pposs.="&bd=". $bgd; $pposs.="&ed=". $eed; $pposdate.="&bd=". $bgd; $pposdate.="&ed=". $eed; if(isset($_POST['f']) AND $_POST['f'] > "" ) $pposs.="&f=".$_POST['f']; elseif(isset($_GET['f']) AND $_GET['f'] > "" ) $pposs.="&f=".$_GET['f']; if(isset($_GET['d']) AND $_GET['d'] > "" ) $pposs.="&d=".$_GET['d']; if(isset($_GET['p']) ) $p=intval($_GET['p']) ; //if(isset($_POST['p']) ) $p=intval($_POST['p']) ; if(!$p) $p=0; if($login_id > "1" AND $cat=="callmonitor" ) { if(isset($_POST['io']) AND $_POST['io'] > "") $io=$_POST['io']; if(isset($_GET['io']) AND $_GET['io'] > "") $io=$_GET['io']; } if($login_id =="1" OR $login_name =="User") { $dirname=$part1."addmodules/"; if(is_readable($dirname)) { $dir = opendir($dirname); while($file = readdir($dir)) { if( $file <>"." AND $file <>".." ) { if(is_file($dirname.$file."/menu.php") ) { include( $dirname.$file."/menu.php") ; $additional_module_incl= $dirname.$file."/".$file.".php"; if($additional_module_title) $outmenustr.="$additional_module_title"; if($category == $file) { $part2 = $dirname.$file."/"; include( $dirname.$file."/vars.php") ; } } } } closedir($dir); if($outmenustr)$t->set_var("login_form_text",$outmenustr); } } $t->set_var("pposs",$pposs); $t->set_var("pposdate",$pposdate); if($login_id) { $t->set_var("DEF_PAGE_TITLE_LOGIN",DEF_PAGE_TITLE_LOGOUT); $t->parse('tmlngBlock', 'tmenulangBlock'); } ?> Template Error: loadfile: body is not a valid handle.
Halted.
[/spoiler]
несколько файлов нашел где первой строкой <? а не <?php - первое не работает с php5, проверено. собственно я это поменял но всеравно чтот еще гдето не доделано явно.

McMerfy
Сообщения: 236
Зарегистрирован: 19 ноя 2008, 07:34

Сообщение McMerfy » 27 ноя 2012, 12:42

хм, я ничего не менял, только в vars.php, параметры подключения к mysql.
Вложения
cri2.jpg
cri1.jpg

Аватара пользователя
nikto
Сообщения: 198
Зарегистрирован: 26 май 2012, 16:12
Откуда: Резиновск

Сообщение nikto » 27 ноя 2012, 14:37

Встать то он встает, только не показывает ничего, в смысле звонков.

При попытке создать базу выдает сообщение о том что база не найдена (Databasee db_ast has not created.) и логин и пароль не подходят (Access denied for user)
При этом из базы без проблем вытаскивает таблицу

По поводу php нормально встало на UbuntuServer 12.04 LTS, все файлы в includes без <?php

Но правда я делаю на машине на которой астера нет..возможно тут косяк

UP. Не все права были у пользователя, он не мог создавать новые базы =).
Мы всегда можем уметь...

Аватара пользователя
anest
Модератор
Сообщения: 5698
Зарегистрирован: 28 ноя 2004, 10:04

Сообщение anest » 27 ноя 2012, 16:43

я забыл указать что я пробовал на роутере с lighttpd а не апаче (не вижу принципиальной разницы, так как PHP5 везде один и тот же у меня стоит всеравно)
возможно что сам php у меня не собран с нужными модулями, позже проверю.

Аватара пользователя
nikto
Сообщения: 198
Зарегистрирован: 26 май 2012, 16:12
Откуда: Резиновск

Сообщение nikto » 28 ноя 2012, 07:30

Ну что сказать про Crystal - CRI работает, однако ощущение недоделанности, какой то безысходности самого проекта не покидает меня.
Исходный код installdb.php поверг в уныние, все прибито гвоздями, спрашивается зачем что то менять в vars.php (в документации сказано отредактировать part.php, но что там менять? Не понятно.) если все равно создается база asteriskcdrdb и в ней таблица cdr, CHARSET прибит намертво, язык по умолчанию то же прибит. Проверку на существование файлов не делается (забил весь error.log сообщениями об ошибке) (предполагается видимо что ставиться будет это все на сервере где стоит астер). Вообщем как свободный проект принять можно, но проект от коммерческой фирмы которая еще предлагает колцентр, очень странная вещь.
Сам дизайн странный (в нулевые наверное его еще принять можно) графиков никаких, ну хотя бы статистика за месяц по использованию телефонии, не очень понятный, как связать пользователя и номер не понятно (номер вводил при создании пользователя, однако при входе от имени созданного пользователя, просто пусто, записей нет.) А как быть если у меня два номера?

Сейчас попробую еще asterisk-cdr-viewer, посмотрю что он может предложить. Но пока лучше чем предложил комрад s68 нет ничего.
Мы всегда можем уметь...

s68
Сообщения: 20
Зарегистрирован: 30 сен 2011, 08:19
Откуда: Москва

Сообщение s68 » 28 ноя 2012, 10:15

несколько файлов нашел где первой строкой <? а не <?php - первое не работает с php5, проверено.
У меня
apache+php-5.3.9 <? работает,
lighttpd+php-5.2.17 <? работает
почему-то. Ничего специального для этого не делал.

Added after 4 minutes:
Но пока лучше чем предложил комрад s68 нет ничего.
Чем написал камрад anest :)

DIMMittriy
Сообщения: 33
Зарегистрирован: 05 мар 2013, 11:52

Сообщение DIMMittriy » 30 янв 2015, 07:38

Установил CDR-Stats на Ubuntu Server 14 x64. Все работает кроме Real-Time Calls. В логах ругается на отсутствие /usr/share/cdr_stats/static/dajaxice
File does not exist: /usr/share/cdr_stats/static/dajaxice, referer: http://monast:8008/cdr_realtime/
Может кто подскажет, что должно быть /usr/share/cdr_stats/static/dajaxice и где это теперь взять?

Ответить