ThunderPhone 2.0 اب لائیو ہے۔سیلف سرو، قیمت 2¢ فی منٹ سے شروع۔اعلان پڑھیں

Developer cookbook

SIP کے ذریعے کنیکٹ کریں (فون نمبر کے بغیر)

اپنے PBX، کیریئر یا SIP ایپلیکیشن سے کالز براہِ راست ThunderPhone ایجنٹ کو بھیجیں، ہر کال کے لیے ایک بار استعمال ہونے والی SIP URI یا مستقل SIP ایڈریس کے ساتھ۔

اگر آپ کا اپنا نظام پہلے ہی فون نمبرز سنبھالتا ہے (مثلاً ایک PBX، کانٹیکٹ سینٹر پلیٹ فارم، یا ایسا کیریئر اکاؤنٹ جس میں آپ نمبرز تبدیل کرتے رہتے ہیں)، تو آپ عام SIP کے ذریعے کالز ThunderPhone ایجنٹ کو بھیج سکتے ہیں۔ آپ ThunderPhone پر کوئی نمبر درآمد یا خریدتے نہیں ہیں۔ آپ کا نظام ایک SIP پتہ ڈائل کرتا ہے اور ایجنٹ جواب دیتا ہے۔

SIP پتے کی دو اقسام ہیں:

ہر کال کے لیے SIP URISIP اینڈ پوائنٹ
شکلsip:c-<token>@sip.thunderphone.comsip:agent-<id>-<letters>@sip.thunderphone.com
تخلیق کا طریقہPOST /v1/calls/register-sip، ہر کال کے لیے ایک بارPOST /v1/sip-endpoints، ایک بار
توثیقپتے میں موجود یک بار استعمال ہونے والا ٹوکنSIP ڈائجسٹ صارف نام اور پاس ورڈ (اور اختیاری طور پر ماخذ IP اجازت فہرست)
موزوں استعمالایسی ایپس جو کال منتقل کرنے سے پہلے ہی API کو کال کرتی ہیں؛ ہر کال کے متغیراتایسے PBX اور کیریئرز جنہیں صرف ThunderPhone کی طرف "ٹرنک پوائنٹ" کرنا ہو
معیاد5 منٹ، ایک کالجب تک آپ اسے حذف نہ کر دیں

دونوں اقسام آپ کی تنظیم کے ایک ایجنٹ تک روٹ کرتی ہیں، اور دونوں کال ہسٹری میں کسی بھی دوسری آنے والی کال کی طرح ظاہر ہوتی ہیں۔

ہر کال کے لیے SIP URI

1. کال رجسٹر کریں

curl -X POST https://api.thunderphone.com/v1/calls/register-sip \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "agent_id": 12,
    "to_number": "+14155550142",
    "variables": {"customer_name": "Ada"}
  }'
{
  "call_id": 862197007562,
  "sip_uri": "sip:c-1790372992.Qm3xT8vLk2PzR7nYw4HbJa.uF6sD1gK9eW2cX5vB8nM0q@sip.thunderphone.com",
  "expires_at": "2026-09-25T21:49:52Z",
  "agent_id": 12,
  "to_number": "+14155550142"
}
  • to_number (اختیاری) وہ نمبر ہے جسے کال کرنے والے نے آپ کی جانب سے ڈائل کیا تھا۔ یہ کال ہسٹری میں کال کی منزل کے طور پر محفوظ ہوتا ہے، اور ایجنٹ اسے اپنے نمبر کے طور پر دیکھتا ہے۔
  • variables (اختیاری) ایجنٹ کے prompt میں موجود {{placeholders}} کو پُر کرتے ہیں، بالکل اسی طرح جیسے آؤٹ باؤنڈ کالز کے لیے۔
  • call_id وہ شناخت ہے جو کنیکٹ ہونے کے بعد کال ہسٹری میں کال کو حاصل ہوگی (GET /v1/calls/{call_id})۔

2. URI ڈائل کریں

5 منٹ کے اندر کال sip_uri کو بھیجیں۔ URI صرف ایک کال کے لیے کام کرتا ہے: ایک بار جب کوئی کال اسے استعمال کر لے، تو یہ مزید قابل استعمال نہیں رہتا، خواہ وہ کال جلد ختم ہو جائے۔

مثال کے طور پر Twilio کے ساتھ، جس کال کو آپ منتقل کرنا چاہتے ہیں اس کے لیے یہ TwiML واپس کریں:

<Response>
  <Dial>
    <Sip>sip:c-1790372992.Qm3xT8vLk2PzR7nYw4HbJa.uF6sD1gK9eW2cX5vB8nM0q@sip.thunderphone.com;transport=tcp</Sip>
  </Dial>
</Response>

PBX سے URI کو SIP منزل کے طور پر ڈائل کریں۔ کسی صارف نام یا پاس ورڈ کی ضرورت نہیں ہے؛ ٹوکن ہی تصدیقی ذریعہ ہے، اس لیے URI کو استعمال ہونے تک پاس ورڈ کی طرح محفوظ رکھیں۔

SIP اینڈ پوائنٹ (مستقل پتہ)

1. اینڈ پوائنٹ بنائیں

curl -X POST https://api.thunderphone.com/v1/sip-endpoints \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"agent_id": 12, "name": "Main PBX"}'
{
  "id": 7,
  "name": "Main PBX",
  "agent_id": 12,
  "sip_uri": "sip:agent-12-jhxmginwjx@sip.thunderphone.com",
  "username": "tp409667538f83",
  "password": "8mJ0…",
  "allowed_source_cidrs": [],
  "status": "active",
  "created_at": "2026-09-25T21:46:18Z"
}

2. اپنے سسٹم کو اس کی طرف اشارہ کریں

درج ذیل کے ساتھ SIP ٹرنک یا منزل کنفیگر کریں:

ترتیبقدر
SIP URIاینڈ پوائنٹ کا sip_uri
صارف نام / پاس ورڈusername / password (ڈائجسٹ توثیق؛ ThunderPhone ہر کال پر چیلنج کرتا ہے)
ٹرانسپورٹپورٹ 5060 پر TCP یا پورٹ 5061 پر TLS (تجویز کردہ)، یا پورٹ 5060 پر UDP
کوڈیکسG.711 (PCMU/PCMA) یا G.722

یہ ٹرانسپورٹ اور کوڈیک ترتیبات فی کال URIs پر بھی لاگو ہوتی ہیں۔ دونوں قسم کے پتوں کے لیے نیٹ ورک کی دو تفصیلات اہم ہیں:

  • Record-Route کی پیروی کریں۔ پہلے INVITE کے بعد، باقی کال کی سگنلنگ (ACK، کال ختم کرنا، ٹرانسفرز) اس مخصوص ThunderPhone سرور کو جاتی ہے جس نے جواب دیا تھا، جس کا نام Record-Route ہیڈر میں ہوتا ہے (sip-1.thunderphone.com یا sip-2.thunderphone.com، یا اس کا IP پتہ)۔ اگر آپ آؤٹ باؤنڈ SIP کو محدود کرتے ہیں تو sip.thunderphone.com کے ساتھ ان ہوسٹس کی بھی اجازت دیں: 172.170.39.202 (sip)، 13.86.104.121 (sip-1) اور 20.80.98.90 (sip-2)۔
  • آڈیو کہیں اور جاتا ہے۔ sip.thunderphone.com صرف سگنلنگ منتقل کرتا ہے۔ SDP جواب میں موجود پتوں اور پورٹس کے لیے میڈیا (RTP) کی اجازت دیں۔

پتے پر آنے والی ہر کال اینڈ پوائنٹ کے ایجنٹ تک پہنچتی ہے، چاہے کالر نے آپ کی جانب سے کوئی بھی نمبر ڈائل کیا ہو۔ آپ کبھی نمبر درآمد نہیں کرتے، اس لیے اپنی جانب سے انہیں تبدیل کرنے کے لیے ThunderPhone میں کسی تبدیلی کی ضرورت نہیں۔

ڈائل کیا گیا نمبر منتقل کریں (اختیاری)

یہ ریکارڈ کرنے کے لیے کہ کالر نے آپ کے کون سے نمبر پر کال کی، اسے INVITE میں X-Original-To ہیڈر (مثلاً X-Original-To: +14155550142) یا معیاری Diversion ہیڈر میں بھیجیں۔ ThunderPhone اسے کال کی منزل کے طور پر محفوظ کرتا ہے۔

منزل کا انتخاب اس ترتیب سے ہوتا ہے: فی کال URI رجسٹر کرتے وقت دیا گیا to_number، پھر X-Original-To میں موجود نمبر، پھر Diversion میں موجود نمبر۔ اگر ان میں سے کسی سے نمبر نہ ملے تو اینڈ پوائنٹ کے لیے اسے sip:agent-12-jhxmginwjx (اینڈ پوائنٹ کا پتہ) یا فی کال URI کے لیے sip:call کے طور پر دکھایا جاتا ہے۔

Twilio کے ساتھ آپ SIP URI میں ہیڈر شامل کر سکتے ہیں: sip:agent-12-jhxmginwjx@sip.thunderphone.com;transport=tcp?X-Original-To=%2B14155550142۔

سورس IPs محدود کریں (اختیاری)

صارف نام اور پاس ورڈ کے علاوہ، صرف اپنی سگنلنگ کے پتوں سے کالیں قبول کرنے کے لیے allowed_source_cidrs سیٹ کریں:

curl -X PATCH https://api.thunderphone.com/v1/sip-endpoints/7 \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"allowed_source_cidrs": ["203.0.113.0/28"]}'

کسی بھی دوسرے پتے سے آنے والی کالیں ایجنٹ تک پہنچنے سے پہلے مسترد کر دی جاتی ہیں۔ وہ پتے استعمال کریں جن سے آپ کا سسٹم SIP سگنلنگ بھیجتا ہے (Twilio جیسے کیریئر کے لیے، اس کی شائع شدہ سگنلنگ IP حدود)، اپنے میڈیا پتے نہیں۔

کال کرنے والے اور آپ کے سسٹم کو کیا نظر آتا ہے

  • کالر ID: From ہیڈر کا صارف والا حصہ کالر کے طور پر محفوظ کیا جاتا ہے۔ فون نمبر (ہندسے، اختیاری طور پر +، اسپیسز، ڈیشز، نقطوں یا بریکٹس کے ساتھ) کو E.164 میں معمول پر لایا جاتا ہے؛ باقی ہر چیز، جیسے SIP صارف نام، بھیجی گئی صورت میں رکھی جاتی ہے۔ زیادہ سے زیادہ 32 حروف رکھے جاتے ہیں، اور غائب کالر کو anonymous کے طور پر محفوظ کیا جاتا ہے۔
  • مسترد شدہ کالز: نامعلوم یا میعاد ختم شدہ فی کال URI کو SIP 404 Not Found ملتا ہے۔ پہلے سے استعمال شدہ فی کال URI، غیر فعال اینڈ پوائنٹ، یا اجازت فہرست سے باہر کا کوئی سورس (بشمول اجازت فہرست والے اینڈ پوائنٹ پر کسی بھی UDP کال کے) ایجنٹ شروع ہونے سے پہلے منقطع کر دیا جاتا ہے: آپ کے سسٹم میں کال ناکام نظر آ سکتی ہے، یا کنیکٹ ہو کر فوراً ختم ہو سکتی ہے۔ ان مستردیوں سے کال ہسٹری میں کوئی اندراج نہیں بنتا۔ اگر آپ کی تنظیم کا کریڈٹ ختم ہو گیا ہو یا وہ اپنی اخراجات کی حد تک پہنچ گئی ہو، تو کال مسترد کر دی جاتی ہے اور کال ہسٹری میں بغیر کسی چارج کے ناکام کال کے طور پر دکھائی دیتی ہے۔ فی کال کوشش دوبارہ کرنے کے لیے، نیا URI رجسٹر کریں۔
  • منتقلیاں: ایجنٹ کی کولڈ منتقلیاں کام کرتی ہیں (ThunderPhone ایک SIP REFER بھیجتا ہے، جسے آپ کے سسٹم کو قبول کرنا ضروری ہے)۔ وارم منتقلیاں SIP ایڈریس کالز پر دستیاب نہیں ہیں، کیونکہ دوسرے مرحلے کے لیے کالر ID کے طور پر دکھانے کو کوئی ThunderPhone نمبر موجود نہیں ہوتا۔ Twilio کے ساتھ، اوپر دیا گیا TwiML ایجنٹ کو کنیکٹ کرتا ہے مگر منتقلیوں کو سنبھالتا نہیں: <Dial> میں referUrl="https://YOUR_SERVER/sip-transfer" شامل کریں، اور اس ویب ہک سے ReferTransferTarget پڑھوا کر ایسا TwiML واپس کروائیں جو منتقلی کی منزل ڈائل کرے (Twilio کی SIP REFER گائیڈ دیکھیں)۔
  • ٹیکسٹ پیغامات: SIP ایڈریس اور ڈائل کیا گیا نمبر ٹیکسٹ نہیں بھیج سکتے۔ ایجنٹ SIP ایڈریس کال کے دوران صرف اسی صورت ٹیکسٹ کر سکتا ہے جب ٹیکسٹنگ کے لیے اس کا الگ SMS صلاحیت والا نمبر سیٹ اپ ہو؛ بصورت دیگر اس کا SMS ٹول دستیاب نہیں ہوتا۔
  • رجسٹریشن: ThunderPhone SIP REGISTER قبول نہیں کرتا۔ کالز ایڈریس پر بھیجیں؛ اس پر رجسٹر نہ کریں۔

قیمتیں

SIP ایڈریس کالز پر ایجنٹ کی معمول کی فی منٹ شرح کے مطابق بل کیا جاتا ہے۔ فون نمبر کا کوئی چارج نہیں ہے، کیونکہ کال کسی ThunderPhone نمبر کے ذریعے نہیں ہوتی۔ آپ کا اپنا کیریئر حسب معمول کال کے اپنے حصے کا بل کرتا ہے۔ قیمتیں دیکھیں۔

اسے آزمائیں

  1. اوپر کے مطابق فی کال URI یا اینڈ پوائنٹ بنائیں۔
  2. اسے اپنے سسٹم سے، یا کسی بھی SIP سافٹ فون سے ڈائل کریں (اینڈ پوائنٹ کے لیے، صارف نام اور پاس ورڈ درج کریں)۔
  3. کال ختم کرنے کے بعد، ڈیش بورڈ میں کالز کے تحت کال کھولیں، یا اسے GET /v1/calls/{call_id} کے ذریعے حاصل کریں۔ اس میں کالر، منزل ("ڈائل کیا گیا نمبر منتقل کریں" کے تحت ترتیب دیکھیں) اور ٹرانسکرپٹ دکھائی دیتے ہیں۔

API کی تفصیلات: SIP ایڈریسز API حوالہ۔