If you’re not staying in the US and need to register for a service that requires a US number for verification, a US DID number will be useful. For those who don’t know what a DID number is, see this.
There are services that give you a DID number in the US, e.g. +1 (xxx) xxx-xxxx. When someone calls this number, it can be set to forward the incoming call to a physical number (e.g. PSTN or mobile phone number), or to a SIP client which will handle the incoming call.
I found the following 2 free services that give me a free US DID number which, upon called, will forward the call to a SIP client:
* ipcoms. This service will allow you to set an IP address of a SIP server/client where all incoming DID calls will be forwarded to. Unfortunately, that’s all that can be set. When an incoming call comes, a SIP packet describing the incoming call will be sent to this IP at port 5060, and it’s up to the software listening to port 5060 at this IP to decide how to handle the incoming call. This can only work well if you have a static IP address and a dedicated server to handle SIP incoming call. Dynamic DNS services (such as noip) cannot be used as the Web control panel does not accept domain names as destination.
I managed to make this work somewhat by using a Starhub Mobile Broadband SIM card that gives me a public IP (e.g. 117.x.x.x). By using SJPhone as the SIP client and configuring the DID number to point to 117.x.x.x, SJPhone is able to ring when I call the DID number. Voice quality is fine when using Singtel IDD 019 to make the call. However, sometimes for a single call to the DID number, SJPhone will report multiple incoming calls. Also, the IP address will change periodically and will have to be manually updated from the ipcomms web portal.
* ipkall. This is just like ipcomms above, but it allows you to forward incoming DID call to a SIP URI, e.g. sip:email@example.com. The SIP URI can be hosted on your own SIP server, or on one of the many existing free SIP providers.
I register for a free SIP account at callwithus, run X-Lite on this account, configure the ipkall DID to point to my callwithus account and I am able to receive DID incoming calls for free! Interestingly, since both ipkall and callwithus support concurrent calls, it is possible to answer more than one call at a time.
For this to work, your SIP provider must allow incoming SIP calls from external IP addresses, e.g. calls not made from the same provider. Many providers will disallow incoming call until SIP registration is performed, or will only allow incoming call from a list of allowed IP addresses. callwithus is among those few providers that do not have any restrictions.
However, using this method, caller id is not available. Most DID incoming calls will appear to be from ipkall server, e.g. “202 224 firstname.lastname@example.org″. ipcomms, on the other hand, reports the caller number correctly.