DIDs, also known as virtual numbers, are telephone numbers which instead of being associated with a telephone line are converted to VoIP and routed to SIP endpoints. These are typically offered as local geographic numbers or as toll-free numbers. The latter usually are carrying a cost for receiving calls.
DIDs are usually charged periodically, for example monthly, they can be also offered as part of the package or at one time fee.
The interface between the PSTN network and VoIP is realized by the use of a gateway, similarly to calls termination scenario, with a difference that in this case calls are coming from the gateway into the VoIP network. The PSTN interface can be an SS7 or E1/T1.
The gateway can be located in a remote location and route the calls over internet which is the case when you offer DIDs from foreign countries. Also there can be several gateways routing DIDs from various locations to your central voipswitch from where the calls are further addressed to destination user endpoints.
There are two approaches in implementing DIDs:
- Local inventory of DIDs – phone numbers pool is statically assigned to your SIP server
- Through DIDs APIs – phone numbers are dynamically ordered and cancelled through web API
In the first approach the pool of phone numbers is statically routed to your server. You have to bear the costs of numbers regardless if the numbers are sold to clients or not as you need to keep an inventory locally on your side.
The advantage of the DIDs API is that your server requests a new phone number from DID provider at the moment when your client places an order. When the number is cancelled an appropriate request is passed to the DID provider too. In effect you just pay only for DIDs assigned to clients.
Additional advantage is that DID providers usually offer numbers from many countries and areas, including toll free and premium numbers.
The applications - EMC, VUP, VUC and VSM, which allow for managing DIDs do it through the VSServices which exposes a set of methods for interconnection with 3rd party DID APIs and the local supplier (database).