If I understand your request, you want to use a single PSTN line but send the calls as they come in to various extensions. Since you don’t say how you will determine where to send the call we can only assume that you will do it based on the Caller’s ID information.
If you wish to do this that is possible but you will have to setup your incoming context to take the callerID information and send it to another extension. This is also known as the ex-Girlfriend extension and it works pretty good, except that what I’ve found is that you don’t always have reliable information in the callerID variable. So it will only work as good as the callerID works. Here’s an example:
exten => s,1,Wait(2)
exten => s,n,Answer()
exten => s/7135551212,1,Goto(fax-ext,s,1)
exten => s/7135552121,1,Goto(my-other-ext01,s,1)
exten => s/7135551212,1,Goto(my-other-ext02,s,1)
exten => s/7135551212,1,Goto(some-other-phone,s,1)
How many of these you have would depend on how many other phones and faxes you have and of course the criteria you’re using to decide which other extension to send the calls to. You could also use wildcards so that the callerID field would not be so distinct, say you wanted to send all calls from a certain area code to a particular phone or fax machine. The answer is yes you can do this but how complex it gets depends on what you’re trying to do with it.
I guess you could also write some kind of script which picks an extension at random if your desire is to sprinkle the calls around your system.