Как можно вести учет вручную в opensips - PullRequest
0 голосов
/ 30 мая 2018

Я использую Opensips 2.3 и уже веду учет.Но у меня есть совсем другая база данных, где я уже настроен на пропуск / превышение канала CDRS вручную, используя avp_db.

Есть ли способ вести учет установленного вызова, так как в автоматическом режиме он выполняет весь учет вВ соответствии с таблицей, но она также выполняет установленные, пропущенные и занятые вызовы таким же образом, но я хочу делать только установленные вызовы 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

1 Ответ

0 голосов
/ 30 мая 2018

Используя OpenSIPS 2.2+, вы можете включить учет только для установленных вызовов (200 OK + (конечная точка BYE, окончание диалога или принудительное завершение)), указав параметр cdr do_accounting() при получении начального сообщения INVITE:

route {

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

    ...

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

    ...

    t_relay();
}
...