1

我正在使用 Opensips 2.3 并且已经在做会计。但是我有一个非常不同的数据库,我已经配置为使用 avp_db 手动执行缺失/通道超出 CDRS。

有没有办法对已建立的呼叫进行记帐,因为在自动模式中,它在 acc 表中进行所有记帐,但它也以相同的方式进行已建立、丢失和忙的呼叫,但我只想做已建立的呼叫 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

4

1 回答 1

1

使用 OpenSIPS 2.2+,您可以通过在收到初始 INVITE 时指定cdr选项来仅对已建立的呼叫(200 OK +(端点再见,对话到期或强制结束))启用记帐:do_accounting()

route {

    if (has_totag()) {
        ...
        exit;
    }

    ...

    if (is_method("INVITE"))
        do_accounting("db", "cdr");

    ...

    t_relay();
}
于 2018-05-30T13:57:32.567 回答