Callbacks

TeXML Refer Status

Webhook sent for SIP REFER status updates. This webhook uses Telnyx headers (telnyx-timestamp, telnyx-signature-ed25519) that are compatible with Standard Webhooks specification for SDK generation. Custom validation logic can map these to standard webhook-timestamp and webhook-signature equivalents. See https://github.com/standard-webhooks/standard-webhooks for details.

postWebhookTexmlReferStatusWebhook

Headers

telnyx-timestampinteger required

Unix timestamp for replay attack prevention

Unix timestamp (seconds since epoch) of when the webhook was sent - compatible with webhook-timestamp

telnyx-signature-ed25519string required

Ed25519 signature of timestamp|payload for verification

Base64 encoded Ed25519 signature for webhook verification - compatible with webhook-signature

Payload application/x-www-form-urlencoded

AccountSidstring required

The unique identifier of the account (user_id).

CallSidstring required

The unique identifier of the call (call_control_id).

CallSidLegacystring required

Legacy call identifier, same as CallSid.

NotifySipResponseCodestring

The SIP response code from the NOTIFY message (conditional, only present on success).

ReferCallStatus'failed' | 'in-progress' | 'busy' | 'canceled' required

The status of the SIP REFER operation.

ReferSipResponseCodestring

The SIP response code from the REFER message (conditional, only present on success).

Timestampstring date-time required

The timestamp when the event occurred.

Example payload

{
  "AccountSid": "f5586561-8ff0-4291-a51b-c7dfe4139ff9",
  "CallSid": "v3:9X2vxPDFY2RHSJ1EdMS0RHRksMTg7ldNxdjWbVr9zBjbGjGsSe-aiQ",
  "CallSidLegacy": "v3:9X2vxPDFY2RHSJ1EdMS0RHRksMTg7ldNxdjWbVr9zBjbGjGsSe-aiQ",
  "NotifySipResponseCode": "200",
  "ReferCallStatus": "in-progress",
  "ReferSipResponseCode": "202",
  "Timestamp": "2024-01-15T10:30:00Z"
}

Response

The server must return an HTTP 200, otherwise we will reattempt delivery at the failover webhook URL.

Changes

Webhooks have no change history: a webhook is keyed by its event name rather than a path and method, so no recorded change can name it.