Open in
ਵੈੱਬਹੁੱਕਸ ਸੰਖੇਪ ਜਾਣਕਾਰੀ
ThunderPhone ਰੀਅਲ-ਟਾਈਮ ਇਵੈਂਟ ਕਿਵੇਂ ਭੇਜਦਾ ਹੈ, ਸਿਗਨੇਚਰਾਂ ਦੀ ਪੁਸ਼ਟੀ ਕਿਵੇਂ ਕਰਨੀ ਹੈ, ਅਤੇ ਪੁਰਾਣੇ ਤੇ ਐਂਡਪੌਇੰਟ-ਆਧਾਰਿਤ ਡਿਲਿਵਰੀ ਮਾਡਲਾਂ ਦੀ ਤੁਲਨਾ ਕਿਵੇਂ ਹੁੰਦੀ ਹੈ।
ThunderPhone ਤੁਹਾਡੇ ਸਰਵਰ ਨੂੰ HTTP POST ਬੇਨਤੀਆਂ ਭੇਜਦਾ ਹੈ ਜਦੋਂ ਕਾਲ ਦੌਰਾਨ ਕੋਈ ਘਟਨਾ ਵਾਪਰਦੀ ਹੈ — ਇਨਬਾਊਂਡ ਕਾਲ ਸ਼ੁਰੂ ਹੁੰਦੀ ਹੈ, ਕਾਲ ਸਮਾਪਤ ਹੁੰਦੀ ਹੈ, ਗ੍ਰੇਡਿੰਗ ਰਨ ਪੂਰਾ ਹੁੰਦਾ ਹੈ, ਅਲਰਟ ਚਲਦਾ ਹੈ, ਆਦਿ। ਦੋ ਡਿਲਿਵਰੀ ਮਾਡਲ ਹਨ:
ਕਈ URL, ਹਰ ਐਂਡਪੌਇੰਟ ਲਈ ਵੱਖਰੇ ਸੀਕ੍ਰੇਟ, ਹਰ ਐਂਡਪੌਇੰਟ ਲਈ ਇਵੈਂਟ ਫਿਲਟਰ,
ਅਤੇ ਆਟੋਮੈਟਿਕ ਰੀਟ੍ਰਾਈ।
GET/POST/PATCH/DELETE /v1/developer/webhook-endpoints ਰਾਹੀਂ ਪ੍ਰਬੰਧਿਤ ਕਰੋ।
ਹਰ ਸੰਗਠਨ ਲਈ ਇੱਕ URL। ਇਸ ਵਿੱਚ ਬਲਾਕਿੰਗ ਕਨਫਿਗਰੇਸ਼ਨ ਐਕਸਚੇਂਜਾਂ ਸਮੇਤ
ਕਾਲ-ਲਾਈਫਸਾਈਕਲ ਇਵੈਂਟ ਹੁੰਦੇ ਹਨ। GET/PUT /v1/webhook ਵਿੱਚ ਪ੍ਰਬੰਧਿਤ।
ਇਵੈਂਟ ਕੈਟਾਲਾਗ ਵਿੱਚ ਸੂਚੀਬੱਧ ਸਾਰੀਆਂ ਇਵੈਂਟ ਕਿਸਮਾਂ ਵੈੱਬਹੁੱਕ ਐਂਡਪੌਇੰਟਾਂ ਰਾਹੀਂ
ਡਿਲਿਵਰ ਕੀਤੀਆਂ ਜਾਂਦੀਆਂ ਹਨ। ਛੇ ਕਾਲ-ਲਾਈਫਸਾਈਕਲ ਇਵੈਂਟ
(telephony.incoming, telephony.complete, telephony.tool,
web.incoming, web.complete, web.tool) ਲੈਗੇਸੀ ਸਿੰਗਲ-URL ਵੈੱਬਹੁੱਕ ਨੂੰ ਵੀ ਭੇਜੇ
ਜਾਂਦੇ ਹਨ — ਜੇ ਤੁਹਾਡੇ ਕੋਲ ਲੈਗੇਸੀ URL ਅਤੇ ਮੇਲ ਖਾਂਦਾ ਐਂਡਪੌਇੰਟ ਦੋਵੇਂ ਹਨ, ਤਾਂ ਤੁਹਾਨੂੰ ਇਵੈਂਟ
ਦੋਵੇਂ ਪਾਥਾਂ 'ਤੇ ਮਿਲਦਾ ਹੈ। ਬਲਾਕਿੰਗ ਵਿਹਾਰ (ਜਿਵੇਂ ਕਿ telephony.incoming / web.incoming ਕਨਫਿਗਰੇਸ਼ਨ
ਐਕਸਚੇਂਜ ਅਤੇ ਵੈੱਬਹੁੱਕ-ਮੋਡ
ਟੂਲ ਡਿਸਪੈਚ) ਸਿਰਫ਼ ਲੈਗੇਸੀ ਪਾਥ 'ਤੇ ਹੀ ਹੁੰਦਾ ਹੈ;
ਹਰੇਕ ਐਂਡਪੌਇੰਟ ਡਿਲਿਵਰੀ ਫਾਇਰ-ਐਂਡ-ਫਰਗੈਟ ਨੋਟੀਫਿਕੇਸ਼ਨ ਹੁੰਦੀ ਹੈ।
ਪੇਲੋਡ ਫਾਰਮੈਟ
ਐਂਡਪੌਇੰਟ ਡਿਲਿਵਰੀਆਂ data, event_id, ਅਤੇ
type ਵਾਲਾ JSON ਆਬਜੈਕਟ ਹੁੰਦੀਆਂ ਹਨ:
{
"data": {
"call_id": 987654321,
"from_number": "+14155550199",
"to_number": "+15551234567"
},
"event_id": "3f6b2ad0-1c9e-4a57-9f2b-8f6f0f9d2f11",
"type": "telephony.incoming"
}event_id ਹਰੇਕ ਜਾਰੀ ਕੀਤੇ ਇਵੈਂਟ ਲਈ ਵਿਲੱਖਣ ਹੁੰਦਾ ਹੈ। ਇਹ ਰੀਟ੍ਰਾਈਆਂ
ਅਤੇ ਇਵੈਂਟ ਪ੍ਰਾਪਤ ਕਰਨ ਵਾਲੇ ਹਰੇਕ ਐਂਡਪੌਇੰਟ ਵਿੱਚ ਇੱਕੋ ਜਿਹਾ ਹੁੰਦਾ ਹੈ — ਇਸ 'ਤੇ ਡੀਡਿਊਪ ਕਰੋ।
ਲੈਗੇਸੀ ਸਿੰਗਲ-URL ਵੈੱਬਹੁੱਕ ਉਹੀ type ਅਤੇ data ਭੇਜਦਾ ਹੈ, ਪਰ
event_id ਦੇ ਬਿਨਾਂ:
{
"type": "telephony.incoming",
"data": { "call_id": 987654321, "from_number": "+14155550199", "to_number": "+15551234567" }
}ਵਾਇਰ 'ਤੇ, ਹਰੇਕ ਬਾਡੀ ਕੈਨੋਨਿਕਲ ਰੂਪ ਵਿੱਚ ਸੀਰੀਅਲਾਈਜ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ — ਕੀਜ਼ ਵਰਣਮਾਲਾ ਅਨੁਸਾਰ ਕ੍ਰਮਬੱਧ, ਕੋਈ ਵ੍ਹਾਈਟਸਪੇਸ ਨਹੀਂ, UTF-8। ਇਨ੍ਹਾਂ ਦਸਤਾਵੇਜ਼ਾਂ ਵਿੱਚ ਪ੍ਰਿਟੀ-ਪ੍ਰਿੰਟ ਕੀਤੀਆਂ ਉਦਾਹਰਨਾਂ ਸਿਰਫ਼ ਪੜ੍ਹਨਯੋਗਤਾ ਲਈ ਹਨ।
ਇਵੈਂਟ ਕਿਸਮਾਂ ਅਤੇ ਪੇਲੋਡ ਫੀਲਡਾਂ ਦੀ ਪੂਰੀ ਸੂਚੀ ਲਈ ਇਵੈਂਟ ਕੈਟਾਲਾਗ ਵੇਖੋ।
ਦਸਤਖ਼ਤ ਦੀ ਤਸਦੀਕ
ਹਰ ਬੇਨਤੀ ਵਿੱਚ ਦੋ ਦਸਤਖਤ ਹੁੰਦੇ ਹਨ, ਦੋਵੇਂ endpoint ਦੇ secret (ਜਾਂ ਪੁਰਾਣੀਆਂ
ਡਿਲੀਵਰੀਆਂ ਲਈ ਤੁਹਾਡੇ org-ਪੱਧਰੀ webhook secret) ਨਾਲ ਕੀਤੇ HMAC-SHA256 ਹਨ:
X-ThunderPhone-Signature-V2: t=<unix seconds>,v1=<hex>ਟਾਈਮਸਟੈਂਪ, ਮੈਥਡ, ਪਾਥ ਅਤੇ ਕਵੇਰੀ, ਅਤੇ ਰਾਅ ਬਾਡੀ 'ਤੇ ਦਸਤਖਤ ਕਰਦਾ ਹੈ। ਇਸਦੀ ਪੁਸ਼ਟੀ ਕਰੋ ਅਤੇ ਉਹਨਾਂ ਬੇਨਤੀਆਂ ਨੂੰ ਅਸਵੀਕਾਰ ਕਰੋ ਜਿਨ੍ਹਾਂ ਦਾtਤੁਹਾਡੀ ਘੜੀ ਤੋਂ 5 ਮਿੰਟਾਂ ਤੋਂ ਵੱਧ ਦੂਰ ਹੈ, ਤਾਂ ਜੋ ਕੈਪਚਰ ਕੀਤੀ ਬੇਨਤੀ ਨੂੰ ਬਾਅਦ ਵਿੱਚ ਦੁਬਾਰਾ ਨਾ ਚਲਾਇਆ ਜਾ ਸਕੇ। ਰੀਟ੍ਰਾਈ ਭੇਜੇ ਜਾਣ ਵੇਲੇ ਮੁੜ ਦਸਤਖਤ ਕੀਤੇ ਜਾਂਦੇ ਹਨ।X-ThunderPhone-Signatureਸਿਰਫ਼ ਰਾਅ ਬਾਡੀ 'ਤੇ ਦਸਤਖਤ ਕਰਦਾ ਹੈ। ਇਹ ਮੌਜੂਦਾ ਵੇਰੀਫਾਇਰਾਂ ਨੂੰ ਕੰਮ ਕਰਦੇ ਰੱਖਣ ਲਈ ਬਿਨਾਂ ਬਦਲਾਅ ਦੇ ਅਜੇ ਵੀ ਭੇਜਿਆ ਜਾਂਦਾ ਹੈ।
ਕਦਮ
- ਕਿਸੇ ਵੀ ਪਾਰਸਿੰਗ ਤੋਂ ਪਹਿਲਾਂ ਹੈਡਰ, ਮੈਥਡ, ਰਾਅ ਪਾਥ ਅਤੇ ਕਵੇਰੀ, ਅਤੇ ਰਾਅ ਬਾਡੀ ਪੜ੍ਹੋ।
- ਆਪਣੇ ਸੀਕਰਿਟ ਨਾਲ
<t>\n<METHOD>\n<path and query>\n<body>ਦਾ ਹੈਕਸ HMAC-SHA256 ਗਣਨਾ ਕਰੋ। - ਜੇ
t300 ਸਕਿੰਟਾਂ ਤੋਂ ਵੱਧ ਅੰਤਰ ਤੇ ਹੈ, ਜਾਂ ਨਤੀਜਾ ਸਥਿਰ-ਸਮਾਂ ਤੁਲਨਾ ਵਿੱਚv1ਨਾਲ ਮੇਲ ਨਹੀਂ ਖਾਂਦਾ, ਤਾਂ ਰਿਕਵੈਸਟ ਅਸਵੀਕਾਰ ਕਰੋ।
ਬਾਡੀਆਂ ਕੈਨੋਨਿਕਲ JSON ਸੀਰੀਅਲਾਈਜ਼ੇਸ਼ਨ ਹਨ (ਲੜੀਬੱਧ ਕੀਜ਼, ਸੰਖੇਪ ਸੇਪਰੇਟਰ), ਅਤੇ ਅਸੀਂ ਉਹੀ ਬਾਈਟਸ ਸਾਈਨ ਕਰਦੇ ਹਾਂ ਜੋ ਅਸੀਂ ਭੇਜਦੇ ਹਾਂ। ਤਸਦੀਕ ਗਾਈਡ ਵਿੱਚ ਸਹੀ ਸਾਈਨ ਕੀਤੀ ਸਟ੍ਰਿੰਗ, ਇੱਕ ਵਿਸਤ੍ਰਿਤ ਉਦਾਹਰਨ, SDK ਤੋਂ ਬਿਨਾਂ ਕੋਡ, ਅਤੇ ਪੁਰਾਣਾ ਹੈਡਰ ਸ਼ਾਮਲ ਹੈ।
from flask import Flask, abort, request
from thunderphone import verify_signature
app = Flask(__name__)
@app.post("/thunderphone-webhook")
def handle():
query = request.query_string.decode()
if not verify_signature(
request.headers.get("X-ThunderPhone-Signature-V2"),
secret=WEBHOOK_SECRET,
method=request.method,
path=request.path + (f"?{query}" if query else ""),
body=request.get_data(), # raw bytes
):
abort(401)
event = request.get_json()
# dispatch on event["type"] …
return "", 204import express from "express";
import { verifySignature } from "@thunderphone/sdk";
const app = express();
app.post(
"/thunderphone-webhook",
express.raw({ type: "application/json" }),
(req, res) => {
const ok = verifySignature({
header: req.header("X-ThunderPhone-Signature-V2"),
secret: process.env.WEBHOOK_SECRET,
method: req.method,
path: req.originalUrl,
body: req.body,
});
if (!ok) return res.sendStatus(401);
const event = JSON.parse(req.body.toString("utf8"));
// dispatch on event.type …
res.sendStatus(204);
},
);ਡਿਲੀਵਰੀ ਅਰਥ-ਵਿਵਸਥਾ
ਇਹ ਸਿਮੈਂਟਿਕਸ ਐਂਡਪੌਇੰਟ ਡਿਲਿਵਰੀਆਂ 'ਤੇ ਲਾਗੂ ਹੁੰਦੇ ਹਨ। ਪੁਰਾਣਾ ਸਿੰਗਲ-URL
ਵੈੱਬਹੁੱਕ ਬਿਨਾਂ ਮੁੜ-ਕੋਸ਼ਿਸ਼ਾਂ ਦੇ ਇੱਕ ਸਿੰਕ੍ਰੋਨਸ ਯਤਨ ਹੁੰਦਾ ਹੈ, ਸਿਵਾਏ
ਫੋਨ-ਕਾਲ telephony.incoming
ਕੰਫਿਗਰੇਸ਼ਨ ਐਕਸਚੇਂਜ ਦੇ, ਜਿਸ ਲਈ ਇੱਕ ਵਾਰ ਮੁੜ-ਕੋਸ਼ਿਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।
ਮੁੜ-ਕੋਸ਼ਿਸ਼ਾਂ
ਹਰ ਇਵੈਂਟ ਲਈ ਤੁਰੰਤ ਇੱਕ ਵਾਰ ਯਤਨ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਕੋਈ ਵੀ 2xx ਜਵਾਬ
ਡਿਲਿਵਰੀ ਦੀ ਪੁਸ਼ਟੀ ਕਰਦਾ ਹੈ। ਕਿਸੇ ਵੀ ਹੋਰ ਨਤੀਜੇ (ਗੈਰ-2xx,
ਕਨੈਕਸ਼ਨ ਗਲਤੀ, ਸਮਾਂ-ਸੀਮਾ ਸਮਾਪਤ) 'ਤੇ ਅਸੀਂ ਪਹਿਲੇ ਯਤਨ ਤੋਂ ਬਾਅਦ 1 m, 5 m, 30 m, 2 h, 6 h,
12 h, ਅਤੇ 24 h 'ਤੇ ਮੁੜ-ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਹਾਂ — 24 ਘੰਟਿਆਂ ਵਿੱਚ
8 ਯਤਨ। ਜੇ ਹਰ ਯਤਨ ਅਸਫਲ ਹੋ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਡਿਲਿਵਰੀ ਰੁਕ ਜਾਂਦੀ ਹੈ ਅਤੇ ਐਂਡਪੌਇੰਟ ਨੂੰ
ਵੈੱਬਹੁੱਕ ਐਂਡਪੌਇੰਟਾਂ ਵਿੱਚ status="failing" ਵਜੋਂ
ਚਿੰਨ੍ਹਿਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ; ਅਸੀਂ ਤੁਹਾਡੀ ਸੰਸਥਾ ਦੇ ਮਾਲਕਾਂ ਅਤੇ ਐਡਮਿਨਾਂ ਨੂੰ ਈਮੇਲ ਕਰਦੇ ਹਾਂ
ਅਤੇ ਇਸਨੂੰ ਡੈਸ਼ਬੋਰਡ ਵਿੱਚ ਦਿਖਾਉਂਦੇ ਹਾਂ। ਜਿਵੇਂ ਹੀ ਪੇਲੋਡ ਸਥਾਈ ਤੌਰ 'ਤੇ ਸਵੀਕਾਰ ਹੋਵੇ,
2xx ਵਾਪਸ ਕਰੋ; ਅਸਿੰਕ੍ਰੋਨਸ ਤਰੀਕੇ ਨਾਲ ਪ੍ਰਕਿਰਿਆ ਕਰੋ।
ਐਂਡਪੌਇੰਟ ਟੈਸਟ API ਤੋਂ ਟੈਸਟ ਭੇਜਣ ਲਈ ਪਹਿਲੇ ਯਤਨ ਤੋਂ ਲਗਭਗ ਇੱਕ ਮਿੰਟ ਬਾਅਦ
ਇੱਕ ਮੁੜ-ਕੋਸ਼ਿਸ਼ ਮਿਲਦੀ ਹੈ ਅਤੇ ਇਹ ਕਦੇ ਵੀ ਐਂਡਪੌਇੰਟ ਦੀ ਸਥਿਤੀ ਨਹੀਂ ਬਦਲਦੇ।
ਕ੍ਰਮਬੱਧਤਾ
ਡਿਲੀਵਰੀ ਕ੍ਰਮਬੱਧਤਾ ਸਰਵੋਤਮ-ਕੋਸ਼ਿਸ਼ ਅਧਾਰਿਤ ਹੈ। ਅਮਲ ਵਿੱਚ ਅਸੀਂ ਇਵੈਂਟਾਂ ਨੂੰ
ਉਹਨਾਂ ਦੇ ਨਿਕਲਣ ਦੇ ਕ੍ਰਮ ਵਿੱਚ ਡਿਲੀਵਰ ਕਰਦੇ ਹਾਂ, ਪਰ ਅਸਫਲਤਾ ਹੋਣ 'ਤੇ ਮੁੜ-ਕੋਸ਼ਿਸ਼ਾਂ ਕ੍ਰਮ ਬਦਲ ਸਕਦੀਆਂ ਹਨ।
ਹਮੇਸ਼ਾ call_id / ਆਬਜੈਕਟ id ਅਨੁਸਾਰ ਡੀਡੁਪ ਕਰੋ ਅਤੇ ਮੇਲ-ਮਿਲਾਪ ਕਰੋ।
ਡੁਪਲੀਕੇਟ
ਡਿਲੀਵਰੀ ਘੱਟੋ-ਘੱਟ ਇੱਕ ਵਾਰ ਹੁੰਦੀ ਹੈ: ਉਸ ਜਵਾਬ ਤੋਂ ਬਾਅਦ ਮੁੜ-ਕੋਸ਼ਿਸ਼ ਜਿਸਨੂੰ ਅਸੀਂ ਕਦੇ
ਨਹੀਂ ਦੇਖਿਆ, ਇੱਕ ਇਵੈਂਟ ਦੀ ਨਕਲ ਬਣਾ ਸਕਦੀ ਹੈ। ਹਰ ਮੁੜ-ਕੋਸ਼ਿਸ਼ ਵਿੱਚ ਉਹੀ
event_id ਹੁੰਦਾ ਹੈ, ਇਸ ਲਈ ਪ੍ਰੋਸੈਸ ਕੀਤੀਆਂ id ਸਟੋਰ ਕਰੋ ਅਤੇ ਦੁਹਰਾਵਾਂ ਛੱਡ ਦਿਓ। event_id
ਐਂਡਪੌਇੰਟਾਂ ਵਿੱਚ ਵੀ ਸਾਂਝਾ ਹੁੰਦਾ ਹੈ — ਇੱਕੋ ਇਵੈਂਟ ਨੂੰ ਸਬਸਕ੍ਰਾਈਬ ਕੀਤੇ ਦੋ ਐਂਡਪੌਇੰਟਾਂ ਨੂੰ
ਇੱਕੋ event_id ਮਿਲਦਾ ਹੈ।
ਸਮਾਂ-ਸੀਮਾਵਾਂ
ਐਂਡਪੌਇੰਟ ਡਿਲਿਵਰੀਆਂ ਲਈ ਹਰ ਯਤਨ ਦੀ 30 s ਸਮਾਂ-ਸੀਮਾ ਹੁੰਦੀ ਹੈ। ਪੁਰਾਣੇ
ਪਾਥ 'ਤੇ, ਲਾਈਵ ਕਾਲ ਵਿਹਾਰ ਨੂੰ ਨਿਯੰਤਰਿਤ ਕਰਨ ਵਾਲੀਆਂ ਬਲਾਕਿੰਗ ਬੇਨਤੀਆਂ —
telephony.incoming / web.incoming
ਕੰਫਿਗਰੇਸ਼ਨ ਐਕਸਚੇਂਜ — ਫੋਨ ਕਾਲ ਦੇ ਪਹਿਲੇ ਯਤਨ ਲਈ 10 s ਤੱਕ,
ਅਤੇ ਇਸਦੀ ਇੱਕ ਮੁੜ-ਕੋਸ਼ਿਸ਼ ਸਮੇਤ ਪੂਰੇ ਐਕਸਚੇਂਜ ਲਈ 13 s ਤੱਕ,
ਅਤੇ ਵਿਜਿਟ ਸੈਸ਼ਨ ਲਈ 10 s ਤੱਕ ਸੀਮਿਤ ਹਨ। ਹੌਲਾ ਜਵਾਬ
ਕਾਲ ਪਿਕਅੱਪ ਵਿੱਚ ਦੇਰੀ ਕਰਦਾ ਹੈ, ਇਸ ਲਈ ਕੁਝ ਸਕਿੰਟਾਂ ਦੇ ਅੰਦਰ ਜਵਾਬ ਦੇਣ ਦਾ ਟੀਚਾ ਰੱਖੋ। ਵੈੱਬਹੁੱਕ-ਮੋਡ ਟੂਲ ਡਿਸਪੈਚ ਮੂਲ ਰੂਪ ਵਿੱਚ 20 s
ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ, ਅਤੇ ਟੂਲ ਘੋਸ਼ਣਾਵਾਂ ਇੱਕ ਟੌਪ-ਲੈਵਲ timeout ਸੈੱਟ ਕਰ ਸਕਦੀਆਂ ਹਨ।
ਸਰੋਤ IP
ਆਊਟਬਾਊਂਡ webhooks ThunderPhone ਦੀ ਕਲਾਊਡ IP ਰੇਂਜ ਤੋਂ ਆਉਂਦੇ ਹਨ। ਜੇ ਤੁਹਾਡੇ ਫਾਇਰਵਾਲ ਨੂੰ allowlist ਦੀ ਲੋੜ ਹੈ, ਤਾਂ ਸਹਾਇਤਾ ਨਾਲ ਸੰਪਰਕ ਕਰੋ ਅਤੇ ਅਸੀਂ ਮੌਜੂਦਾ ਰੇਂਜਾਂ ਸਾਂਝੀਆਂ ਕਰਾਂਗੇ।
ਪੁਰਾਣੇ ਅਤੇ ਐਂਡਪੌਇੰਟ-ਅਧਾਰਿਤ webhooks ਵਿੱਚੋਂ ਚੋਣ
| ਵਿਸ਼ੇਸ਼ਤਾ | ਲੇਗੇਸੀ (/v1/webhook) | ਐਂਡਪੌਇੰਟਸ (/v1/developer/webhook-endpoints) |
|---|---|---|
| URLs ਦੀ ਗਿਣਤੀ | ਹਰ ਸੰਸਥਾ ਲਈ 1 | ਹਰ ਸੰਸਥਾ ਲਈ ਕਈ |
| ਇਵੈਂਟ ਕਵਰੇਜ | ਸਿਰਫ਼ telephony.* / web.* | ਸਾਰੀਆਂ 10 ਇਵੈਂਟ ਕਿਸਮਾਂ |
| ਇਵੈਂਟ ਫਿਲਟਰ | — | ਹਰ ਐਂਡਪੌਇੰਟ ਲਈ |
| ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ਾਂ | ਕੋਈ ਨਹੀਂ, ਫ਼ੋਨ ਕਾਲ ਕੌਂਫਿਗਰੇਸ਼ਨ ਐਕਸਚੇਂਜ ਲਈ ਇੱਕ ਨੂੰ ਛੱਡ ਕੇ | 24 ਘੰਟਿਆਂ ਵਿੱਚ 8 ਕੋਸ਼ਿਸ਼ਾਂ |
| ਐਨਵਲਪ | type + data | type + data + event_id |
| ਸੀਕ੍ਰੇਟ ਰੋਟੇਸ਼ਨ | ਇੱਕਲੌਤਾ ਸੀਕ੍ਰੇਟ ਬਦਲਦਾ ਹੈ | ਹਰ ਐਂਡਪੌਇੰਟ ਲਈ ਸੀਕ੍ਰੇਟ |
| ਮਿਟਾਏ ਬਿਨਾਂ ਅਯੋਗ ਕਰੋ | PUT /v1/webhook ਨਾਲ {"url": ""} | status=disabled |
| ਸਥਿਤੀ ਦਿੱਖ | — | active / disabled / failing |
| ਬਲਾਕਿੰਗ ਕੌਂਫਿਗ ਐਕਸਚੇਂਜ | ਹਾਂ (telephony.incoming / web.incoming) | ਕਦੇ ਨਹੀਂ — ਸਿਰਫ਼ ਸੂਚਨਾਵਾਂ |
| ਇਸ ਲਈ ਸਭ ਤੋਂ ਵਧੀਆ | ਡਾਇਨਾਮਿਕ ਕਾਲ ਕੌਂਫਿਗਰੇਸ਼ਨ | ਪ੍ਰੋਡਕਸ਼ਨ ਵਿੱਚ ਇਵੈਂਟ ਵਰਤੋਂ |
ਨਵੀਆਂ ਇੰਟੀਗ੍ਰੇਸ਼ਨਾਂ ਨੂੰ ਐਂਡਪੌਇੰਟ-ਅਧਾਰਿਤ webhooks ਰਾਹੀਂ ਇਵੈਂਟ ਵਰਤਣੇ ਚਾਹੀਦੇ ਹਨ। ਪੁਰਾਣਾ URL ਕੇਵਲ ਤਦ ਹੀ ਰੱਖੋ (ਜਾਂ ਜੋੜੋ) ਜੇ ਤੁਸੀਂ ਪਿਕਅੱਪ ਸਮੇਂ ਕਾਲਾਂ ਨੂੰ ਡਾਇਨਾਮਿਕ ਤੌਰ 'ਤੇ ਕੌਂਫਿਗਰ ਕਰਦੇ ਹੋ ਜਾਂ webhook-ਮੋਡ ਟੂਲ ਡਿਸਪੈਚ ਵਰਤਦੇ ਹੋ — ਉਹ ਬੇਨਤੀ/ਜਵਾਬ ਅਦਲਾ-ਬਦਲੀਆਂ ਸਿਰਫ਼ ਪੁਰਾਣੇ ਪਾਥ 'ਤੇ ਹੀ ਚਲਦੀਆਂ ਹਨ।
ਸੰਬੰਧਿਤ
ਸਾਰੀਆਂ ਇਵੈਂਟ ਕਿਸਮਾਂ ਅਤੇ ਉਹਨਾਂ ਦੇ ਪੇਲੋਡ।
ਕਈ ਐਂਡਪੌਇੰਟ, ਇਵੈਂਟ ਫਿਲਟਰ ਅਤੇ ਸੀਕ੍ਰੇਟ ਪ੍ਰਬੰਧਿਤ ਕਰੋ।
ਕਾਲਾਂ ਕਨਫਿਗਰ ਕਰਨ ਲਈ ਤੁਹਾਡੇ ਸਰਵਰ ਵੱਲੋਂ ਜਵਾਬ ਦੇਣ ਲਈ ਲਾਜ਼ਮੀ ਬਲਾਕਿੰਗ ਬੇਨਤੀ।
ਟ੍ਰਾਂਸਕ੍ਰਿਪਟ, ਰਿਕਾਰਡਿੰਗ ਅਤੇ ਮੈਟ੍ਰਿਕਸ ਵਾਲਾ ਕਾਲ-ਬਾਅਦ ਪੇਲੋਡ।