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

Собственный биллинг Поминутный подсчет в Realtime

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

Собственный биллинг Поминутный подсчет в Realtime


Доброго времени суток. Возможно ответ на мой вопрос элементарный, но пока не могу увидеть оптимального решения. Ситуация такая: Имею asterisk1.4.21 с realtime в mysql, самописный интерфейс управления и биллинг на AJAX, отображение звонков и графики и т.п. делал под собственные нужды. До текущего момента функционал полностью удовлетворял.
Возникла необходимость считать поминутно в момент когда channel находиться в активном состоянии, т.е. звонок еще не закончился, а поэтому информация в базу еще не свалился, а значит и обработать его я не могу.
Скорее всего функционал a2billing более чем достаточен для этой задачи, но переходить на a2billing только из за этого очень бы не хотелось, поэтому рискну поизобретать велосипед.
Кто знает как проконтролировать звонок либо из стандартных функций, либо из AGI, не важно каким образом, задайте plz вектор куды двигаться.
#2

а можно какнить поглядеть на ваши разработки? хоть одним глазом.
#3

Пожалуйста, скринов мне не жалко Very Happy Эт не Trixbox, но для меня роднее.
#4

Если Вы имеете в виду разрыв сессии для припейд-абонентов - то не так это уже и сложно.
A2Billing как это делает - перед началом вызова вычисляет на основании баланса и цены направления максимальное время сессии, и подставляет результат в параметр L(XXX:XXX:XXX) команды Dial. Как Вы уже понимаете, рвет разговор уже сам астериск, а не биллинг.
#5

Вчера об этом подумал, и начал делать. Значит мысль была правильной Very Happy Маленький момент, исходя из логики баланс может оказаться минусовой если 2 абонента одновременно начинают звонить. Хотя это не так существенно. Еще подскажите, как в аналогии a2billing делает пересчет баланса? Пока что мысль ежеминутно по крону запускать скрипт.
#6

скриншоты вполне симпатичные, спасибо. а это билинг и есть на скриншоте?
a2b кстати в минус и уходит иногда, причем даже если один (а не два) пользователя звонит - не помню уже в чем там проблема но она есть очень давно уже. правда суммы в минусе мизерные поэтому не критично. возможно в последних версиях исправили, я не в курсе.
#7

To sea80, здорово, мы тоже занимаемся изобретением велосипеда в плане билинга Smile
если есть на то добрая воля и желание, было бы весьма позновательно познокомится с продуктом.
#8

Цитата:
скриншоты вполне симпатичные, спасибо. а это билинг и есть на скриншоте?

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

Цитата:
To sea80, здорово, мы тоже занимаемся изобретением велосипеда в плане билинга Smile
если есть на то добрая воля и желание, было бы весьма позновательно познокомится с продуктом.

По поводу продукта я скромно промолчу. Это всего-лишь небольшая надстройка над realtime, причем несколько специфичная, что порекомендовать кому-то попользоваться я бы не рискнул. Т.к. это первая моя тренировка когда знакомился с AJAX.
Хотя работает достаточно стабильно. Отображение звонков происходит фактически в режиме реального времени, как только звонок падает в базу, без перезагрузки страницы инжектом в DOM, если не заданы критерии отбора, либо по фильтру. Самый главный минус это то, что в Asterisk нашел баг, который не позволяет работать с экстеншенами вида
exten => xxx/xxx,1... Поэтому половину настроек можно делать в вебинтерфейсе а половину в конфигах. А так, у кого есть желание пообщаться, пишите в личку, спишемся. Одному делать всегда сложнее.
#9

sea80, на соседнем поле вербуют невербально в близкий же проект - http://asterisk-support.ru/forum/topics/4623
#10

Отрицательный баланс решался у меня путём ограничения одновременных звонков при достижении баланса определённых отметок
остаток $100 - ограничение 20 звонков
остаток $20 - ограничение 5 звонков
остаток $5 - ограничение 5 звонков c email уведомлением о ограничении звонков и состояние баланса с предложением пополнить
остаток $0 - при попытке звонков создаётся event , в конце часа высылается по email (не зависимо от кол-ва попыток звонков в течении часа - создаётся один event)

обрыв звонка и в правду делается астериском по достижении максимално-допустимой длительности,
но иногда бывает нужно принудительно корректно убить звонок - окончание периода, либо ребут сервера (нужно же пробилить звонок успеть)
тогда в command-line астериску идёт команда, которая получена от билнг сервера (любым путём там уже - даже обычной посылкой http get запроса через apache)
#11

sea80 @ Сб Май 09, 2009 10:26 писал(а):
Пожалуйста, скринов мне не жалко Very Happy Эт не Trixbox, но для меня роднее.

Есть возможность пощупать Ваш скрипт на своем сервере?