在 Opensips 中使用 avp_db_query 手动保存 cdr

Saving cdrs manually using avp_db_query in Opensips

有没有办法在 opensips 中使用 avp_db_query 手动录制 cdr。我正在使用 ACC table 来记录 cdr,而不是 运行 程序将数据传输到另一个 table。但是由于调用太多,这给我的数据库带来了很多开销。那么有什么方法可以让我使用 AVP_DB_QUERY 将 cdr 直接放入我的实际 table 中,我正在为丢失和未接受的呼叫做,但不知道如何为已应答的呼叫做。

您可以对 OpenSIPS 进行编程,将 CDR 事件推送到 event interface 而不是将它们写入数据库:

do_accounting("evi", "cdr|failed");

接下来,使用 event_route module, you may subscribe to the E_ACC_CDR event by defining the route below, where you can perform your avp_db_query:

event_route [E_ACC_CDR]
{
    fetch_event_params(...);
    avp_db_query(...);
}