My intention is to use some sort of enum lookup function that queries public enum or the e.164 org domain.
Each outgoing call would use the enum lookup if selected and if it finds a NAPTR it would use that. If it doesn't find anything it would use the VOIP peer.
Maybe you could also select if you want to failover to the VOIP peer in case of busy or congestion on the NAPTR call.
Rgds
Patrick Arkley
http://www.say-no.se