Skip to content

Quickstart

From zero to a working inbound call in 5 minutes.

Prerequisites

You need a DIDHub account (sign up — instant) and a SIP endpoint that will receive the call (PBX, AI voice agent, softphone, Teams tenant — anything that speaks SIP).

1. Buy a number

Dashboard → Numbers → Find a number → pick a country and area code → Buy.

For unregulated markets (US, UK, Canada, Netherlands, Australia, most of LATAM) activation is instant. For regulated markets (Germany, France, India, UAE) DIDHub processes the country-specific KYC paperwork — typically 1-3 business days.

Prefer the API? Same operation via REST:

bash
curl -X POST https://api.didhub.io/v1/numbers \
  -H "Authorization: Bearer $DIDHUB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "country": "GB",
    "area": "20",
    "type": "geographic"
  }'

2. Configure a SIP trunk

Dashboard → SIP Trunks → New trunk → pick an authentication mode:

  • IP ACL — lock the trunk to your endpoint's static egress IP. Simplest.
  • SIP digest — username + password. Best for cloud endpoints with rotating IPs.

You'll get back:

text
SIP server   : sip.didhub.io
SIP port     : 5060 (UDP) or 5061 (TLS)
Username     : trunk_a4f9c2
Password     : <copy from dashboard>
Codecs       : PCMU, PCMA, OPUS

3. Route the number to the trunk

Dashboard → Numbers → [your DID] → Routing → set destination to SIP Trunk: [trunk name] → Save.

Or via API:

bash
curl -X PATCH https://api.didhub.io/v1/numbers/$DID_ID/routing \
  -H "Authorization: Bearer $DIDHUB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "destination": {
      "type": "sip_trunk",
      "trunk_id": "trunk_a4f9c2"
    }
  }'

4. Place a test call

Dial the number from any phone. Within 1-2 seconds your endpoint should receive a SIP INVITE.

If nothing happens, check:

  • The trunk's IP allowlist (if using IP ACL)
  • SIP credentials are correct (if using digest)
  • Your endpoint is listening on the expected port + transport
  • DIDHub's status page for any active incidents

What's next

Built with VitePress · API reference powered by Scalar · didhub.io