Call Forwarding Trunk

I am using custom context to limit specific extensions to specific outbound routes. The problem is that when they forward a call, it goes on the first available trunk and ignores the custom context that is denying that route. Is there a way to block which ourbound routes an extension can use when forwarding just like you can block when placing a regular call?
The other issue is that I have certain extensions blocked from dialing each other but once again, they can forward calls to each other because it uses the first available route and ignores the custom context rules. Any help would be greatly appreciated!!!

I can tell you that if you can use the method given in How to give a particular extension different or restricted trunk access for outgoing calls the restriction will be enforced, but against the original calling extension, not the one doing the forwarding.

Example - extension 200 is unrestricted, 202 is restricted.

200 calls 202, 202 transfers to a restricted number - the call goes through because 200 would be allowed to call that number by dialing directly.

202 calls 200, 200 tries to transfer to a restricted number - the call is blocked because 202 would not be allowed to call this number directly (which may or may not be what you want to happen).

I don’t know if Custom Contexts works differently than that (don’t have it set up on current system).

The truth is that I want to limit certain extensions that amount of calls they can make at once. So I am using Custom Context to limit them to a trunk with lets say 1 channel. If they call someone and then forward the call, then it uses the right channel so if they try to make another call, it will say all circuits are busy because there aren’t anymore channels. The problem is that if they receive a call, and then forward that call, it uses an outbound route which is restricted so that they are able make another call even though they were supposed to have one channel available total and 1 channel was already in use with the call that was forwarded. How do I make sure that the forwarded call is always being forwarded using the one outbound route, even if it was a received call?