Hi, On Tue, Sep 13, 2011 at 8:46 AM, Daniel-Constantin Mierla <mico...@gmail.com > wrote:
> Hello, > > just to be sure, you used flag 2 for missed calls, right? I can see it set > in onreply_route. > Yes, I've used #!define FLT_ACCMISSED 2 and setflag(FLT_ACCMISSED) for missed calls. I checked the flag in onreply_route and failure route and they are properly set. > That means the flags are ok now, the issue seems to be in other place. You > don't set any of the accounting flags in request route block, isn't it? I > mean, the first accounting flag (like accounting answered calls or missed > calls) is set in failure route. If so, the acc does not register itself for > a tm callback that is used for handling accounting events. > Actually, I do set other accounting flags in following routes: #!define FLT_ACC 1 #!define FLT_ACCMISSED 2 #!define FLT_ACCFAILED 3 #MAIN ROUTE if (is_method("INVITE")) setflag(FLT_ACC); route[WITHINDLG] { if (has_totag()) { if (loose_route()) { if (is_method("BYE")) { setflag(FLT_ACC); # do accounting ... setflag(FLT_ACCFAILED); # ... even if the transaction fails } ..... route[LOCATION] { # only for people who don't have multiple contacts (no serial forking, not used in reported scenario) if ( is_method("INVITE") && !(isflagset(FLT_USRPREF))) setflag(FLT_ACCMISSED); } #called only for serial forked calls failure_route[FAIL_FORK] { ..... # if second branch set flag setflag(FLT_ACCMISSED); t_flush_flags(); .... # if 3rd branch (voicemail) reset flag resetflag(FLT_ACCMISSED); t_flush_flags(); .... } Now that you've mentioned it, I've removed all other setflag() functions and kept only the ones in FAIL_FORK failure route. There is still no logging of the second branch. > Try to set acc flag for writing to syslog in route {...}, you can reset it > in failure route or onreply_route. Of course, this as an workaround for now, > I will look for a proper solution in case this is the problem. > I'm not sure I can implement needed logic this way. I don't want to account 1st branch. If I set FLT_ACCMISSED flag in route {...} and reset it in on_reply and failure route, it will be too late, the missed call will already be accounted. Or, I'm missing something? Cheers Ozren On 9/12/11 3:29 PM, Ozren Lapcevic wrote: > >> >> I have attached log file. I have single onreply_route[REPLY_ONE] used for >> all replies. Grep "REPLY_ONE, FLAGS" to find where the flags are printed. >> Grep "FAIL FORK" for logs from failure route. >> >> Let me know if you need anything else. >> >> Cheers >> Ozren >> > > -- > Daniel-Constantin Mierla -- http://www.asipto.com > Kamailio Advanced Training, Oct 10-13, Berlin: http://asipto.com/u/kat > http://linkedin.com/in/miconda -- http://twitter.com/miconda > >
_______________________________________________ SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users