7 dec 2012 kl. 00:08 skrev Juha Heinanen jh@tutpro.com:
after sleeping on it, i propose the following simple implementation of instance-id/reg-id aware load_contacts()/next_contacts():
- load_contacts() does the same as it currently does, i.e., load
contacts to an avp and orders them based on q value.
- next_contacts() creates destination set that includes highest q value
contacts, but if there is two contacts with same instance-id, only one of them is included. next_contacts() also stores the current q value in an avp.
- in failure route, if response code is 408 or 430, a new function
next_contacts_skip() is called that works as described above, but skips next contacts with the stored q value (if any). otherwise, next_contacts() is called.
is this acceptable to everyone? feel welcome to propose a better name for next_contacts_skip().
next_contact_flow()
#If we have no spare flow for current contact, go to next q level. if (!next_contact_flow()) next_contacts();
/O