Skip to main content

@dialstack/sdk / index / Device

Interface: Device

Defined in: sdk/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/src/types/device.ts:97

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/src/types/device.ts:59

Reusable programmable-key template bound to this device.


button_template_id?

TypeScript
optional button_template_id?: string | null;

Defined in: sdk/src/types/device.ts:61

Deprecated

Use button_template. Retained for backwards compatibility.


compatibility?

TypeScript
optional compatibility?: ButtonCompatibilitySummary;

Defined in: sdk/src/types/device.ts:118

Programmable-key compatibility for the current effective button set.


created_at

TypeScript
created_at: string;

Defined in: sdk/src/types/device.ts:88

ISO 8601 timestamp


current_ip_address?

TypeScript
optional current_ip_address?: string;

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

Last known IP address from provisioning request


firmware_version?

TypeScript
optional firmware_version?: string;

Defined in: sdk/src/types/device.ts:113

Current firmware version


handsets?

TypeScript
optional handsets?: DECTHandset[];

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

Associated handsets (when eager-loaded)


id

TypeScript
id: string;

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

TypeID with dev_ or dectb_ prefix


last_call_at

TypeScript
last_call_at: string | null;

Defined in: sdk/src/types/device.ts:86

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/src/types/device.ts:69

ISO 8601 timestamp of last successful config fetch


last_registered_at

TypeScript
last_registered_at: string | null;

Defined in: sdk/src/types/device.ts:80

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/src/types/device.ts:105

Configured lines on this device


location?

TypeScript
optional location?: string | null;

Defined in: sdk/src/types/device.ts:55

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/src/types/device.ts:57

Deprecated

Use location. Retained for backwards compatibility.


mac_address

TypeScript
mac_address: string;

Defined in: sdk/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/src/types/device.ts:111

Maximum number of handsets this base supports


model?

TypeScript
optional model?: string;

Defined in: sdk/src/types/device.ts:41

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


multicell_role?

TypeScript
optional multicell_role?: MulticellRole;

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

Role in multicell deployment


name?

TypeScript
optional name?: string | null;

Defined in: sdk/src/types/device.ts:48

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/src/types/device.ts:65

Device-specific settings overrides


primary_line?

TypeScript
optional primary_line?: string;

Defined in: sdk/src/types/device.ts:101

TypeID of the primary line


primary_line_id?

TypeScript
optional primary_line_id?: string;

Defined in: sdk/src/types/device.ts:103

Deprecated

Use primary_line. Retained for backwards compatibility.


registration_status

TypeScript
registration_status: RegistrationStatus;

Defined in: sdk/src/types/device.ts:75

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.


status

TypeScript
status: DeviceStatus;

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

Current provisioning status


type

TypeScript
type: DeviceType;

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

Device type discriminator


updated_at

TypeScript
updated_at: string;

Defined in: sdk/src/types/device.ts:90

ISO 8601 timestamp


vendor

TypeScript
vendor: string;

Defined in: sdk/src/types/device.ts:39

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