Simple question: How can I send a text message using Twilio, or any other provider, with fake caller ID?
I'm using Twilio REST API (C#).
EDIT:
I found this company which provides this future, but they are far too pricey: http://www.smsmessagesender.com/SmsApi
Does anyone knows a better alternative?
For the most part, it's a carrier thing. In the US, generally speaking, any SMS traffic has to be from a number you 'own'. For APIs, that would be one or more virtual numbers you purchase.
Outside the US - again, generally speaking - there's more freedom in what you can use. However, different APIs may or may not choose to expose that. For example, with Nexmo you can set the sender ID to whatever you want, with countries / carriers where that's supported.
As to what countries / carriers support a dynamic sender ID, this Nexmo Country FAQ may be helpful (even if you're using a different API).
(Disclaimer: I do some developer evangelism for Nexmo.)
I have asked a similar question and found three services (not Twilio):
The above services support dynamic alphanumeric sender ID for outbound SMS, so you should be able to send a combination of 11 alpha-numeric characters as the sender ID of your message. Note the emphasis on outbound SMS. It appears that receiving incoming SMS on an alphanumeric sender ID is not possible.
Edit: as mentioned in other answers, the availability of these services also depends on the laws of the jurisdiction where the services are to be used.
Plivo allows custom caller id for calls... try it