Проблема: 'no-enough-credit' при отключении раты с самым длинным префиксом (под failover_lc_prefix = YES)

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

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

Ответить
lexij
Сообщения: 1
Зарегистрирован: 17 май 2013, 20:14

Проблема: 'no-enough-credit' при отключении раты с самым длинным префиксом (под failover_lc_prefix = YES)

Сообщение lexij » 24 май 2013, 14:34

Добрый день всем!

Вопрос к nixon, специалистам и тем кто знает хоть что-то ведущее к решению.

Уже несколько месяцев как перешли на форк a2billing от nixon.
(Кстати, тогда высылали небольшую поддержку от нас обоих, а сейчас вот выдался случай лично выразить благодарность:
Уважаемый nixon большое спасибо за проделаную работу! Особенно пригодился тогда failover Next trunk. Собственно по нему и вопрос.)

Итак: уже пару недель как появилась такая проблема:

Для звонка на 380572660xyz (xyz - последние три цифры анонимизированы) симулятор выдаёт раты с префиксами 380572 (одна) и несколько с 380.
По 380572 звонок идёт. Но там иногда FAS и пытаюсь отключить рату (endtime=0).
380572 заменяется в симулятое более короткой ратой с 380 в том же транке.
Через 380 есть и более дешёвые и должно было бы идти через какую-то из них, но ...

Система отвечает клиенту : "У Вас есть ... денег. " и сразу за этим - "На Вашем счету недостаточно средств, чтобы осуществить этот звонок" - и тут же "Пожалуйста введите номер или положите трубку".
Астериск-CLI соответственно выдаёт: ... Playing 'prepaid-no-enough-credit' ...
CDR естественно не прописывается - в логах увидите почему именно.

Тоже самое происходит даже если я просто укорачиваю эту рабочую рату 380572 на одну цифру (т.е. использую тот же маршрут) - no-enough-credit!

Деньги у карты есть; Цены на ратах маленькие т.е. многократно меньше кредита карты;
failover_lc_prefix = YES
lcr_mode = 0
Что ещё нужно упомянуть ?

Данный форум и гоогле перелопатил добросовестно, но ничего кроме вот этого не нашёл
http://forum.asterisk2billing.org/viewt ... =22&t=5570

Это дало направление, где смотреть и "насмотрел" что смог (логи ниже), но заний/опыта не хватает понять до конца в чём всё-таки источник проблем -
ПОЭТОМУ ПРОШУ ПОМОЩИ СПЕЦИАЛИСТОВ. Возможно этот вопрос окажется интересен и коммьюнити.

Вот логи двух звонков - первый через 380572 звонит, второй через более короткий префикс - выдаёт 'no-enough-credit'
Незначительные детали как обычные timestamps, uniqueid's - подставил из первого, чтоб не отвлекали при сравнении;
реальные данные - анонимизированы, надеюсь довольно очевидными заменами.

Смотри Attachment1 (правка: атачменты видно после login; почему незнаю)


Вот второй звонок - выдаёт 'no-enough-credit':
Смотри Attachment2 (правка: атачменты видно после login; почему незнаю)



Первое серьёзное (imho) различие во втором звонке увидел вот это:
TOOLONG_DB_QUERY ... итд.
Наколько это фатально - не совсем понимаю. Имхо, это просто запрос длится долго, но ещё не "конец всему".

Далее:
... [[rate-engine: Count Total result 9]] - это понятно, ведь длинную 380572 отключил;

А вот дальше - мне совсем не ясно - почему из 9-ти других ни одна не выбирается ?
.. ну и, как следствие, время по кредиту не высчитывается;
.. ну и, как следствие, autorize нету.

Вопросы:
1. В чём может быть причина такого "расстройства" системы? - Что и где может оказать такое влияние ?

2. Какие ещё настройки, параметры итд важны в этой связи ? - может чего упустил?

3. Как это всё вообще по-возможности быстро и серьёзно освоить (а2биллинг; а2биллинг-nixon's)?

Спасибо заранее.
(Oops! код переделал аттачментами)

С уважением,
Вложения
Attachment2.txt
Attachment2 - no-enough-credit
(22.88 КБ) 22 скачивания
Attachment1.txt
Attachment1 - 1st call successed
(27.89 КБ) 25 скачиваний

Ответить