From kelchy@gmail.com Thu Dec 19 01:55:08 2013 From: Kelvin Chua 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 08:55:02 +0800 Message-ID: In-Reply-To: <52B15A91.1020108@gmail.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1290540060==" --===============1290540060== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Also noticed $ru pegged at the first branch's ruri upon entering failure_route for succeeding branches. Is this also an expected behaviour? Should it not contain the ruri of the previous failed branch? On Dec 18, 2013 4:19 PM, "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 this > behaviour is wrong. $rd in acc should contain the failed gateway's ip and > not the previous one. > On Dec 17, 2013 4:43 PM, "Daniel-Constantin Mierla" > 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 < >> miconda(a)gmail.com> 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_ouser=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: