<div>Hi Bogdan,</div>
<div>&nbsp;&nbsp;&nbsp; I looked at the serialize_branches and next_branches functions in core and they seem to be doing a similiar thing to the functions load_contacts and next_contacts in LCR.</div>
<div>&nbsp;</div>
<div>&nbsp;&nbsp; In my opinion, serialize_branches&nbsp;should not look at the q-values (that functionality is available&nbsp;through LCR) </div>
<div>&nbsp;&nbsp; This would allow and ease the use of serial forking in additional cases where either </div>
<div>&nbsp;</div>
<div>1. The UA&#39;s do not send any q-value in registration but serial forking is required.</div>
<div>2. My case where q-value ordering is&nbsp;required but q-values may not be distinct. (should be possible since userloc orders on q-value by default, correct??&nbsp;)</div>
<div>&nbsp;</div>
<div>&nbsp;&nbsp; Users who need the&nbsp;behavior (combination of parallel and serial forking) as described in the common ordering in rfc3261 can use the LCR module and others who require serial / parallel forking always can use the core functions.</div>

<div>&nbsp;</div>
<div>Thanks,</div>
<div>Amit</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div><br><br>&nbsp;</div>
<div><span class="gmail_quote">On 2/28/08, <b class="gmail_sendername">Amit Sharma</b> &lt;<a href="mailto:amit398@gmail.com">amit398@gmail.com</a>&gt; wrote:</span>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">
<div>Hi Bogdan,</div>
<div>&nbsp;&nbsp; Your understanding of&nbsp;the requirement is absolutely correct.</div>
<div>&nbsp;&nbsp; </div>
<div>&nbsp;&nbsp;&nbsp; So what I understand from your reply is that this should be achievable with the functionality already available in core. Is that correct? </div>
<div>&nbsp;</div>
<div>&nbsp;&nbsp;&nbsp; Thanks again for a prompt reply. I will focus on the functionality in core to implement&nbsp;the desired behavior.</div>
<div>&nbsp;</div>
<div>Regards,</div>
<div>Amit</div>
<div><span class="q" id="q_1185e9b5ab936d3a_1">
<div>&nbsp;</div>
<div>&nbsp;&nbsp; <br><br>&nbsp;</div>
<div><span class="gmail_quote">On 2/28/08, <b class="gmail_sendername">Bogdan-Andrei Iancu</b> &lt;<a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:bogdan@voice-system.ro" target="_blank">bogdan@voice-system.ro</a>&gt; wrote:</span> 
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">Hi Amit,<br><br>Actually both parallel2serial forking support available in openser:<br>&nbsp;&nbsp; 1) LCR module<br>
&nbsp;&nbsp; 2) core (see serialize_branches() + next_branches())<br><br>have the q-based ordering (parallel versus serial) built in.<br><br>Som if I understand correctly, you to do ordering based on q value, but<br>you want only serial forking - no parallel forking for the branches with<br>
the same q, right?<br><br>Regards,<br>Bogdan<br><br>Amit Sharma wrote:<br>&gt; Hi Bogdan,<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;Thanks for the quick reply.<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;The behavior rfc3261 mentions for using q values is a common<br>&gt; ordering mechanism (Section 16.6) . I guess variants as such would not<br>
&gt; be against rfc3261.<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;I was suggesting that we could have additional flexibility added to<br>&gt; what the LCR module is currently doing. Otherwise i would almost<br>&gt; rework what is already there in the LCR module (to get list ordered by<br>
&gt; qvalues into AVPs)<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;A use case for the above request is where contacts for an AOR are<br>&gt; distributed in a system. The UA&#39;s come up with qvalue based on there<br>&gt; utilization etc. The idea is to send the call to the contact who has<br>
&gt; been least used. I cannot enforce that the qvalues generated by the<br>&gt; UA&#39;s are unique unless I use a sequencing mechanism between the UA&#39;s.<br>&gt;<br>&gt;<br>&gt; Thanks,<br>&gt; Amit<br>&gt;<br>&gt;<br>
&gt;<br>&gt;<br>&gt; On 2/27/08, *Bogdan-Andrei Iancu* &lt;<a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:bogdan@voice-system.ro" target="_blank">bogdan@voice-system.ro</a><br>&gt; &lt;mailto:<a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:bogdan@voice-system.ro" target="_blank">bogdan@voice-system.ro</a>&gt;&gt; wrote:<br>
&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; Hi Amit,<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; First of all, the behaviour you want to achieve is against RFC3261<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; (forking based on q value), but for sure you know better what you<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; try to<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; get ;)<br>
&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; Now, depending where you take the list of destinations from, let&#39;s<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; assume you can get them into AVPs. For how to do serial forking from<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; AVPs, see:<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; <a onclick="return top.js.OpenExtLink(window,event,this)" href="http://www.voice-sistem.ro/docs/avpops/ar01s08.html#ex_serial_forking" target="_blank">http://www.voice-sistem.ro/docs/avpops/ar01s08.html#ex_serial_forking</a><br>
&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; Regards,<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; Bogdan<br>&gt;<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; Amit Sharma wrote:<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;Hi All,<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;I am a newbie to this list so please forgive me if the question<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; below<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; has been discussed before. I could not find anything related so i am<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; sending my query.<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;I have been looking at the LCR module to do serial forking since we<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; want to prioritize contacts based on q values. However, we do<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; not want<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; to fork in parallel to contacts even if they share the same q value.<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; AFAIK,this is currently not possible with the LCR module.<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;Would it be a good idea to have a parameter (e.g &quot;append-branches&quot;)<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; in the LCR module which can control the forking behavior when q<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; value<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; of contacts is the same?<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;Thanks,<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;Amit<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; ------------------------------------------------------------------------<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; _______________________________________________<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; Users mailing list<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; <a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:Users@lists.openser.org" target="_blank">Users@lists.openser.org</a> &lt;mailto:<a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:Users@lists.openser.org" target="_blank">Users@lists.openser.org</a>&gt;<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; <a onclick="return top.js.OpenExtLink(window,event,this)" href="http://lists.openser.org/cgi-bin/mailman/listinfo/users" target="_blank">http://lists.openser.org/cgi-bin/mailman/listinfo/users</a><br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<br>
&gt;<br>&gt;<br><br></blockquote></div><br></span></div></blockquote></div><br>