LINUX.ORG.RU
ФорумAdmin

Статистика звонков по регионам.

 ,


0

1

Добрый день.

Есть астериск и лог звонков в mysql. нужен простой анализатор, который бы выдавал мне: такая-то дата, столько-то входящих уникальных звонков из такого региона, столько-то из другого, столько-то с мобильных. именно количество звонков в указанный промежуток времени.

Знания позволяют написать скрипт на php, который бы в вебе мне все это красиво выводил, но не напишу ли я велосипед? может есть готовые решения?

Не копался в asteriske, исходим из следующего:

- в базе в таблице звонков (здесь - «calls») есть поля начала звонка («callstart») и номера а («numa»);

-в базе есть таблица префиксов регионов (здесь - «callsources»), в которой есть как минимум поля префикса региона («prefix») и наименование региона («prefixname»).

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

Выполняем запрос

SELECT b.prefix, b.prefixname, COUNT(*) AS callscount
FROM calls a, callsources b
WHERE a.callstart BETWEEN ? AND ?
 AND LEFT(a.numa, CHAR_LENGTH(b.prefix)) = b.prefix
GROUP BY b.prefix, b.prefixname
ORDER BY b.prefix;
в котором "?" заменяем на соответствующие начало/окончание периода, выполняем запрос и выводим колонки префикса, наименования и количества звонков.

Особенность - одному региону соответствует один префикс, в противном случае необходимо вводить ещё одну промежуточную таблицу перекодировки префиксов в коды регионов.

Одно жирное «но»: если номер б всегда однозначный, то номер а операторы присылают как левая пятка захочет, например, сплошь и рядом для нац. звонков не присылают первую «7», и *только* по префиксу в этом случае отличит Краснодар от Китая невозможно, нужно смотреть ещё на длину номера а, что, тем не менее, тоже не панацея.

berrywizard ★★★★★ ()

если заказчик платит я бы написал

vxzvxz ★★★ ()

но не напишу ли я велосипед?

Попробуй вот этим к примеру? ответить на свой вопрос:

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

Не напишешь!

petav ★★★★★ ()

Если будет функциональная морда - это не велосипед.
Главное - найти и распарсить списки региональных кодов. А с этим беда. К примеру:

Все страны > Европа > Австрия > Города > Бад-Халль
Обратите внимание. Бад-Халль не единственный город, что имеет телефонный код 7258.
Обердердинген Флехинген (Германия).

Инфу брал тут - http://www.kodcity.ru/stranici/country/gorod_strani.php?gorod=104

riki ★★★★ ()
prefixes (id, prefix, description);
calls (..., direction, timestamp, destination,...);

SELECT data.direction, data.prefix_id, count(*) FROM (SELECT *, (SELECT prefixes.id FROM prefixes WHERE calls.destination LIKE prefixes.prefix + '%' ORDER BY length(prefixes.prefix) DESC LIMIT 1) AS prefix_id FROM calls WHERE) AS data GROUP BY data.direction, data.prefix_id

как то так или типа того

exception13 ★★★★★ ()
Последнее исправление: exception13 (всего исправлений: 1)
Ответ на: комментарий от petav

Не напишешь!

каждый пишет свой велосипед. у меня например есть наколенная поделка которая показывает в «реалтайме» активность поступления вызовов по ЗУЭС/РУЭС

exception13 ★★★★★ ()
Ответ на: комментарий от exception13

Моя цитата из контекста вырвана. Читается не так, как я закладывал смысл

petav ★★★★★ ()

Анонимус дал верную ссылку на сайт.

invokercd ★★★★ ()

riki на самом деле 100% точность не нужна. мне сказали что и 10% погрешность сойдет. да и звонки у нас в основном из России идут. Редко из стран СНГ.

exception13 спасибо, но для этого еще придется писать гуй, т.к. это надо не мне, а людям-маркетологам. поэтому и просил готовое решение, ибо лень писать это.

Анонимусу спасибо, очень похоже на то что нужно. хоть судя по скриншотам оно анализирует по странам, может получится переписать для России. жаль что оно на питоне.

null123 ★★ ()
Ответ на: комментарий от null123

спасибо, но для этого еще придется писать гуй, т.к. это надо не мне, а людям-маркетологам. поэтому и просил готовое решение, ибо лень писать это.

не гуй, веб-морды достаточно. да и в случае веб-морды ты сможешь на стороне сервера разграничить права на записи.

exception13 ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.