well, that was only a hint, but not the whole solution :)
In your case, it would require some database lookup, or maybe the dialplan should go through the customer numbers before sending the call to PSTN. 

enum would be a good option instead of database lookup, as was already proposed on the list.

In any case, this all requires a bit of engineering and design effort.




From: D'Arcy Cain <darcy@Vex.Net>
To: FreeSWITCH Users Help <freeswitch-users@lists.freeswitch.org>
Cc: Stanislav Sinyagin <ssinyagin@yahoo.com>
Sent: Sunday, September 23, 2012 10:04 PM
Subject: Re: [Freeswitch-users] Keeping local calls local

On Sun, 23 Sep 2012 11:17:37 -0700 (PDT)
Stanislav Sinyagin <ssinyagin@yahoo.com> wrote:

> here's a piece of my dialplan in "default" context. It simply catches
> such calls and transfers them directly to the public context. The
> public context matches local DID numbers and transfers them to
> corresponding extensions in default context:
>
>     <extension name="internal_did">
>       <condition field="destination_number" expression="^($${default_did_prefix}\d+)$">
>         <action application="transfer" data="$1 XML public"/>
>       </condition>
>     </extension>
>
> The "default_did_prefix" variable holds my DID number block.

Looks good but my problem is that I do not have a DID block.  Clients
are porting their numbers so they are all over the place.  My first
three numbers in the system are from three different area codes.  I
would need to include all of my numbers in the expression somehow.  Wit
just three I can use '|' but that won't be practical when I have
hundreds or thousands.

--
D'Arcy J.M. Cain
System Administrator, Vex.Net
http://www.Vex.Net/ IM:darcy@Vex.Net