In some environments there is a need to even out the number of calls taken by each member of a ring group. Examples include technical support helplines (to even the loading) and sales hotlines (to even the leads). This can be acheived by adding a cyclic hunting mode. Instead of starting each call at the same position in the hunting group, calls start at a position that cycles through the members of the ring group. e.g.
call_1 -> rg_member1 -> rg_member2 -> rg_member3 -> rg_member1
call_2 -> rg_member2 -> rg_member3 -> rg_member1 -> rg_member2
call_3 -> rg_member3 -> rg_member1 -> rg_member2 -> rg_member3
call_4 -> rg_member1 -> rg_member2 -> rg_member3 -> rg_member1
This can be acheived with a global dialplan variable for each ringgroup which stores the current start position.
Attached is a rough implementation