CallForward via certain gw

Recently I am having this issue. With around 200 avaiable connections at the time split between:
30 GSM
30 PRA1
30 PRA2
110 SIP

If some1 calls our company on main number from PRA1 using a cellphone and a called person has a call forward enabled also to cellphone our asterisk is trying to use one of 30 channels from GSM trunk. It all ok but when all 30 trunks are used at the time it simply terminate the connection without redirecting to any other trunk.
It goes by default at this point. Any clue how a simple exten can change the way it works ?

The basic way of doing failover is just to Dial each trunk in turn until Dial doesn’t return, meaning the call is connected. In practice you should check for clearing causes that indicate the call will fail on the other trunk, as well.

i have that set for api dial any hints on how should exten for call forward look like?

The same as any other dial. I don’t understand what you see to be a problem.