Hello,<br><br>I&#39;m looking for explanations about parallel forking and branch flags.<br>I&#39;m deeply annoyed by this feature ...<br><br>I need to set up different parameters (like rtpproxy, from display, accounting, ...) per contact.<br>

<br>actually, I retrieve a list of contact using an AVP, in the format that the core function &quot;while&quot; can use.<br><br>It&#39;s working fine when there are no manipulation or no (new) callee parameters to add :<br>

<br>route[FORK] {<br>    xlog(&quot;L_NOTICE&quot;,&quot;parallel fork requested&quot;);<br>    $var(i) = 0;<br>    while ($var(i) &lt; $(avp(callee_fork){param.count})) {<br>            $avp(callee_uri) = $(avp(callee_fork){param.valueat,$var(i)});<br>

            $ru = $avp(callee_uri);<br>            $avp(callee_username) = $rU;<br>            $avp(callee_realm) = $rd;<br>            setbflag(27);<br>            lookup(&quot;location&quot;,&quot;mb&quot;);<br>            setflag(9);<br>

            $branch = $ru;<br>            append_branch();<br>            $var(i) = $var(i) + 1;<br>    }<br>    route(RTPPROXY);   # rtp proxy set = bflag 11<br>    route(ACCOUNTING); # accounting using $rU. $ru, ...<br>

    route(RELAY);<br>    exit;<br>}<br>route[RELAY] {<br>    t_on_branch(&quot;1&quot;);<br>    t_on_reply(&quot;1&quot;);<br>    t_on_failure(&quot;1&quot;);<br>    t_relay(&quot;0x01&quot;);<br>    exit;<br>}<br><br>At this point, I&#39;m totally lost :<br>

I have to check if a callee need to use rtpproxy, set up the accounting, change the &quot;from&quot; display based on the destination (PSTN vs. local subscriber), and so on.<br>Everything failed, the parameters are always global (based on the branch(&quot;0&quot;)) even if I use branch flag, script flag, or do anything into the branch route.<br>

<br>branch_route[1] {<br>    xlog(&quot;L_NOTICE&quot;,&quot;br1: engage branch $T_branch_idx with R-URI: $T_ruri ($ru)&quot;);<br>    xlog(&quot;L_NOTICE&quot;,&quot;br1: dest set: $ds / dest uri: $du&quot;);<br>    if (isbflagset(11)) {<br>

        xlog(&quot;L_NOTICE&quot;,&quot;br1: rtp proxy set to \&quot;cr\&quot;&quot;);<br>        engage_rtp_proxy(&quot;cr&quot;);<br>    }<br>    if (isbflagset(28)) {<br>            uac_replace_from(&quot;$avp(caller_cli)&quot;,&quot;&quot;);<br>

        }<br>    }<br>}<br><br>did I missed something ???<br><br>Thanks to light my fire, I really need it ...<br><br>.Sam.<br><br>