ThunderPhone 2.0 ಈಗ ಬಿಡುಗಡೆಯಾಗಿದೆ.ನೀವೇ ನೇರವಾಗಿ ಆರಂಭಿಸಿ — 2¢/ನಿಮಿಷದಿಂದ.ಘೋಷಣೆ ಓದಿ

Developer cookbook

ನಿಮ್ಮ ಸ್ವಂತ ಸಂಖ್ಯೆಗಳನ್ನು ಬಳಸಿ (VoIP, API)

Twilio ಅಥವಾ Telnyx — ಅಥವಾ ಯಾವುದೇ SIP ಟ್ರಂಕ್ — ಅನ್ನು ಸಂಪರ್ಕಿಸಿ, ನೀವು ಈಗಾಗಲೇ ಹೊಂದಿರುವ ಫೋನ್ ಸಂಖ್ಯೆಗಳನ್ನು ಆಮದು ಮಾಡಿ, ಮತ್ತು ThunderPhone ಏಜೆಂಟ್‌ಗಳು ಅವುಗಳಲ್ಲಿ ಕರೆಗಳಿಗೆ ಉತ್ತರಿಸಲು ಹಾಗೂ ಕರೆಗಳನ್ನು ಮಾಡಲು ಅವಕಾಶ ನೀಡಿ.

ThunderPhone ಸಂಖ್ಯೆಗಳು ಒಳಬರುವ ಕರೆಗಳನ್ನು ನಿರ್ವಹಿಸುತ್ತವೆ, ಆದರೆ ಹೊರಹೋಗುವ ಕರೆಗಳು ಮತ್ತು ಪ್ರಚಾರಗಳಿಗೆ ನಿಮ್ಮ ಸ್ವಂತ VoIP ಪೂರೈಕೆದಾರರ ಮೂಲಕ ನೀವು ಹೊಂದಿರುವ ಸಂಖ್ಯೆಗಳು ಬೇಕಾಗುತ್ತವೆ. ಈ ಮಾರ್ಗದರ್ಶಿ ನಿಮ್ಮನ್ನು ಮೂರು-ಹಂತದ ಪ್ರಕ್ರಿಯೆಯ ಮೂಲಕ ಕರೆದೊಯ್ಯುತ್ತದೆ: ರುಜುವಾತುಗಳನ್ನು ಪರೀಕ್ಷಿಸಿ → ಸಂಪರ್ಕವನ್ನು ರಚಿಸಿ → ಸಂಖ್ಯೆಗಳನ್ನು ಆಮದು ಮಾಡಿ → ಪರಿಶೀಲಿಸಿ.

ಬೆಂಬಲಿತ ಪೂರೈಕೆದಾರರು

ಪೂರೈಕೆದಾರprovider ಗುರುತುಟಿಪ್ಪಣಿಗಳು
Twiliotwilioಖಾತೆ SID + ದೃಢೀಕರಣ ಟೋಕನ್; ಪ್ರತಿ Twilio ಖಾತೆ ಅಥವಾ ಉಪಖಾತೆಗೆ ಒಂದು ಸಂಪರ್ಕ (Twilio ಉಪಖಾತೆಗಳನ್ನು ನೋಡಿ)
TelnyxtelnyxAPI ಕೀ; ಮಾರ್ಗದರ್ಶಿತ ಆನ್‌ಬೋರ್ಡಿಂಗ್ ಲಭ್ಯವಿದೆ (setup_method: guided_telnyx)
SignalWiresignalwireಶೀಘ್ರದಲ್ಲೇ ಲಭ್ಯ — ಇಂದು ಹಸ್ತಚಾಲಿತ SIP ಮೂಲಕ ಸಂಪರ್ಕಿಸಿ
Vonagevonageಶೀಘ್ರದಲ್ಲೇ ಲಭ್ಯ — ಇಂದು ಹಸ್ತಚಾಲಿತ SIP ಮೂಲಕ ಸಂಪರ್ಕಿಸಿ
ಹಸ್ತಚಾಲಿತ SIPmanualಯಾವುದೇ SIP ಟ್ರಂಕ್ — ನಿಮ್ಮ ಸ್ವಂತ ಸಂರಚನೆಯನ್ನು ಬಳಸಿ

1. ರುಜುವಾತುಗಳನ್ನು ಪರೀಕ್ಷಿಸಿ

ನೀವು ಶಾಶ್ವತ VoIP ಸಂಪರ್ಕವನ್ನು ರಚಿಸುವ ಮೊದಲು, ಅವು ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿವೆಯೇ ಎಂದು ದೃಢೀಕರಿಸಲು ಪೂರೈಕೆದಾರರ ರುಜುವಾತುಗಳನ್ನು ಪರಿಶೀಲಿಸಿ. ಇದು verification_evidence_id ಅನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ; ರುಜುವಾತುಗಳಿಗೆ ಪರೀಕ್ಷೆಗಾಗಿ ಎರಡು ಬಾರಿ ಶುಲ್ಕ ವಿಧಿಸದಂತೆ ರಚಿಸುವ ಹಂತಕ್ಕೆ ಇದನ್ನು ಕಳುಹಿಸಿ.

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" }
  }'
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 ಅನ್ನು ಕಳುಹಿಸಿ:

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 ಆಬ್ಜೆಕ್ಟ್ ಆಗಿರುತ್ತದೆ. ರುಜುವಾತುಗಳನ್ನು ಸರ್ವರ್-ಬದಿಯಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ನಂತರದ GET ವಿನಂತಿಗಳಲ್ಲಿ ಸರಳ ಪಠ್ಯವಾಗಿ ಎಂದಿಗೂ ಹಿಂತಿರುಗಿಸಲಾಗುವುದಿಲ್ಲ — ಬದಲಾಯಿಸಲು, ಹೊಸ test ಅನ್ನು ಚಲಾಯಿಸಿ ಮತ್ತು ಹೊಸ ಸಾಕ್ಷ್ಯದೊಂದಿಗೆ PATCH ಮಾಡಿ.

Twilio ಉಪಖಾತೆಗಳು

Twilio ಸಂಪರ್ಕವು ಅದು ಹೊಂದಿರುವ Account SID ಮತ್ತು Auth Token ಒಳಗೊಂಡಿರುವ ಒಂದೇ Twilio ಖಾತೆಗೆ ಬಂಧಿತವಾಗಿರುತ್ತದೆ. Twilio ಪ್ರತಿ ಉಪಖಾತೆಯೊಳಗೆ ಫೋನ್ ಸಂಖ್ಯೆಗಳನ್ನು ಮತ್ತು SIP ಟ್ರಂಕ್‌ಗಳನ್ನು ಇಡುತ್ತದೆ, ಆದ್ದರಿಂದ ಪೋಷಕ ಖಾತೆಯೊಂದಿಗೆ ರಚಿಸಿದ ಸಂಪರ್ಕವು ಪೋಷಕ ಖಾತೆಯ ಸ್ವಂತ ಸಂಖ್ಯೆಗಳನ್ನು ಮಾತ್ರ ನೋಡುತ್ತದೆ ಮತ್ತು ಈಗಿರುವ ಸಂಪರ್ಕವನ್ನು ನಂತರ ಬೇರೆ ಉಪಖಾತೆಗೆ ಬದಲಾಯಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ (ಸಂಪರ್ಕದ SIP ಟ್ರಂಕ್ ಮೂಲ ಖಾತೆಯಲ್ಲಿ ಇರುವುದರಿಂದ ನವೀಕರಣವನ್ನು ತಿರಸ್ಕರಿಸಲಾಗುತ್ತದೆ).

ಉಪಖಾತೆಗಳಲ್ಲಿ ಇರುವ ಸಂಖ್ಯೆಗಳನ್ನು ತಲುಪಲು, ಪ್ರತಿ ಉಪಖಾತೆಗೆ ಒಂದೊಂದು ಸಂಪರ್ಕವನ್ನು ರಚಿಸಿ. ಡ್ಯಾಶ್‌ಬೋರ್ಡ್ ಇದನ್ನು ನಿಮಗಾಗಿ ಮಾಡುತ್ತದೆ: ಸಕ್ರಿಯ ಉಪಖಾತೆಗಳನ್ನು ಹೊಂದಿರುವ ಪೋಷಕ ಖಾತೆಯನ್ನು ನೀವು ಸಂಪರ್ಕಿಸಿದಾಗ, ಹೊಂದಿಸುವಿಕೆ ಸಂವಾದವು ಅವುಗಳನ್ನು ಪಟ್ಟಿ ಮಾಡುತ್ತದೆ, ನಿಮಗೆ ಬೇಕಾದವುಗಳನ್ನು ನೀವು ಆಯ್ಕೆಮಾಡುತ್ತೀರಿ, ಮತ್ತು ThunderPhone ಪ್ರತಿಯೊಂದರಲ್ಲೂ ಸಂಪರ್ಕವನ್ನು (ಮತ್ತು SIP ಟ್ರಂಕ್ ಅನ್ನು) ರಚಿಸುತ್ತದೆ. ಇದೇ ಹರಿವು API ಮೂಲಕವೂ ಲಭ್ಯವಿದೆ:

# 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": "..."}}'
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 }
  ]
}
# 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 ಸಂಸ್ಥೆಯಲ್ಲಿ ಈಗಾಗಲೇ ಇಲ್ಲದ, ನಿಮ್ಮ ರುಜುವಾತುಗಳಿಗೆ ಗೋಚರವಾಗಿರುವ ಸಂಖ್ಯೆಗಳನ್ನು ಪರಿಶೀಲಿಸಿ:

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

ನಂತರ ನಿಮಗೆ ಬೇಕಾದವುಗಳನ್ನು ಆಮದು ಮಾಡಿ:

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" ಹೊಂದಿರುವ ಫೋನ್ ಸಂಖ್ಯೆ ಸಂಪನ್ಮೂಲ ಆಗುತ್ತದೆ.

4. ಆಮದು ಮಾಡಿದ ಪ್ರತಿಯೊಂದು ಸಂಖ್ಯೆಯನ್ನು ಪರಿಶೀಲಿಸಿ

ಆಮದು ಮಾಡುವುದರಿಂದ ಸಂಖ್ಯೆಯನ್ನು ಲಭ್ಯವಿದೆ ಎಂದು ನೋಂದಾಯಿಸಲಾಗುತ್ತದೆ; ಅದರ ಮೂಲಕ ಕರೆಗಳನ್ನು ನಿಜವಾಗಿ ರೂಟ್ ಮಾಡಲು ಪರಿಶೀಲನೆ ಅಗತ್ಯವಿದೆ. ಪೂರೈಕೆದಾರ ಸಂಪರ್ಕಗಳಿಗಾಗಿ (Twilio, Telnyx), ಇದು ಪೂರೈಕೆದಾರ ರುಜುವಾತುಗಳು ಮತ್ತು SIP ತಲುಪುವಿಕೆಯನ್ನು ಮರುಪರಿಶೀಲಿಸುತ್ತದೆ. ಹಸ್ತಚಾಲಿತ SIP ಸಂಪರ್ಕಕ್ಕಾಗಿ, ಇದು ಸಂಖ್ಯೆಯಿಂದ ಪ್ರಾರಂಭಿಸಿ, ನಿಮ್ಮ SIP ಟ್ರಂಕ್ ಮೂಲಕ, ThunderPhone ಸಂಖ್ಯೆಗೆ ಒಂದು ಚಿಕ್ಕ ಪರೀಕ್ಷಾ ಕರೆಯನ್ನು ಮಾಡುತ್ತದೆ (ಕೆಲವು ಸೆಕೆಂಡುಗಳು, ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಸಂಪರ್ಕ ಕಡಿತಗೊಳ್ಳುತ್ತದೆ) — ಆದ್ದರಿಂದ ಟ್ರಂಕ್‌ನ ಬಳಕೆದಾರಹೆಸರು, ಪಾಸ್‌ವರ್ಡ್, ಸಾರಿಗೆ ಮತ್ತು ಹೊರಹೋಗುವ ರೂಟಿಂಗ್ ನಿಜವಾಗಿ ಸಾಬೀತಾಗುತ್ತವೆ. ನಿಮ್ಮ ಕ್ಯಾರಿಯರ್ ಆ ಕರೆಯ ಶುಲ್ಕವನ್ನು ಇತರ ಯಾವುದೇ ಕರೆಯಂತೆ ವಿಧಿಸುತ್ತದೆ.

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 ಸಂಖ್ಯೆಗೆ ಮಾಡುವಂತೆಯೇ ನೀವು ಒಳಬರುವ / ಹೊರಹೋಗುವ ಏಜೆಂಟ್‌ಗಳನ್ನು ನಿಯೋಜಿಸುತ್ತೀರಿ. ಒಳಬರುವ ಕರೆಗಳನ್ನು ನಿರ್ವಹಿಸಿ ಮತ್ತು ಹೊರಹೋಗುವ ಕರೆಗಳನ್ನು ಮಾಡಿ ನೋಡಿ.

ರುಜುವಾತುಗಳನ್ನು ಬದಲಾಯಿಸುವುದು

ಪೂರೈಕೆದಾರ ಕೀ ಬದಲಾದಾಗ, ಪರೀಕ್ಷಿಸಿ-ನಂತರ-ನವೀಕರಿಸುವ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಮರುಚಲಾಯಿಸಿ:

# 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"
  }'

ಸಂಪರ್ಕವು ಹಾಗೆಯೇ ಉಳಿಯುತ್ತದೆ — ಸಂಖ್ಯೆಗಳನ್ನು ಮರುಆಮದು ಮಾಡುವ ಅಗತ್ಯವಿಲ್ಲ.


ಮುಂದಿನ ಹಂತಗಳು