<div dir="ltr">I&#39;m using uac_redirect module to handle redirect from UA and doing accounting from
openser. Redirect works fine so as cdr but I&#39;m not able to store CDR records for multi-leg accounting properly. <br><br>I have set onreply avp by<div class="Ih2E3d"><br><blockquote><font size="2"><span style="font-family: arial,sans-serif;">modparam(&quot;tm&quot;, &quot;onreply_avp_mode&quot;, 1)</span></font><br style="font-family: arial,sans-serif;">

</blockquote></div><pre><font size="2"><br><font face="arial,sans-serif"><font size="2">I&#39;ve set following in onreply route<br><br></font></font></font></pre><blockquote style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;" class="gmail_quote">

<font size="2"><font face="arial,sans-serif"><font size="2">if($hdr(Diversion)!=null)</font></font></font><br><font size="2"><font face="arial,sans-serif"><font size="2">        {</font></font></font><br><font size="2"><font face="arial,sans-serif"><font size="2">                avp_delete(&quot;$avp(s:src_call_type)&quot;);</font></font></font><br>

<font size="2"><font face="arial,sans-serif"><font size="2">                $avp(s:src_call_type) = $hdr(Diversion);</font></font></font><div class="Ih2E3d"><br><font size="2"><font face="arial,sans-serif"><font size="2">                xlog(&quot;Client call forwarding to $avp(s:src_user_reply)\n &quot;);</font></font></font></div>
</blockquote>
<div><blockquote style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;" class="gmail_quote">avp_subst(&quot;$avp(s:src_user_reply)&quot;, &quot;/(.*)&lt;sip:(.*)@(.*)&gt;;reason=(.*)/\4/&quot;); <br>

</blockquote></div><blockquote style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;" class="gmail_quote"><br><font size="2"><font face="arial,sans-serif"><font size="2">                                </font></font></font><br>

<font size="2"><font face="arial,sans-serif"><font size="2">                switch($avp(s:src_call_type))</font></font></font><br><font size="2"><font face="arial,sans-serif"><font size="2">                {</font></font></font><br><font size="2"><font face="arial,sans-serif"><font size="2">                        case &quot;unconditional&quot;:</font></font></font><br>

<font size="2"><font face="arial,sans-serif"><font size="2">                                $avp(s:call_type) = &quot;cwfd&quot;;</font></font></font><br><font size="2"><font face="arial,sans-serif"><font size="2">                                break;</font></font></font><br>

<font size="2"><font face="arial,sans-serif"><font size="2">                        case &quot;user-busy&quot;:</font></font></font><br><font size="2"><font face="arial,sans-serif"><font size="2">                                $avp(s:call_type) = &quot;cwfdbusy&quot;;</font></font></font><br>

<font size="2"><font face="arial,sans-serif"><font size="2">                                break;</font></font></font><br><font size="2"><font face="arial,sans-serif"><font size="2">                        case &quot;no-answer&quot;:</font></font></font><br><font size="2"><font face="arial,sans-serif"><font size="2">                                $avp(s:call_type) = &quot;cwfdnoanswer&quot;;</font></font></font><br>

<font size="2"><font face="arial,sans-serif"><font size="2">                                break;</font></font></font><br><font size="2"><font face="arial,sans-serif"><font size="2">                        default:</font></font></font><br><font size="2"><font face="arial,sans-serif"><font size="2">                                log(&quot;no forwarding\n&quot;);</font></font></font><br>

<font size="2"><font face="arial,sans-serif"><font size="2">                }</font></font></font><br><br><font size="2"><font face="arial,sans-serif"><font size="2">        }</font></font></font><br style="font-family: arial,sans-serif;"><br>

</blockquote>But the problem is that records are not
generated the way we expect and the way it works in normal forwarding
using usr_preferences. For example call is forwarded from one user to
another, the first leg of the call should be logged as it should
normally be($fU in leg source, $rU in leg destination &amp;
calltype=call) and in next cdr log, it should log with forwarding
details(Forwarding user in leg source, forwarded user in leg
destination &amp; calltype=cfwd). But it actually generates 5 records(1
failed invite, 2 ok invites &amp; 2 byes, instead of 2 invites &amp; 2
byes) of the call. Also as we set calltype and leg source in onreply
route, it&#39;ll store that date for the first leg of the CDR which should
not happen.<br><br>Is the same limitation is there in OpenSIPS or it has better uac_redirect module?<br><br>I&#39;ll consider switching to OpenSIPS if it solves this issue.<br></div>