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

Asterisk+a2billing Не ищет рейт.

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

OC -- FC9 86_64.
Биллинг текущий 1.3.3
Переставлял рабочую систему со старого сервака на новый. Скопировал базу (Постгрес) mya2billing.
Но биллинг не ищет направление. Включил дебаг:

Код:
pbxm*CLI>
......
......
a2billing.php|1: file:Class.A2Billing.php - line:621 - get_agi_request_parameter = 7770777 ; SIP/7770777-01603670 ; 1216229349.5 ; 50410 ; 380442306480
a2billing.php|1: file:a2billing.php - line:145 - [NO ANSWER CALL]
a2billing.php|1: file:Class.A2Billing.php - line:1640 - SELECT credit, tariff, activated, inuse, simultaccess, typepaid, creditlimit, language, removeinterprefix, redial, enableexpire, date_part('epoch',expirationdate), expiredays, nbused, date_part('epoch',firstusedate), date_part('epoch',cc_card.creationdate), cc_card.currency, cc_card.lastname, cc_card.firstname, cc_card.email, cc_card.uipass, cc_card.id_campaign, cc_card.id, useralias FROM cc_card LEFT JOIN cc_tariffgroup ON tariff=cc_tariffgroup.id WHERE username='50410'
a2billing.php|1: file:Class.A2Billing.php - line:1714 - [SET CHANNEL(language) ru]
a2billing.php|1: file:Class.A2Billing.php - line:654 - [CARD STATUS UPDATE : UPDATE cc_card SET inuse=inuse+1 WHERE username='50410']
a2billing.php|1: file:Class.A2Billing.php - line:1400 - [AUTO SetCallerID]
a2billing.php|1: file:Class.A2Billing.php - line:1406 - [REQUESTED SetCallerID : 7770777]
a2billing.php|1: file:Class.A2Billing.php - line:1417 - [EXEC SetCallerID : 7770777]
a2billing.php|1: file:a2billing.php - line:172 - [CHANNEL STATUS : 4 = Line is ringing]
a2billing.php|1: file:a2billing.php - line:173 - [CREDIT : 100.0000][CREDIT MIN_CREDIT_2CALL : 5]
a2billing.php|1: file:Class.A2Billing.php - line:676 - 1 && && 12&& 0
a2billing.php|1: file:Class.A2Billing.php - line:701 - DESTINATION ::> 380442306480
a2billing.php|1: file:Class.A2Billing.php - line:703 - RULES APPLY ON DESTINATION ::> 380442306480
a2billing.php|1: file:Class.A2Billing.php - line:739 - ERROR ::> RateEngine didnt succeed to match the dialed number over the ratecard (Please check : id the ratecard is well create ; if the removeInter_Prefix is set according to your prefix in the ratecard ; if you hooked the ratecard to the Call Plan)
-- Playing 'prepaid-dest-unreachable' (escape_digits=#) (sample_offset 0)
a2billing.php|1: file:Class.A2Billing.php - line:654 - [CARD STATUS UPDATE : UPDATE cc_card SET inuse=inuse-1 WHERE username='50410']
-- AGI Script a2billing.php completed, returning -1


Но все калпланы и рейты рабочие!
Взял потом сделал DROP DATABASE mya2billing, создал чистую базу из скриптов биллинга, и накликал минимальный путь для звонка (один юзер, 1 калплан, 1 рейт и т д.) Так же не работает. Рейткарт симулятор тоже ничего не показывает.
Лог постгреса показывает такое вот:

Код:
ERROR: функция length(timestamp without time zone) не существует на символе 2120
ПОДСКАЗКА: No function matches the given name and argument types. You might need to add explicit type casts.
КОМАНДА: SELECT
tariffgroupname, lcrtype, idtariffgroup, cc_tariffgroup_plan.idtariffplan, tariffname, destination,
cc_ratecard.id, dialprefix, destination, buyrate, buyrateinitblock, buyrateincrement, rateinitial, initblock, billingblock,
connectcharge, disconnectcharge, stepchargea, chargea, timechargea, billingblocka, stepchargeb, chargeb,
timechargeb, billingblockb, stepchargec, chargec, timechargec, billingblockc,
cc_tariffplan.id_trunk AS tp_id_trunk, tp_trunk.trunkprefix AS tp_trunk, tp_trunk.providertech AS tp_providertech,
tp_trunk.providerip AS tp_providerip, tp_trunk.removeprefix AS tp_removeprefix,
cc_ratecard.id_trunk AS rc_id_trunk, rt_trunk.trunkprefix AS rc_trunkprefix, rt_trunk.providertech AS rc_providertech,
rt_trunk.providerip AS rc_providerip, rt_trunk.removeprefix AS rc_removeprefix, musiconhold,
tp_trunk.failover_trunk AS tp_failover_trunk, rt_trunk.failover_trunk AS rt_failover_trunk,
tp_trunk.addparameter AS tp_addparameter_trunk, rt_trunk.addparameter AS rt_addparameter_trunk, id_outbound_cidgroup,
freetimetocall_package_offer, freetimetocall, packagetype, billingtype, startday, id_cc_package_offer

FROM cc_tariffgroup
RIGHT JOIN cc_tariffgroup_plan ON cc_tariffgroup_plan.idtariffgroup=cc_tariffgroup.id
INNER JOIN cc_tariffplan ON (cc_tariffplan.id=cc_tariffgroup_plan.idtariffplan )
LEFT JOIN cc_ratecard ON cc_ratecard.idtariffplan=cc_tariffplan.id
LEFT JOIN cc_trunk AS rt_trunk ON cc_ratecard.id_trunk=rt_trunk.id_trunk
LEFT JOIN cc_trunk AS tp_trunk ON cc_tariffplan.id_trunk=tp_trunk.id_trunk
LEFT JOIN cc_package_offer ON cc_package_offer.id=cc_tariffgroup.id_cc_package_offer

WHERE cc_tariffgroup.id=1 AND (dialprefix='380442306480' OR dialprefix='38044230648' OR dialprefix='3804423064' OR dialprefix='380442306' OR dialprefix='38044230' OR dialprefix='3804423' OR dialprefix='380442' OR dialprefix='38044' OR dialprefix='3804' OR dialprefix='380' OR dialprefix='38' OR dialprefix='3' OR dialprefix='defaultprefix')
AND startingdate CURRENT_TIMESTAMP OR expirationdate IS NULL OR LENGTH(expirationdate)
#2

Подскажите хоть что-нибудь. Неужели никто не знает? Ато у меня тут завал...
#3

похоже что-то связано с несовместимостью постгреса 8.3

http://people.planetpostgresql.org/peter ... L-8.3.html
#4

Вот ответ, если кому надо. Smile

http://forum.asterisk2billing.org/viewtopic.php?t=4005