typescript-agi-ipcom 0.0.2 → 0.0.8-beta.1

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,546 @@
1
+ import { EventEmitter } from 'node:events';
2
+ import type { Socket } from 'node:net';
3
+ import { ResponseArguments } from './ResponseArguments';
4
+ /**
5
+ * Represents the current channel state
6
+ */
7
+ export declare enum ChannelState {
8
+ DOWN_AVAILABLE = 0,
9
+ DOWN_RESERVED = 1,
10
+ OFF_HOOK = 2,
11
+ DIGITS_DIALED = 3,
12
+ RINGING = 4,
13
+ REMOTE_RINGING = 5,
14
+ UP = 6,
15
+ BUSY = 7
16
+ }
17
+ /**
18
+ * Represents the result of a Dial() attempt
19
+ */
20
+ export declare enum DialStatus {
21
+ ANSWER = 0,
22
+ BUSY = 1,
23
+ NOANSWER = 2,
24
+ CANCEL = 3,
25
+ CONGESTION = 4,
26
+ CHANUNAVAIL = 5,
27
+ DONTCALL = 6,
28
+ TORTURE = 7,
29
+ INVALIDARGS = 8
30
+ }
31
+ /**
32
+ * Represents the playback status
33
+ */
34
+ export declare enum PlaybackStatus {
35
+ SUCCESS = 0,
36
+ USER_STOPPED = 1,
37
+ REMOTE_STOPPED = 2,
38
+ ERROR = 3
39
+ }
40
+ /** @ignore */
41
+ interface IResponse {
42
+ code: number;
43
+ result: number;
44
+ arguments: ResponseArguments;
45
+ }
46
+ /**
47
+ * Represents an AGI Channel
48
+ */
49
+ export declare class Channel extends EventEmitter {
50
+ private readonly m_connection;
51
+ private m_state;
52
+ private m_message;
53
+ private m_network;
54
+ private m_network_script;
55
+ private m_request;
56
+ private m_channel;
57
+ private m_language;
58
+ private m_type;
59
+ private m_uniqueid;
60
+ private m_version;
61
+ private m_callerid;
62
+ private m_calleridname;
63
+ private m_callingpres;
64
+ private m_callingani2;
65
+ private m_callington;
66
+ private m_callingtns;
67
+ private m_dnid;
68
+ private m_rdnis;
69
+ private m_context;
70
+ private m_extension;
71
+ private m_priority;
72
+ private m_enhanced;
73
+ private m_accountcode;
74
+ private m_threadid;
75
+ private commandQueue;
76
+ private isProcessingCommand;
77
+ private channelAlive;
78
+ private readonly maxQueueSize;
79
+ private readonly defaultCommandTimeout;
80
+ private readonly maxCallDuration;
81
+ /**
82
+ * Creates a new instance of a channel object
83
+ * @param connection the AGI socket connection
84
+ */
85
+ constructor(connection: Socket);
86
+ /**
87
+ * Event that is emitted when the underlying socket encounters an error
88
+ * @param event
89
+ * @param listener
90
+ */
91
+ on(event: 'error', listener: (error: any) => void): this;
92
+ /**
93
+ * Event that is emitted when the underlying socket is closed
94
+ * @param event
95
+ * @param listener
96
+ */
97
+ on(event: 'close', listener: () => void): this;
98
+ /**
99
+ * Event that emitted when the underlying socket times out
100
+ * @param event
101
+ * @param listener
102
+ */
103
+ on(event: 'timeout', listener: () => void): this;
104
+ /**
105
+ * Event that is emitted when the channel is ready
106
+ * @param event
107
+ * @param listener
108
+ */
109
+ on(event: 'ready', listener: () => void): this;
110
+ /**
111
+ * Event that is emitted when a response is received from the Asterisk server
112
+ * @param event
113
+ * @param listener
114
+ */
115
+ on(event: 'recv', listener: (response: string) => void): this;
116
+ /**
117
+ * Event that emitted when the channel is hung up
118
+ * @param event
119
+ * @param listener
120
+ */
121
+ on(event: 'hangup', listener: () => void): this;
122
+ /**
123
+ * Event that emitted when the response from the Asterisk server is processed into a structured response
124
+ * @param event
125
+ * @param listener
126
+ */
127
+ on(event: 'response', listener: (response: IResponse) => void): this;
128
+ /**
129
+ * Event that is emitted when data is sent to the Asterisk server
130
+ * @param event
131
+ * @param listener
132
+ */
133
+ on(event: 'send', listener: (data: string) => void): this;
134
+ /**
135
+ * Whether this AGI request is over the network
136
+ */
137
+ get network(): boolean;
138
+ /**
139
+ * The network path included in the AGI request
140
+ * ie. agi://127.0.0.1:3000/test
141
+ * This value would return 'test'
142
+ */
143
+ get network_script(): string;
144
+ /**
145
+ * The version of Asterisk
146
+ */
147
+ get version(): string;
148
+ /**
149
+ * The filename of your script
150
+ * ie. agi
151
+ */
152
+ get request(): string;
153
+ /**
154
+ * The originating channel (your phone)
155
+ */
156
+ get channel(): string;
157
+ /**
158
+ * The language code (e.g. “en”)
159
+ */
160
+ get language(): string;
161
+ /**
162
+ * The originating channel type (e.g. “SIP” or “ZAP”)
163
+ */
164
+ get type(): string;
165
+ /**
166
+ * A unique ID for the call
167
+ */
168
+ get uniqueid(): string;
169
+ /**
170
+ * The caller ID number (or “unknown”)
171
+ */
172
+ get callerid(): string;
173
+ /**
174
+ * The caller ID name (or “unknown”)
175
+ */
176
+ get calleridname(): string;
177
+ /**
178
+ * The presentation for the callerid in a ZAP channel
179
+ */
180
+ get callingpres(): string;
181
+ /**
182
+ * The number which is defined in ANI2 see Asterisk Detailed Variable List (only for PRI Channels)
183
+ */
184
+ get callingani2(): string;
185
+ /**
186
+ * The type of number used in PRI Channels see Asterisk Detailed Variable List
187
+ */
188
+ get callington(): string;
189
+ /**
190
+ * An optional 4 digit number (Transit Network Selector) used in PRI Channels see Asterisk Detailed Variable List
191
+ */
192
+ get callingtns(): string;
193
+ /**
194
+ * The dialed number id (or “unknown”)
195
+ */
196
+ get dnid(): string;
197
+ /**
198
+ * The referring DNIS number (or “unknown”)
199
+ */
200
+ get rdnis(): string;
201
+ /**
202
+ * Origin context in extensions.conf
203
+ */
204
+ get context(): string;
205
+ /**
206
+ * The called number
207
+ */
208
+ get extension(): string;
209
+ /**
210
+ * The priority it was executed as in the dial plan
211
+ */
212
+ get priority(): string;
213
+ /**
214
+ * The flag value is 1.0 if started as an EAGI script, 0.0 otherwise
215
+ */
216
+ get enhanced(): string;
217
+ /**
218
+ * Account code of the origin channel
219
+ */
220
+ get accountcode(): string;
221
+ /**
222
+ * Thread ID of the AGI script
223
+ */
224
+ get threadid(): string;
225
+ /**
226
+ * Answers channel if not already in answer state.
227
+ */
228
+ answer(): Promise<void>;
229
+ /**
230
+ * Interrupts expected flow of Async AGI commands and returns control to
231
+ * previous source (typically, the PBX dialplan).
232
+ */
233
+ break(): Promise<void>;
234
+ /**
235
+ * Returns status of the connected channel.
236
+ * @param channel
237
+ */
238
+ channelStatus(channel?: string): Promise<ChannelState>;
239
+ /**
240
+ * Sends audio file on channel and allows the listener to control the stream.
241
+ * @param filename
242
+ * @param escapeDigits
243
+ * @param skipms
244
+ * @param fastForwardCharacter
245
+ * @param rewindCharacter
246
+ * @param pauseCharacter
247
+ */
248
+ controlStreamFile(filename: string, escapeDigits?: string, skipms?: number, fastForwardCharacter?: string, rewindCharacter?: string, pauseCharacter?: string): Promise<{
249
+ digit: string;
250
+ playbackStatus: PlaybackStatus;
251
+ playbackOffset: number;
252
+ }>;
253
+ /**
254
+ * Attempts to establish a new outgoing connection on a channel, and then link it to the calling input channel.
255
+ * @param target
256
+ * @param timeout
257
+ * @param params
258
+ */
259
+ dial(target: string, timeout?: number, params?: string): Promise<DialStatus>;
260
+ /**
261
+ * Deletes an entry in the Asterisk database for a given family and key.
262
+ * @param family
263
+ * @param key
264
+ */
265
+ databaseDel(family: string, key: string): Promise<void>;
266
+ /**
267
+ * Deletes a family or specific keytree within a family in the Asterisk database.
268
+ * @param family
269
+ * @param keyTree
270
+ */
271
+ databaseDelTree(family: string, keyTree?: string): Promise<boolean>;
272
+ /**
273
+ * Retrieves an entry in the Asterisk database for a given family and key.
274
+ * @param family
275
+ * @param key
276
+ */
277
+ databaseGet(family: string, key: string): Promise<string>;
278
+ /**
279
+ * Adds or updates an entry in the Asterisk database for a given family, key, and value.
280
+ * @param family
281
+ * @param key
282
+ * @param value
283
+ */
284
+ databasePut(family: string, key: string, value: string): Promise<string>;
285
+ /**
286
+ * Executes application with given options
287
+ * @param application The application to execute (e.g., 'Dial', 'Playback')
288
+ * @param args Application arguments
289
+ * @param commandTimeout Optional timeout in milliseconds (default: 6 hours for EXEC, use Infinity for no timeout)
290
+ */
291
+ exec(application: string, args: string, commandTimeout?: number): Promise<number>;
292
+ /**
293
+ * Stream the given file, and receive DTMF data.
294
+ * @param soundFile
295
+ * @param timeout
296
+ * @param maxDigits
297
+ */
298
+ getData(soundFile: string, timeout?: number, maxDigits?: number): Promise<{
299
+ digits: string;
300
+ timeout: boolean;
301
+ }>;
302
+ /**
303
+ * Evaluates a channel expression
304
+ * Understands complex variable names and builtin variables, unlike GET VARIABLE.
305
+ * @param key
306
+ * @param channel
307
+ */
308
+ getFullVariable(key: string, channel?: string): Promise<string>;
309
+ /**
310
+ * Stream file, prompt for DTMF, with timeout.
311
+ * Behaves similar to STREAM FILE but used with a timeout option.
312
+ * @param soundFile
313
+ * @param escapeDigits
314
+ * @param timeout
315
+ */
316
+ getOption(soundFile: string, escapeDigits?: string, timeout?: number): Promise<{
317
+ digit: string;
318
+ endpos: number;
319
+ }>;
320
+ /**
321
+ * Gets a channel variable.
322
+ * @param key
323
+ */
324
+ getVariable(key: string): Promise<string>;
325
+ /**
326
+ * Cause the channel to execute the specified dialplan subroutine.
327
+ * @param context
328
+ * @param extension
329
+ * @param priority
330
+ * @param argument
331
+ */
332
+ goSub(context: string, extension: string, priority: number, argument?: string): Promise<void>;
333
+ /**
334
+ * Hangs up the specified channel. If no channel name is given, hangs up the current channel
335
+ * @param channel
336
+ */
337
+ hangup(channel?: string): Promise<void>;
338
+ /**
339
+ * Does nothing
340
+ */
341
+ noop(): Promise<void>;
342
+ /**
343
+ * Receives one character from channels supporting it.
344
+ * @param timeout
345
+ */
346
+ receiveChar(timeout?: number): Promise<{
347
+ char: string;
348
+ timeout: boolean;
349
+ }>;
350
+ /**
351
+ * Receives text from channels supporting it.
352
+ * @param timeout
353
+ */
354
+ receiveText(timeout?: number): Promise<string>;
355
+ /**
356
+ * Records to a given file.
357
+ * @param filename
358
+ * @param fileFormat
359
+ * @param escapeDigits
360
+ * @param timeout
361
+ * @param beep
362
+ * @param silence
363
+ * @param offsetSamples
364
+ */
365
+ recordFile(filename: string, fileFormat?: string, escapeDigits?: string, timeout?: number, beep?: boolean, silence?: number, offsetSamples?: number): Promise<{
366
+ digit: string;
367
+ endpos: number;
368
+ timeout: boolean;
369
+ }>;
370
+ /**
371
+ * Says a given character string.
372
+ * @param value
373
+ * @param escapeDigits
374
+ */
375
+ sayAlpha(value: string, escapeDigits?: string): Promise<string>;
376
+ /**
377
+ * Says a given date.
378
+ * @param value
379
+ * @param escapeDigits
380
+ */
381
+ sayDate(value: Date | number, escapeDigits?: string): Promise<string>;
382
+ /**
383
+ * Says a given time as specified by the format given.
384
+ * @param value
385
+ * @param escapeDigits
386
+ * @param dateFormat
387
+ * @param timezone
388
+ */
389
+ sayDateTime(value: Date | number, escapeDigits?: string, dateFormat?: string, timezone?: string): Promise<string>;
390
+ /**
391
+ * Says a given digit string.
392
+ * @param value
393
+ * @param escapeDigits
394
+ */
395
+ sayDigits(value: string, escapeDigits?: string): Promise<string>;
396
+ /**
397
+ * Says a given number.
398
+ * @param value
399
+ * @param escapeDigits
400
+ */
401
+ sayNumber(value: number, escapeDigits?: string): Promise<string>;
402
+ /**
403
+ * Says a given character string with phonetics.
404
+ * @param value
405
+ * @param escapeDigits
406
+ */
407
+ sayPhonetic(value: string, escapeDigits?: string): Promise<string>;
408
+ /**
409
+ * Says a given time.
410
+ * @param value
411
+ * @param escapeDigits
412
+ */
413
+ sayTime(value: Date | number, escapeDigits?: string): Promise<string>;
414
+ /**
415
+ * Sends images to channels supporting it.
416
+ * @param image
417
+ */
418
+ sendImage(image: string): Promise<void>;
419
+ /**
420
+ * Sends text to channels supporting it.
421
+ * @param text
422
+ */
423
+ sendText(text: string): Promise<void>;
424
+ /**
425
+ * Autohangup channel in some time.
426
+ * @param timeout
427
+ */
428
+ setAutoHangup(timeout?: number): Promise<void>;
429
+ /**
430
+ * Sets callerid for the current channel.
431
+ * @param callerNumber
432
+ * @param callerName
433
+ */
434
+ setCallerID(callerNumber: number, callerName?: string): Promise<void>;
435
+ /**
436
+ * Sets channel context.
437
+ * @param context
438
+ */
439
+ setContext(context: string): Promise<void>;
440
+ /**
441
+ * Changes channel extension.
442
+ * @param extension
443
+ */
444
+ setExtension(extension: string): Promise<void>;
445
+ /**
446
+ * Enable/Disable Music on hold generator
447
+ * @param status
448
+ * @param musicClass
449
+ */
450
+ setMusic(status?: boolean, musicClass?: string): Promise<void>;
451
+ /**
452
+ * Set channel dialplan priority.
453
+ * @param priority
454
+ */
455
+ setPriority(priority: number): Promise<void>;
456
+ /**
457
+ * Set channel dialplan priority.
458
+ * @param key
459
+ * @param value
460
+ */
461
+ setVariable(key: string, value: string): Promise<void>;
462
+ speechActivateGrammar(grammar: string): Promise<IResponse>;
463
+ speechCreate(engine: string): Promise<IResponse>;
464
+ speechDeactivateGrammar(grammar: string): Promise<IResponse>;
465
+ speechDestroy(): Promise<IResponse>;
466
+ speechLoadGrammar(grammar: string, path: string): Promise<IResponse>;
467
+ speechRecognize(soundFile: string, timeout: number | undefined, offset: number): Promise<IResponse>;
468
+ speechSet(key: string, value: string): Promise<IResponse>;
469
+ speedUnloadGrammar(grammar: string): Promise<IResponse>;
470
+ /**
471
+ * Sends audio file on channel.
472
+ * @param filename
473
+ * @param escapeDigits
474
+ * @param offset
475
+ */
476
+ streamFile(filename: string, escapeDigits?: string, offset?: number): Promise<{
477
+ digit: string;
478
+ endpos: number;
479
+ }>;
480
+ /**
481
+ * Toggles TDD mode (for the deaf).
482
+ * @param status
483
+ */
484
+ tddMode(status: boolean): Promise<void>;
485
+ /**
486
+ * Logs a message to the asterisk verbose log.
487
+ * @param message
488
+ * @param level
489
+ */
490
+ verbose(message: string, level?: number): Promise<void>;
491
+ /**
492
+ * Waits for a digit to be pressed.
493
+ * @param timeout
494
+ */
495
+ waitForDigit(timeout?: number): Promise<string>;
496
+ private close;
497
+ private read;
498
+ private readVariables;
499
+ private readResponse;
500
+ private readResponseLine;
501
+ private send;
502
+ /**
503
+ * Sends an AGI command and waits for response using a FIFO queue
504
+ * @param command AGI command to send
505
+ * @param timeout Optional timeout in milliseconds (default: 10000ms)
506
+ */
507
+ private sendCommand;
508
+ /**
509
+ * Gets the appropriate timeout for a given command
510
+ * @param command The AGI command string
511
+ * @returns Timeout in milliseconds (or Infinity for no timeout)
512
+ */
513
+ private getCommandTimeout;
514
+ /**
515
+ * Processes the command queue sequentially (FIFO)
516
+ */
517
+ private processCommandQueue;
518
+ /**
519
+ * Internal implementation of command sending
520
+ * @param command The AGI command to send
521
+ * @param timeout Timeout in milliseconds, or Infinity for no timeout
522
+ */
523
+ private sendCommandInternal;
524
+ /**
525
+ * Handles channel closure with pending commands
526
+ */
527
+ private handleChannelClose;
528
+ /**
529
+ * Handles HANGUP from Asterisk
530
+ */
531
+ private handleHangup;
532
+ /**
533
+ * Manually clears the command queue (for emergency cases)
534
+ */
535
+ clearCommandQueue(): number;
536
+ /**
537
+ * Returns queue statistics
538
+ */
539
+ getQueueStats(): {
540
+ size: number;
541
+ isProcessing: boolean;
542
+ oldestCommandAge: number | null;
543
+ };
544
+ }
545
+ export {};
546
+ //# sourceMappingURL=Channel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Channel.d.ts","sourceRoot":"","sources":["../../src/Channel.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ /** @ignore */
2
+ export interface IResponseArguments {
3
+ key: string;
4
+ value: string | number | boolean;
5
+ }
6
+ /**
7
+ * Represents a set of AGI response arguments
8
+ * @ignore
9
+ */
10
+ export declare class ResponseArguments {
11
+ private m_args;
12
+ /**
13
+ * Adds a new argument to the set
14
+ * @param key
15
+ * @param value
16
+ */
17
+ addArgument(key: string, value: string | number | boolean): void;
18
+ /**
19
+ * Retrieves the requested key as a string
20
+ * @param key
21
+ */
22
+ string(key: string): string;
23
+ /**
24
+ * Retrieves the requested key as a number
25
+ * @param key
26
+ */
27
+ number(key: string): number;
28
+ /**
29
+ * Retrieves the request key as a boolean
30
+ * @param key
31
+ */
32
+ boolean(key: string): boolean;
33
+ /**
34
+ * Retrieves the requested key from a character code
35
+ * @param key
36
+ */
37
+ char(key: string): string;
38
+ /**
39
+ * Retrieves the value from the arguments that has no key, if it exists
40
+ */
41
+ nokey(): string;
42
+ }
43
+ //# sourceMappingURL=ResponseArguments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResponseArguments.d.ts","sourceRoot":"","sources":["../../src/ResponseArguments.ts"],"names":[],"mappings":"AAIA,cAAc;AACd,MAAM,WAAW,kBAAkB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;CACpC;AAED;;;GAGG;AACH,qBAAa,iBAAiB;IAC1B,OAAO,CAAC,MAAM,CAA4B;IAE1C;;;;OAIG;IACI,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO;IAIhE;;;OAGG;IACI,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAUlC;;;OAGG;IACI,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAUlC;;;OAGG;IACI,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAUpC;;;OAGG;IACI,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAMhC;;OAEG;IACI,KAAK,IAAI,MAAM;CASzB"}
@@ -0,0 +1,3 @@
1
+ export { AGIServer } from './AGIServer';
2
+ export { Channel, ChannelState, DialStatus, PlaybackStatus } from './Channel';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AACtC,OAAO,EAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAC,MAAM,WAAW,CAAC"}
@@ -0,0 +1,9 @@
1
+ import js from "@eslint/js";
2
+ import globals from "globals";
3
+ import tseslint from "typescript-eslint";
4
+ import { defineConfig } from "eslint/config";
5
+
6
+ export default defineConfig([
7
+ { files: ["**/*.{js,mjs,cjs,ts,mts,cts}"], plugins: { js }, extends: ["js/recommended"], languageOptions: { globals: globals.node } },
8
+ tseslint.configs.recommended,
9
+ ]);