Биллинг текущий 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) | |
| Подскажите хоть что-нибудь. Неужели никто не знает? Ато у меня тут завал...
| |
| похоже что-то связано с несовместимостью постгреса 8.3 http://people.planetpostgresql.org/peter ... L-8.3.html | |
| Вот ответ, если кому надо. http://forum.asterisk2billing.org/viewtopic.php?t=4005 | |