On 12/6/12 1:35 PM, Juha Heinanen wrote:
Daniel-Constantin Mierla writes:

This one can be also easily added, we have t_load_contacts() which
serializes the contact records based on Q value. It has to be extended
to work on reg-id:
since i have implemented t_load_contacts()/t_next_contacts(), perhaps i
can help here.  tell me what kind of extension is needed and i'll try to
implement it.
that would be great!

I haven't studied exactly the algorithm, but from what I understood, the contacts have to be sorted also by reg-id. What is not clear yet for me is if Q values still plays a role.

First, it will require to propagate sip-instance and reg-id fields to destination set (via branch_t structure) from usrloc/registrar -- just adding some fields and copy the values as we do for example for path and q.


If Q has to be taken in consideration, I would guess that the list of contacts will be grouped by sip-instance value, those groups will be ordered by Q (like taking the highest q in the group and comparing with the other groups). Inside the group, the order will be set by reg-id.

Selection of next destinations to try will be done by taking the first within a group with same instance (perhaps doing parallel forking if there are groups with same Q). If it is a failure, then will go and take the next contacts in the groups (based on reg-id value).

Again, the part related to Q has to be clarified. Otherwise should be about grouping on sip-instance and ordering by reg-id (lower reg-id is first to use).

Thinking of these attributes, might be easier to work with xavps instead of classic avps.

Cheers,
Daniel

--
Daniel-Constantin Mierla - http://www.asipto.com
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda


_______________________________________________
sr-dev mailing list
[email protected]
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev

Reply via email to