[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openser-users
Subject:    [SR-Users] Missing accounting events in ACC table
From:       Muhammad Shahzad <shaheryarkh () gmail ! com>
Date:       2014-12-23 20:45:36
Message-ID: CAFZQphySVeV2UE_u+kUc7kO=KTvKWbqB1SW-WDEV0nByJ=t0Pg () mail ! gmail ! com
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


Hi,

About 3 weeks ago i upgraded one of my production server with latest stable
kamailio version 4.2.1-fad00a. Now i am getting a lot of complaints about
missing CDR events in ACC table. I observe following problems,

1. There are only BYE records in acc table, no record for INVITE or ACK.
2. In kamailio logs when ACK is received against 200 OK response for
INVITE, i see following errors,

--
ERROR: <core> [parser/parse_from.c:113]: parse_from_uri(): failed to parse
From uri
ERROR: pv [pv_core.c:434]: pv_get_xto_attr(): cannot parse From URI
NOTICE: <script>: [udp:<null>@1.0.0.127:5060]: Call from 'you@kamailio.org'
to 'you@kamailio.org' has been hanged up by '<null>' at '1419364717.255484'
--

Of course all these errors are bogus, I have checked all headers in ACK
(not just FROM header), they all seem perfectly fine and valid.

3. Then the dialog times out,

--
WARNING: dialog [dlg_handlers.c:1440]: dlg_ontimeout(): timeout for dlg
with CallID '6D8BD23CAC65AE3C1DE1D0B531F87B8CFEAA9CB9' and tags
'1D3ECD34F5731AB845BA3064AC95BB2D'
'7f55e81e0630-100007f-13c4-6009-2440a4-5fa31570-2440a4'
--

4. Any further sequential requests complain about "unable to find dialog",
e.g.

--
NOTICE: <script>: Sequencial 'BYE' request received from caller
ERROR: uac [replace.c:591]: restore_uri(): new URI [] shorter than old URI [
sip:00xxxxxxxxxx@sip.domain.com]
WARNING: dialog [dlg_handlers.c:1174]: dlg_onroute(): unable to find dialog
for BYE with route param '5ae1.d595' [7845:22877]
--

5. However the acc record for BYE is written to db and log file,

--
NOTICE: acc [acc.c:318]: acc_log_request(): ACC: transaction answered:
timestamp=1419364760;method=BYE;from_tag=7f55e81e0630-100007f-13c4-6009-2440a4-5fa3157 \
0-2440a4;to_tag=1D3ECD34F5731AB845BA3064AC95BB2D;call_id=6D8BD23CAC65AE3C1DE1D0B531F87B8CFEAA9CB9;code=200;reason=OK;src_user=00xxxxxxxxxx;src_domain=
 sip.domain.com
;src_ip=xx.xx.xx.xx;dst_ouser=+1xxxxxxxxxx;dst_user=1xxxxxxxxxx;dst_domain=yy.yy.yy.yy
                
--


The same config was working fine with older version 4.2.0-97cab8. The
kamailio config i am using is pretty much standard,

--
#!define FLT_ACC 1
#!define FLT_ACCMISSED 2
#!define FLT_ACCFAILED 3
#!define FLT_DLG 4

...

modparam("acc", "early_media", 1)
modparam("acc", "report_ack", 1)
modparam("acc", "report_cancels", 1)
modparam("acc", "detect_direction", 1)
modparam("acc", "log_flag", FLT_ACC)
modparam("acc", "log_missed_flag", FLT_ACCMISSED)
modparam("acc", "failed_transaction_flag", FLT_ACCFAILED)
# log to db
modparam("acc", "db_flag", FLT_ACC)
modparam("acc", "db_missed_flag", FLT_ACCMISSED)
modparam("acc", "db_url", "DBURL")

...

request_route {
    # per request initial checks
    route(REQINIT);

    # NAT detection
    route(NATDETECT);

    # handle requests within SIP dialogs
    route(WITHINDLG);

    # CANCEL processing
    if (is_method("CANCEL")) {
        if (t_check_trans()) {
            t_relay();
        };
        exit;
    };

    #### only initial requests (no To tag) ####
    t_check_trans();

....

    # account only INVITEs
    if (is_method("INVITE")) {
        setflag(FLT_DLG); # create dialog
        setflag(FLT_ACC); # do accounting
        setflag(FLT_ACCFAILED); # ... even if the transaction fails

        $avp(dlg_timeout) = 60;
        dlg_manage();
....

}

--

Any ideas why its happening? Since it is 3 weeks old so may be problem has
already been spotted and fixed by someone else. Otherwise let me know how
can i provide more info to help fix this issue.

Thank you.


[Attachment #5 (text/html)]

<div dir="ltr"><div>Hi,<br><br></div><div>About 3 weeks ago i upgraded one of my \
production server with latest stable kamailio version 4.2.1-fad00a. Now i am getting \
a lot of complaints about missing CDR events in ACC table. I observe following \
problems,<br><br></div><div>1. There are only BYE records in acc table, no record for \
INVITE or ACK.<br></div><div>2. In kamailio logs when ACK is received against 200 OK \
response for INVITE, i see following errors,<br><br>--<br>ERROR: &lt;core&gt; \
[parser/parse_from.c:113]: parse_from_uri(): failed to parse From uri <br>ERROR: pv \
[pv_core.c:434]: pv_get_xto_attr(): cannot parse From URI <br>NOTICE: &lt;script&gt;: \
[udp:&lt;null&gt;@<a href="http://1.0.0.127:5060">1.0.0.127:5060</a>]: Call from \
&#39;<a href="mailto:you@kamailio.org">you@kamailio.org</a>&#39; to &#39;<a \
href="mailto:you@kamailio.org">you@kamailio.org</a>&#39; has been hanged up by \
&#39;&lt;null&gt;&#39; at \
&#39;1419364717.255484&#39;<br>--<br></div><div><br></div><div>Of course all these \
errors are bogus, I have checked all headers in ACK (not just FROM header), they all \
seem perfectly fine and valid.<br><br></div><div>3. Then the dialog times \
out,<br><br>--<br>WARNING: dialog [dlg_handlers.c:1440]: dlg_ontimeout(): timeout for \
dlg with CallID &#39;6D8BD23CAC65AE3C1DE1D0B531F87B8CFEAA9CB9&#39; and tags \
&#39;1D3ECD34F5731AB845BA3064AC95BB2D&#39; \
&#39;7f55e81e0630-100007f-13c4-6009-2440a4-5fa31570-2440a4&#39;   \
<br>--<br><br></div><div>4. Any further sequential requests complain about \
&quot;unable to find dialog&quot;, e.g.<br><br>--<br>NOTICE: &lt;script&gt;: \
Sequencial &#39;BYE&#39; request received from caller<br>ERROR: uac [replace.c:591]: \
restore_uri(): new URI [] shorter than old URI [<a \
href="mailto:sip%3A00xxxxxxxxxx@sip.domain.com">sip:00xxxxxxxxxx@sip.domain.com</a>]<br>WARNING: \
dialog [dlg_handlers.c:1174]: dlg_onroute(): unable to find dialog for BYE with route \
param &#39;5ae1.d595&#39; [7845:22877]<br>--<br><br></div><div>5. However the acc \
record for BYE is written to db and log file,<br><br>--<br>NOTICE: acc [acc.c:318]: \
acc_log_request(): ACC: transaction answered: \
timestamp=1419364760;method=BYE;from_tag=7f55e81e0630-100007f-13c4-6009-2440a4-5fa3157 \
0-2440a4;to_tag=1D3ECD34F5731AB845BA3064AC95BB2D;call_id=6D8BD23CAC65AE3C1DE1D0B531F87B8CFEAA9CB9;code=200;reason=OK;src_user=00xxxxxxxxxx;src_domain=<a \
href="http://sip.domain.com">sip.domain.com</a>;src_ip=xx.xx.xx.xx;dst_ouser=+1xxxxxxx \
xxx;dst_user=1xxxxxxxxxx;dst_domain=yy.yy.yy.yy<br>--<br></div><div><br><br></div><div>The \
same config was working fine with older version 4.2.0-97cab8. The kamailio config i \
am using is pretty much standard,<br><br>--<br>#!define FLT_ACC 1<br>#!define \
FLT_ACCMISSED 2<br>#!define FLT_ACCFAILED 3<br>#!define FLT_DLG \
4<br><br>...<br><br>modparam(&quot;acc&quot;, &quot;early_media&quot;, \
1)<br>modparam(&quot;acc&quot;, &quot;report_ack&quot;, \
1)<br>modparam(&quot;acc&quot;, &quot;report_cancels&quot;, \
1)<br>modparam(&quot;acc&quot;, &quot;detect_direction&quot;, \
1)<br>modparam(&quot;acc&quot;, &quot;log_flag&quot;, \
FLT_ACC)<br>modparam(&quot;acc&quot;, &quot;log_missed_flag&quot;, \
FLT_ACCMISSED)<br>modparam(&quot;acc&quot;, &quot;failed_transaction_flag&quot;, \
FLT_ACCFAILED)<br></div><div># log to db<br></div><div>modparam(&quot;acc&quot;, \
&quot;db_flag&quot;, FLT_ACC)<br>modparam(&quot;acc&quot;, \
&quot;db_missed_flag&quot;, FLT_ACCMISSED)<br>modparam(&quot;acc&quot;, \
&quot;db_url&quot;, &quot;DBURL&quot;)<br><br>...<br><br></div><div>request_route \
{<br>       # per request initial checks<br>       route(REQINIT);<br><br>       # \
NAT detection<br>       route(NATDETECT);<br><br>       # handle requests within SIP \
dialogs<br>       route(WITHINDLG);<br><br>       # CANCEL processing<br>       if \
(is_method(&quot;CANCEL&quot;)) {<br>               if (t_check_trans()) {<br>        \
t_relay();<br>               };<br>               exit;<br>       };<br><br>       \
#### only initial requests (no To tag) ####<br>       \
t_check_trans();<br><br>....<br><br>       # account only INVITEs<br>       if \
(is_method(&quot;INVITE&quot;)) {<br>               setflag(FLT_DLG); # create \
dialog<br>               setflag(FLT_ACC); # do accounting<br>               \
setflag(FLT_ACCFAILED); # ... even if the transaction fails<br><br>               \
$avp(dlg_timeout) = 60;<br>               \
dlg_manage();<br>....<br><br>}<br></div><div><br></div><div>--<br><br></div><div>Any \
ideas why its happening? Since it is 3 weeks old so may be problem has already been \
spotted and fixed by someone else. Otherwise let me know how can i provide more info \
to help fix this issue.<br><br></div><div>Thank \
you.<br></div><div><br></div><div><br></div></div>



_______________________________________________
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


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic