If you are good with linux, you could try to set-up a pbx
on your machine, and tie it to a voip service provider.
Then you can manually edit caller id/ani to anything
you want. As long as you push the data to the switch
or outbound service your caller id should display as
whatever you want.
Furthermore if you have inbound routing configured
you could dial into your own pbx, and use the extensions
to spoof out, to do so from your cellphone.
SIPgate = free sip service 60 minute limit for direct connection non for transfers
pbxes.com = free pbx service allowing you to create inbound and outbound routing
as well as extensions.
I recommend Asterisk.
quote...
Overview of the process:
1. Follow the instructions in Andy Powell's, "Getting Started With Asterisk" (
http://www.automated.it/guidetoasterisk.htm) guide for the initial Linux install.
2. Add the following lines to your extension config file in the same context as your SIP phone.
exten => 33,1,Answer
exten => 33,2,AGI(cidspoof.agi)
4. Sign up with a VoIP provider.
5. Add appropriate details into your IAX config file (as issued by your VoIP service provider).
6. Download the cidspoof.agi (
http://www.rootsecure.net/content/temp/cidspoof.agi) script changing line 77 to the correct username / hostname for your VoIP IAX service provider, and copy it to /var/lib/asterisk/agi-bin/.
7. Start Asterisk
8. Check your SIP phone has correctly registered / verify you are able to make a SIP to PSTN call.
9. Call extension 33, enter the 10 digit number you wish to spoof from, followed by the 10 digit number you wish to spoof to.
A simpler alternative is to use the command SetCallerID(2121111111) in the "extensions.conf" file direct however it will have to be manually edited and Asterisk reloaded for every call.
may be outdated