[OpenSIPS-Users] Logging selected users full SDP
Bogdan-Andrei Iancu
bogdan at voice-system.ro
Tue Feb 10 11:33:34 CET 2009
Hi Matti,
You have two options:
1) per transaction tracing and then do:
setflag(13);
sip_trace();
2) per dialog tracing and do:
trace_dialog();
Note (new need to load the dialog module also).
Regards.
Bogdan
Matti Zemack wrote:
> Thanks Bogdan and Stefano for your replies earlier!
>
>
> Sorry for asking everyone a follow up question so late... Been working
> on other projects for the last week.
> My basic problem is not knowing enough about how to program the config
> in opensips.
> Lots of example scripts would be a big help... (I could set up some sort
> of de-classified, open for everyone, "working config" repository if
> wanted. Maybe on the wiki? Just mail me configs without personal details
> together with some basic info like OpenSIPS version etc.)
>
>
> Anyway, I just can't get the sip_trace() to be true throughout the whole
> DIALOGUE. I'm hoping for sip_trace to work if flag(13) is set. I would
> like all SDP for that user being kept in the sip_trace table. I suppose
> I'm doing things in the wrong way. Most thankful for more advice!
>
> Config file (in shortened form):
> ------------------------------------------------------------------------
> --------------------------------------------
> #Of course loadmodules, and other modparams...
> modparam("auth_db", "load_credentials", "do_siptrace") #
> Individual user's SipTrace-Flag
> modparam("siptrace", "db_url", "the usual DB connect stuff")
> modparam("siptrace", "trace_on", 1)
> modparam("siptrace", "table", "sip_trace")
> modparam("siptrace", "trace_flag", 13)
>
> route{ xlog("\n-- Is Siptrace flag set for subscriber? --
> $avp(s:do_siptrace)\n");
> if (isflagset(13)) {xlog("-- Flag 13 = SET\n");} else {xlog("--
> Flag 13 = NOT set\n");}
>
> # sip_trace(); # NOTE 2
> # setflag(13); # NOTE 2
>
> if (is_method("REGISTER")) {
> if (!www_authorize("", "subscriber")) {
> www_challenge("", "0");
> exit;
> }
> if (!check_to()) {
> sl_send_reply("403","Forbidden auth ID");
> exit;
> }
> if (!save("location")) {
> sl_reply_error();
> } else {
> xlog("Saved new location $from\n");
> if ($avp(s:do_siptrace)==1) {
> xlog("\n-- do_siptrace=TRUE\n");
> # sip_trace(); # This should not be
> needed as I setflag(13) below. NOTE 1.
> setflag(13);
> } else {
> xlog("\n-- do_siptrace=FALSE\n");
> }
>
> ### Below is Working! Insert or Update latest
> registration info in usr_preferences as 'registerkeeper'
> ### for later usage...
> ### Completely separate matter!
> avp_db_query("INSERT INTO usr_preferences
> (username, domain, attribute, value, last_modified)
> VALUES ('$aU', '$od', 'registerkeeper', '$si:$sp
> - $ua', FROM_UNIXTIME('$Ts'))
> ON DUPLICATE KEY UPDATE value='$si:$sp - $ua',
> last_modified=FROM_UNIXTIME('$Ts')");
> }
> exit;
> }
> }
> ------------------------------------------------------------------------
> --------------------------------------------
> As you can see I got to NOTE 1. When user authorizes flag(13) is set.
> But nothing is added to the sip_trace table. If NOTE 1 isn't commented
> my table adds the single REGISTER but nothing else from the dialogue.
>
> A note if I uncomment any of the NOTE 2 statements I get all SIP info
> added to the correct table. But for all users of course.
>
> I understand that there is something fundamental with flag handling
> which I don't understand. Bear with me. One of these days I'll hopefully
> understand?
>
>
> Best Regards,
> Matti Zemack, Stockholm, Sweden
>
>
>
More information about the Users
mailing list