ThunderPhone 2.0 ਹੁਣ ਲਾਈਵ ਹੈ।ਸੈਲਫ਼-ਸਰਵਿਸ—2¢/ਮਿੰਟ ਤੋਂ।ਐਲਾਨ ਪੜ੍ਹੋ

Webhooks

ਵੈੱਬਹੁੱਕਸ ਸੰਖੇਪ ਜਾਣਕਾਰੀ

ThunderPhone ਰੀਅਲ-ਟਾਈਮ ਇਵੈਂਟ ਕਿਵੇਂ ਭੇਜਦਾ ਹੈ, ਸਿਗਨੇਚਰਾਂ ਦੀ ਪੁਸ਼ਟੀ ਕਿਵੇਂ ਕਰਨੀ ਹੈ, ਅਤੇ ਪੁਰਾਣੇ ਤੇ ਐਂਡਪੌਇੰਟ-ਆਧਾਰਿਤ ਡਿਲਿਵਰੀ ਮਾਡਲਾਂ ਦੀ ਤੁਲਨਾ ਕਿਵੇਂ ਹੁੰਦੀ ਹੈ।

ThunderPhone ਤੁਹਾਡੇ ਸਰਵਰ ਨੂੰ HTTP POST ਬੇਨਤੀਆਂ ਭੇਜਦਾ ਹੈ ਜਦੋਂ ਕਾਲ ਦੌਰਾਨ ਕੋਈ ਘਟਨਾ ਵਾਪਰਦੀ ਹੈ — ਇਨਬਾਊਂਡ ਕਾਲ ਸ਼ੁਰੂ ਹੁੰਦੀ ਹੈ, ਕਾਲ ਸਮਾਪਤ ਹੁੰਦੀ ਹੈ, ਗ੍ਰੇਡਿੰਗ ਰਨ ਪੂਰਾ ਹੁੰਦਾ ਹੈ, ਅਲਰਟ ਚਲਦਾ ਹੈ, ਆਦਿ। ਦੋ ਡਿਲਿਵਰੀ ਮਾਡਲ ਹਨ:

ਇਵੈਂਟ ਕੈਟਾਲਾਗ ਵਿੱਚ ਸੂਚੀਬੱਧ ਸਾਰੀਆਂ ਇਵੈਂਟ ਕਿਸਮਾਂ ਵੈੱਬਹੁੱਕ ਐਂਡਪੌਇੰਟਾਂ ਰਾਹੀਂ ਡਿਲਿਵਰ ਕੀਤੀਆਂ ਜਾਂਦੀਆਂ ਹਨ। ਛੇ ਕਾਲ-ਲਾਈਫਸਾਈਕਲ ਇਵੈਂਟ (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 ਸਿਰਫ਼ ਰਾਅ ਬਾਡੀ 'ਤੇ ਦਸਤਖਤ ਕਰਦਾ ਹੈ। ਇਹ ਮੌਜੂਦਾ ਵੇਰੀਫਾਇਰਾਂ ਨੂੰ ਕੰਮ ਕਰਦੇ ਰੱਖਣ ਲਈ ਬਿਨਾਂ ਬਦਲਾਅ ਦੇ ਅਜੇ ਵੀ ਭੇਜਿਆ ਜਾਂਦਾ ਹੈ।

ਕਦਮ

  1. ਕਿਸੇ ਵੀ ਪਾਰਸਿੰਗ ਤੋਂ ਪਹਿਲਾਂ ਹੈਡਰ, ਮੈਥਡ, ਰਾਅ ਪਾਥ ਅਤੇ ਕਵੇਰੀ, ਅਤੇ ਰਾਅ ਬਾਡੀ ਪੜ੍ਹੋ।
  2. ਆਪਣੇ ਸੀਕਰਿਟ ਨਾਲ <t>\n<METHOD>\n<path and query>\n<body> ਦਾ ਹੈਕਸ HMAC-SHA256 ਗਣਨਾ ਕਰੋ।
  3. ਜੇ t 300 ਸਕਿੰਟਾਂ ਤੋਂ ਵੱਧ ਅੰਤਰ ਤੇ ਹੈ, ਜਾਂ ਨਤੀਜਾ ਸਥਿਰ-ਸਮਾਂ ਤੁਲਨਾ ਵਿੱਚ v1 ਨਾਲ ਮੇਲ ਨਹੀਂ ਖਾਂਦਾ, ਤਾਂ ਰਿਕਵੈਸਟ ਅਸਵੀਕਾਰ ਕਰੋ।

ਬਾਡੀਆਂ ਕੈਨੋਨਿਕਲ JSON ਸੀਰੀਅਲਾਈਜ਼ੇਸ਼ਨ ਹਨ (ਲੜੀਬੱਧ ਕੀਜ਼, ਸੰਖੇਪ ਸੇਪਰੇਟਰ), ਅਤੇ ਅਸੀਂ ਉਹੀ ਬਾਈਟਸ ਸਾਈਨ ਕਰਦੇ ਹਾਂ ਜੋ ਅਸੀਂ ਭੇਜਦੇ ਹਾਂ। ਤਸਦੀਕ ਗਾਈਡ ਵਿੱਚ ਸਹੀ ਸਾਈਨ ਕੀਤੀ ਸਟ੍ਰਿੰਗ, ਇੱਕ ਵਿਸਤ੍ਰਿਤ ਉਦਾਹਰਨ, SDK ਤੋਂ ਬਿਨਾਂ ਕੋਡ, ਅਤੇ ਪੁਰਾਣਾ ਹੈਡਰ ਸ਼ਾਮਲ ਹੈ।

Python (Flask)
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 "", 204
Node.js (Express)
import 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 + datatype + data + event_id
ਸੀਕ੍ਰੇਟ ਰੋਟੇਸ਼ਨਇੱਕਲੌਤਾ ਸੀਕ੍ਰੇਟ ਬਦਲਦਾ ਹੈਹਰ ਐਂਡਪੌਇੰਟ ਲਈ ਸੀਕ੍ਰੇਟ
ਮਿਟਾਏ ਬਿਨਾਂ ਅਯੋਗ ਕਰੋPUT /v1/webhook ਨਾਲ {"url": ""}status=disabled
ਸਥਿਤੀ ਦਿੱਖ—active / disabled / failing
ਬਲਾਕਿੰਗ ਕੌਂਫਿਗ ਐਕਸਚੇਂਜਹਾਂ (telephony.incoming / web.incoming)ਕਦੇ ਨਹੀਂ — ਸਿਰਫ਼ ਸੂਚਨਾਵਾਂ
ਇਸ ਲਈ ਸਭ ਤੋਂ ਵਧੀਆਡਾਇਨਾਮਿਕ ਕਾਲ ਕੌਂਫਿਗਰੇਸ਼ਨਪ੍ਰੋਡਕਸ਼ਨ ਵਿੱਚ ਇਵੈਂਟ ਵਰਤੋਂ

ਨਵੀਆਂ ਇੰਟੀਗ੍ਰੇਸ਼ਨਾਂ ਨੂੰ ਐਂਡਪੌਇੰਟ-ਅਧਾਰਿਤ webhooks ਰਾਹੀਂ ਇਵੈਂਟ ਵਰਤਣੇ ਚਾਹੀਦੇ ਹਨ। ਪੁਰਾਣਾ URL ਕੇਵਲ ਤਦ ਹੀ ਰੱਖੋ (ਜਾਂ ਜੋੜੋ) ਜੇ ਤੁਸੀਂ ਪਿਕਅੱਪ ਸਮੇਂ ਕਾਲਾਂ ਨੂੰ ਡਾਇਨਾਮਿਕ ਤੌਰ 'ਤੇ ਕੌਂਫਿਗਰ ਕਰਦੇ ਹੋ ਜਾਂ webhook-ਮੋਡ ਟੂਲ ਡਿਸਪੈਚ ਵਰਤਦੇ ਹੋ — ਉਹ ਬੇਨਤੀ/ਜਵਾਬ ਅਦਲਾ-ਬਦਲੀਆਂ ਸਿਰਫ਼ ਪੁਰਾਣੇ ਪਾਥ 'ਤੇ ਹੀ ਚਲਦੀਆਂ ਹਨ।


ਸੰਬੰਧਿਤ