Skip to content

Telemetry

Telemetry endpoints are live and read-only. Where Reporting tells you what happened, Telemetry tells you what is happening right now, so dashboards, wallboards, and AI agents can check reachability and activity before placing a call or routing an interaction.

All telemetry is tenant-scoped. Examples use https://your-server.thirdlane.com and tenant acme; authenticate with an X-API-Key header.

Extension presence

Return live registration and presence state for a tenant’s extensions: which devices are registered and online, their user agent and source IP, and voicemail counts.

Terminal window
curl -H "X-API-Key: YOUR_KEY" \
"https://your-server.thirdlane.com/api/telemetry/presence/acme"

Each entry looks like:

{
"extension": "104",
"peer": "104-acme",
"registered": true,
"session_count": 1,
"sessions": [
{ "online": true, "reachable": true, "useragent": "tl_web-15.1.6", "ip": "198.51.100.20", "usertype": "connect", "expires": 60 }
],
"last_conntime": 1785128462,
"voicemail": { "new": 1, "old": 11, "waiting": true }
}

Narrow to a single extension by appending it to the path:

Terminal window
curl -H "X-API-Key: YOUR_KEY" \
"https://your-server.thirdlane.com/api/telemetry/presence/acme/104"

Use registered for a quick “is this extension reachable” check; inspect sessions for per-device detail (a user may be registered from a desk phone and a Connect client at once).

Active calls

Return a live snapshot of active call legs (channels) for a tenant: who is on a call, the other party, channel state, and duration. Each entry is one channel leg; group entries by linkedid to reconstruct a full call.

Terminal window
curl -H "X-API-Key: YOUR_KEY" \
"https://your-server.thirdlane.com/api/telemetry/calls/acme"

Each entry looks like:

{
"channel": "SIP/104-acme-0000004a",
"extension": "104",
"tenant": "acme",
"state": "Up",
"caller_id_num": "104",
"connected_num": "+14155550123",
"duration": "00:01:37",
"application": "Dial",
"linkedid": "1785128500.42",
"bridged": true
}

Narrow to a single extension by appending it to the path:

Terminal window
curl -H "X-API-Key: YOUR_KEY" \
"https://your-server.thirdlane.com/api/telemetry/calls/acme/104"

Tenant-scoped keys only see legs belonging to their own extensions.

Live queue state

Return live state for a tenant’s call queues: parameters (strategy, depth), logged-in members with paused / in-call / status, and waiting callers.

Terminal window
curl -H "X-API-Key: YOUR_KEY" \
"https://your-server.thirdlane.com/api/telemetry/queues/acme"

Each entry looks like:

{
"queue": "sales",
"full_name": "sales-acme",
"tenant": "acme",
"strategy": "ringall",
"max": 10,
"calls_waiting": 1,
"member_count": 2,
"caller_count": 1,
"members": [
{ "extension": "104", "status": 2, "status_label": "in_use", "paused": false, "in_call": true, "calls_taken": 7 }
],
"callers": [
{ "position": 1, "caller_id_num": "+14155550123", "wait": 24 }
]
}

Narrow to a single queue (bare or full name) by appending it to the path:

Terminal window
curl -H "X-API-Key: YOUR_KEY" \
"https://your-server.thirdlane.com/api/telemetry/queues/acme/sales"

Roadmap

Active-call and live queue/agent telemetry are sourced live from Asterisk. A future phase may add richer aggregates (per-agent session summaries, historical roll-ups) and push/subscribe delivery under /api/events.