From miconda@gmail.com Thu Dec 19 21:20:34 2013 From: Daniel-Constantin Mierla To: sr-users@lists.kamailio.org Subject: Re: [SR-Users] ACC issue on 4.0 trunk when doing serial fork Date: Thu, 19 Dec 2013 21:20:18 +0100 Message-ID: <52B35502.90101@gmail.com> In-Reply-To: <52B15A91.1020108@gmail.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1225528651==" --===============1225528651== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Hello, can you try the latest master branch or pick the patch from commit=20 81b9c83b2fa3bd32d502a1ae9014cc7d6747e710? If all is ok, I will backport to 4.1 -- 4.0 might need an additional=20 patch to get access to picked branch, iirc, that was added in 4.1. Cheers, Daniel On 18/12/13 09:19, Daniel-Constantin Mierla wrote: > Hello, > > I will look over it -- I wanted to know exactly the situation. > > Cheers, > Daniel > > On 17/12/13 15:54, Kelvin Chua wrote: >> >> Yes, a local timeout. The call was sent to a bogus IP. i still feel=20 >> this behaviour is wrong. $rd in acc should contain the failed=20 >> gateway's ip and not the previous one. >> >> On Dec 17, 2013 4:43 PM, "Daniel-Constantin Mierla"=20 >> > wrote: >> >> It is a local timeout, not a 408 received from callee, right? >> >> Daniel >> >> On 17/12/13 05:16, Kelvin Chua wrote: >>> it's for a 408 timeout logged into missed_calls >>> >>> Kelvin Chua >>> >>> >>> On Mon, Dec 16, 2013 at 8:52 PM, Daniel-Constantin Mierla >>> > wrote: >>> >>> Hello, >>> >>> is it for a 200ok reply or >=3D300? >>> >>> In the code, the r-uri from the branch that is used for >>> relaying the reply should be used. >>> >>> Cheers, >>> Daniel >>> >>> >>> On 14/12/13 12:15, Kelvin Chua wrote: >>>> this is the 2nd branch, the first branch is sent to >>>> 100.200.30.40 >>>> $rd is set properly according to xlog (10.20.30.40). >>>> tcpdump proves packets are sent to 10.20.30.40 >>>> however, after failing, ACC logs dst_domain as the previous >>>> branch's $rd (100.200.30.40), not the current one. >>>> is this the expected behavior? seems incorrect. >>>> >>>> modparam("acc", >>>> "db_extra","src_user=3D$fU;src_domain=3D$fd;src_ip=3D$si;dst_ous= er=3D$tU;dst_user=3D$rU;dst_domain=3D$rd;callrate=3D$avp(callrate)") >>>> >>>> failure_route[SERIAL] { >>>> if (is_method("INVITE|SUBSCRIBE")) { >>>> t_on_branch("MANAGE_BRANCH"); >>>> t_on_reply("MANAGE_REPLY"); >>>> } >>>> if ( isbflagset(FLB_CANCEL) ) { >>>> xlog("cancel bflag set!\n"); >>>> exit; >>>> } else if ( !t_next_contacts() ) { >>>> xlog("serial fork done!\n"); >>>> t_reply("404", "Not here or busy"); >>>> exit; >>>> } else { >>>> setflag(FLT_ACC); >>>> setflag(FLT_ACCMISSED); >>>> xlog("failure_route new branch - $ru\n"); >>>> t_on_failure("SERIAL"); >>>> $avp(callrate) =3D ""; >>>> if ( $sel(ruri.params["rtmr"]) !=3D $null ) { >>>> t_set_fr($sel(ruri.params["rtmr"])*1000,$sel(ruri.params["dtmr"]= )*1000); >>>> $avp(ABSOLUTE) =3D $sel(ruri.params["tmr"]); >>>> } >>>> if ( $sel(ruri.params["callrate"]) !=3D $null ) >>>> $avp(callrate) =3D $sel(ruri.params["callrate"]); >>>> xlog("failure_route sending INVITE to $rd\n"); >>>> t_relay(); >>>> } >>>> } >>>> >>>> ERROR: