As mentioned in
http://yate.null.ro/pmwiki/index.php?n=Main.Callfork you should try
^.*$=fork $(rotate,$idx001,| sip/\0@fwd,| sip/\0@other,| ...)
Something like that
register.conf
[general]
call.route=yes
[call.route]
query=SELECT 'fork (rotate,$idx001,| sip/sip:1@host1,| h323/2@host2, | sip/sip:3@host3)' AS location
result=location
anyway, I'd prefer to use the new callto.X syntax and to not late yate rotate but to specifiy the destinations in my own order so that I can influence it based on ASR/ACD
SELECT 'fork' as location, 'sip/sip:1@host1' as callto.1, 'next=5000' as callto.2, 'h323/2@host2' as callto.3, 'next=5000' as callto.4 ....etc.
next=5000 specifies the time to wait until the next target is called (connections to targets called before are still open then so yate will try them concurrently)