@per_moeller/asterisk-ari 1.0.3 → 1.0.5

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.
Files changed (52) hide show
  1. package/dist/client.d.ts +360 -22
  2. package/dist/client.d.ts.map +1 -1
  3. package/dist/client.js +374 -29
  4. package/dist/client.js.map +1 -1
  5. package/dist/connection.d.ts +132 -12
  6. package/dist/connection.d.ts.map +1 -1
  7. package/dist/connection.js +121 -10
  8. package/dist/connection.js.map +1 -1
  9. package/dist/events/emitter.d.ts +213 -21
  10. package/dist/events/emitter.d.ts.map +1 -1
  11. package/dist/events/emitter.js +163 -17
  12. package/dist/events/emitter.js.map +1 -1
  13. package/dist/events/types.d.ts +386 -3
  14. package/dist/events/types.d.ts.map +1 -1
  15. package/dist/events/types.js +5 -0
  16. package/dist/events/types.js.map +1 -1
  17. package/dist/index.d.ts +2 -1
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js.map +1 -1
  20. package/dist/models/bridge.d.ts +26 -3
  21. package/dist/models/bridge.d.ts.map +1 -1
  22. package/dist/models/bridge.js.map +1 -1
  23. package/dist/models/channel.d.ts +364 -35
  24. package/dist/models/channel.d.ts.map +1 -1
  25. package/dist/models/channel.js +348 -34
  26. package/dist/models/channel.js.map +1 -1
  27. package/dist/models/index.d.ts +4 -0
  28. package/dist/models/index.d.ts.map +1 -1
  29. package/dist/models/index.js.map +1 -1
  30. package/dist/models/playback.d.ts +23 -3
  31. package/dist/models/playback.d.ts.map +1 -1
  32. package/dist/models/playback.js.map +1 -1
  33. package/dist/models/recording.d.ts +23 -3
  34. package/dist/models/recording.d.ts.map +1 -1
  35. package/dist/models/recording.js.map +1 -1
  36. package/dist/pool.d.ts +152 -11
  37. package/dist/pool.d.ts.map +1 -1
  38. package/dist/pool.js +152 -11
  39. package/dist/pool.js.map +1 -1
  40. package/dist/queue.d.ts +130 -16
  41. package/dist/queue.d.ts.map +1 -1
  42. package/dist/queue.js +123 -16
  43. package/dist/queue.js.map +1 -1
  44. package/dist/types/api.d.ts +655 -1
  45. package/dist/types/api.d.ts.map +1 -1
  46. package/dist/types/api.js +5 -0
  47. package/dist/types/api.js.map +1 -1
  48. package/dist/version.d.ts +163 -26
  49. package/dist/version.d.ts.map +1 -1
  50. package/dist/version.js +143 -22
  51. package/dist/version.js.map +1 -1
  52. package/package.json +1 -1
package/dist/client.d.ts CHANGED
@@ -1,5 +1,28 @@
1
1
  /**
2
2
  * ARI Client - Main entry point for Asterisk REST Interface
3
+ *
4
+ * This module provides the main `AriClient` class and `connect()` function
5
+ * for establishing connections to Asterisk ARI.
6
+ *
7
+ * @packageDocumentation
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * import { connect } from '@per_moeller/asterisk-ari';
12
+ *
13
+ * const client = await connect({
14
+ * url: 'http://localhost:8088',
15
+ * username: 'asterisk',
16
+ * password: 'secret',
17
+ * app: 'my-app'
18
+ * });
19
+ *
20
+ * client.on('StasisStart', async (event, channel) => {
21
+ * console.log(`Incoming call from ${channel.caller.number}`);
22
+ * await channel.answer();
23
+ * await channel.play({ media: 'sound:hello-world' });
24
+ * });
25
+ * ```
3
26
  */
4
27
  import { HttpConnection } from './connection.js';
5
28
  import { WebSocketManager } from './websocket.js';
@@ -22,7 +45,34 @@ import { PlaybackInstance } from './models/playback.js';
22
45
  import { LiveRecordingInstance, StoredRecordingInstance } from './models/recording.js';
23
46
  import type { Channel, Bridge, Playback, LiveRecording } from './types/api.js';
24
47
  /**
25
- * ARI Client for interacting with Asterisk
48
+ * Main ARI Client for interacting with Asterisk.
49
+ *
50
+ * The client provides access to all ARI resources (channels, bridges, etc.)
51
+ * and handles WebSocket events from Asterisk. It extends `AriEventEmitter`
52
+ * for type-safe event handling.
53
+ *
54
+ * @remarks
55
+ * Don't instantiate this class directly. Use the {@link connect} function instead.
56
+ *
57
+ * @example
58
+ * ```typescript
59
+ * const client = await connect({ ... });
60
+ *
61
+ * // Access API resources
62
+ * const channels = await client.channels.list();
63
+ * const bridge = await client.bridges.create({ type: 'mixing' });
64
+ *
65
+ * // Listen to events
66
+ * client.on('StasisStart', (event, channel) => {
67
+ * // Handle incoming calls
68
+ * });
69
+ *
70
+ * // Create model instances for event-based programming
71
+ * const myChannel = client.Channel('channel-id');
72
+ * myChannel.on('ChannelDtmfReceived', (event) => {
73
+ * console.log(`DTMF: ${event.digit}`);
74
+ * });
75
+ * ```
26
76
  */
27
77
  export declare class AriClient extends AriEventEmitter {
28
78
  private readonly options;
@@ -33,95 +83,383 @@ export declare class AriClient extends AriEventEmitter {
33
83
  private readonly bridgeInstances;
34
84
  private readonly playbackInstances;
35
85
  private readonly recordingInstances;
86
+ /**
87
+ * Channels API for managing calls and channels.
88
+ *
89
+ * @example
90
+ * ```typescript
91
+ * // List all channels
92
+ * const channels = await client.channels.list();
93
+ *
94
+ * // Originate a call
95
+ * const channel = await client.channels.originate({
96
+ * endpoint: 'PJSIP/1000',
97
+ * app: 'my-app'
98
+ * });
99
+ *
100
+ * // Answer a channel
101
+ * await client.channels.answer(channelId);
102
+ * ```
103
+ */
36
104
  readonly channels: ChannelsResource;
105
+ /**
106
+ * Bridges API for managing bridges (conferences, etc.).
107
+ *
108
+ * @example
109
+ * ```typescript
110
+ * // Create a mixing bridge
111
+ * const bridge = await client.bridges.create({ type: 'mixing' });
112
+ *
113
+ * // Add channels to bridge
114
+ * await client.bridges.addChannel(bridge.id, { channel: [channel1, channel2] });
115
+ * ```
116
+ */
37
117
  readonly bridges: BridgesResource;
118
+ /**
119
+ * Endpoints API for managing endpoints.
120
+ *
121
+ * @example
122
+ * ```typescript
123
+ * // List all endpoints
124
+ * const endpoints = await client.endpoints.list();
125
+ *
126
+ * // Get PJSIP endpoints
127
+ * const pjsipEndpoints = await client.endpoints.listByTech('PJSIP');
128
+ * ```
129
+ */
38
130
  readonly endpoints: EndpointsResource;
131
+ /**
132
+ * Applications API for managing Stasis applications.
133
+ *
134
+ * @example
135
+ * ```typescript
136
+ * // Get application details
137
+ * const app = await client.applications.get('my-app');
138
+ *
139
+ * // Subscribe to events
140
+ * await client.applications.subscribe('my-app', { eventSource: 'channel:123' });
141
+ * ```
142
+ */
39
143
  readonly applications: ApplicationsResource;
144
+ /**
145
+ * Asterisk API for system information and management.
146
+ *
147
+ * @example
148
+ * ```typescript
149
+ * // Get Asterisk info
150
+ * const info = await client.asterisk.getInfo();
151
+ * console.log(info.system?.version);
152
+ *
153
+ * // Get a global variable
154
+ * const value = await client.asterisk.getVariable('GLOBALVAR');
155
+ * ```
156
+ */
40
157
  readonly asterisk: AsteriskResource;
158
+ /**
159
+ * Playbacks API for controlling media playback.
160
+ *
161
+ * @example
162
+ * ```typescript
163
+ * // Control a playback
164
+ * await client.playbacks.control(playbackId, 'pause');
165
+ * await client.playbacks.control(playbackId, 'unpause');
166
+ * await client.playbacks.stop(playbackId);
167
+ * ```
168
+ */
41
169
  readonly playbacks: PlaybacksResource;
170
+ /**
171
+ * Recordings API for managing live and stored recordings.
172
+ *
173
+ * @example
174
+ * ```typescript
175
+ * // List stored recordings
176
+ * const recordings = await client.recordings.listStored();
177
+ *
178
+ * // Get a stored recording
179
+ * const recording = await client.recordings.getStored('my-recording');
180
+ * ```
181
+ */
42
182
  readonly recordings: RecordingsResource;
183
+ /**
184
+ * Sounds API for listing available sound files.
185
+ *
186
+ * @example
187
+ * ```typescript
188
+ * // List all sounds
189
+ * const sounds = await client.sounds.list();
190
+ *
191
+ * // Get sounds for a specific language
192
+ * const englishSounds = await client.sounds.list({ lang: 'en' });
193
+ * ```
194
+ */
43
195
  readonly sounds: SoundsResource;
196
+ /**
197
+ * Mailboxes API for managing voicemail mailboxes.
198
+ *
199
+ * @example
200
+ * ```typescript
201
+ * // List mailboxes
202
+ * const mailboxes = await client.mailboxes.list();
203
+ *
204
+ * // Update message counts
205
+ * await client.mailboxes.update('1000@default', {
206
+ * oldMessages: 5,
207
+ * newMessages: 2
208
+ * });
209
+ * ```
210
+ */
44
211
  readonly mailboxes: MailboxesResource;
212
+ /**
213
+ * Device States API for managing custom device states.
214
+ *
215
+ * @example
216
+ * ```typescript
217
+ * // Set a device state
218
+ * await client.deviceStates.update('Stasis:mydevice', 'INUSE');
219
+ *
220
+ * // Get a device state
221
+ * const state = await client.deviceStates.get('Stasis:mydevice');
222
+ * ```
223
+ */
45
224
  readonly deviceStates: DeviceStatesResource;
46
225
  /**
47
- * @internal - Use connect() function instead
226
+ * Creates a new ARI client.
227
+ *
228
+ * @internal - Use the {@link connect} function instead of instantiating directly.
229
+ *
230
+ * @param options - Resolved connection options
231
+ * @param http - HTTP connection instance
232
+ * @param ws - WebSocket manager instance
233
+ * @param versionCompat - Version compatibility checker
48
234
  */
49
235
  constructor(options: ResolvedOptions, http: HttpConnection, ws: WebSocketManager, versionCompat: VersionCompat);
50
236
  /**
51
237
  * Set up WebSocket event handlers
238
+ * @internal
52
239
  */
53
240
  private setupWebSocketEvents;
54
241
  /**
55
242
  * Handle an incoming ARI event
243
+ * @internal
56
244
  */
57
245
  private handleEvent;
58
246
  /**
59
- * Extract convenience argument from event for ari-client style callbacks
247
+ * Extract convenience instance argument from event for ari-client style callbacks.
248
+ * Returns instance types (ChannelInstance, BridgeInstance, etc.) with methods.
249
+ * @internal
60
250
  */
61
251
  private getConvenienceArg;
62
252
  /**
63
253
  * Route event to appropriate instance listeners
254
+ * @internal
64
255
  */
65
256
  private routeEventToInstances;
66
257
  /**
67
- * Create a Channel instance
258
+ * Create or retrieve a Channel instance.
259
+ *
260
+ * Channel instances provide event-based programming for individual channels.
261
+ * Events are automatically routed to the appropriate instance based on channel ID.
262
+ *
263
+ * @param id - Channel ID (auto-generated if not provided)
264
+ * @param data - Initial channel data
265
+ * @returns Channel instance for event handling and operations
266
+ *
267
+ * @example
268
+ * ```typescript
269
+ * // Create a channel instance from an event
270
+ * client.on('StasisStart', (event, channelData) => {
271
+ * const channel = client.Channel(channelData.id, channelData);
272
+ *
273
+ * channel.on('ChannelDtmfReceived', (event) => {
274
+ * console.log(`DTMF: ${event.digit}`);
275
+ * });
276
+ *
277
+ * await channel.answer();
278
+ * });
279
+ * ```
68
280
  */
69
281
  Channel(id?: string, data?: Partial<Channel>): ChannelInstance;
70
282
  /**
71
- * Create a Bridge instance
283
+ * Create or retrieve a Bridge instance.
284
+ *
285
+ * Bridge instances provide event-based programming for bridges.
286
+ *
287
+ * @param id - Bridge ID (auto-generated if not provided)
288
+ * @param data - Initial bridge data
289
+ * @returns Bridge instance for event handling and operations
290
+ *
291
+ * @example
292
+ * ```typescript
293
+ * const bridge = client.Bridge();
294
+ * await bridge.create({ type: 'mixing' });
295
+ *
296
+ * bridge.on('ChannelEnteredBridge', (event) => {
297
+ * console.log(`${event.channel.name} joined the bridge`);
298
+ * });
299
+ * ```
72
300
  */
73
301
  Bridge(id?: string, data?: Partial<Bridge>): BridgeInstance;
74
302
  /**
75
- * Create a Playback instance
303
+ * Create or retrieve a Playback instance.
304
+ *
305
+ * Playback instances provide event-based programming for media playback.
306
+ *
307
+ * @param id - Playback ID (auto-generated if not provided)
308
+ * @param data - Initial playback data
309
+ * @returns Playback instance for event handling and operations
310
+ *
311
+ * @example
312
+ * ```typescript
313
+ * const playback = client.Playback();
314
+ *
315
+ * playback.on('PlaybackFinished', (event) => {
316
+ * console.log('Playback completed');
317
+ * });
318
+ *
319
+ * await channel.play({ media: 'sound:hello', playbackId: playback.id });
320
+ * ```
76
321
  */
77
322
  Playback(id?: string, data?: Partial<Playback>): PlaybackInstance;
78
323
  /**
79
- * Create a LiveRecording instance
324
+ * Create or retrieve a LiveRecording instance.
325
+ *
326
+ * LiveRecording instances provide event-based programming for active recordings.
327
+ *
328
+ * @param name - Recording name
329
+ * @param data - Initial recording data
330
+ * @returns LiveRecording instance for event handling and operations
331
+ *
332
+ * @example
333
+ * ```typescript
334
+ * const recording = client.LiveRecording('my-recording');
335
+ *
336
+ * recording.on('RecordingFinished', (event) => {
337
+ * console.log(`Recording saved: ${event.recording.name}`);
338
+ * });
339
+ *
340
+ * await channel.record({ name: 'my-recording', format: 'wav' });
341
+ * ```
80
342
  */
81
343
  LiveRecording(name: string, data?: Partial<LiveRecording>): LiveRecordingInstance;
82
344
  /**
83
- * Create a StoredRecording instance (no events, just convenience methods)
345
+ * Create a StoredRecording instance.
346
+ *
347
+ * StoredRecording instances provide convenience methods for working with
348
+ * recordings that are already saved to disk. Unlike LiveRecording, these
349
+ * don't receive events.
350
+ *
351
+ * @param name - Recording name
352
+ * @returns StoredRecording instance for operations
353
+ *
354
+ * @example
355
+ * ```typescript
356
+ * const stored = client.StoredRecording('my-recording');
357
+ *
358
+ * // Copy the recording
359
+ * await stored.copy('my-recording-backup');
360
+ *
361
+ * // Delete the recording
362
+ * await stored.delete();
363
+ * ```
84
364
  */
85
365
  StoredRecording(name: string): StoredRecordingInstance;
86
- /** @internal */
366
+ /** @internal Register a channel instance for event routing */
87
367
  _registerChannelInstance(id: string, instance: ChannelInstance): void;
88
- /** @internal */
368
+ /** @internal Unregister a channel instance */
89
369
  _unregisterChannelInstance(id: string): void;
90
- /** @internal */
370
+ /** @internal Register a bridge instance for event routing */
91
371
  _registerBridgeInstance(id: string, instance: BridgeInstance): void;
92
- /** @internal */
372
+ /** @internal Unregister a bridge instance */
93
373
  _unregisterBridgeInstance(id: string): void;
94
- /** @internal */
374
+ /** @internal Register a playback instance for event routing */
95
375
  _registerPlaybackInstance(id: string, instance: PlaybackInstance): void;
96
- /** @internal */
376
+ /** @internal Unregister a playback instance */
97
377
  _unregisterPlaybackInstance(id: string): void;
98
- /** @internal */
378
+ /** @internal Register a recording instance for event routing */
99
379
  _registerRecordingInstance(name: string, instance: LiveRecordingInstance): void;
100
- /** @internal */
380
+ /** @internal Unregister a recording instance */
101
381
  _unregisterRecordingInstance(name: string): void;
102
382
  /**
103
- * Get the detected ARI/Asterisk version
383
+ * Get the detected ARI/Asterisk version compatibility checker.
384
+ *
385
+ * @returns Version compatibility object with feature flags
386
+ *
387
+ * @example
388
+ * ```typescript
389
+ * console.log(client.version.toString());
390
+ * // "Asterisk 20 (ARI 8.0.0)"
391
+ *
392
+ * if (client.version.hasExternalMedia) {
393
+ * // Use external media feature
394
+ * }
395
+ * ```
104
396
  */
105
397
  get version(): VersionCompat;
106
398
  /**
107
- * Check if WebSocket is connected
399
+ * Check if the WebSocket connection is active.
400
+ *
401
+ * @returns `true` if connected, `false` otherwise
108
402
  */
109
403
  isConnected(): boolean;
110
404
  /**
111
- * Stop the client and disconnect
405
+ * Stop the client and disconnect from Asterisk.
406
+ *
407
+ * This closes the WebSocket connection and clears all instance registries.
408
+ * The client cannot be reused after calling stop().
409
+ *
410
+ * @example
411
+ * ```typescript
412
+ * // Graceful shutdown
413
+ * process.on('SIGTERM', () => {
414
+ * client.stop();
415
+ * process.exit(0);
416
+ * });
417
+ * ```
112
418
  */
113
419
  stop(): void;
114
420
  /**
115
- * Reconnect the WebSocket
421
+ * Reconnect the WebSocket connection.
422
+ *
423
+ * Disconnects and then reconnects to Asterisk. Instance registries
424
+ * are preserved, so events will continue routing correctly.
425
+ *
426
+ * @returns Promise that resolves when reconnected
116
427
  */
117
428
  reconnect(): Promise<void>;
118
429
  /**
119
- * Get the application name
430
+ * Get the Stasis application name.
431
+ *
432
+ * @returns Application name used for this connection
120
433
  */
121
434
  get app(): string;
122
435
  }
123
436
  /**
124
- * Connect to Asterisk ARI
437
+ * Connect to Asterisk ARI and create a client.
438
+ *
439
+ * This is the main entry point for establishing an ARI connection.
440
+ * It performs version detection and sets up the WebSocket connection.
441
+ *
442
+ * @param options - Connection options
443
+ * @returns Promise that resolves to an ARI client
444
+ * @throws {AriHttpError} If connection fails or authentication is invalid
445
+ *
446
+ * @example
447
+ * ```typescript
448
+ * import { connect } from '@per_moeller/asterisk-ari';
449
+ *
450
+ * const client = await connect({
451
+ * url: 'http://localhost:8088',
452
+ * username: 'asterisk',
453
+ * password: 'secret',
454
+ * app: 'my-app'
455
+ * });
456
+ *
457
+ * console.log(`Connected to ${client.version}`);
458
+ *
459
+ * client.on('StasisStart', async (event, channel) => {
460
+ * await channel.answer();
461
+ * });
462
+ * ```
125
463
  */
126
464
  export declare function connect(options: ConnectOptions): Promise<AriClient>;
127
465
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}