[SR-Users] Dialog Module - how???
Nathan Angelacos
nangel at nothome.org
Thu Oct 14 18:22:06 CEST 2010
Hi Nicolas,
On 10/14/10 08:50, "Nicolas RĂ¼ger" wrote:
> Hello,
>
> I'm trying to get dialog module working..
>
> ...my problem is that nothing is stored in the database in table "dialog" yet. I'm looking for CDRs there...
>
> Can anyone please help me, so that I can see the CDRs in the database!???
>
The dialog module keeps track of in progress dialogs (calls); so what
would be in the database are active calls, not CDRs.
You'll need to (manually) record the status of the dialog at the end of
the dialog:
>
> I inserted in kamailio.cfg:
>
> [...]
>
> loadmodule "dialog.so"
>
> [...]
>
> modparam("dialog", "db_url", "mysql://XXX:XXX@localhost/openser")
> modparam("dialog", "db_mode", 1)
> modparam("dialog", "dlg_flag", 4)
> modparam("dialog", "dlg_match_mode", 1)
>
> [...]
>
> route {
> if (is_method("INVITE")) {
> dlg_manage();
> }
> }
Actually, you want dlg_manage() to be called for every message, not just
"INVITES"
route {
dlg_manage();
}
>
> [...]
>
Then, when you see a "BYE", you can record the CDR, something like:
($dlg() vars are in the pseudovariables docs)
route {
dlg_manage();
if (is_method("BYE")) {
$var(elapsed) = ( $Ts - $dlg(start_ts) );
xlog ("L_INFO", "Completed $dlg(from_uri) to $dlg(to_uri) -
$var(elapsed) duration");
}
}
>
> I'm actually not sure what "dlg_flag" is good for, but kamailio doesn't start without.
>
As Timo mentioned, "dlg_flag" is the thing that kamailio uses to
actually make the dialog module start tracking "dialogs" and not
"transactions"
> Thanks for your help...
FWIW, since the db_mode is for "dialog changes", db_mode 4 can be hard
on your system - every change in state is reflected in the database.
We use db_mode 3 in production for for performance reasons.
>
> Regards,
>
> Nicolas
>
More information about the sr-users
mailing list