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-5fa31570-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.