Skip to main content
An extension is the fundamental calling identity in LaraCopilot. Each extension represents a SIP endpoint — a phone, softphone, or WebRTC client — that a user registers against to send and receive calls. Extensions are always scoped to a single tenant, and a tenant’s max_extensions setting controls how many may be provisioned at once. Beyond basic calling, extensions can be enrolled as agents in call queues, accumulate call detail records, and optionally store voicemail.

Key fields

FieldTypeDescription
tenant_idintegerThe tenant this extension belongs to. Required.
extension_numberstringThe dialable short number (e.g. 1001). Max 20 characters.
display_namestringHuman-readable label shown in the admin UI and CDRs.
emailstringOptional email address associated with the extension user.
secretstringSIP authentication password used by the registering device.
statusstringOperational state of the extension (e.g. active, disabled).
voicemail_enabledbooleanWhen true, unanswered calls are redirected to voicemail.

Resource relationships

Extensions connect to several other platform resources:
  • Devices — one extension can have multiple registered SIP devices (desk phones, softphones, etc.).
  • Queue agents — an extension can be enrolled in one or more call queues, making it an available agent for inbound distribution.
  • CDRs — every call leg involving this extension produces a call detail record scoped to the same tenant.
  • Active calls — in-progress calls are tracked in real time against the extension.
Deleting an extension does not automatically unenroll it from call queues. Remove the extension from any queues it belongs to before deleting it to keep queue membership clean.

API examples

Create an extension

curl -X POST https://your-instance/api/extensions \
  -H "Content-Type: application/json" \
  -d '{
    "tenant_id": 1,
    "extension_number": "1001",
    "display_name": "Alice Smith",
    "email": "alice@acme.example.com",
    "secret": "s3cur3p@ss",
    "status": "active",
    "voicemail_enabled": true
  }'

List extensions

curl "https://your-instance/api/extensions?search=alice"

Update an extension

curl -X PUT https://your-instance/api/extensions/42 \
  -H "Content-Type: application/json" \
  -d '{
    "tenant_id": 1,
    "extension_number": "1001",
    "display_name": "Alice Johnson",
    "email": "alice.johnson@acme.example.com",
    "secret": "n3wp@ssw0rd",
    "status": "active",
    "voicemail_enabled": true
  }'
Enable voicemail_enabled on extensions that are frequently unattended — such as after-hours or overflow lines. This ensures callers always have a fallback rather than hearing a busy or no-answer tone.