如何在opensips中手动进行会计
How can do accounting manually in opensips
我正在使用 Opensips 2.3 并且已经在做会计了。但是我有一个非常不同的数据库,我已经配置为 missing/channel 使用 avp_db.
手动超过 CDRS
有没有一种方法可以对已建立的呼叫进行计费,因为它会自动在 acc table 中进行所有计费,但它也会以相同的方式对已建立、未接和占线的呼叫进行计费,但我想要只做已建立的呼叫 CDRS。对于自动帐户,我使用以下 acc 命令
loadmodule "acc.so"
modparam("acc", "early_media", 0)
modparam("acc", "report_cancels", 0)
modparam("acc", "detect_direction",0)
modparam("acc", "extra_fields", "db: a->caller_id; b->callee_id") #Extra Data
在路由部分我放了下面的脚本
if (is_method("BYE")) {
$acc_extra(a) = $fu;
$acc_extra(b) = $tu;
do_accounting("db","failed");
我只想要呼叫实际终止的地方,然后我已经有了 $avp(timestart) 值,所以我可以扣除和计算付款并使用 avp_db 插入 CDRS
使用 OpenSIPS 2.2+,您可以通过在接收时指定 do_accounting()
的 cdr
选项,仅对已建立的呼叫启用计费(200 OK +(端点 BYE,对话到期或强制结束))初始邀请:
route {
if (has_totag()) {
...
exit;
}
...
if (is_method("INVITE"))
do_accounting("db", "cdr");
...
t_relay();
}
我正在使用 Opensips 2.3 并且已经在做会计了。但是我有一个非常不同的数据库,我已经配置为 missing/channel 使用 avp_db.
手动超过 CDRS有没有一种方法可以对已建立的呼叫进行计费,因为它会自动在 acc table 中进行所有计费,但它也会以相同的方式对已建立、未接和占线的呼叫进行计费,但我想要只做已建立的呼叫 CDRS。对于自动帐户,我使用以下 acc 命令
loadmodule "acc.so"
modparam("acc", "early_media", 0)
modparam("acc", "report_cancels", 0)
modparam("acc", "detect_direction",0)
modparam("acc", "extra_fields", "db: a->caller_id; b->callee_id") #Extra Data
在路由部分我放了下面的脚本
if (is_method("BYE")) {
$acc_extra(a) = $fu;
$acc_extra(b) = $tu;
do_accounting("db","failed");
我只想要呼叫实际终止的地方,然后我已经有了 $avp(timestart) 值,所以我可以扣除和计算付款并使用 avp_db 插入 CDRS
使用 OpenSIPS 2.2+,您可以通过在接收时指定 do_accounting()
的 cdr
选项,仅对已建立的呼叫启用计费(200 OK +(端点 BYE,对话到期或强制结束))初始邀请:
route {
if (has_totag()) {
...
exit;
}
...
if (is_method("INVITE"))
do_accounting("db", "cdr");
...
t_relay();
}