1

KamailioにデータベースではなくテキストファイルにCDRを記録させようとしています。呼び出しは正常にルーティングされますが、CDRディレクトリに何も表示されません。これがkamailio.cfgファイルの関連ビットだと私が思うものです。明らかにそれがすべてではありませんが、そのほとんどが3.3.1ディストリビューションに付属するデフォルトです。呼び出しは配布ファイルに従ってルーティングされますが、呼び出しの終了時に/ var / log/kamailioディレクトリには何も書き込まれません。Kamailioはkamailio:kamailioとして実行されており、ディレクトリは同じものによって所有されています。Wiresharkトレースは、正しいシグナリングコードの順序(IVRに招待、試行、200、さようなら)を示し、音声があります。

ありがとう。

`...
loadmodule "dialog.so"
loadmodule "db_flatstore.so"
...
modparam("acc", "db_url", "flatstore:/var/log/kamailio") 
modparam("acc", "early_media", 0)
modparam("acc", "report_ack", 0) 
modparam("acc", "report_cancels", 0)
modparam("acc", "detect_direction", 0)
modparam("acc", "log_flag", FLT_ACC)
modparam("acc", "log_missed_flag", FLT_ACCMISSED)
modparam("acc", "log_extra", 
modparam("acc", "failed_transaction_flag", FLT_ACCFAILED)
modparam("acc", "cdr_enable", 1)
modparam("acc", "cdr_flag", 3)
...
request_route {
    ...
        remove_hf("Route");
        if (is_method("INVITE")) {
                record_route();   
                setflag(FLT_ACC); 
                ds_select_dst("1","4");
                forward();
                exit();   
        }
        ...
}

`

4

1 に答える 1

1

半分の取るに足らない運転を受けた後に問題を見つけました。問題は「forward()」にあります。この場合、アカウンティングレコードは書き込まれません。

forward()を使用する代わりに

if (!t_relay()) {
    sl_reply_error();
}

そして会計記録は魔法のように書かれます。accモジュールのmodparamsもいたるところにありますが、それはまだ進行中の調査であり、ここで抱えていた基本的な問題には影響しません。

私より賢い人がフォワードがCDRを書かない理由を説明できたら、コメントを書いていただければ幸いです。

于 2012-09-19T19:43:03.173 に答える