[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