@dialstack/sdk-dev / js/src / Device
Interface: Device
Defined in: sdk/js/src/types/device.ts:31
A device returned by GET /v1/devices or GET /v1/devices/:id.
The type field discriminates between deskphones and DECT bases.
Type-specific fields are present only for the corresponding type.
Use the isDeskphone() and isDECTBase() type guards for safe narrowing.
Properties
assignments?
optional assignments?: DeviceUserAssignment[];
Defined in: sdk/js/src/types/device.ts:103
User assignments (deskphones and DECT handsets). Only hydrated when the
device is fetched with expand[]=users; absent otherwise. DECT bases
always carry an empty array — handsets, not bases, are user-assigned.
button_template?
optional button_template?: string | null;
Defined in: sdk/js/src/types/device.ts:65
Reusable programmable-key template bound to this device.
button_template_id?
optional button_template_id?: string | null;
Defined in: sdk/js/src/types/device.ts:67
Deprecated
Use button_template. Retained for backwards compatibility.
compatibility?
optional compatibility?: ButtonCompatibilitySummary;
Defined in: sdk/js/src/types/device.ts:124
Programmable-key compatibility for the current effective button set.
created_at
created_at: string;
Defined in: sdk/js/src/types/device.ts:94
ISO 8601 timestamp
current_ip_address?
optional current_ip_address?: string;
Defined in: sdk/js/src/types/device.ts:73
Last known IP address from provisioning request
firmware_version?
optional firmware_version?: string;
Defined in: sdk/js/src/types/device.ts:119
Current firmware version
handsets?
optional handsets?: DECTHandset[];
Defined in: sdk/js/src/types/device.ts:121
Associated handsets (when eager-loaded)
id
id: string;
Defined in: sdk/js/src/types/device.ts:33
TypeID with dev_ or dectb_ prefix
last_call_at
last_call_at: string | null;
Defined in: sdk/js/src/types/device.ts:92
ISO 8601 timestamp of the latest call attempt involving the device (any
outcome), or null until its first call. Presence means the device has
carried a call; recency indicates whether it is still in use.
last_provisioned_at?
optional last_provisioned_at?: string;
Defined in: sdk/js/src/types/device.ts:75
ISO 8601 timestamp of last successful config fetch
last_registered_at
last_registered_at: string | null;
Defined in: sdk/js/src/types/device.ts:86
ISO 8601 timestamp of when reachability was last confirmed; null when
the device is not currently reachable.
lines?
optional lines?: DeviceLine[];
Defined in: sdk/js/src/types/device.ts:111
Configured lines on this device
location?
optional location?: string | null;
Defined in: sdk/js/src/types/device.ts:61
Physical E911 location for this device. Set on deskphones and DECT
bases; null when unassigned. DECT handsets have no location_id of
their own — they inherit from the paired base and the handset
response carries null here.
location_id?
optional location_id?: string | null;
Defined in: sdk/js/src/types/device.ts:63
Deprecated
Use location. Retained for backwards compatibility.
mac_address
mac_address: string;
Defined in: sdk/js/src/types/device.ts:37
Hardware MAC address (e.g., "00:04:13:aa:bb:cc")
max_handsets?
optional max_handsets?: number;
Defined in: sdk/js/src/types/device.ts:117
Maximum number of handsets this base supports
model?
optional model?: string;
Defined in: sdk/js/src/types/device.ts:47
Device model (e.g., "D785", "M700")
multicell_role?
optional multicell_role?: MulticellRole;
Defined in: sdk/js/src/types/device.ts:115
Role in multicell deployment
name?
optional name?: string | null;
Defined in: sdk/js/src/types/device.ts:54
Human-friendly label for the device. Set by admins on deskphones,
DECT bases, and DECT handsets; null when unassigned. (Handset
responses also expose this value as display_name for backwards
compatibility with the legacy DECT API.)
overrides?
optional overrides?: DeviceSettings;
Defined in: sdk/js/src/types/device.ts:71
Device-specific settings overrides
primary_line?
optional primary_line?: string;
Defined in: sdk/js/src/types/device.ts:107
TypeID of the primary line
primary_line_id?
optional primary_line_id?: string;
Defined in: sdk/js/src/types/device.ts:109
Deprecated
Use primary_line. Retained for backwards compatibility.
registration_status
registration_status: RegistrationStatus;
Defined in: sdk/js/src/types/device.ts:81
Whether the device is currently reachable (online). Live-derived from the
device's assigned lines; distinct from status, which only reflects
whether the device has fetched its config. Always present.
serial_number?
optional serial_number?: string;
Defined in: sdk/js/src/types/device.ts:43
Manufacturer serial number from the device label, used to resolve
zero-touch provisioning transfers. deskphone and dect_base only;
omitted when not set.
status
status: DeviceStatus;
Defined in: sdk/js/src/types/device.ts:69
Current provisioning status
type
type: DeviceType;
Defined in: sdk/js/src/types/device.ts:35
Device type discriminator
updated_at
updated_at: string;
Defined in: sdk/js/src/types/device.ts:96
ISO 8601 timestamp
vendor
vendor: string;
Defined in: sdk/js/src/types/device.ts:45
Detected vendor (e.g., "snom", "yealink")