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

A2Billing минус CallBack

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

A2Billing минус CallBack


Реализация колбека такова, что демон не обращает внимания на вновь поступающие задания, если он уже выполняет процедуру. Демон освобождается для выполения следующего задания после соединения каналов звонящего с вызываемым (после answer с обеих сторон). Если есть готовое правильное решение для функционирования нормального мультиколбека, присылайте, готов добавить на гитхабе в свою ветку на всеобщее заюзание.
_________________
https://github.com/nixonch/a2billing
#2

Колбэк вызывается через астериск менеджер. Asterisk manager event originate.
Я не пользуюсь постоянно а2биллинг, но скорее всего, демон контролитует весь процесс - он вызывает процедуру и ждет ответа от сервера. Например я в своей программе на руби для генерации отсылок телефонных звонков или факсов так и делаю и поскольку мне надо делать это потоково, но при этом и обрабатывать результаты и писать в базу, я:

1. делаю форк процесса и отдельная нитка шлет один колбэк. Демон на питоне, он это умеет, поправить совсем нетрудно;
2. если мне не нужна обработка, а только сам факт колбэка (смотрите на исхотники модуля, я добавляю в запрос астериск менеджеру такое: Async: true.

Я не дока в питоне, но скорее всего вот здесь:
CallBack/callback-daemon-py/build/lib/callback_daemon/a2b_callback_daemon.py

В процедуре

def perform(self):

Надо делать форк тут: for current_request in request_list:

То есть на каждый найденый номер делать форк.

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


Еще одно, скорее всего надо номера помечать (в базе?) callback_scheduled: true/false, перед активацией ставить метку, после - снимать.
#3

Спасибо. С питоном не дружу. Как вобще areski пришло в голову на питоне это мутить Unknow
Вот для интересующихся... выудил вариант множественного запуска forum.asterisk2billing.org,
но он хромой - сложно ставится и почему-то не срабатывает в 10-15%, да ещё и на каждый
колбек запускает отдельный процесс со всеми либами в памяти.

_________________
https://github.com/nixonch/a2billing
#4

Могу написать рабочий но на руби - те же грабли вам
#5

Не выдержала душа поэта и переписан был этот колбек.
Скачать можно с гитхаба в подписи. Несмотря на то, что демон на пхп - производительность сохранена.
Сделано под службу такси. Одновременных колбеков - до 30. В теории - до 150 должен потянуть XEON 2.6ГГц ОЗУ 4Гб.
Полный реалтайм с отработкой полноценного рейтэнжина.
Поклиентская настройка индивидуальных количеств колбеков и таймингов на разные состояния канала - пока только через админку.
Всем удачных инсталляций!

_________________
https://github.com/nixonch/a2billing
#6

а можно подробности относительно что куда надо.
на сколько я понял addons/daemontools/service/a2b-callback-daemon-php/run надо запихнуть в автозапуск. Он запускает скрипт CallBack/callback-daemon-php/callback_daemon.php
Cronjobs/callback_daemon_check.php - это вставляем в крон.

"Ведь модернизировали, подхватили, перестроились, внедрили новый коэффициент, включаешь — не работает"

Что делать с callback_check.sh ?
#7

sergeagle писал(а):
а можно подробности относительно что куда надо.
на сколько я понял addons/daemontools/service/a2b-callback-daemon-php/run надо запихнуть в автозапуск.
Это для Daemontools только.
Если хотите в автозапуск, то туда только callback_daemon.php нужен.

Цитата:
Он запускает скрипт CallBack/callback-daemon-php/callback_daemon.php
Cronjobs/callback_daemon_check.php - это вставляем в крон.
Чек - только для тех кому нужна красивая таблица в БД для внещнего обработчика. Это сделано для служб такси, т.е. если вам это не надо, то не кроньтесь.

Цитата:
"Ведь модернизировали, подхватили, перестроились, внедрили новый коэффициент, включаешь — не работает"
Что делать с callback_check.sh ?
Ручник, похожий на callback_daemon_check.php, как пример для нуждающихся.
_________________
https://github.com/nixonch/a2billing