Stable releases of the Teler SDKs with complete API coverage and production-ready improvements.
Added
Node SDK 2.0.0 - Stable release with full API support for voice calls, SIP trunks, virtual numbers, recordings, events, and secrets management. All features are production-ready.
Python SDK 1.0.0 - Stable release with sync and async clients, comprehensive API coverage for all Teler services, and full feature parity with the Node SDK.
SIP Trunks can now be secured with IP Access Control Lists, restricting which
IP addresses are allowed to send traffic to a trunk. A single ACL can be
assigned to multiple SIP Trunks.
Added
IP Access Control Lists. Create an ACL made up of allowed IP addresses or CIDR ranges, and assign it to a SIP Trunk to restrict which sources can send SIP traffic to it.
Reusable ACLs. A single ACL can be assigned to multiple SIP Trunks, so shared allowlists (e.g. a PBX or AI provider’s IP ranges) don’t need to be duplicated per trunk. Manage IP ACLs via the REST API or SDK. See SIP Trunking for SDK examples, and the API Reference for REST parameters.
Python SDK 0.2.1 and 0.2.2 with bug fixes and API migration.
Fixed
Dial response field - Fixed typo in 0.2.1: from_numbre renamed to from_number.
Changed
Voice calls endpoint migration - Updated in 0.2.2: Migrated to new endpoint https://api.frejun.ai/api/v1/voice/calls/initiate. The deprecated endpoint https://api.frejun.ai/api/v1/calls/initiate is no longer supported.
Voice calls endpoint migration - Migrated to new endpoint: https://api.frejun.ai/api/v1/voice/calls/initiate. The deprecated endpoint https://api.frejun.ai/api/v1/calls/initiate is no longer supported.
Transfer an in-progress call to a new PSTN or SIP destination, so an automated
agent can hand the caller off to a live person.
Added
Transfer control operation.POST /api/v1/voice/calls/{id}/transfer, async and idempotent (Idempotency-Key required). Cold transfer to a pstn or sip target, with timeout, record, ringback, and an on_failure fallback. See Live call control.
Transfer lifecycle events:call.transfer.initiated, call.transfer.bridged, call.transfer.failed. See Call events.
transfer flow verb for initiating a transfer directly from a call flow document (initiated_by: "flow").
A new dated webhook version, 2026-06-01, opt-in per Voice App or SIP Trunk.
The previous 2025-08-01 version is unchanged and continues to work for
existing pins.
Added
Event envelope. Every webhook body is now wrapped with id, type, api_version, occurred_at, account_id, voice_app_id / sip_trunk_id, call_id, leg_id, and data. See Event envelope.
New headers:X-Teler-Event-Id, X-Teler-Api-Version, X-Teler-Source.
New events:leg.created, leg.answered, leg.completed, stream.initiated, stream.completed, recording.completed, recording.failed.
Call resources API.GET /api/v1/voice/calls, GET /api/v1/voice/calls/{id}, GET /api/v1/voice/calls/{id}/legs, and the SIP-trunk equivalents under /api/v1/sip/calls. See Call resources.
Live call control.POST /api/v1/voice/calls/{id}/hangup / mute / dtmf / play, async and idempotent (Idempotency-Key required). See Live call control.
dial flow verb. Originate an outbound leg and bridge it into the current call, with recording modes, custom SIP headers, and per-outcome fallbacks (on_no_answer, on_busy, on_failure).
Stable event id across retries, replays, and recovery re-deliveries, for idempotent dedupe. See Retries and idempotency.
Changed
Field renames inside data: hangup_time to ended_at, hangup_source to ended_by, duration (seconds) to duration_seconds, and answer_time to answered_at. New normalized reason field. (direction is unchanged — inbound / outbound on both versions.) Full field-level diff and migration steps: API versioning.
Inbound SIP URLs now support a custom SIP user in place of a number, for
platforms that identify calls by username rather than phone number.
Added
Custom SIP user in Inbound SIP URL. Inbound SIP URLs now accept the format sip:sip_user@sip_url:port, alongside the default sip:number@sip_url:port. The sip_user (or number, in the default case) is used by the AI platform for call identification purposes. See SIP Trunking → Inbound routing.
Webhook requests can now be authenticated using a per-endpoint signing secret,
verified via HMAC. Existing unsigned webhook configurations continue to work.
Added
Webhook signing secret. Generate a secret per Voice App or SIP Trunk webhook endpoint to enable request authentication.
Signature headers:X-Teler-Timestamp (event timestamp for replay protection) and X-Teler-Signature (HMAC-SHA256 digest computed over the timestamp and raw request body using the endpoint’s signing secret).
Signature verification. Validate incoming webhook requests are genuinely from Teler and haven’t been tampered with in transit. See Signing & verification.