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?

optional assignments?: DeviceUserAssignment[];

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

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_id?

optional button_template_id?: string | null;

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

Reusable programmable-key template bound to this device.


compatibility?

optional compatibility?: ButtonCompatibilitySummary;

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

Programmable-key compatibility for the current effective button set.


created_at

created_at: string;

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

ISO 8601 timestamp


current_ip_address?

optional current_ip_address?: string;

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

Last known IP address from provisioning request


firmware_version?

optional firmware_version?: string;

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

Current firmware version


handsets?

optional handsets?: DECTHandset[];

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

Associated handsets (when eager-loaded)


id

id: string;

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

TypeID with dev_ or dectb_ prefix


last_call_at

last_call_at: string | null;

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

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

ISO 8601 timestamp of last successful config fetch


last_registered_at

last_registered_at: string | null;

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

ISO 8601 timestamp of when reachability was last confirmed; null when the device is not currently reachable.


lines?

optional lines?: DeviceLine[];

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

Configured lines on this device


location_id?

optional location_id?: 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.


mac_address

mac_address: string;

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

Maximum number of handsets this base supports


model?

optional model?: string;

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

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


multicell_role?

optional multicell_role?: MulticellRole;

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

Role in multicell deployment


name?

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?

optional overrides?: DeviceSettings;

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

Device-specific settings overrides


primary_line_id?

optional primary_line_id?: string;

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

TypeID of the primary line


registration_status

registration_status: RegistrationStatus;

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

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

status: DeviceStatus;

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

Current provisioning status


type

type: DeviceType;

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

Device type discriminator


updated_at

updated_at: string;

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

ISO 8601 timestamp


vendor

vendor: string;

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

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