C cenaly.com
مفت شروع کریں

اپنی PBX کا API اور MCP

کیز اور اجازتیں، REST API، Claude اور Cursor کے لیے MCP سرور، بغیر کی کے OAuth کے ذریعے ChatGPT اور claude.ai کا کنکشن، مثالیں، حدود اور نقائص

On this page 10

اپنی PBX کے لیے API اور MCP

آپ کا اپنا PBX Cenaly آپ کے پروگراموں اور AI اسسٹنٹس کے لیے کھلا ہے:

  • CRM، اکاؤنٹنگ سسٹم، اپنی ویب سائٹ — REST API: کال لاگ، ریکارڈنگز اور ٹرانسکرپٹس، ایک کلک میں کال، ایکسٹینشنز، کال فارورڈنگ، کال کے قواعد؛
  • Claude Code، Claude Desktop، Cursor — کلید کے ذریعے ریموٹ MCP سرور؛
  • ChatGPT، claude.ai، Perplexity، Cursor اور VS Code — وہی MCP سرور بغیر کلید کے: آپ اپنے اکاؤنٹ میں سائن ان کرتے ہیں اور رسائی کی اجازت دیتے ہیں (OAuth)۔

سب کچھ اکاؤنٹ کے مالک کی جانب سے اور صرف انہی اختیارات کے ساتھ کام کرتا ہے جو اس نے دیے ہیں۔ ہر تبدیلی PBX کے ایکشن لاگ میں کلید یا ایپ کے نام کے ساتھ نظر آتی ہے۔

پتے#

کیا پتہ
REST API https://api.cenaly.com/pbx-api/v1
MCP سرور (streamable HTTP) https://api.cenaly.com/pbx-api/mcp
میتھڈز کی دستاویزات api.cenaly.com/pbx-api/v1/docs
OpenAPI 3.1 تفصیل api.cenaly.com/pbx-api/v1/openapi.json
OAuth میٹا ڈیٹا https://api.cenaly.com/.well-known/oauth-authorization-server/pbx-api

کلید اور اختیارات#

کلید صرف اکاؤنٹ کا مالک بنا سکتا ہے: ٹیلی فونی → API اور MCP → کلیدیں → کلید بنائیں۔ «PBX ایڈمنسٹریٹر» رول والا ملازم کلیدیں نہیں دیکھ سکتا — کلید مالک کی جانب سے کام کرتی ہے۔

  • cpx_… طرز کی کلید صرف ایک بار دکھائی جاتی ہے — بنانے کے فوراً بعد، کنیکٹ کرنے کے لیے تیار اسنیپٹس کے ساتھ۔ ہمارے پاس صرف اس کا فنگر پرنٹ (SHA-256) محفوظ ہوتا ہے، کلید بحال نہیں کی جا سکتی — صرف نئی جاری کی جا سکتی ہے۔
  • کلید کو برانچز تک محدود کیا جا سکتا ہے (ورنہ — تمام برانچز، بشمول مستقبل کی) اور مدت تک (30، 90، 365 دن یا غیر معینہ)۔
  • «اختیارات» کلید کے اختیارات اور برانچز فوری طور پر تبدیل کرتے ہیں: انٹیگریشن کام کرتی رہتی ہے، نئے اختیارات اگلی درخواست سے لاگو ہوتے ہیں۔
  • «منسوخ کریں» — فوراً اور ہمیشہ کے لیے: اس کلید کے ساتھ اگلی درخواست کو 401 ملے گا۔
  • فعال کلیدیں اور کنکشنز — فی اکاؤنٹ زیادہ سے زیادہ 20۔

اختیارات تیار سیٹ یا چیک باکسز سے منتخب کیے جاتے ہیں:

اختیار کیا دیتا ہے سیٹس
calls:read کال لاگ اور روٹ کے ساتھ کال کارڈ CRM، AI معاون، صرف پڑھنے، سب
recordings:read گفتگو کی ریکارڈنگ کا لنک (10 منٹ) اور ٹرانسکرپٹ CRM، AI معاون، صرف پڑھنے، سب
calls:dial ایک کلک میں کال: پہلے ملازم کے فون پر کال جاتی ہے، جواب کے بعد PBX نمبر ڈائل کرتا ہے CRM، AI معاون، سب
extensions:read ایکسٹینشنز، گروپس، فارورڈنگ، «ڈسٹرب نہ کریں» CRM، AI معاون، صرف پڑھنے، سب
extensions:write ذاتی فارورڈنگ اور «ڈسٹرب نہ کریں» تبدیل کرنا AI معاون، سب
presence:read کون فارغ ہے، کال کر رہا ہے، بات کر رہا ہے AI معاون، صرف پڑھنے، سب
reports:read مدت کے لیے کال سینٹر میٹرکس: سروس لیول، انتظار، چھوڑی گئی کالیں، AHT، FCR، CSAT، کہاں کالیں ضائع ہو رہی ہیں، قطاروں، لائنوں، ملازمین کے لحاظ سے تقسیم صرف پڑھنے، سب
routes:read نمبر، آنے اور جانے والی کالوں کے قواعد، قواعد کی تاریخ صرف پڑھنے، سب
routes:write کال کے قواعد بنانا، تبدیل کرنا، حذف کرنا اور دوبارہ ترتیب دینا، تاریخ سے واپس لانا صرف الگ چیک باکس سے
config:export PBX کی سیٹنگز فائل کی شکل میں برآمد کرنا صرف الگ چیک باکس سے
config:import جدولوں سے سیٹنگز درآمد کرنا: پیش نظارہ، پھر لاگو کرنا صرف الگ چیک باکس سے
webhooks:write کال ایونٹس کے ویب ہکس بنانا، تبدیل کرنا، جانچنا اور حذف کرنا صرف الگ چیک باکس سے
daynight:write برانچ کو دن کے اختتام تک یا کسی تاریخ تک بند کرنا، کھولنا — وہی جو فون سے *28 ہے صرف الگ چیک باکس سے

جو اختیارات کچھ تبدیل کرتے ہیں یا منٹ خرچ کرتے ہیں، ونڈو میں نارنجی رنگ سے نشان زد ہیں۔ آخری تین اختیارات کسی بھی سیٹ میں شامل نہیں، «سب» میں بھی نہیں — یہ صرف سوچ سمجھ کر، الگ چیک باکس سے دیے جا سکتے ہیں۔

ChatGPT، claude.ai، Perplexity، Cursor، VS Code: بغیر کلید کے کنیکشن#

کلاؤڈ اسسٹنٹس ہیڈر میں کلید نہیں ڈال سکتے — وہ MCP سرور کو OAuth کے ذریعے کنیکٹ کرتے ہیں۔ کلید بنانے کی ضرورت نہیں۔

claude.ai: سیٹنگز → کنیکٹرز → اپنا کنیکٹر شامل کریں → https://api.cenaly.com/pbx-api/mcp پیسٹ کریں → کنیکٹ کریں۔

ChatGPT: سیٹنگز → ایپس اور کنیکٹرز → مزید → ڈویلپر موڈ آن کریں → بنائیں → https://api.cenaly.com/pbx-api/mcp پیسٹ کریں، تصدیق — OAuth۔

Perplexity: اکاؤنٹ سیٹنگز → کنیکٹرز → «+ اپنا کنیکٹر» → ریموٹ → https://api.cenaly.com/pbx-api/mcp پیسٹ کریں، تصدیق — OAuth۔

Cursor اور VS Code: https://api.cenaly.com/pbx-api/mcp پتے کے ساتھ ریموٹ (HTTP) MCP سرور شامل کریں، کلید والے ہیڈر کے بغیر — لاگ ان ونڈو براؤزر میں کھلے گی۔ Cursor میں: .cursor/mcp.json → {"mcpServers": {"cenaly-pbx": {"url": "https://api.cenaly.com/pbx-api/mcp"}}}؛ VS Code میں: کمانڈ «MCP: Add Server» → HTTP۔

اس کے بعد اسسٹنٹ Cenaly کا لاگ ان ونڈو کھولے گا۔ لاگ ان کے بعد آپ دیکھیں گے:

  • کون رسائی مانگ رہا ہے — ایپ کا نام اس پتے سے ہوتا ہے جہاں جواب واپس آئے گا: «تصدیق شدہ کنیکٹر · chatgpt.com» (اسی طرح — claude.ai، perplexity.ai، vscode.dev، Cursor)، «اس کمپیوٹر پر پروگرام» یا انتباہ «نامعلوم پتہ»۔ ایپ کا بھیجا ہوا نام چھوٹے میں دکھایا جاتا ہے — اسے کوئی بھی لکھ سکتا ہے؛
  • اختیارات — جو ایپ مانگ رہی ہے وہ نشان زد ہوتا ہے (اگر وہ «سب کچھ» مانگتی ہے، تو «AI معاون» سیٹ نشان زد ہوتا ہے)؛ «صرف الگ چیک باکس سے» والے اختیارات پہلے سے کبھی نشان زد نہیں ہوتے؛
  • برانچز — سب یا منتخب کردہ۔

«اجازت دیں» آپ کو اسسٹنٹ میں واپس لے جاتا ہے، اور وہ فوراً PBX کے ٹولز دیکھتا ہے۔ کنیکشن ٹیلی فونی → API اور MCP → کلیدیں میں OAuth لیبل اور ایپ کے پتے والی سطر کے طور پر ظاہر ہوتا ہے — وہیں اختیارات تبدیل ہوتے ہیں اور رسائی منسوخ ہوتی ہے۔ اسی ایپ کا دوبارہ کنیکشن اس کے اختیارات کو اپ ڈیٹ کرتا ہے، دوسرا کنیکشن نہیں بناتا۔

کنیکشنز کی اجازت صرف اکاؤنٹ کا مالک دے سکتا ہے۔

Claude Code، Claude Desktop، Cursor: کلید کے ذریعے کنکشن#

Claude Code — ایک ہی کمانڈ سے:

claude mcp add --transport http telephony https://api.cenaly.com/pbx-api/mcp --header "Authorization: Bearer cpx_…"

Claude Desktop، Cursor (.cursor/mcp.json) اور سیٹنگز فائل والے دیگر کلائنٹس:

{
  "mcpServers": {
    "telephony": {
      "type": "http",
      "url": "https://api.cenaly.com/pbx-api/mcp",
      "headers": { "Authorization": "Bearer cpx_…" }
    }
  }
}

آپ کی کلید کے ساتھ تیار پیسٹ کلید بنانے کے فوراً بعد دکھائے جاتے ہیں۔ AI معاون صرف وہی ٹولز دیکھتا ہے جن کی کلید اجازت دیتی ہے، اور «آج کس نے کال کی اور رابطہ نہ ہو سکا»، «اس مہمان کو انا کے فون سے واپس کال کریں»، «میرے لیے موبائل پر فارورڈنگ آن کریں» جیسے سوالات کا جواب دے سکتا ہے۔

REST API#

کلید ہیڈر Authorization: Bearer <کلید> میں (یا X-Api-Key)۔ اگر کلید کی ایک برانچ ہو تو location پیرامیٹر بھیجنے کی ضرورت نہیں؛ اگر کئی ہوں تو جواب 400 location_required ان کی فہرست دے گا۔

طریقہ راستہ اجازت کیا کرتا ہے
GET /v1/me — کلید کی اجازتیں، برانچیں اور حدود
GET /v1/locations — کلید کی برانچیں اور ان کے PBX
GET /v1/calls calls:read کالوں کا ریکارڈ: since، until، direction، status (answered، missed، ai)، number، extension، limit 100 تک، cursor
GET /v1/calls/{id} calls:read روٹ کے ساتھ کال: کون سا اصول لاگو ہوا، کس کا فون بجا، کس نے جواب دیا
GET /v1/calls/{id}/recording recordings:read 10 منٹ کے لیے ریکارڈنگ کا لنک
GET /v1/calls/{id}/transcript recordings:read گفتگو کی نقل اور خلاصہ
POST /v1/dial calls:dial ایک کلک میں کال: { "extension": "101", "number": "+995555123456" }
GET /v1/dial/{commandId} calls:dial ایک کلک کی کال کیسے چل رہی ہے
GET /v1/extensions extensions:read ایکسٹینشنز، گروپس، فارورڈنگ، «ڈسٹرب نہ کریں»
PUT /v1/extensions/{ext}/forwarding extensions:write ایکسٹینشن کی ذاتی فارورڈنگ
PUT /v1/extensions/{ext}/dnd extensions:write «ڈسٹرب نہ کریں»: { "on": true }
GET /v1/presence presence:read اس وقت کون فارغ ہے
GET /v1/metrics reports:read مدت کے لیے کال سینٹر کے میٹرکس: from، to (برانچ کی مقامی تاریخیں YYYY-MM-DD، ڈیفالٹ — گزشتہ 7 دن)، compare (prev، year، prev,year یا خالی)، sections (metrics,loss,queues,lines,operators,directions,heatmap,daily)، callbacks=true — واپس کال کی رفتار بھی
GET /v1/routes routes:read نمبر، آنے والی اور جانے والی کالوں کے اصول
GET /v1/routes/history routes:read اصولوں کی تبدیلیوں کی تاریخ
POST, PUT, DELETE /v1/routes/inbound…، /v1/routes/outbound… routes:write کال کے اصول ایک ایک کر کے: بنائیں، بھیجے گئے فیلڈز بدلیں، حذف کریں، ترتیب بدلیں، واپس لائیں
GET, POST /v1/config/export، /v1/config/import config:export، config:import فائل کی شکل میں سیٹنگز؛ اپ لوڈ — پیش نظارہ، پھر لاگو کرنا
GET /v1/events calls:read برانچ کی 7 دن کی کال ایونٹس (2000 تک): since (ایونٹ کی id یا وقت)، types، limit (فی جواب 500 تک)
GET, POST, PATCH, DELETE /v1/webhooks… webhooks:write ویب ہکس: فہرست، بنائیں، بدلیں، حذف کریں؛ …/rotate-secret، …/test، …/deliveries
GET, PUT /v1/open-closed routes:read، daynight:write بند ہے یا نہیں اور کب تک؛ دن کے اختتام تک بند { "closed": true }، تاریخ تک { "closed": true, "until": "2026-10-05T09:00" } یا کھولیں

فیلڈز کی مکمل تفصیل دستاویزات کے صفحے اور OpenAPI میں ہے۔

آج کس نے کال کی اور رابطہ نہ ہو سکا:

curl -H "Authorization: Bearer cpx_…" \
  "https://api.cenaly.com/pbx-api/v1/calls?status=missed&since=$(date -u +%Y-%m-%dT00:00:00Z)"

ایکسٹینشن 101 کے فون سے کلائنٹ کو واپس کال کریں:

curl -X POST -H "Authorization: Bearer cpx_…" -H "Content-Type: application/json" \
  -d '{"extension":"101","number":"+995555123456"}' "https://api.cenaly.com/pbx-api/v1/dial"

ستمبر کے میٹرکس، اگست اور گزشتہ سال کے ستمبر سے موازنے کے ساتھ — اپنے BI پینل کے لیے:

curl -H "Authorization: Bearer cpx_…" \
  "https://api.cenaly.com/pbx-api/v1/metrics?from=2026-09-01&to=2026-09-30&compare=prev,year"

جواب میں metrics — وہی اعداد جو ٹیلی فونی → کال ریکارڈ → تجزیات کی اسکرین پر ہوتے ہیں: آنے والی، وصول شدہ اور چھوٹی ہوئی کالیں، سروس کی سطح (حد اور ہدف — قطار کی سیٹنگز سے)، اوسط اور زیادہ سے زیادہ انتظار، مختصر کالوں کے بغیر چھوڑی گئی کالوں کا حصہ، AHT، FCR، منتقلی اور بوٹ کا حصہ، CSAT۔ compare.prev اور compare.year — گزشتہ مدت اور ایک سال پہلے کی اسی مدت کے وہی فیلڈز۔ گزشتہ سال سے موازنہ 400 دن تک کی مدت کے لیے شمار ہوتا ہے۔

اگر ملازم نے 15 سیکنڈ میں جواب نہ دیا ہو تو موبائل پر فارورڈنگ آن کریں:

curl -X PUT -H "Authorization: Bearer cpx_…" -H "Content-Type: application/json" \
  -d '{"forward":{"noAnswer":{"kind":"number","number":"+995599000111"},"noAnswerSec":15}}' \
  "https://api.cenaly.com/pbx-api/v1/extensions/101/forwarding"

MCP ٹولز#

وہی کارروائیاں جو REST میں ہیں۔ کلائنٹ صرف وہی ٹولز دیکھتا ہے جن کی اجازت کلید یا کنکشن نے دی ہو:

ٹولز حق
list_locations —
list_calls, get_call calls:read
get_call_recording, get_call_transcript recordings:read
call_number, get_dial_status calls:dial
list_extensions extensions:read
set_forwarding, set_do_not_disturb extensions:write
get_presence presence:read
get_call_metrics reports:read
list_routes, list_route_history routes:read
save_inbound_rule, delete_inbound_rule, move_inbound_rule, save_outbound_rule, delete_outbound_rule, move_outbound_rule, set_outbound_calls, restore_route_version routes:write
export_config config:export
import_config config:import
get_call_events calls:read
list_webhooks, save_webhook, delete_webhook, rotate_webhook_secret, test_webhook, list_webhook_deliveries webhooks:write
get_open_closed routes:read
set_open_closed daynight:write

سرور سیشن کے بغیر کام کرتا ہے (streamable HTTP، JSON-RPC 2.0): initialize، tools/list، tools/call۔

اپنے کنیکٹرز کے ڈویلپرز کے لیے OAuth#

اجازت کا سرور MCP کی اجازت کی تفصیل کی پیروی کرتا ہے — کوئی بھی کلائنٹ جو اسے سپورٹ کرتا ہو، موزوں ہے:

  1. بغیر ٹوکن کے MCP کو بھیجی گئی درخواست کو 401 ملتا ہے، ہیڈر کے ساتھ WWW-Authenticate: Bearer resource_metadata="https://api.cenaly.com/.well-known/oauth-protected-resource/pbx-api/mcp"۔
  2. ریسورس میٹاڈیٹا (RFC 9728) اجازت کے سرور کا نام بتاتا ہے — https://api.cenaly.com/pbx-api؛ اس کا میٹاڈیٹا (RFC 8414) اس پتے پر ہے: https://api.cenaly.com/.well-known/oauth-authorization-server/pbx-api (اور …/pbx-api/.well-known/openid-configuration)۔
  3. کلائنٹ کی ڈائنامک رجسٹریشن (RFC 7591): POST /pbx-api/oauth/register۔ واپسی کا پتہ صرف localhost / 127.0.0.1 (کوئی بھی پورٹ) یا کسی معلوم کنیکٹر کا پتہ ہو سکتا ہے (claude.ai، claude.com، chatgpt.com، chat.openai.com، vscode.dev، www.perplexity.ai، enterprise.perplexity.ai؛ Cursor کے لیے مزید بالکل cursor://anysphere.cursor-mcp/oauth/callback)۔ کلائنٹ کے لاگ اِن کا طریقہ — none (پبلک کلائنٹ)، client_secret_post یا client_secret_basic۔
  4. PKCE کے ساتھ اجازت کا کوڈ (صرف S256): GET /pbx-api/oauth/authorize → مالک کی لاگ اِن اور رضامندی کی ونڈو → آپ کے پتے پر code، state اور iss کے ساتھ واپسی۔ پیرامیٹر resource — MCP سرور کا پتہ ہے۔
  5. ٹوکنز: POST /pbx-api/oauth/token۔ کوڈ ایک بار استعمال ہوتا ہے اور 2 منٹ تک زندہ رہتا ہے (غلط code_verifier اسے ختم کر دیتا ہے)؛ رسائی کا ٹوکن — 1 گھنٹہ؛ ریفریش ٹوکن — 90 دن، ہر ریفریش پر نیا جاری ہوتا ہے، پرانا کام کرنا بند کر دیتا ہے۔
  6. منسوخی: POST /pbx-api/oauth/revoke (RFC 7009) کنکشن کو مکمل طور پر ختم کر دیتا ہے — جیسے «API اور MCP» ونڈو میں «منسوخ کریں»۔

رسائی کا ٹوکن ہر وہاں قبول کیا جاتا ہے جہاں کلید قبول ہوتی ہے: MCP میں بھی اور REST میں بھی، ان حقوق اور برانچوں کے ساتھ جن کی مالک نے اجازت دی ہو۔

حدود اور غلطیاں#

  • فی کلید یا کنکشن: 120 درخواستیں فی منٹ اور 20 000 فی دن (REST اور MCP مل کر)۔
  • ایک کلک پر کال — الگ سے: 10 فی منٹ اور 300 فی دن۔
  • جرنل — فی درخواست زیادہ سے زیادہ 100 کالز؛ PBX کے جرنل میں برانچ کی آخری 400 کالز 90 دن تک۔
کوڈ غلطی کیا کریں
401 api_key_missing, api_key_invalid کلید موجود نہیں، منسوخ ہو چکی ہے یا میعاد ختم ہو گئی ہے؛ OAuth ٹوکن کی میعاد ختم ہو گئی ہے — اسے ریفریش کریں
403 scope_required کلید کے پاس حق نہیں ہے — اسے «حقوق» میں شامل کریں
400 location_required کلید کے پاس کئی برانچیں ہیں — location بھیجیں
404 location_not_found برانچ موجود نہیں یا کلید دیگر برانچوں تک محدود ہے
429 rate_limited حد ختم ہو گئی ہے، Retry-After سیکنڈ کے بعد دوبارہ کوشش کریں

کال کے ایونٹس#

حقیقی وقت میں — پی بی ایکس کے ویب ہکس: ٹیلی فونی → API اور MCP → ویب ہکس یا POST /v1/webhooks اس کلید کے ساتھ جس میں webhooks:write کا حق ہو۔ آپ کے https پتے پر سیکنڈوں میں ہر ایونٹ کے لیے POST آتا ہے: call.started (شروع ہوا: سمت، کون، کہاں، لائن)، call.ringing (کس کے پاس بج رہا ہے — ہر فون پر ایک ایک)، call.answered (کس نے جواب دیا)، call.transferred (کس نے کس کو منتقل کیا)، call.ended (نتیجہ، دورانیہ، گفتگو، کس نے جواب دیا)۔ ویب ہک کو برانچوں اور ایونٹ کی اقسام تک محدود کیا جا سکتا ہے۔

{ "id": "1727771234.56:2", "type": "call.answered", "createdAt": "2026-10-01T10:00:05Z",
  "locationId": "…", "webhookId": "wh_…", "attempt": 1,
  "data": { "callId": "1727771234.56", "seq": 2, "direction": "inbound",
            "from": { "number": "+995555123456" }, "party": { "extension": "101", "name": "Анна" } } }

دستخط — ہیڈر X-Cenaly-Signature: t=<یونکس وقت>,v1=<"t.باڈی" کا HMAC-SHA256 ویب ہک کے سیکرٹ سے>۔ دوبارہ حساب لگائیں، مستقل وقت میں موازنہ کریں اور 5 منٹ سے پرانا t مسترد کریں۔ سیکرٹ whsec_… صرف ایک بار دکھایا جاتا ہے؛ «نیا سیکرٹ» پچھلے کو فوراً بے اثر کر دیتا ہے۔

ڈیلیوری — 10 سیکنڈ میں 2xx جواب دیں۔ ورنہ ہم 10 س، 30 س، 2، 5، 10، 15 اور 15 منٹ کے وقفوں سے دہراتے ہیں (8 کوششیں، تقریباً ایک گھنٹہ)؛ دہرائی میں وہی id ہوتا ہے — اسی سے نقول چھانٹیں۔ ڈیلیوریوں کا جرنل (جواب کا کوڈ، وقت، کوشش) — ویب ہک کی ونڈو میں اور GET /v1/webhooks/{id}/deliveries؛ «جانچیں» ایک سروس webhook.ping بھیجتا ہے۔ پتہ 3 دن مسلسل ایک بھی ڈیلیوری قبول نہ کرے — ویب ہک خود بند ہو جاتا ہے: مالک کو خط آتا ہے، «ویب ہکس» کی ونڈو میں «خودکار طور پر بند» کا نشان اور «فعال کریں» کا بٹن (یا PATCH /v1/webhooks/{id} مع { "enabled": true })۔

اپنے سرور کے بغیر — وہی فیڈ پولنگ سے: GET /v1/events?since=<آخری ایونٹ کی id> یا MCP ٹول get_call_events (برانچ کے ایونٹس پچھلے 7 دنوں کے، زیادہ سے زیادہ 2000؛ فی جواب — زیادہ سے زیادہ 500، more: true — اسی since سے آگے بڑھیں)۔

ریکارڈنگ پر کارروائی کے بعد — نقل حرفی اور تجزیے والی کال ماخذ «ویب ہک» کے ویب ہک سے «کالز» کے حصے میں آتی ہے۔

«کھلا / بند» — PUT /v1/open-closed مع { "closed": true } برانچ کو دن کے آخر تک بند کرتا ہے (فون سے *28 کی طرح: کالیں «اوقات سے باہر» کے قواعد سے چلتی ہیں)، false — کھولتا ہے؛ GET دکھاتا ہے کہ بند ہے یا نہیں اور کس نے بند کیا۔ "until" کے ساتھ — اس لمحے تک بند (30 دن سے زیادہ نہیں)، پھر خود کھل جائے گا: بغیر آفسیٹ وقت (2026-10-05T09:00) برانچ کے ٹائم زون میں پڑھا جاتا ہے؛ false اسے بھی ہٹا دیتا ہے۔ روٹنگ میں «*28 کوڈ سے بند کریں» کا چیک باکس فعال ہونا چاہیے (ورنہ 409)۔

سیکیورٹی#

  • کلید صرف ایک بار دکھائی جاتی ہے اور ہمارے پاس صرف اس کے فنگر پرنٹ کی صورت میں محفوظ رہتی ہے؛ لیک ہو گئی کلید ایک بٹن سے منسوخ ہو جاتی ہے۔
  • OAuth کنکشن کی اجازت صرف مالک دیتا ہے، اور یہ نظر آتا ہے کہ رسائی کس پتے کو جا رہی ہے؛ اجازت یافتہ کنکشن کو حقوق اور برانچوں تک محدود کیا جا سکتا ہے اور کسی بھی وقت واپس لیا جا سکتا ہے۔
  • فون نمبر آپ کے گاہکوں کا ذاتی ڈیٹا ہیں: جرنل اور ریکارڈنگز کے حقوق صرف انہی انٹیگریشنز کو دیں جنہیں واقعی ان کی ضرورت ہو۔
  • کلید یا کنکشن سے ہونے والی تمام تبدیلیاں پی بی ایکس کے ایکشن لاگ میں کلید یا ایپ کے نام کے ساتھ درج ہوتی ہیں۔
Was this article helpful?