Skip to main content

@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?​

TypeScript
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?​

TypeScript
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?​

TypeScript
optional button_template_id?: string | null;

Defined in: sdk/js/src/types/device.ts:67

Deprecated​

Use button_template. Retained for backwards compatibility.


compatibility?​

TypeScript
optional compatibility?: ButtonCompatibilitySummary;

Defined in: sdk/js/src/types/device.ts:124

Programmable-key compatibility for the current effective button set.


created_at​

TypeScript
created_at: string;

Defined in: sdk/js/src/types/device.ts:94

ISO 8601 timestamp


current_ip_address?​

TypeScript
optional current_ip_address?: string;

Defined in: sdk/js/src/types/device.ts:73

Last known IP address from provisioning request


firmware_version?​

TypeScript
optional firmware_version?: string;

Defined in: sdk/js/src/types/device.ts:119

Current firmware version


handsets?​

TypeScript
optional handsets?: DECTHandset[];

Defined in: sdk/js/src/types/device.ts:121

Associated handsets (when eager-loaded)


id​

TypeScript
id: string;

Defined in: sdk/js/src/types/device.ts:33

TypeID with dev_ or dectb_ prefix


last_call_at​

TypeScript
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?​

TypeScript
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​

TypeScript
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?​

TypeScript
optional lines?: DeviceLine[];

Defined in: sdk/js/src/types/device.ts:111

Configured lines on this device


location?​

TypeScript
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?​

TypeScript
optional location_id?: string | null;

Defined in: sdk/js/src/types/device.ts:63

Deprecated​

Use location. Retained for backwards compatibility.


mac_address​

TypeScript
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?​

TypeScript
optional max_handsets?: number;

Defined in: sdk/js/src/types/device.ts:117

Maximum number of handsets this base supports


model?​

TypeScript
optional model?: string;

Defined in: sdk/js/src/types/device.ts:47

Device model (e.g., "D785", "M700")


multicell_role?​

TypeScript
optional multicell_role?: MulticellRole;

Defined in: sdk/js/src/types/device.ts:115

Role in multicell deployment


name?​

TypeScript
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?​

TypeScript
optional overrides?: DeviceSettings;

Defined in: sdk/js/src/types/device.ts:71

Device-specific settings overrides


primary_line?​

TypeScript
optional primary_line?: string;

Defined in: sdk/js/src/types/device.ts:107

TypeID of the primary line


primary_line_id?​

TypeScript
optional primary_line_id?: string;

Defined in: sdk/js/src/types/device.ts:109

Deprecated​

Use primary_line. Retained for backwards compatibility.


registration_status​

TypeScript
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?​

TypeScript
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​

TypeScript
status: DeviceStatus;

Defined in: sdk/js/src/types/device.ts:69

Current provisioning status


type​

TypeScript
type: DeviceType;

Defined in: sdk/js/src/types/device.ts:35

Device type discriminator


updated_at​

TypeScript
updated_at: string;

Defined in: sdk/js/src/types/device.ts:96

ISO 8601 timestamp


vendor​

TypeScript
vendor: string;

Defined in: sdk/js/src/types/device.ts:45

Detected vendor (e.g., "snom", "yealink")