Internal calls before external calls

I have an issue trying to find a way to get the system to put internal calls through to an extension before external calls.

We have a ring group for incoming calls to a team. Problem is, if someone is trying to transfer a call to a user in the ring group and a new call comes in, instead of getting the internal call for the transfer, when they pick up the phone they get the new external call.

Other then putting a queue on every extension, and the extension queue having a higher priority than the group queue, is there a way round this?

Ideally if an extension is ringing the highest priority would be an internal call, then an external call to that extension, and then lastly an external call to the team.

And what if You try to create a queue instead of the ring group?