Skip to main content

60db SIP Integration Guide — QCall SIP Dialer (Inbound + Outbound)

This guide walks a customer through connecting a 60db Dialer SIP trunk to QCall so their AI agent can place outbound calls and receive inbound calls on a real Indian phone number. It has three parts:
  • Part A — 60db side: complete KYC, set up trunks, rent a number, and collect the values QCall needs.
  • Part B — QCall side: add the SIP Dialer in the QCall dashboard.
  • Part C — 60db side: point inbound calls back to QCall.
You need one thing from each side. 60db gives you a SIP domain + username + password + phone number. QCall gives you back a SIP URI that 60db must forward inbound calls to. That two-way handshake is the whole integration.

How it works (architecture)

  • Outbound = QCall → 60db. From QCall’s point of view, 60db is where the call terminates into the phone network. That is why QCall calls it the SIP Termination URI.
  • Inbound = 60db → QCall. 60db’s inbound trunk must forward incoming calls to QCall’s SIP address.

Before you start

KYC can only be submitted in the dashboard, not through the API. Review states are DIALER_KYC_PENDING, DIALER_KYC_APPROVED and DIALER_KYC_REJECTED (resubmit with correct documents).

Credential cheat-sheet (60db → QCall field mapping)

Fill this in as you go through Part A. You’ll paste the right-hand column into the QCall dashboard in Part B. Then, after saving in QCall, you receive one value to bring back to 60db:

Part A — 60db: get your SIP credentials & number

Step 1 — Create your 60db account

  1. Sign up / log in at https://app.60db.ai.
  2. Select the workspace you want to use. Numbers, trunks and billing are per workspace.
  3. Top up your wallet. Buying a number with a low balance fails with 402 RECHARGE_REQUIRED.

Step 2 — Complete KYC (Gate K)

  1. Go to Dialer → KYC.
  2. Upload PAN, Aadhaar or passport, and address proof.
  3. Wait for the status to become Approved. You can’t buy numbers until then.

Step 3 — Set up the SIP trunk (Gate T)

  1. Go to Dialer → Trunks.
  2. Set up the outbound trunk (for placing calls) and the inbound trunk (for receiving calls).
  3. Download / copy your SIP credentials: SIP domain (host), username and password.
    • SIP domain → SIP Termination URI in QCall
    • Username + password → SIP Username and SIP Password in QCall
  4. Keep the password safe. If you lose it, regenerate the credentials and update the QCall dialer.
Until a trunk exists, 60db call endpoints return 409 DIALER_NOT_PROVISIONED.

Step 4 — Rent a phone number

  1. In Dialer → Numbers, search the shared pool and buy a number (API: GET /dialer/pool → POST /dialer/pool/allocate).
  2. Write it down in E.164 format with +91, e.g. +919876543210. → This becomes the Phone Number field in QCall.
  3. Set it as the default caller ID (API: PUT /dialer/caller-id) so outbound calls show this number.
✅ At this point you should have all four values for the cheat-sheet: SIP domain, username, password, and phone number.

Part B — QCall dashboard: add the SIP Dialer

  1. Log in to the QCall dashboard.
  2. Go to Settings → Dialers (the “Dialers” / “Phone Numbers” area).
  3. Click ➕ Add Dialer and choose SIP as the dialer type.
  4. Fill in the form using your cheat-sheet:
  5. Click Create / Save.
What QCall does behind the scenes (no action needed from you):
  • Creates an outbound trunk → sends outbound calls to your 60db SIP domain, authenticated with your username/password, using your 60db number as caller ID.
  • Creates an inbound trunk → matched to your 60db number.
  • Creates a dispatch rule → routes incoming calls on that number to your AI agent.
What QCall gives you back: your SIP URI (shown in the dialer’s SIP config / setup instructions, format 3.109.230.240:5060). Copy it — you need it for Part C.
If you don’t see the SIP URI in the UI, it’s a fixed value for your QCall workspace — ask QCall support and they’ll provide it.

Part C — 60db: finish the inbound loop-back

Inbound calls only reach your AI agent once 60db knows where to forward them.
  1. Return to 60db Dashboard → Dialer → Trunks → your inbound trunk.
  2. Set the inbound destination / forward URI to your QCall SIP URI from Part B.
    • Enter it without the sip: prefix, e.g. 3.109.230.240:5060.
    • If 60db asks for a full URI, use sip:3.109.230.240:5060.
  3. Make sure the number from Step 4 is the one bound to this inbound trunk.
  4. Save.
Now the loop is closed:
  • Outbound: QCall → your 60db SIP domain → PSTN.
  • Inbound: Caller → your 60db number → 60db → 3.109.230.240:5060 (QCall) → AI agent.

Testing

Outbound test
  1. In QCall, assign the new SIP dialer to a campaign or a Playground test call.
  2. Call your own mobile. It should ring with your 60db number as caller ID, and the AI agent should speak when you answer.
Inbound test
  1. Assign an inbound assistant to this dialer/number in QCall.
  2. From any phone, call your 60db number. It should connect to your AI agent.
You can confirm both calls in 60db under Dialer → Calls (call history / recordings).

Pricing (60db side)

QCall usage charges are billed separately by QCall.

Troubleshooting


Sources