@cemscale-voip/voip-sdk 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,421 @@
1
+ import type { VoIPClientConfig, LoginParams, AdminLoginParams, AuthResponse, TurnCredentials, CallListParams, CallListResponse, CallRecord, OriginateParams, OriginateResponse, TransferParams, ActiveCall, CallStats, ExportCallsParams, Extension, CreateExtensionParams, UpdateExtensionParams, Tenant, CreateTenantParams, UpdateTenantParams, DidNumber, CreateDidParams, UpdateDidParams, IvrMenu, CreateIvrParams, PresenceMap, PresenceDetailMap, WsMessage, RecordingListParams, RecordingListResponse, Conference, RingGroup, CreateRingGroupParams, CallQueue, CreateQueueParams, QueueStats, Webhook, WebhookDelivery, CreateWebhookParams, VoicemailMessage, VoicemailListParams, VoicemailListResponse, VoicemailCountResponse, CallForwardParams, CallForwardResponse, ParkedCall, PaginationInfo, DashboardStats, CallsByDayResponse, TopExtensionsResponse, BlockedNumber, CreateBlockedNumberParams, BlocklistCheckResponse, BusinessSchedule, CreateScheduleParams, ScheduleStatusResponse, SipTrunk, CreateTrunkParams } from './types.js';
2
+ declare class HttpError extends Error {
3
+ status: number;
4
+ statusText: string;
5
+ body: unknown;
6
+ constructor(status: number, statusText: string, body: unknown);
7
+ }
8
+ export { HttpError };
9
+ export declare class VoIPClient {
10
+ private apiUrl;
11
+ private token;
12
+ private tenantId;
13
+ private timeout;
14
+ private ws;
15
+ private wsReconnectTimer;
16
+ private wsListeners;
17
+ private wsPingInterval;
18
+ private wsConnected;
19
+ constructor(config: VoIPClientConfig);
20
+ setToken(token: string): void;
21
+ getToken(): string | null;
22
+ setTenantId(tenantId: string): void;
23
+ getTenantId(): string | null;
24
+ private request;
25
+ /** Login as an extension user */
26
+ login(params: LoginParams): Promise<AuthResponse>;
27
+ /** Login as a tenant admin */
28
+ adminLogin(params: AdminLoginParams): Promise<AuthResponse>;
29
+ /** Login as platform superadmin */
30
+ superadminLogin(params: AdminLoginParams): Promise<AuthResponse>;
31
+ /** Get current user info */
32
+ me(): Promise<{
33
+ user: any;
34
+ }>;
35
+ /** Get TURN credentials for WebRTC */
36
+ getTurnCredentials(): Promise<TurnCredentials>;
37
+ /** List call records with pagination and filters */
38
+ listCalls(params?: CallListParams): Promise<CallListResponse>;
39
+ /** Get a single call record */
40
+ getCall(id: string): Promise<{
41
+ call: CallRecord;
42
+ }>;
43
+ /** Originate a call via FreeSWITCH */
44
+ originate(params: OriginateParams): Promise<OriginateResponse>;
45
+ /** Hang up an active call */
46
+ hangup(uuid: string): Promise<{
47
+ message: string;
48
+ }>;
49
+ /** Transfer an active call (blind or attended) */
50
+ transfer(uuid: string, params: TransferParams): Promise<{
51
+ message: string;
52
+ }>;
53
+ /** List active calls from FreeSWITCH */
54
+ getActiveCalls(): Promise<{
55
+ activeCalls: ActiveCall[];
56
+ }>;
57
+ /** Get call statistics for a period */
58
+ getCallStats(period?: 'today' | '7d' | '30d' | '90d'): Promise<CallStats>;
59
+ /** Place a call on hold or resume */
60
+ holdCall(uuid: string, hold?: boolean): Promise<{
61
+ message: string;
62
+ }>;
63
+ /** Park an active call */
64
+ parkCall(uuid: string, slot?: number): Promise<{
65
+ message: string;
66
+ slot: string;
67
+ }>;
68
+ /** List parked calls */
69
+ getParkedCalls(): Promise<{
70
+ parkedCalls: ParkedCall[];
71
+ }>;
72
+ /** Export CDR as CSV. Returns raw CSV text. */
73
+ exportCalls(params?: ExportCallsParams): Promise<string>;
74
+ /** List extensions for the current tenant */
75
+ listExtensions(): Promise<{
76
+ extensions: Extension[];
77
+ }>;
78
+ /** Get a single extension */
79
+ getExtension(id: string): Promise<{
80
+ extension: Extension;
81
+ }>;
82
+ /** Create an extension (also creates Kamailio subscriber) */
83
+ createExtension(params: CreateExtensionParams): Promise<{
84
+ extension: Extension;
85
+ }>;
86
+ /** Update an extension */
87
+ updateExtension(id: string, params: UpdateExtensionParams): Promise<{
88
+ message: string;
89
+ }>;
90
+ /** Delete an extension */
91
+ deleteExtension(id: string): Promise<{
92
+ message: string;
93
+ }>;
94
+ /** Get call forward settings for an extension */
95
+ getCallForward(extensionId: string): Promise<CallForwardResponse>;
96
+ /** Set call forward for an extension */
97
+ setCallForward(extensionId: string, params: CallForwardParams): Promise<CallForwardResponse>;
98
+ /** Lookup extension by CRM user ID */
99
+ getExtensionByCrmUser(crmUserId: string): Promise<{
100
+ extension: Extension;
101
+ }>;
102
+ /** Update CRM mapping for an extension */
103
+ updateCrmMapping(extensionId: string, params: {
104
+ crmUserId: string | null;
105
+ crmMetadata?: Record<string, unknown> | null;
106
+ }): Promise<{
107
+ extension: string;
108
+ crmUserId: string;
109
+ crmMetadata: any;
110
+ }>;
111
+ /** List all tenants (superadmin only) */
112
+ listTenants(): Promise<{
113
+ tenants: Tenant[];
114
+ }>;
115
+ /** Get a single tenant */
116
+ getTenant(id: string): Promise<{
117
+ tenant: Tenant;
118
+ }>;
119
+ /** Create a tenant (superadmin only) */
120
+ createTenant(params: CreateTenantParams): Promise<{
121
+ tenant: Tenant;
122
+ }>;
123
+ /** Update a tenant (superadmin only) */
124
+ updateTenant(id: string, params: UpdateTenantParams): Promise<{
125
+ tenant: Tenant;
126
+ }>;
127
+ /** Delete a tenant and all data (superadmin only) */
128
+ deleteTenant(id: string): Promise<{
129
+ message: string;
130
+ }>;
131
+ /** Get tenant statistics */
132
+ getTenantStats(id: string): Promise<{
133
+ stats: {
134
+ extensions: number;
135
+ dids: number;
136
+ totalCalls: number;
137
+ };
138
+ }>;
139
+ /** List DID numbers */
140
+ listDids(): Promise<{
141
+ dids: DidNumber[];
142
+ }>;
143
+ /** Create a DID */
144
+ createDid(params: CreateDidParams): Promise<{
145
+ did: DidNumber;
146
+ }>;
147
+ /** Update a DID */
148
+ updateDid(id: string, params: UpdateDidParams): Promise<{
149
+ did: DidNumber;
150
+ }>;
151
+ /** Delete a DID */
152
+ deleteDid(id: string): Promise<{
153
+ message: string;
154
+ }>;
155
+ /** List IVR menus */
156
+ listIvrMenus(): Promise<{
157
+ menus: IvrMenu[];
158
+ }>;
159
+ /** Get a single IVR menu */
160
+ getIvrMenu(id: string): Promise<{
161
+ menu: IvrMenu;
162
+ }>;
163
+ /** Create an IVR menu */
164
+ createIvrMenu(params: CreateIvrParams): Promise<{
165
+ menu: IvrMenu;
166
+ }>;
167
+ /** Update an IVR menu */
168
+ updateIvrMenu(id: string, params: Partial<CreateIvrParams>): Promise<{
169
+ menu: IvrMenu;
170
+ }>;
171
+ /** Delete an IVR menu */
172
+ deleteIvrMenu(id: string): Promise<{
173
+ message: string;
174
+ }>;
175
+ /** List recordings with pagination */
176
+ listRecordings(params?: RecordingListParams): Promise<RecordingListResponse>;
177
+ /** Get a presigned download URL for a recording */
178
+ getRecordingUrl(id: string): Promise<{
179
+ url: string;
180
+ expiresIn: number;
181
+ }>;
182
+ /** Delete a recording */
183
+ deleteRecording(id: string): Promise<{
184
+ message: string;
185
+ }>;
186
+ /** List active conferences */
187
+ listConferences(): Promise<{
188
+ conferences: Conference[];
189
+ }>;
190
+ /** Get conference details */
191
+ getConference(name: string): Promise<{
192
+ conference: Conference;
193
+ }>;
194
+ /** Join a call to a conference */
195
+ joinConference(conferenceName: string, callUuid: string): Promise<{
196
+ message: string;
197
+ }>;
198
+ /** Transfer a call to conference */
199
+ transferToConference(uuid: string, conferenceName?: string): Promise<{
200
+ message: string;
201
+ }>;
202
+ /** Kick a member from conference */
203
+ kickFromConference(conferenceName: string, memberId: string): Promise<{
204
+ message: string;
205
+ }>;
206
+ /** Mute/unmute a conference member */
207
+ muteConferenceMember(conferenceName: string, memberId: string, mute?: boolean): Promise<{
208
+ message: string;
209
+ }>;
210
+ /** Deaf/undeaf a conference member */
211
+ deafConferenceMember(conferenceName: string, memberId: string, deaf?: boolean): Promise<{
212
+ message: string;
213
+ }>;
214
+ /** Lock/unlock a conference */
215
+ lockConference(conferenceName: string, lock?: boolean): Promise<{
216
+ message: string;
217
+ }>;
218
+ /** Start/stop conference recording */
219
+ recordConference(conferenceName: string, action: 'start' | 'stop'): Promise<{
220
+ message: string;
221
+ filePath?: string;
222
+ }>;
223
+ /** List ring groups */
224
+ listRingGroups(): Promise<{
225
+ ringGroups: RingGroup[];
226
+ }>;
227
+ /** Get a ring group */
228
+ getRingGroup(id: string): Promise<{
229
+ ringGroup: RingGroup;
230
+ }>;
231
+ /** Create a ring group */
232
+ createRingGroup(params: CreateRingGroupParams): Promise<{
233
+ ringGroup: RingGroup;
234
+ }>;
235
+ /** Update a ring group */
236
+ updateRingGroup(id: string, params: Partial<CreateRingGroupParams>): Promise<{
237
+ ringGroup: RingGroup;
238
+ }>;
239
+ /** Delete a ring group */
240
+ deleteRingGroup(id: string): Promise<{
241
+ message: string;
242
+ }>;
243
+ /** List call queues */
244
+ listQueues(): Promise<{
245
+ queues: CallQueue[];
246
+ }>;
247
+ /** Get a call queue */
248
+ getQueue(id: string): Promise<{
249
+ queue: CallQueue;
250
+ }>;
251
+ /** Create a call queue */
252
+ createQueue(params: CreateQueueParams): Promise<{
253
+ queue: CallQueue;
254
+ }>;
255
+ /** Update a call queue */
256
+ updateQueue(id: string, params: Partial<CreateQueueParams>): Promise<{
257
+ queue: CallQueue;
258
+ }>;
259
+ /** Delete a call queue */
260
+ deleteQueue(id: string): Promise<{
261
+ message: string;
262
+ }>;
263
+ /** Pause/unpause a queue agent */
264
+ pauseQueueAgent(queueId: string, agentId: string, paused?: boolean): Promise<{
265
+ message: string;
266
+ }>;
267
+ /** Login/logout a queue agent */
268
+ loginQueueAgent(queueId: string, agentId: string, loggedIn?: boolean): Promise<{
269
+ message: string;
270
+ }>;
271
+ /** Get real-time queue statistics (agent counts, today's call metrics) */
272
+ getQueueStats(queueId: string): Promise<{
273
+ stats: QueueStats;
274
+ }>;
275
+ /** List webhooks */
276
+ listWebhooks(): Promise<{
277
+ webhooks: Webhook[];
278
+ supportedEvents: string[];
279
+ }>;
280
+ /** Get webhook details with recent deliveries */
281
+ getWebhook(id: string): Promise<{
282
+ webhook: Webhook;
283
+ recentDeliveries: WebhookDelivery[];
284
+ }>;
285
+ /** Create a webhook */
286
+ createWebhook(params: CreateWebhookParams): Promise<{
287
+ webhook: Webhook & {
288
+ secret: string;
289
+ };
290
+ }>;
291
+ /** Update a webhook */
292
+ updateWebhook(id: string, params: Partial<CreateWebhookParams> & {
293
+ active?: boolean;
294
+ }): Promise<{
295
+ webhook: Webhook;
296
+ }>;
297
+ /** Delete a webhook */
298
+ deleteWebhook(id: string): Promise<{
299
+ message: string;
300
+ }>;
301
+ /** Send a test webhook event */
302
+ testWebhook(id: string): Promise<{
303
+ message: string;
304
+ }>;
305
+ /** List webhook delivery history */
306
+ listWebhookDeliveries(id: string, page?: number, limit?: number): Promise<{
307
+ deliveries: WebhookDelivery[];
308
+ pagination: PaginationInfo;
309
+ }>;
310
+ /** List voicemail messages with pagination */
311
+ listVoicemails(params?: VoicemailListParams): Promise<VoicemailListResponse>;
312
+ /** Get voicemail count (total and unread) */
313
+ getVoicemailCount(extension?: string): Promise<VoicemailCountResponse>;
314
+ /** Get a single voicemail */
315
+ getVoicemail(id: string): Promise<VoicemailMessage>;
316
+ /** Get voicemail audio URL (presigned S3 or direct) */
317
+ getVoicemailAudioUrl(id: string): Promise<{
318
+ url: string;
319
+ expiresIn: number;
320
+ }>;
321
+ /** Mark voicemail as read */
322
+ markVoicemailRead(id: string): Promise<{
323
+ message: string;
324
+ }>;
325
+ /** Delete a voicemail */
326
+ deleteVoicemail(id: string): Promise<{
327
+ message: string;
328
+ }>;
329
+ /** Bulk delete voicemails */
330
+ bulkDeleteVoicemails(params?: {
331
+ extension?: string;
332
+ onlyRead?: boolean;
333
+ }): Promise<{
334
+ deleted: number;
335
+ }>;
336
+ /** Get simple presence (extension -> status) */
337
+ getPresence(): Promise<{
338
+ presence: PresenceMap;
339
+ }>;
340
+ /** Get detailed presence with call info */
341
+ getPresenceDetailed(): Promise<{
342
+ presence: PresenceDetailMap;
343
+ }>;
344
+ /** Get dashboard summary stats */
345
+ getDashboardStats(): Promise<DashboardStats>;
346
+ /** Get calls grouped by day */
347
+ getCallsByDay(days?: number): Promise<CallsByDayResponse>;
348
+ /** Get top extensions by call volume */
349
+ getTopExtensions(days?: number, limit?: number): Promise<TopExtensionsResponse>;
350
+ /** List all blocked numbers for the tenant */
351
+ listBlockedNumbers(): Promise<{
352
+ blocked: BlockedNumber[];
353
+ }>;
354
+ /** Block a phone number */
355
+ blockNumber(params: CreateBlockedNumberParams): Promise<{
356
+ blocked: BlockedNumber;
357
+ }>;
358
+ /** Unblock a phone number by ID */
359
+ unblockNumber(id: string): Promise<{
360
+ message: string;
361
+ }>;
362
+ /** Check if a specific number is blocked */
363
+ checkBlocked(number: string): Promise<BlocklistCheckResponse>;
364
+ /** List business hour schedules */
365
+ listSchedules(): Promise<{
366
+ schedules: BusinessSchedule[];
367
+ }>;
368
+ /** Get a single schedule */
369
+ getSchedule(id: string): Promise<{
370
+ schedule: BusinessSchedule;
371
+ }>;
372
+ /** Create a business hours schedule */
373
+ createSchedule(params: CreateScheduleParams): Promise<{
374
+ schedule: BusinessSchedule;
375
+ }>;
376
+ /** Update a business hours schedule */
377
+ updateSchedule(id: string, params: Partial<CreateScheduleParams>): Promise<{
378
+ schedule: BusinessSchedule;
379
+ }>;
380
+ /** Delete a business hours schedule */
381
+ deleteSchedule(id: string): Promise<{
382
+ message: string;
383
+ }>;
384
+ /** Check if a schedule is currently open or closed */
385
+ getScheduleStatus(id: string): Promise<ScheduleStatusResponse>;
386
+ /** List SIP trunks (passwords masked) */
387
+ listTrunks(): Promise<{
388
+ trunks: SipTrunk[];
389
+ }>;
390
+ /** Get a single SIP trunk (password masked) */
391
+ getTrunk(id: string): Promise<{
392
+ trunk: SipTrunk;
393
+ }>;
394
+ /** Create a SIP trunk */
395
+ createTrunk(params: CreateTrunkParams): Promise<{
396
+ trunk: SipTrunk;
397
+ }>;
398
+ /** Update a SIP trunk */
399
+ updateTrunk(id: string, params: Partial<CreateTrunkParams>): Promise<{
400
+ trunk: SipTrunk;
401
+ }>;
402
+ /** Delete a SIP trunk */
403
+ deleteTrunk(id: string): Promise<{
404
+ message: string;
405
+ }>;
406
+ /** Connect to the real-time WebSocket */
407
+ connectWebSocket(): void;
408
+ /** Disconnect the WebSocket */
409
+ disconnectWebSocket(): void;
410
+ /** Check if WebSocket is connected and authenticated */
411
+ isWebSocketConnected(): boolean;
412
+ /** Subscribe to a WebSocket event type. Returns unsubscribe function. */
413
+ onWsEvent<T = WsMessage>(eventType: string, callback: (data: T) => void): () => void;
414
+ private emitWs;
415
+ private scheduleWsReconnect;
416
+ private clearWsReconnect;
417
+ private clearWsPing;
418
+ /** Disconnect all connections and clean up */
419
+ destroy(): void;
420
+ }
421
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}