Skip to main content

@dialstack/sdk / server / DialStack

Class: DialStack

Defined in: sdk/src/server/index.ts:1141

Constructors

Constructor

TypeScript
new DialStack(apiKey, config?): DialStack;

Defined in: sdk/src/server/index.ts:1152

Parameters

apiKey

string | undefined

config?

DialStackConfig

Returns

DialStack

Properties

accounts

TypeScript
accounts: object;

Defined in: sdk/src/server/index.ts:1394

create

TypeScript
create: (params, options?) => Promise<Account>;
Parameters
params

AccountCreateParams

options?

RequestOptions

Returns

Promise<Account>

del

TypeScript
del: (accountId, options?) => Promise<void>;
Parameters
accountId

string

options?

RequestOptions

Returns

Promise<void>

list

TypeScript
list: (params?, options?) => PaginatedList<Account>;
Parameters
params?

AccountListParams

options?

RequestOptions

Returns

PaginatedList<Account>

retrieve

TypeScript
retrieve: (accountId, options?) => Promise<Account>;
Parameters
accountId

string

options?

RequestOptions

Returns

Promise<Account>

retrievePricing

TypeScript
retrievePricing: (accountId, options?) => Promise<AccountPricing>;

Retrieve the agreed pricing singleton for an account.

Parameters
accountId

string

options?

RequestOptions

Returns

Promise<AccountPricing>

update

TypeScript
update: (accountId, params, options?) => Promise<Account>;
Parameters
accountId

string

params

AccountUpdateParams

options?

RequestOptions

Returns

Promise<Account>

updatePricing

TypeScript
updatePricing: (accountId, params, options?) => Promise<AccountPricing>;

Create or replace the agreed pricing for an account. All three rates are required, in cents per month.

Parameters
accountId

string

params

AccountPricingParams

options?

RequestOptions

Returns

Promise<AccountPricing>


accountSessions

TypeScript
accountSessions: object;

Defined in: sdk/src/server/index.ts:1641

create

TypeScript
create: (params, options?) => Promise<AccountSessionCreateResponse>;
Parameters
params

AccountSessionCreateParams

options?

RequestOptions

Returns

Promise<AccountSessionCreateResponse>


aiAgents

TypeScript
aiAgents: object;

Defined in: sdk/src/server/index.ts:1781

create

TypeScript
create: (params, options) => Promise<AIAgent>;
Parameters
params

AIAgentCreateParams

options

RequestOptions & object

Returns

Promise<AIAgent>

del

TypeScript
del: (aiAgentId, options) => Promise<void>;
Parameters
aiAgentId

string

options

RequestOptions & object

Returns

Promise<void>

list

TypeScript
list: (params, options) => PaginatedList<AIAgent>;
Parameters
params

AIAgentListParams | undefined

options

RequestOptions & object

Returns

PaginatedList<AIAgent>

retrieve

TypeScript
retrieve: (aiAgentId, options) => Promise<AIAgent>;
Parameters
aiAgentId

string

options

RequestOptions & object

Returns

Promise<AIAgent>

update

TypeScript
update: (aiAgentId, params, options) => Promise<AIAgent>;
Parameters
aiAgentId

string

params

AIAgentUpdateParams

options

RequestOptions & object

Returns

Promise<AIAgent>


calls

TypeScript
calls: object;

Defined in: sdk/src/server/index.ts:1659

pauseRecording

TypeScript
pauseRecording: (callId, options) => Promise<void>;

Pause recording on an active call — e.g. while an agent collects a customer's payment card number so the sensitive audio is never captured. Recording stays paused until resumeRecording or the call ends; both parties hear a short confirmation tone.

Parameters
callId

string

options

RequestOptions & object

Returns

Promise<void>

resumeRecording

TypeScript
resumeRecording: (callId, options) => Promise<void>;

Resume a recording previously paused with pauseRecording. Both parties hear a short confirmation tone.

Parameters
callId

string

options

RequestOptions & object

Returns

Promise<void>

retrieveTranscript

TypeScript
retrieveTranscript: (callId, options?) => Promise<Transcript>;
Parameters
callId

string

options?

RequestOptions

Returns

Promise<Transcript>

update

TypeScript
update: (callId, params, options) => Promise<void>;
Parameters
callId

string

params

CallUpdateParams

options

RequestOptions & object

Returns

Promise<void>


dialPlans

TypeScript
dialPlans: object;

Defined in: sdk/src/server/index.ts:1865

create

TypeScript
create: (params, options) => Promise<DialPlan>;
Parameters
params

DialPlanCreateParams

options

RequestOptions & object

Returns

Promise<DialPlan>

list

TypeScript
list: (params, options) => PaginatedList<DialPlan>;
Parameters
params

DialPlanListParams | undefined

options

RequestOptions & object

Returns

PaginatedList<DialPlan>

retrieve

TypeScript
retrieve: (dialPlanId, options) => Promise<DialPlan>;
Parameters
dialPlanId

string

options

RequestOptions & object

Returns

Promise<DialPlan>


extensions

TypeScript
extensions: object;

Defined in: sdk/src/server/index.ts:1899

create

TypeScript
create: (params, options) => Promise<Extension>;
Parameters
params

ExtensionCreateParams

options

RequestOptions & object

Returns

Promise<Extension>

del

TypeScript
del: (number, options) => Promise<void>;
Parameters
number

string

options

RequestOptions & object

Returns

Promise<void>

list

TypeScript
list: (params, options) => PaginatedList<Extension>;
Parameters
params

| ExtensionListParams | undefined

options

RequestOptions & object

Returns

PaginatedList<Extension>

retrieve

TypeScript
retrieve: (number, options) => Promise<Extension>;
Parameters
number

string

options

RequestOptions & object

Returns

Promise<Extension>

update

TypeScript
update: (number, params, options) => Promise<Extension>;
Parameters
number

string

params

ExtensionUpdateParams

options

RequestOptions & object

Returns

Promise<Extension>


phoneNumbers

TypeScript
phoneNumbers: object;

Defined in: sdk/src/server/index.ts:1620

list

TypeScript
list: (params, options) => PaginatedList<PhoneNumber>;
Parameters
params

| PhoneNumberListParams | undefined

options

RequestOptions & object

Returns

PaginatedList<PhoneNumber>


presence

TypeScript
presence: object;

Defined in: sdk/src/server/index.ts:1598

list

TypeScript
list: (params, options) => Promise<ListResponse<UserPresenceItem>>;

Read presence for an explicit, bounded set of users in one request — the candidate set a caller already has in hand. A filtered list by id, not a paginated collection: results come back in request order in the standard list envelope (next_page_url/previous_page_url are always null). The set is capped per request; if any user cannot be resolved or read, the whole request fails rather than returning a partial result.

Parameters
params

PresenceListParams

options

RequestOptions & object

Returns

Promise<ListResponse<UserPresenceItem>>


queues

TypeScript
queues: object;

Defined in: sdk/src/server/index.ts:2018

addMember

TypeScript
addMember: (queueId, params, options) => Promise<QueueMember>;
Parameters
queueId

string

params

QueueAddMemberParams

options

RequestOptions & object

Returns

Promise<QueueMember>

create

TypeScript
create: (params, options) => Promise<Queue>;
Parameters
params

QueueCreateParams

options

RequestOptions & object

Returns

Promise<Queue>

del

TypeScript
del: (queueId, options) => Promise<void>;
Parameters
queueId

string

options

RequestOptions & object

Returns

Promise<void>

list

TypeScript
list: (params, options) => PaginatedList<Queue>;
Parameters
params

QueueListParams | undefined

options

RequestOptions & object

Returns

PaginatedList<Queue>

listMembers

TypeScript
listMembers: (queueId, params, options) => PaginatedList<QueueMember>;
Parameters
queueId

string

params

| QueueListMembersParams | undefined

options

RequestOptions & object

Returns

PaginatedList<QueueMember>

removeMember

TypeScript
removeMember: (queueId, memberId, options) => Promise<void>;
Parameters
queueId

string

memberId

string

options

RequestOptions & object

Returns

Promise<void>

retrieve

TypeScript
retrieve: (queueId, options) => Promise<Queue>;
Parameters
queueId

string

options

RequestOptions & object

Returns

Promise<Queue>

update

TypeScript
update: (queueId, params, options) => Promise<Queue>;
Parameters
queueId

string

params

QueueUpdateParams

options

RequestOptions & object

Returns

Promise<Queue>


ringGroups

TypeScript
ringGroups: object;

Defined in: sdk/src/server/index.ts:1948

addMember

TypeScript
addMember: (ringGroupId, params, options) => Promise<RingGroupMember>;
Parameters
ringGroupId

string

params

RingGroupAddMemberParams

options

RequestOptions & object

Returns

Promise<RingGroupMember>

create

TypeScript
create: (params, options) => Promise<RingGroup>;
Parameters
params

RingGroupCreateParams

options

RequestOptions & object

Returns

Promise<RingGroup>

del

TypeScript
del: (ringGroupId, options) => Promise<void>;
Parameters
ringGroupId

string

options

RequestOptions & object

Returns

Promise<void>

list

TypeScript
list: (params, options) => PaginatedList<RingGroup>;
Parameters
params

| RingGroupListParams | undefined

options

RequestOptions & object

Returns

PaginatedList<RingGroup>

removeMember

TypeScript
removeMember: (ringGroupId, memberId, options) => Promise<void>;
Parameters
ringGroupId

string

memberId

string

options

RequestOptions & object

Returns

Promise<void>

retrieve

TypeScript
retrieve: (ringGroupId, options) => Promise<RingGroup>;
Parameters
ringGroupId

string

options

RequestOptions & object

Returns

Promise<RingGroup>

update

TypeScript
update: (ringGroupId, params, options) => Promise<RingGroup>;
Parameters
ringGroupId

string

params

RingGroupUpdateParams

options

RequestOptions & object

Returns

Promise<RingGroup>


schedules

TypeScript
schedules: object;

Defined in: sdk/src/server/index.ts:1831

create

TypeScript
create: (params, options) => Promise<Schedule>;
Parameters
params

ScheduleCreateParams

options

RequestOptions & object

Returns

Promise<Schedule>

list

TypeScript
list: (params, options) => PaginatedList<Schedule>;
Parameters
params

ScheduleListParams | undefined

options

RequestOptions & object

Returns

PaginatedList<Schedule>

retrieve

TypeScript
retrieve: (scheduleId, options) => Promise<Schedule>;
Parameters
scheduleId

string

options

RequestOptions & object

Returns

Promise<Schedule>


testHelpers

TypeScript
testHelpers: object;

Defined in: sdk/src/server/index.ts:1703

Test-mode helpers (sandbox only). Trigger simulated calls and emit canned webhook events to exercise your integration end to end without real telephony. Requires a test key (sk_test_...); a live key receives a 400. See the "Testing your integration" guide.

calls

TypeScript
calls: object;
calls.create
TypeScript
create: (params, options) => Promise<TestCallResponse>;

Trigger a simulated call. For inbound (screen pop) and custom-scenario simulations a dialed number cannot select. Returns the started call's id + scenario so a test can assert on it.

Parameters
params

TestCallCreateParams

options

RequestOptions & object

Returns

Promise<TestCallResponse>

events

TypeScript
events: object;
events.create
TypeScript
create: (params, options) => Promise<TestEventResponse>;

Emit a single canned webhook event (fax., queue., recording.failed, call.mobile_push_wakeup) for events the call simulator does not drive behaviorally.

Parameters
params

TestEventCreateParams

options

RequestOptions & object

Returns

Promise<TestEventResponse>


users

TypeScript
users: object;

Defined in: sdk/src/server/index.ts:1501

create

TypeScript
create: (params, options) => Promise<User>;
Parameters
params

UserCreateParams | undefined

options

RequestOptions & object

Returns

Promise<User>

del

TypeScript
del: (userId, options) => Promise<void>;
Parameters
userId

string

options

RequestOptions & object

Returns

Promise<void>

list

TypeScript
list: (params, options) => PaginatedList<User>;
Parameters
params

UserListParams | undefined

options

RequestOptions & object

Returns

PaginatedList<User>

retrieve

TypeScript
retrieve: (userId, options) => Promise<User>;
Parameters
userId

string

options

RequestOptions & object

Returns

Promise<User>

retrievePresence

TypeScript
retrievePresence: (userId, options) => Promise<UserPresence>;

Retrieve a user's live presence — reachable / on a call right now. The value is always freshly verified; a read that cannot be confirmed fails with 503 rather than returning a stale or guessed value (no unknown).

Parameters
userId

string

options

RequestOptions & object

Returns

Promise<UserPresence>

retrieveQueueAgent

TypeScript
retrieveQueueAgent: (userId, options) => Promise<QueueAgent>;

Retrieve the queue-agent singleton for a user. Throws on 404 when no queue-agent state has ever been written for the user.

Parameters
userId

string

options

RequestOptions & object

Returns

Promise<QueueAgent>

revokeSessions

TypeScript
revokeSessions: (userId, options?) => Promise<UserSessionsRevokeResponse>;

Revoke every outstanding user-session token for a user and tear down their active WebRTC sessions (server-side kill switch). Platform-level, like userSessions.create() — no account header.

Parameters
userId

string

options?

RequestOptions

Returns

Promise<UserSessionsRevokeResponse>

update

TypeScript
update: (userId, params, options) => Promise<User>;
Parameters
userId

string

params

UserUpdateParams

options

RequestOptions & object

Returns

Promise<User>

updateQueueAgent

TypeScript
updateQueueAgent: (userId, params, options) => Promise<QueueAgent>;

Update the queue-agent singleton for a user. Idempotent — re-sending the current status is a no-op. reason is only meaningful when status === "paused".

Parameters
userId

string

params

QueueAgentUpdateParams

options

RequestOptions & object

Returns

Promise<QueueAgent>


userSessions

TypeScript
userSessions: object;

Defined in: sdk/src/server/index.ts:1650

create

TypeScript
create: (params, options?) => Promise<UserSessionCreateResponse>;
Parameters
params

UserSessionCreateParams

options?

RequestOptions

Returns

Promise<UserSessionCreateResponse>


voiceApps

TypeScript
voiceApps: object;

Defined in: sdk/src/server/index.ts:1732

create

TypeScript
create: (params, options) => Promise<VoiceApp>;
Parameters
params

VoiceAppCreateParams

options

RequestOptions & object

Returns

Promise<VoiceApp>

del

TypeScript
del: (voiceAppId, options) => Promise<void>;
Parameters
voiceAppId

string

options

RequestOptions & object

Returns

Promise<void>

list

TypeScript
list: (params, options) => PaginatedList<VoiceApp>;
Parameters
params

VoiceAppListParams | undefined

options

RequestOptions & object

Returns

PaginatedList<VoiceApp>

retrieve

TypeScript
retrieve: (voiceAppId, options) => Promise<VoiceApp>;
Parameters
voiceAppId

string

options

RequestOptions & object

Returns

Promise<VoiceApp>

update

TypeScript
update: (voiceAppId, params, options) => Promise<VoiceApp>;
Parameters
voiceAppId

string

params

VoiceAppUpdateParams

options

RequestOptions & object

Returns

Promise<VoiceApp>


webhookEndpoints

TypeScript
webhookEndpoints: object;

Defined in: sdk/src/server/index.ts:1453

Manage webhook endpoints. The mode of the endpoint (live vs sandbox) is determined by the API key used — a test key creates and lists sandbox endpoints, a live key creates and lists live endpoints.

create

TypeScript
create: (params, options?) => Promise<WebhookEndpoint>;
Parameters
params

WebhookEndpointCreateParams

options?

RequestOptions

Returns

Promise<WebhookEndpoint>

del

TypeScript
del: (webhookEndpointId, options?) => Promise<void>;
Parameters
webhookEndpointId

string

options?

RequestOptions

Returns

Promise<void>

list

TypeScript
list: (params?, options?) => PaginatedList<WebhookEndpoint>;
Parameters
params?

WebhookEndpointListParams

options?

RequestOptions

Returns

PaginatedList<WebhookEndpoint>

retrieve

TypeScript
retrieve: (webhookEndpointId, options?) => Promise<WebhookEndpoint>;
Parameters
webhookEndpointId

string

options?

RequestOptions

Returns

Promise<WebhookEndpoint>

update

TypeScript
update: (webhookEndpointId, params, options?) => Promise<WebhookEndpoint>;
Parameters
webhookEndpointId

string

params

WebhookEndpointUpdateParams

options?

RequestOptions

Returns

Promise<WebhookEndpoint>


webhooks

TypeScript
static webhooks: object;

Defined in: sdk/src/server/index.ts:2132

Verify webhook signature and construct event

constructEvent

TypeScript
constructEvent: <T>(payload, signature, secret, tolerance) => T;
Type Parameters
T

T = WebhookEvent

Parameters
payload

string | Buffer<ArrayBufferLike>

signature

string

secret

string

tolerance?

number = 300

Returns

T

Example

TypeScript
// For call webhooks
const event = DialStack.webhooks.constructEvent(
req.body,
req.headers['x-dialstack-signature'],
process.env.DIALSTACK_WEBHOOK_SECRET
);

// For appointments webhooks (with type parameter)
const event = DialStack.webhooks.constructEvent<AvailabilitySearchWebhook>(
req.body,
req.headers['x-dialstack-signature'],
process.env.DIALSTACK_WEBHOOK_SECRET
);

Methods

off()

TypeScript
off<E>(event, callback): void;

Defined in: sdk/src/server/index.ts:1200

Unsubscribe from SDK events

Type Parameters

E

E extends EventType

Parameters

event

E

callback

EventCallback<E extends "request" ? RequestEvent : ResponseEvent>

Returns

void


on()

TypeScript
on<E>(event, callback): void;

Defined in: sdk/src/server/index.ts:1186

Subscribe to SDK events

Type Parameters

E

E extends EventType

Parameters

event

E

callback

EventCallback<E extends "request" ? RequestEvent : ResponseEvent>

Returns

void

Example

TypeScript
dialstack.on('request', (event) => {
console.log(`${event.method} ${event.path}`);
});

dialstack.on('response', (event) => {
console.log(`${event.statusCode} in ${event.elapsed}ms`);
});