Hold the line message and queue/ringgroup config

Hello could someone advice me how to configure the following:

Play ringing (no moh) with each 30 seconds a message to hold theline

Incomming call
Ring user1 extensions 1, 2 ,3
No answer after 20 seconds
Also ring users2 extensions 4, 5, 6
No answer after 20 seconds
Also ring users3 extensions 7, 8, 9
No answer after 20 seconds
Also ring users3 extensions 10, 11, 12
No answer after 20 seconds goto IVR

Im not sure to use ringgroups or a queue, currently trying the setup of a queue with rrmemory but this seems not to be same as ringgroup memoryhunt, or is it
with the queue im using followingme to ring all the users extensions, but i have had conditions note of the extensions of a user would ring, i think it is when the extension that is in the queue/ringgroup is offline the other extensions will also not ring (found a old bug report about this, seems to be the problem im experiencing) maybe there is just a better setup…for my situation, offcourse i like the all users extensions to ring, (but if i add them all to the queue, they will have a delayed start point of ringing) maybe i can just include the number of a ringgroup in the queue instead of an extension and add all the users extensions to that ringgroup?

The other thing is, how to get a hold the line message to play every 30 seconds… would expect this to be easily added, seems not the case.
ive read about record ringing-sound and mixing the hold the line message in to play that as moh. That solution seems so primative…i would expect from a good PBX like freepbx to have a option to play an announcement every x seconds, cant find the option though. If i could put a custom announcement message at “Caller Position Announcements”, would of been great. Maybe i can accomplish the same by doing some configfile modications ?

Any advice for above setup would be very welcome, thanks in advance.