GUI для VoipMonitor

FreePBX, TrixBox, AsteriskGUI и др.
Всевозможные надстройки/интерфейсы к Asterisk в виде GUI.
[всё что прямо не относится к Asterisk писать сюда]

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

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

GUI для VoipMonitor

Сообщение anest » 06 май 2010, 03:26

На днях вышел аннонс сей крайне полезной тулзы: http://www.voipmonitor.org/

подробности тут:
http://voiptoday.org/index.php?option=c ... Itemid=101

Собственно вопрос - ктонить может opensource gui к нему написать? 300 € платить за комерческий както нехочется однако. Я с удовольствием отдал бы эти деньги за opensource аналог ;)

Аватара пользователя
aven
Модератор
Сообщения: 1887
Зарегистрирован: 07 сен 2007, 16:55
Откуда: Ухта
Контактная информация:

Сообщение aven » 06 май 2010, 15:47

а где за 300 евров есть веб к нему?
Gentoo Linux || Asterisk 13.1-cert2
Решения телефонии на базе Asterisk || http://it-need.ru

Игорь
Сообщения: 232
Зарегистрирован: 10 авг 2009, 13:36
Откуда: НН
Контактная информация:

Сообщение Игорь » 06 май 2010, 16:10

на сайте, в разделе `commercial support`...

Аватара пользователя
aven
Модератор
Сообщения: 1887
Зарегистрирован: 07 сен 2007, 16:55
Откуда: Ухта
Контактная информация:

Сообщение aven » 06 май 2010, 20:22

там не написано, что не opensource :)
Gentoo Linux || Asterisk 13.1-cert2
Решения телефонии на базе Asterisk || http://it-need.ru

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

Сообщение anest » 06 май 2010, 23:18

ну это написано во втрой ссылке:
Web PHP application (it is not part of open source sniffer) filters data from database and graphs latency and loss distribution.

Centast
Сообщения: 100
Зарегистрирован: 10 сен 2009, 14:35

Сообщение Centast » 09 май 2010, 16:01

Могу взяться за написание.
У меня сейчас перегруз - стабильности нет в свободном времени, поэтому урывками писать будем.

Предлагаю сформировать команду из 5 человеко-ролей (можно больше) в которой будут
1. Тестеры
2. Менеджер управления проектом - составляет изначальные требования к системе и выкладывает информацию на сайт поддержки
3. Программист (т.е. я)
4. Дизайнер (неплохо бы, возьмусь сам если что, как будут требования к интерфейсу)
5. Документатор (описывает работу с системой)

Использование: SVN, PHP. Можно UML подключить (если кто меня поднатаскает)

Изначальная ориентация opensource.

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

Сообщение anest » 10 май 2010, 01:50

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

still
Сообщения: 4
Зарегистрирован: 22 дек 2008, 10:07

Сообщение still » 11 май 2010, 05:51

В БД записывается достаточно обширная информация.
Вот ответ разработчика(Martin Vit): http://sourceforge.net/tracker/index.ph ... id=1315315

Софт такого рода очень интересен. Достаточно долго искал что либо подобное, желательно opensourse или недорогой :).
Причем, насколько я понимаю, в отличии от, например, vqmanager(где используются отчеты RTCP), здесь анализируется именно RTP поток. В данном случае получается более адекватная информация(например, единовременная потеря пакетов : один пакет, 2 пакета, 3-10 пакетов) и можно снимать статистику с разных точек прохождения трафика.
Так как проект только появился остается открытым вопрос в стабильности, производительности и работе под нагрузкой.

Что касаемо интерфейса:
По моему мнению при разработке интерфейса самой главной проблемой будет интерпретация полученной информации. Очень интересно посмотреть на интерфейс Мартина.

Added after 15 minutes:

В любом случае, готов принять участие в проекте.
Например, в качестве тестера :)

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

Сообщение anest » 11 май 2010, 10:29

still писал(а):Очень интересно посмотреть на интерфейс Мартина.
ну если наберется достаточное кол-во людей кто захочет скинуться на покупку оригинального гуя с целью его реверс инжинеринга то можно попробовать, почему бы и нет.. мне лично будет не жалко дать баксов 25-30, но больше не смогу дать. ктонить еще?

Centast
Сообщения: 100
Зарегистрирован: 10 сен 2009, 14:35

Сообщение Centast » 11 май 2010, 13:44

Смысл покупать гуй есть только, чтобы разобраться в смысле данных которые он записывает. А колонок там много. Совсем никаких идей по поводу этого?
P>S> Порт не слушает. Запускается, но в демон не встаёт, непонятно почему.

Игорь
Сообщения: 232
Зарегистрирован: 10 авг 2009, 13:36
Откуда: НН
Контактная информация:

Сообщение Игорь » 11 май 2010, 17:04

Centast писал(а): P>S> Порт не слушает. Запускается, но в демон не встаёт, непонятно почему.
./voipmonitor -i eth0 -b xxx -u xxx -p xxxx

полет нормальный, чето собирает, но без поллитры не понять чего... :(

Centast
Сообщения: 100
Зарегистрирован: 10 сен 2009, 14:35

Сообщение Centast » 11 май 2010, 20:06

Перепробовал разные варианты, пришёл к выводу, что он и к mysql не коннектится (указывал левые настройки). Никаких сообщений об ошибках, пишет only Capturing on interface: eth0 и всё.
anest, ты пробовал его ставить?

Added after 4 minutes:

Проверил его на форк, нормально срабатывает
// child
setsid();
cout << "Fork successfull" << endl;
// close std descriptors (otherwise problems detaching ssh)
close(0); open("/dev/null", O_RDONLY);
close(1); open("/dev/null", O_WRONLY);
close(2); open("/dev/null", O_WRONLY);
А демона нет, однако :hang:

Added after 4 minutes:

По поводу полей
Гуй покупать нет смысла, в исходниках все написано :greedy:

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

               // save only two streams with the biggest received packets
                for&#40;int i = 0; i < 2; i++&#41; &#123;
                        c = i == 0 ? 'a' &#58; 'b';

                        query << " , " << c << "_index = " << quote << indexes&#91;i&#93;;
                        query << " , " << c << "_ua = " << quote << ua&#91;indexes&#91;i&#93;&#93;;
                        query << " , " << c << "_received = " << rtp&#91;indexes&#91;i&#93;&#93;.stats.received;
                        query << " , " << c << "_lost = " << rtp&#91;indexes&#91;i&#93;&#93;.stats.lost;
                        query << " , " << c << "_avgjitter = " << quote << int&#40;ceil&#40;rtp&#91;indexes&#91;i&#93;&#93;.stats.avgjitter&#41;&#41;;
                        query << " , " << c << "_maxjitter = " << quote << int&#40;ceil&#40;rtp&#91;indexes&#91;i&#93;&#93;.stats.maxjitter&#41;&#41;;
                        query << " , " << c << "_payload = " << quote << rtp&#91;indexes&#91;i&#93;&#93;.payload;

                        /* build a_sl1 - b_sl10 fields */
                        for&#40;int j = 1; j < 11; j++&#41; &#123;
                                query << " , " << c << "_sl" << j << " = " << rtp&#91;indexes&#91;i&#93;&#93;.stats.slost&#91;j&#93;;
                        &#125;
                        /* build a_d50 - b_d300 fileds */
                        query << " , " << c << "_d50 = " << rtp&#91;indexes&#91;i&#93;&#93;.stats.d50;
                        query << " , " << c << "_d70 = " << rtp&#91;indexes&#91;i&#93;&#93;.stats.d70;
                        query << " , " << c << "_d90 = " << rtp&#91;indexes&#91;i&#93;&#93;.stats.d90;
                        query << " , " << c << "_d120 = " << rtp&#91;indexes&#91;i&#93;&#93;.stats.d120;
                        query << " , " << c << "_d150 = " << rtp&#91;indexes&#91;i&#93;&#93;.stats.d150;
                        query << " , " << c << "_d200 = " << rtp&#91;indexes&#91;i&#93;&#93;.stats.d200;
                        query << " , " << c << "_d300 = " << rtp&#91;indexes&#91;i&#93;&#93;.stats.d300;

                        /* store source addr */
                        query << " , " << c << "_saddr = " << htonl&#40;rtp&#91;indexes&#91;i&#93;&#93;.saddr&#41;;

                        /* calculate lossrate and burst rate */
                        burstr_calculate&#40;rtp&#91;indexes&#91;i&#93;&#93;.channel_fix1, rtp&#91;indexes&#91;i&#93;&#93;.stats.received, &burstr, &lossr&#41;;
                        query << " , " << c << "_lossr_f1 = " << lossr;
                        query << " , " << c << "_burstr_f1 = " << burstr;
                        query << " , " << c << "_mos_f1 = " << quote << calculate_mos&#40;lossr, burstr, 1&#41;;

                        /* Jitterbuffer MOS statistics */
                        burstr_calculate&#40;rtp&#91;indexes&#91;i&#93;&#93;.channel_fix2, rtp&#91;indexes&#91;i&#93;&#93;.stats.received, &burstr, &lossr&#41;;
                        query << " , " << c << "_lossr_f2 = " << lossr;
                        query << " , " << c << "_burstr_f2 = " << burstr;
                        query << " , " << c << "_mos_f2 = " << quote << calculate_mos&#40;lossr, burstr, 1&#41;;

                        burstr_calculate&#40;rtp&#91;indexes&#91;i&#93;&#93;.channel_adapt, rtp&#91;indexes&#91;i&#93;&#93;.stats.received, &burstr, &lossr&#41;;
                        query << " , " << c << "_lossr_adapt = " << lossr;
                        query << " , " << c << "_burstr_adapt = " << burstr;
                        query << " , " << c << "_mos_adapt = " << quote << calculate_mos&#40;lossr, burstr, 1&#41;;
 

fabi
Сообщения: 37
Зарегистрирован: 05 авг 2008, 09:11

Сообщение fabi » 11 май 2010, 20:39

Перепробовал разные варианты, пришёл к выводу, что он и к mysql не коннектится (указывал левые настройки). Никаких сообщений об ошибках, пишет only Capturing on interface: eth0 и всё.
такая же фигня, как то вылечили ?

still
Сообщения: 4
Зарегистрирован: 22 дек 2008, 10:07

Сообщение still » 12 май 2010, 04:38

Появилось демо gui.
http://www.voipmonitor.org/demo/

С логированием у него совсем туго. Пока еще продукт сырой, но идея очень хороша!

Кстати, в текущей версии записи в БД появляются через 5 минут.

Игорь
Сообщения: 232
Зарегистрирован: 10 авг 2009, 13:36
Откуда: НН
Контактная информация:

Сообщение Игорь » 12 май 2010, 07:16

2 Contast:

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

Centast
Сообщения: 100
Зарегистрирован: 10 сен 2009, 14:35

Сообщение Centast » 12 май 2010, 07:47

Игорь, спасибо! Посмотрю, как запущу сие чудо :-)

still
Сообщения: 4
Зарегистрирован: 22 дек 2008, 10:07

Сообщение still » 12 май 2010, 08:33

Логи пишутся в syslog.

Centast
Сообщения: 100
Зарегистрирован: 10 сен 2009, 14:35

Сообщение Centast » 15 май 2010, 11:15

В syslog (что очч странно! по исходникам если смотреть записывать должен) ничего путного не записал, кроме как в kern.log
May 15 14:13:24 asterbox0 kernel: device eth0 entered promiscuous mode
May 15 14:13:27 asterbox0 kernel: device eth0 left promiscuous mode
Буду копаться в исходниках

Игорь
Сообщения: 232
Зарегистрирован: 10 авг 2009, 13:36
Откуда: НН
Контактная информация:

Сообщение Игорь » 15 май 2010, 12:17

syslog настроить ( .notice )

?

Centast
Сообщения: 100
Зарегистрирован: 10 сен 2009, 14:35

Сообщение Centast » 15 май 2010, 19:16

Не выводит ничего, никаких ошибок. Есть ощущение, что может когда ядро системы собиралось, что не так было указано.
Сам он очень интересно работает, потому как на первых парах слушает, выводит информацию, что мол такие то пакеты проходят, а когда пакетов нет отрубается.
Попробую пока ещё повылавливать его ошибку

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

Сообщение anest » 16 май 2010, 03:54

я так понимаю - если не корректно работает - надо собрать код с ключом для дебагера и запустить через него. когда вывалится - дебагер покажет почему и где.
ps: ./configure --help

Centast
Сообщения: 100
Зарегистрирован: 10 сен 2009, 14:35

Сообщение Centast » 16 май 2010, 08:32

У него нет такого. :crazy:

Буду разбираться с gdb. Как раз сейчас пишу софтину для внутреннего биллинга.

Кого интересует вот описание:
Составные части
1. AGI скрипт - вызывается из астериска и обращается к демону за стоимостью звонка
2. Демон (на С++) который держит БД кодов (mysql) городов и стоимостей звонков длиной в минуту, также он считает сколько стоит позвонить куда нибудь, сидит и слушает порт

Будущее:
1. С помощью демона реализовать оценку нагрузки системы, т.к. он будет считать нагрузку на CPU, RAM, сетевой стек смотреть будет (о, может ещё и voipmonitor к нему прикрутить?:P )
2. Реализовать просмотр количества одновременных звонков в системе по разным направлениям, к примеру мобильники и обычные телефоны, внутренняя сеть вместе с нагрузкой на систему и проход трафика

Centast
Сообщения: 100
Зарегистрирован: 10 сен 2009, 14:35

Сообщение Centast » 16 май 2010, 15:37

Вообщем проблема была из-за libpcap, сейчас исправлена. Исходники исправленные у меня есть, скоро выложат новую версию на svn.

fabi
Сообщения: 37
Зарегистрирован: 05 авг 2008, 09:11

Сообщение fabi » 18 май 2010, 09:17

демон пишет в базу спустя некоторое время, это только у меня так или у всех ?
интересно, а ip откуда берется, вроде как в бд не пишется ...

Centast
Сообщения: 100
Зарегистрирован: 10 сен 2009, 14:35

Сообщение Centast » 18 май 2010, 18:47

да, он заносит информацию через некоторое время в БД
Про какой ip вы говорите?

Ответить