---
title: "നിങ്ങളുടെ സ്വന്തം നമ്പറുകൾ ഉപയോഗിക്കുക (VoIP, API)"
description: "Twilio അല്ലെങ്കിൽ Telnyx — അല്ലെങ്കിൽ ഏതെങ്കിലും SIP trunk — കണക്റ്റ് ചെയ്യുക, നിങ്ങൾ ഇതിനകം സ്വന്തമാക്കിയ ഫോൺ നമ്പറുകൾ ഇംപോർട്ട് ചെയ്യുക, അവയിൽ ThunderPhone ഏജന്റുമാർ കോളുകൾക്ക് മറുപടി നൽകാനും കോളുകൾ ചെയ്യാനും അനുവദിക്കുക."
---

ThunderPhone നമ്പറുകൾ ഇൻബൗണ്ട് കോളുകൾ കൈകാര്യം ചെയ്യുന്നു, എന്നാൽ ഔട്ട്ബൗണ്ട് കോളുകൾക്കും
ക്യാംപെയ്‌നുകൾക്കും നിങ്ങളുടെ സ്വന്തം VoIP ദാതാവിലൂടെ സ്വന്തമാക്കിയ നമ്പറുകൾ ആവശ്യമാണ്. ഈ ഗൈഡ്
നിങ്ങളെ മൂന്ന്-ഘട്ട പ്രവാഹത്തിലൂടെ നയിക്കുന്നു: **ക്രെഡൻഷ്യലുകൾ പരിശോധിക്കുക → കണക്ഷൻ
സൃഷ്ടിക്കുക → നമ്പറുകൾ ഇംപോർട്ട് ചെയ്യുക → സ്ഥിരീകരിക്കുക**.

<Note>
  ഡാഷ്ബോർഡിൽ ഈ മുഴുവൻ പ്രവാഹത്തിനുള്ള മാർഗനിർദേശിത പതിപ്പ്
  **കണക്ഷനുകൾ → VoIP** (`/dashboard/voip-connections`) എന്നതിൽ ലഭ്യമാണ്: അക്കൗണ്ട്
  സൃഷ്ടിയിലൂടെയും API കീകളിലൂടെയും നയിക്കുന്ന Telnyx ഗൈഡഡ് സജ്ജീകരണം, നിലവിലുള്ള
  അക്കൗണ്ട് കണക്റ്റ് ചെയ്യാനുള്ള പാത, കൂടാതെ AI സജ്ജീകരണ-ഗൈഡ് ജനറേറ്ററോടുകൂടിയ മാനുവൽ
  SIP ഫോം.
</Note>

## പിന്തുണയ്ക്കുന്ന ദാതാക്കൾ

| ദാതാവ് | `provider` id | കുറിപ്പുകൾ |
|----------|---------------|-------|
| Twilio | `twilio` | അക്കൗണ്ട് SID + Auth Token; ഓരോ Twilio അക്കൗണ്ടിനും അല്ലെങ്കിൽ സബ്അക്കൗണ്ടിനും ഒരു കണക്ഷൻ (കാണുക [Twilio സബ്അക്കൗണ്ടുകൾ](#twilio-subaccounts)) |
| Telnyx | `telnyx` | API കീ; മാർഗനിർദേശിത ഓൺബോർഡിംഗ് ലഭ്യമാണ് (`setup_method: guided_telnyx`) |
| SignalWire | `signalwire` | **ഉടൻ വരുന്നു** — ഇന്ന് മാനുവൽ SIP വഴി കണക്റ്റ് ചെയ്യുക |
| Vonage | `vonage` | **ഉടൻ വരുന്നു** — ഇന്ന് മാനുവൽ SIP വഴി കണക്റ്റ് ചെയ്യുക |
| മാനുവൽ SIP | `manual` | ഏത് SIP ട്രങ്കും — നിങ്ങളുടെ സ്വന്തം കോൺഫിഗറേഷൻ ഉപയോഗിക്കുക |

## 1. ക്രെഡൻഷ്യലുകൾ പരിശോധിക്കുക

സ്ഥിരമായി സേവ് ചെയ്യുന്ന VoIP കണക്ഷൻ സൃഷ്ടിക്കുന്നതിന് മുമ്പ്, ദാതാവിന്റെ
ക്രെഡൻഷ്യലുകൾ പ്രവർത്തിക്കുന്നുവെന്ന് സ്ഥിരീകരിക്കാൻ അവ പരിശോധിക്കുക. ഇത്
`verification_evidence_id` തിരികെ നൽകുന്നു; അത് സൃഷ്ടിക്കൽ ഘട്ടത്തിലേക്ക് നൽകുന്നതിലൂടെ
പരിശോധനയ്ക്കായി ക്രെഡൻഷ്യലുകൾക്ക് രണ്ട് തവണ നിരക്ക് ഈടാക്കപ്പെടില്ല.

```bash
curl -X POST https://api.thunderphone.com/v1/voip-connections/test \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "provider":    "telnyx",
    "credentials": { "apiKey": "KEY...", "connectionId": "123456" },
    "sip_config":  { "domain": "acme.sip.telnyx.com" }
  }'
```

```json Response
{
  "status": "pass",
  "verification_evidence_id": "b9a2...",
  "suggested_connection_name": "Telnyx: Acme Main (+15550001234)",
  "checks": {
    "credentials_valid": true,
    "inbound_reachable": true,
    "outbound_authorized": true
  }
}
```

ഏതെങ്കിലും പരിശോധന പരാജയപ്പെട്ടാൽ, പ്രതികരണ `status` `fail` ആയിരിക്കും, കൂടാതെ `checks`
ഏത് ഘട്ടമാണ് പരാജയപ്പെട്ടതെന്ന് കാണിക്കും. ദാതാവിന്റെ ഭാഗത്തെ കോൺഫിഗറേഷൻ (ട്രങ്ക്
അസൈൻമെന്റ്, IP അനുവദനപ്പട്ടിക, ഔട്ട്ബൗണ്ട് അംഗീകാരം) ശരിയാക്കി വീണ്ടും ശ്രമിക്കുക.

## 2. കണക്ഷൻ സൃഷ്ടിക്കുക

നിങ്ങൾ ഇപ്പോൾ ലഭിച്ച `verification_evidence_id` കൈമാറുക:

```bash
curl -X POST https://api.thunderphone.com/v1/voip-connections \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name":         "Acme Telnyx Main",
    "provider":     "telnyx",
    "setup_method": "api_key",
    "credentials":  { "apiKey": "KEY...", "connectionId": "123456" },
    "sip_config":   { "domain": "acme.sip.telnyx.com" },
    "verification_evidence_id": "b9a2..."
  }'
```

പ്രതികരണം `status="connected"` ഉള്ള ഒരു [VoipConnection ഒബ്ജക്റ്റ്](/api-reference/voip-connections#connection-object)
ആണ്. ക്രെഡൻഷ്യലുകൾ സെർവർ-സൈഡിൽ സംഭരിക്കപ്പെടുന്നു; തുടർന്നുള്ള GET അഭ്യർത്ഥനകൾ അവ ഒരിക്കലും
പ്ലെയിൻ ടെക്സ്റ്റായി മടക്കി നൽകില്ല — റൊട്ടേറ്റ് ചെയ്യാൻ, പുതിയ `test` പ്രവർത്തിപ്പിച്ച് പുതിയ എവിഡൻസുമായി PATCH ചെയ്യുക.

### Twilio സബ് അക്കൗണ്ടുകൾ

ഒരു Twilio കണക്ഷൻ, അതിലുള്ള Account SID, Auth Token എന്നിവയുടെ ഒറ്റ Twilio അക്കൗണ്ടുമായി
ബന്ധിപ്പിച്ചിരിക്കുന്നു. Twilio ഓരോ സബ് അക്കൗണ്ടിനുള്ളിലും ഫോൺ നമ്പറുകളും SIP
ട്രങ്കുകളും സൂക്ഷിക്കുന്നു. അതിനാൽ പാരന്റ് അക്കൗണ്ട് ഉപയോഗിച്ച് സൃഷ്ടിച്ച കണക്ഷന് പാരന്റിന്റെ
സ്വന്തം നമ്പറുകൾ മാത്രമേ കാണാൻ കഴിയൂ. നിലവിലുള്ള കണക്ഷനെ പിന്നീട് മറ്റൊരു സബ് അക്കൗണ്ടിലേക്ക്
മാറ്റാനും കഴിയില്ല (കണക്ഷന്റെ SIP ട്രങ്ക് യഥാർത്ഥ അക്കൗണ്ടിൽ ഉള്ളതിനാൽ അപ്ഡേറ്റ് നിരസിക്കപ്പെടും).

സബ് അക്കൗണ്ടുകളിൽ ഉള്ള നമ്പറുകളിൽ എത്താൻ, ഓരോ സബ് അക്കൗണ്ടിനും ഒരു കണക്ഷൻ സൃഷ്ടിക്കുക.
ഡാഷ്ബോർഡ് ഇത് നിങ്ങൾക്കായി ചെയ്യുന്നു: സജീവ സബ് അക്കൗണ്ടുകളുള്ള ഒരു പാരന്റ് അക്കൗണ്ട്
നിങ്ങൾ കണക്റ്റ് ചെയ്യുമ്പോൾ, സെറ്റപ്പ് ഡയലോഗ് അവയെ ലിസ്റ്റ് ചെയ്യും; നിങ്ങൾ ആവശ്യമായവ
തിരഞ്ഞെടുക്കുക, ThunderPhone ഓരോന്നിലും ഒരു കണക്ഷനും (ഒരു SIP ട്രങ്കും) സൃഷ്ടിക്കും.
API വഴിയും ഇതേ ഫ്ലോ ലഭ്യമാണ്:

```bash
# Discover active subaccounts visible to the parent credentials
curl -X POST https://api.thunderphone.com/v1/voip-connections/twilio/subaccounts \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"credentials": {"accountSid": "ACparent...", "authToken": "..."}}'
```

```json Response
{
  "discovery_id": "7c1e...",
  "parent": { "sid": "ACparent...", "friendly_name": "Acme" },
  "subaccounts": [
    { "sid": "ACsupport...", "friendly_name": "Acme Support", "already_connected": false, "connection_id": null },
    { "sid": "ACsales...",   "friendly_name": "Acme Sales",   "already_connected": true,  "connection_id": 5 }
  ]
}
```

```bash
# Create a connection for each selected subaccount
curl -X POST https://api.thunderphone.com/v1/voip-connections/twilio/subaccounts/connect \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"discovery_id": "7c1e...", "subaccount_sids": ["ACsupport..."]}'
```

പ്രതികരണത്തിൽ ഓരോ സബ് അക്കൗണ്ടിനും ഒരു വരി ഉണ്ടാകും; അതിൽ `status` ആയി
`created`, `skipped` (ഇതിനകം കണക്റ്റ് ചെയ്തിരിക്കുന്നു), അല്ലെങ്കിൽ `failed` എന്നിവയും നിങ്ങൾക്ക്
നടപടി സ്വീകരിക്കാവുന്ന ഒരു `error` ഉം ഉണ്ടാകും. വരികൾ സ്വതന്ത്രമാണ്, അതിനാൽ ഒരു സബ് അക്കൗണ്ടിലെ
പരാജയം മറ്റുള്ളവയെ ഒരിക്കലും തടയില്ല. കൂടാതെ `discovery_id` 30 മിനിറ്റ് സാധുവായിരിക്കും,
അതിനാൽ പരാജയപ്പെട്ട ഒരു വരി ലളിതമായി വീണ്ടും ശ്രമിക്കാം. സബ് അക്കൗണ്ട് ടോക്കണുകൾ ഡിസ്കവറി
സമയത്ത് Twilio-യിൽ നിന്ന് വായിച്ച് പുതിയ കണക്ഷനിൽ സംഭരിക്കുന്നു; API അവ ഒരിക്കലും മടക്കി
നൽകില്ല. തുടർന്ന് ഓരോ പുതിയ കണക്ഷനും നിങ്ങൾ കൈകൊണ്ട് സൃഷ്ടിച്ച കണക്ഷന് സമാനമായി നമ്പറുകൾ
ഇംപോർട്ട് ചെയ്യുകയും വെരിഫൈ ചെയ്യുകയും ചെയ്യും.

## 3. നമ്പറുകൾ ലിസ്റ്റ് ചെയ്ത് ഇംപോർട്ട് ചെയ്യുക

നിങ്ങളുടെ ക്രെഡൻഷ്യലുകൾക്ക് ദൃശ്യമാകുന്നതും ഇതിനകം ThunderPhone org-ൽ ഇല്ലാത്തതുമായ
നമ്പറുകൾ പരിശോധിക്കുക:

```bash
curl https://api.thunderphone.com/v1/voip-connections/5/available-numbers \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY"
```

തുടർന്ന് നിങ്ങൾക്ക് ആവശ്യമുള്ളവ ഇംപോർട്ട് ചെയ്യുക:

```bash
curl -X POST https://api.thunderphone.com/v1/voip-connections/5/import-numbers \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"numbers": ["+15550001234", "+15550009999"]}'
```

ഓരോ ഇംപോർട്ടും നിങ്ങളുടെ org-ൽ `source="voip"` ഉം `status="provisioning"` ഉം ഉള്ള ഒരു
[ഫോൺ നമ്പർ റിസോഴ്സായി](/api-reference/phone-numbers) മാറും.

## 4. ഇറക്കുമതി ചെയ്ത ഓരോ നമ്പറും പരിശോധിക്കുക

ഇറക്കുമതി ചെയ്യുന്നത് നമ്പറിനെ *ലഭ്യമാണ്* എന്നതായി രജിസ്റ്റർ ചെയ്യുന്നു; അതിലൂടെ കോളുകൾ യഥാർത്ഥത്തിൽ റൂട്ട് ചെയ്യാൻ പരിശോധന ആവശ്യമാണ്. പ്രൊവൈഡർ കണക്ഷനുകൾക്ക് (Twilio,
Telnyx), അത് പ്രൊവൈഡർ ക്രെഡൻഷ്യലുകളും SIP റീച്ചബിലിറ്റിയും വീണ്ടും പരിശോധിക്കുന്നു.
ഒരു **മാനുവൽ SIP** കണക്ഷനായി, അത് നമ്പറിൽ *നിന്ന്*, നിങ്ങളുടെ SIP
ട്രങ്കിലൂടെ, ThunderPhone നമ്പറിലേക്ക് ഒരു ചെറിയ പ്രോബ് കോൾ (കുറച്ച്
സെക്കൻഡുകൾ, സ്വയമേവ വിച്ഛേദിക്കപ്പെടും) നടത്തുന്നു — അതിനാൽ ട്രങ്കിന്റെ യൂസർനെയിം, പാസ്‌വേഡ്,
ട്രാൻസ്‌പോർട്ട്, ഔട്ട്‌ബൗണ്ട് റൂട്ടിംഗ് എന്നിവ യഥാർത്ഥത്തിൽ തെളിയിക്കപ്പെടുന്നു. നിങ്ങളുടെ കാരിയർ
ആ കോളിന് മറ്റേതൊരു കോളിനെയും പോലെ നിരക്ക് ഈടാക്കും.

```bash
curl -X POST https://api.thunderphone.com/v1/phone-numbers/{id}/verify-voip \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY"
```

വിജയിച്ചാൽ, `voip_verification_status` `verified` ആയി മാറുകയും നമ്പർ
`status="active"`-ലേക്ക് പ്രവേശിക്കുകയും ചെയ്യും. പരാജയപ്പെട്ടാൽ, എന്താണ് പരാജയപ്പെട്ടതെന്ന് പ്രതികരണം വ്യക്തമാക്കും — ഒരു മാനുവൽ ട്രങ്കിനായി അത് കാരിയറുടെ SIP മറുപടിയാണ്, ഉദാഹരണത്തിന് *"rejected ThunderPhone's credentials (SIP 401)"* അല്ലെങ്കിൽ *"could
not route a call (SIP 404)"* — അത് പരിഹരിക്കുക (ക്രെഡൻഷ്യലുകൾ, അനുവദിച്ച സോഴ്‌സ്
IP-കൾ, പ്രൊവൈഡർ ഡാഷ്‌ബോർഡിലെ നഷ്ടപ്പെട്ട ട്രങ്ക് അസൈൻമെന്റ്) തുടർന്ന്
വീണ്ടും വിളിക്കുക.

## 5. ഏജന്റുമാരെ അസൈൻ ചെയ്ത് ഒരു കോൾ എടുക്കുക

നമ്പർ പരിശോധിച്ചുകഴിഞ്ഞാൽ, ThunderPhone നമ്പറിനുള്ളതുപോലെ തന്നെ ഇൻബൗണ്ട് / ഔട്ട്‌ബൗണ്ട് ഏജന്റുമാരെ അസൈൻ ചെയ്യാം. കാണുക
[ഇൻബൗണ്ട് കോളുകൾ കൈകാര്യം ചെയ്യുക](/ml/guides/handle-inbound-calls) കൂടാതെ
[ഔട്ട്‌ബൗണ്ട് കോളുകൾ നടത്തുക](/ml/guides/place-outbound-calls).

## ക്രെഡൻഷ്യലുകൾ റൊട്ടേറ്റ് ചെയ്യൽ

ഒരു പ്രൊവൈഡർ കീ റൊട്ടേറ്റ് ചെയ്യുമ്പോൾ, ടെസ്റ്റ്-തുടർന്ന്-അപ്‌ഡേറ്റ് പ്രവാഹം വീണ്ടും പ്രവർത്തിപ്പിക്കുക:

```bash
# 1. Test the new credentials
curl -X POST https://api.thunderphone.com/v1/voip-connections/test ...

# 2. PATCH the connection with the new evidence
curl -X PATCH https://api.thunderphone.com/v1/voip-connections/{id} \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "credentials": { "apiKey": "NEW_KEY..." },
    "verification_evidence_id": "fresh-evidence-id"
  }'
```

കണക്ഷൻ അതേപടി നിലനിൽക്കും — നമ്പറുകൾ വീണ്ടും ഇറക്കുമതി ചെയ്യേണ്ടതില്ല.

---

## അടുത്ത ഘട്ടങ്ങൾ

<CardGroup cols={2}>
  <Card title="VoIP കണക്ഷനുകൾ റഫറൻസ്" icon="phone-volume" href="/api-reference/voip-connections">
    കണക്ഷൻ, എവിഡൻസ്, ഇറക്കുമതി പ്രതികരണങ്ങൾ എന്നിവയിലെ എല്ലാ ഫീൽഡുകളും.
  </Card>
  <Card title="ഫോൺ നമ്പറുകൾ റഫറൻസ്" icon="phone" href="/api-reference/phone-numbers">
    ഏജന്റുമാരെ അസൈൻ ചെയ്യുക, ഓർഗുകൾക്കിടയിൽ ട്രാൻസ്ഫർ ചെയ്യുക, നമ്പറുകൾ റിലീസ് ചെയ്യുക.
  </Card>
  <Card title="ഔട്ട്‌ബൗണ്ട് കോളുകൾ നടത്തുക" icon="arrow-up-right" href="/ml/guides/place-outbound-calls">
    ഇപ്പോൾ നിങ്ങൾക്ക് നമ്പർ സ്വന്തമായതിനാൽ, ഔട്ട്‌ബൗണ്ട് കോളുകൾ നടത്തിത്തുടങ്ങുക.
  </Card>
</CardGroup>
