Then create 10 extensions and 10 external lines set up with each of your voip cheap accounts.
Create a new group (eg 702) adding all 10 extensions to it.
On each external line set the "Incoming calls ring on extension or group" option to the group you setup above (eg 702).
Now if a call comes in on any of the 10 lines, all extensions will ring, and whoever answers is it first gets the call. If someone is already on the phone, if their softphone supports more than 1 line they may get a pop-up message indicating someone is calling on line 2.
Now in the Advanced settings for the first external line, go the the "Chain to Next Line" section and under "If call fails on this line, try line", select the second external line. Now do the same thing but for the second external line, but this time, set it to use the third external line if the call fails. Then do the same for the 4th and 5th and so on. You can either leave the 10th alone, or set it to try line one again, so it keeps going around in a circle trying to find an unused/operational line to call on.
Now, when someone calls out.. it first tries line one, but if busy it tries line two, and if thats busy it tries line 3 and so on until it reaches line 10 and then goes back and tries again and checks if line 1 is busy etc.
Now you just need to setup the default dialing plan so either the default external line is set to the first voipcheap line, OR you have created dialing plan rules so for example if you start dialling a number with 9 it routes the call to the voipcheap lines.
If you need any further explanation, don't hesitate to ask.