You can set up a hunt group, (example access code 500, with extensions 501,502,503) set to terminal. If you leave it set to group type stn/set, it will only call the 502, or 503 DNs if the 1st one is busy. However, if you set the group type to ring (group) , then you have the choice to ring all or one set. All will ring all the sets at once.
For your application, you could choose one set, which would ring 501 1st. if it was busy, or rang 3xs, it would then ring 502. If it was busy, or rang 3xs, it would ring 503. You can set the delay (I used 10 seconds , approx 3 rings) You can then put an overflow to VM DN, but it will go to the AA greeting, and not the VM of the last DN in the hunt group. You could then have a menu pick to leave a message, etc.
Alternativley, you can take the last set out of the hunt group (ie 503) and put the overflow of the hunt to 503, instead of the VM DN. now it will ring 501, 502, then 503 and finally drop in 503's VM box, if unanswered or busy.
I would not recommend this as 12 rings is way to many for most applications, but it is possible. If you were to do this, I would add a new DN on each set, (ie key 2) and put that # in the hunt group, instead of the prime # on each set, as they could then tell if it was a prime # call, or a hunt group call on key 2.
The 3300 is much more flexible with the call rerouting 1st, and 2nd alternatives for any DN.