---
title: "तुमचे स्वतःचे नंबर वापरा (VoIP, API)"
description: "Twilio किंवा Telnyx — किंवा कोणताही SIP ट्रंक — जोडा, तुमच्याकडे आधीपासून असलेले फोन नंबर आयात करा आणि 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 allowlist, आउटबाउंड अधिकृतीकरण) दुरुस्त करा आणि पुन्हा प्रयत्न करा.

## 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 कनेक्शन हे ज्या एकाच Twilio खात्याचे Account SID आणि Auth Token त्यात असतात त्या खात्याशी बांधलेले असते. 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 संस्थेमध्ये नसलेले नंबर तपासा:

```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"]}'
```

प्रत्येक इंपोर्ट तुमच्या संस्थेमध्ये `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 उत्तर असते, उदाहरणार्थ
*"ThunderPhone चे क्रेडेन्शियल्स नाकारले (SIP 401)"* किंवा *"कॉल रूट
करता आला नाही (SIP 404)"* — ते दुरुस्त करा (क्रेडेन्शियल्स, अनुमत स्रोत
IP, प्रोव्हायडर डॅशबोर्डमधील गहाळ ट्रंक असाइनमेंट) आणि पुन्हा कॉल करा.

## 5. एजंट असाइन करा आणि कॉल घ्या

नंबर सत्यापित झाल्यावर, तुम्ही इनबाउंड / आउटबाउंड एजंट त्याच
पद्धतीने असाइन करता जसे ThunderPhone नंबरसाठी करता. पहा
[इनबाउंड कॉल हाताळा](/mr/guides/handle-inbound-calls) आणि
[आउटबाउंड कॉल करा](/mr/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="/mr/guides/place-outbound-calls">
    आता नंबर तुमच्या मालकीचा आहे, आउटबाउंड कॉल करायला सुरुवात करा.
  </Card>
</CardGroup>
