Phones

Hardware phone provisioning and device registration tracking

The Phones endpoint lets you track all devices registered to your PBX -- hardware SIP phones, softphones, WebRTC clients, and mobile apps.

List Phones

GET/v1/pbx/phones

List all registered phones and devices

Requires:pbx:phones:read
curl -X GET "https://api.do.dev/v1/pbx/phones" \
  -H "Authorization: Bearer do_live_your_key_here"
{
  "phones": [
    {
      "id": "phone_abc123",
      "extensionNumber": "101",
      "extensionName": "Front Desk",
      "deviceType": "hardware",
      "manufacturer": "Polycom",
      "model": "VVX 450",
      "macAddress": "00:04:F2:AB:CD:EF",
      "ipAddress": "192.168.1.50",
      "registered": true,
      "lastRegistered": "2026-03-26T08:00:00Z",
      "userAgent": "PolycomVVX-VVX_450-UA/6.4.5"
    },
    {
      "id": "phone_xyz789",
      "extensionNumber": "101",
      "extensionName": "Front Desk",
      "deviceType": "webrtc",
      "ipAddress": "203.0.113.50",
      "registered": true,
      "lastRegistered": "2026-03-26T08:15:00Z",
      "userAgent": "JsSIP/3.10.0"
    }
  ]
}

Device Types

TypeDescription
hardwarePhysical SIP phone (Polycom, Grandstream, Yealink, etc.)
softphoneDesktop SIP application (Zoiper, Bria, etc.)
webrtcBrowser-based WebRTC client
mobileMobile app (iOS/Android)

Phone Statistics

GET/v1/pbx/phones/stats

Get phone registration statistics

Requires:pbx:phones:read
{
  "stats": {
    "totalPhones": 24,
    "registered": 18,
    "unregistered": 6,
    "byType": {
      "hardware": 12,
      "softphone": 4,
      "webrtc": 6,
      "mobile": 2
    }
  }
}

SIP Registration

Phones register using standard SIP REGISTER with digest authentication:

SettingValue
SIP Serversip.pbx.dev
TransportUDP, TCP, or WSS (WebRTC)
UsernameExtension SIP username (e.g., 101_a1b2c3)
PasswordExtension SIP password
Domainpbx.dev

Registrations are cached in Redis with TTL matching the SIP Expires header. The PBX tracks all active registrations for fork-ring (ringing all devices simultaneously).