Configure in the ConsoleWebhook URL and method are configured per trunk in the Vobiz Console → SIP → Outbound Trunks. You can also set them when creating or updating a trunk via the API.
Configuration
Each trunk can optionally have a webhook configured with two fields:Security validation
When a webhook URL is configured, Vobiz validates it against SSRF attacks before accepting it. The following are blocked:- Schemes: Only http and https are allowed.
- Localhost: 127.0.0.1, ::1, and 0.0.0.0 are blocked.
- Private IP ranges: 10.0.0.0/8, 172.16.0.0/12, and 192.168.0.0/16 are blocked.
- Link-local addresses: 169.254.0.0/16 is blocked, including the AWS metadata endpoint (169.254.169.254).
- IPv6: ULA (fc00::/7) and multicast (ff00::/8) addresses are blocked.
Webhook events
Vobiz delivers two event types to your configured webhook URL.CallInitiated
Fired for every outbound call attempt during call admission, whether the call is allowed or rejected. Use this event for real-time call monitoring and rejection alerting. Fires when:- Call is admitted -
Allowed: true - Call is rejected -
Allowed: falsewith aReason
- Insufficient balance
- CLI ownership validation failed
- Aadhaar verification pending
- KYC verification required
- Rate limit or concurrent call limit exceeded
- No routes available
Hangup
Fired when a call ends. Includes the full call record - duration, billable seconds, ring time, cost, currency, voice quality (MOS), the bridged-leg UUID, and hangup cause details (name, code, and which party released the call).Hangup Payload
HTTP request details
Headers sent with every webhook
Timeouts
Verify the payload
Because webhooks are delivered to a publicly reachable URL, verify each request before trusting it. Compute an HMAC-SHA256 over the raw request body using your trunk’s signing secret and compare it in constant time against the signature header on the request. UseX-Vobiz-Request-ID to de-duplicate retries and tie the CallInitiated and Hangup events for the same call together.
Behavior & reliability
Non-blocking
All webhooks are sent asynchronously. Webhook requests never delay the SIP call flow - call admission and CDR processing proceed independently of webhook delivery.Fail-open
Webhook failures do not affect calls:- If the webhook URL is unreachable, the call still proceeds normally.
- Non-2xx responses are logged but do not affect the call.
- Network timeouts are logged as errors with no retry.