اپنی 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 کی اجازت کی تفصیل کی پیروی کرتا ہے — کوئی بھی کلائنٹ جو اسے سپورٹ کرتا ہو، موزوں ہے:
- بغیر ٹوکن کے MCP کو بھیجی گئی درخواست کو 401 ملتا ہے، ہیڈر کے ساتھ
WWW-Authenticate: Bearer resource_metadata="https://api.cenaly.com/.well-known/oauth-protected-resource/pbx-api/mcp"۔ - ریسورس میٹاڈیٹا (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)۔ - کلائنٹ کی ڈائنامک رجسٹریشن (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۔ - PKCE کے ساتھ اجازت کا کوڈ (صرف
S256):GET /pbx-api/oauth/authorize→ مالک کی لاگ اِن اور رضامندی کی ونڈو → آپ کے پتے پرcode،stateاورissکے ساتھ واپسی۔ پیرامیٹرresource— MCP سرور کا پتہ ہے۔ - ٹوکنز:
POST /pbx-api/oauth/token۔ کوڈ ایک بار استعمال ہوتا ہے اور 2 منٹ تک زندہ رہتا ہے (غلطcode_verifierاسے ختم کر دیتا ہے)؛ رسائی کا ٹوکن — 1 گھنٹہ؛ ریفریش ٹوکن — 90 دن، ہر ریفریش پر نیا جاری ہوتا ہے، پرانا کام کرنا بند کر دیتا ہے۔ - منسوخی:
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 کنکشن کی اجازت صرف مالک دیتا ہے، اور یہ نظر آتا ہے کہ رسائی کس پتے کو جا رہی ہے؛ اجازت یافتہ کنکشن کو حقوق اور برانچوں تک محدود کیا جا سکتا ہے اور کسی بھی وقت واپس لیا جا سکتا ہے۔
- فون نمبر آپ کے گاہکوں کا ذاتی ڈیٹا ہیں: جرنل اور ریکارڈنگز کے حقوق صرف انہی انٹیگریشنز کو دیں جنہیں واقعی ان کی ضرورت ہو۔
- کلید یا کنکشن سے ہونے والی تمام تبدیلیاں پی بی ایکس کے ایکشن لاگ میں کلید یا ایپ کے نام کے ساتھ درج ہوتی ہیں۔