@per_moeller/asterisk-ari 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.
Files changed (111) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +291 -0
  3. package/dist/client.d.ts +123 -0
  4. package/dist/client.d.ts.map +1 -0
  5. package/dist/client.js +297 -0
  6. package/dist/client.js.map +1 -0
  7. package/dist/connection.d.ts +70 -0
  8. package/dist/connection.d.ts.map +1 -0
  9. package/dist/connection.js +157 -0
  10. package/dist/connection.js.map +1 -0
  11. package/dist/events/emitter.d.ts +82 -0
  12. package/dist/events/emitter.d.ts.map +1 -0
  13. package/dist/events/emitter.js +132 -0
  14. package/dist/events/emitter.js.map +1 -0
  15. package/dist/events/types.d.ts +283 -0
  16. package/dist/events/types.d.ts.map +1 -0
  17. package/dist/events/types.js +5 -0
  18. package/dist/events/types.js.map +1 -0
  19. package/dist/index.d.ts +27 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +34 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/models/bridge.d.ts +102 -0
  24. package/dist/models/bridge.d.ts.map +1 -0
  25. package/dist/models/bridge.js +186 -0
  26. package/dist/models/bridge.js.map +1 -0
  27. package/dist/models/channel.d.ts +166 -0
  28. package/dist/models/channel.d.ts.map +1 -0
  29. package/dist/models/channel.js +278 -0
  30. package/dist/models/channel.js.map +1 -0
  31. package/dist/models/index.d.ts +8 -0
  32. package/dist/models/index.d.ts.map +1 -0
  33. package/dist/models/index.js +8 -0
  34. package/dist/models/index.js.map +1 -0
  35. package/dist/models/playback.d.ts +82 -0
  36. package/dist/models/playback.d.ts.map +1 -0
  37. package/dist/models/playback.js +146 -0
  38. package/dist/models/playback.js.map +1 -0
  39. package/dist/models/recording.d.ts +104 -0
  40. package/dist/models/recording.d.ts.map +1 -0
  41. package/dist/models/recording.js +191 -0
  42. package/dist/models/recording.js.map +1 -0
  43. package/dist/pool.d.ts +57 -0
  44. package/dist/pool.d.ts.map +1 -0
  45. package/dist/pool.js +111 -0
  46. package/dist/pool.js.map +1 -0
  47. package/dist/queue.d.ts +85 -0
  48. package/dist/queue.d.ts.map +1 -0
  49. package/dist/queue.js +208 -0
  50. package/dist/queue.js.map +1 -0
  51. package/dist/resources/applications.d.ts +37 -0
  52. package/dist/resources/applications.d.ts.map +1 -0
  53. package/dist/resources/applications.js +45 -0
  54. package/dist/resources/applications.js.map +1 -0
  55. package/dist/resources/asterisk.d.ts +71 -0
  56. package/dist/resources/asterisk.d.ts.map +1 -0
  57. package/dist/resources/asterisk.js +94 -0
  58. package/dist/resources/asterisk.js.map +1 -0
  59. package/dist/resources/base.d.ts +18 -0
  60. package/dist/resources/base.d.ts.map +1 -0
  61. package/dist/resources/base.js +21 -0
  62. package/dist/resources/base.js.map +1 -0
  63. package/dist/resources/bridges.d.ts +66 -0
  64. package/dist/resources/bridges.d.ts.map +1 -0
  65. package/dist/resources/bridges.js +109 -0
  66. package/dist/resources/bridges.js.map +1 -0
  67. package/dist/resources/channels.d.ts +130 -0
  68. package/dist/resources/channels.d.ts.map +1 -0
  69. package/dist/resources/channels.js +228 -0
  70. package/dist/resources/channels.js.map +1 -0
  71. package/dist/resources/devicestates.d.ts +30 -0
  72. package/dist/resources/devicestates.d.ts.map +1 -0
  73. package/dist/resources/devicestates.js +37 -0
  74. package/dist/resources/devicestates.js.map +1 -0
  75. package/dist/resources/endpoints.d.ts +38 -0
  76. package/dist/resources/endpoints.d.ts.map +1 -0
  77. package/dist/resources/endpoints.js +61 -0
  78. package/dist/resources/endpoints.js.map +1 -0
  79. package/dist/resources/mailboxes.d.ts +30 -0
  80. package/dist/resources/mailboxes.d.ts.map +1 -0
  81. package/dist/resources/mailboxes.js +38 -0
  82. package/dist/resources/mailboxes.js.map +1 -0
  83. package/dist/resources/playbacks.d.ts +27 -0
  84. package/dist/resources/playbacks.d.ts.map +1 -0
  85. package/dist/resources/playbacks.js +31 -0
  86. package/dist/resources/playbacks.js.map +1 -0
  87. package/dist/resources/recordings.d.ts +76 -0
  88. package/dist/resources/recordings.d.ts.map +1 -0
  89. package/dist/resources/recordings.js +105 -0
  90. package/dist/resources/recordings.js.map +1 -0
  91. package/dist/resources/sounds.d.ts +22 -0
  92. package/dist/resources/sounds.d.ts.map +1 -0
  93. package/dist/resources/sounds.js +26 -0
  94. package/dist/resources/sounds.js.map +1 -0
  95. package/dist/types/api.d.ts +331 -0
  96. package/dist/types/api.d.ts.map +1 -0
  97. package/dist/types/api.js +5 -0
  98. package/dist/types/api.js.map +1 -0
  99. package/dist/types/options.d.ts +77 -0
  100. package/dist/types/options.d.ts.map +1 -0
  101. package/dist/types/options.js +23 -0
  102. package/dist/types/options.js.map +1 -0
  103. package/dist/version.d.ts +86 -0
  104. package/dist/version.d.ts.map +1 -0
  105. package/dist/version.js +122 -0
  106. package/dist/version.js.map +1 -0
  107. package/dist/websocket.d.ts +70 -0
  108. package/dist/websocket.d.ts.map +1 -0
  109. package/dist/websocket.js +195 -0
  110. package/dist/websocket.js.map +1 -0
  111. package/package.json +59 -0
@@ -0,0 +1,186 @@
1
+ /**
2
+ * Bridge model and instance class
3
+ */
4
+ /**
5
+ * Bridge instance with bound operations and event handling
6
+ */
7
+ export class BridgeInstance {
8
+ // Bridge properties
9
+ id;
10
+ technology = '';
11
+ bridge_type = 'mixing';
12
+ bridge_class = 'base';
13
+ creator = '';
14
+ name = '';
15
+ channels = [];
16
+ video_mode;
17
+ video_source_id;
18
+ creationtime = '';
19
+ client;
20
+ listeners = new Map();
21
+ constructor(client, id, data) {
22
+ this.client = client;
23
+ this.id = id || crypto.randomUUID();
24
+ if (data) {
25
+ this.updateData(data);
26
+ }
27
+ // Register this instance for events
28
+ this.client._registerBridgeInstance(this.id, this);
29
+ }
30
+ /**
31
+ * Update bridge data from an event or API response
32
+ */
33
+ updateData(data) {
34
+ if (data.id !== undefined)
35
+ this.id = data.id;
36
+ if (data.technology !== undefined)
37
+ this.technology = data.technology;
38
+ if (data.bridge_type !== undefined)
39
+ this.bridge_type = data.bridge_type;
40
+ if (data.bridge_class !== undefined)
41
+ this.bridge_class = data.bridge_class;
42
+ if (data.creator !== undefined)
43
+ this.creator = data.creator;
44
+ if (data.name !== undefined)
45
+ this.name = data.name;
46
+ if (data.channels !== undefined)
47
+ this.channels = data.channels;
48
+ if (data.video_mode !== undefined)
49
+ this.video_mode = data.video_mode;
50
+ if (data.video_source_id !== undefined)
51
+ this.video_source_id = data.video_source_id;
52
+ if (data.creationtime !== undefined)
53
+ this.creationtime = data.creationtime;
54
+ }
55
+ /**
56
+ * Add an event listener
57
+ */
58
+ on(event, listener) {
59
+ let eventListeners = this.listeners.get(event);
60
+ if (!eventListeners) {
61
+ eventListeners = new Set();
62
+ this.listeners.set(event, eventListeners);
63
+ }
64
+ eventListeners.add(listener);
65
+ return this;
66
+ }
67
+ /**
68
+ * Add a one-time event listener
69
+ */
70
+ once(event, listener) {
71
+ const wrappedListener = ((...args) => {
72
+ this.off(event, wrappedListener);
73
+ listener(...args);
74
+ });
75
+ return this.on(event, wrappedListener);
76
+ }
77
+ /**
78
+ * Remove an event listener
79
+ */
80
+ off(event, listener) {
81
+ const eventListeners = this.listeners.get(event);
82
+ if (eventListeners) {
83
+ eventListeners.delete(listener);
84
+ }
85
+ return this;
86
+ }
87
+ /**
88
+ * Emit an event to listeners
89
+ * @internal
90
+ */
91
+ _emit(event, data) {
92
+ const eventListeners = this.listeners.get(event);
93
+ if (eventListeners) {
94
+ for (const listener of eventListeners) {
95
+ try {
96
+ listener(data, this);
97
+ }
98
+ catch (error) {
99
+ console.error(`Error in bridge event listener for ${event}:`, error);
100
+ }
101
+ }
102
+ }
103
+ }
104
+ /**
105
+ * Remove all event listeners and unregister from client
106
+ */
107
+ removeAllListeners() {
108
+ this.listeners.clear();
109
+ this.client._unregisterBridgeInstance(this.id);
110
+ return this;
111
+ }
112
+ // ============================================================================
113
+ // Bound Bridge Operations
114
+ // ============================================================================
115
+ /**
116
+ * Create this bridge
117
+ */
118
+ async create(params) {
119
+ const result = await this.client.bridges.createOrUpdate(this.id, params);
120
+ this.updateData(result);
121
+ }
122
+ /**
123
+ * Destroy this bridge
124
+ */
125
+ async destroy() {
126
+ return this.client.bridges.destroy(this.id);
127
+ }
128
+ /**
129
+ * Add channel(s) to this bridge
130
+ */
131
+ async addChannel(params) {
132
+ return this.client.bridges.addChannel(this.id, params);
133
+ }
134
+ /**
135
+ * Remove channel(s) from this bridge
136
+ */
137
+ async removeChannel(params) {
138
+ return this.client.bridges.removeChannel(this.id, params);
139
+ }
140
+ /**
141
+ * Set the video source for this bridge
142
+ */
143
+ async setVideoSource(channelId) {
144
+ return this.client.bridges.setVideoSource(this.id, channelId);
145
+ }
146
+ /**
147
+ * Clear the video source for this bridge
148
+ */
149
+ async clearVideoSource() {
150
+ return this.client.bridges.clearVideoSource(this.id);
151
+ }
152
+ /**
153
+ * Start music on hold for this bridge
154
+ */
155
+ async startMoh(mohClass) {
156
+ return this.client.bridges.startMoh(this.id, mohClass);
157
+ }
158
+ /**
159
+ * Stop music on hold for this bridge
160
+ */
161
+ async stopMoh() {
162
+ return this.client.bridges.stopMoh(this.id);
163
+ }
164
+ /**
165
+ * Play media to this bridge
166
+ */
167
+ async play(params) {
168
+ // Create playback instance first to register for events
169
+ const playback = this.client.Playback(params.playbackId);
170
+ await this.client.bridges.play(this.id, {
171
+ ...params,
172
+ playbackId: playback.id,
173
+ });
174
+ return playback;
175
+ }
176
+ /**
177
+ * Record audio from this bridge
178
+ */
179
+ async record(params) {
180
+ // Create recording instance first to register for events
181
+ const recording = this.client.LiveRecording(params.name);
182
+ await this.client.bridges.record(this.id, params);
183
+ return recording;
184
+ }
185
+ }
186
+ //# sourceMappingURL=bridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../src/models/bridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,166 @@
1
+ /**
2
+ * Channel model and instance class
3
+ */
4
+ import type { AriClient } from '../client.js';
5
+ import type { Channel, ChannelState, CallerId, DialplanCEP, OriginateParams, HangupParams, ContinueParams, MoveParams, DTMFParams, PlayParams, RecordParams, SnoopParams, DialParams, RTPstat } from '../types/api.js';
6
+ import type { AriEventMap, ChannelEventType, StasisStartEvent, StasisEndEvent, ChannelDtmfReceivedEvent, ChannelStateChangeEvent, ChannelHangupRequestEvent, ChannelVarsetEvent, ChannelHoldEvent, ChannelUnholdEvent, ChannelTalkingStartedEvent, ChannelTalkingFinishedEvent, ChannelEnteredBridgeEvent, ChannelLeftBridgeEvent, DialEvent } from '../events/types.js';
7
+ import type { PlaybackInstance } from './playback.js';
8
+ import type { LiveRecordingInstance } from './recording.js';
9
+ type ChannelEventListener<E> = (event: E, channel: ChannelInstance) => void | Promise<void>;
10
+ interface ChannelEventListeners {
11
+ StasisStart: ChannelEventListener<StasisStartEvent>;
12
+ StasisEnd: ChannelEventListener<StasisEndEvent>;
13
+ ChannelStateChange: ChannelEventListener<ChannelStateChangeEvent>;
14
+ ChannelDtmfReceived: ChannelEventListener<ChannelDtmfReceivedEvent>;
15
+ ChannelHangupRequest: ChannelEventListener<ChannelHangupRequestEvent>;
16
+ ChannelVarset: ChannelEventListener<ChannelVarsetEvent>;
17
+ ChannelHold: ChannelEventListener<ChannelHoldEvent>;
18
+ ChannelUnhold: ChannelEventListener<ChannelUnholdEvent>;
19
+ ChannelTalkingStarted: ChannelEventListener<ChannelTalkingStartedEvent>;
20
+ ChannelTalkingFinished: ChannelEventListener<ChannelTalkingFinishedEvent>;
21
+ ChannelEnteredBridge: ChannelEventListener<ChannelEnteredBridgeEvent>;
22
+ ChannelLeftBridge: ChannelEventListener<ChannelLeftBridgeEvent>;
23
+ Dial: ChannelEventListener<DialEvent>;
24
+ }
25
+ /**
26
+ * Channel instance with bound operations and event handling
27
+ */
28
+ export declare class ChannelInstance implements Channel {
29
+ id: string;
30
+ name: string;
31
+ state: ChannelState;
32
+ caller: CallerId;
33
+ connected: CallerId;
34
+ accountcode: string;
35
+ dialplan: DialplanCEP;
36
+ creationtime: string;
37
+ language: string;
38
+ channelvars?: Record<string, string>;
39
+ protocol_id?: string;
40
+ private readonly client;
41
+ private readonly listeners;
42
+ constructor(client: AriClient, id?: string, data?: Partial<Channel>);
43
+ /**
44
+ * Update channel data from an event or API response
45
+ */
46
+ updateData(data: Partial<Channel>): void;
47
+ /**
48
+ * Add an event listener
49
+ */
50
+ on<K extends keyof ChannelEventListeners>(event: K, listener: ChannelEventListeners[K]): this;
51
+ /**
52
+ * Add a one-time event listener
53
+ */
54
+ once<K extends keyof ChannelEventListeners>(event: K, listener: ChannelEventListeners[K]): this;
55
+ /**
56
+ * Remove an event listener
57
+ */
58
+ off<K extends keyof ChannelEventListeners>(event: K, listener: ChannelEventListeners[K]): this;
59
+ /**
60
+ * Emit an event to listeners
61
+ * @internal
62
+ */
63
+ _emit<K extends ChannelEventType>(event: K, data: AriEventMap[K]): void;
64
+ /**
65
+ * Remove all event listeners and unregister from client
66
+ */
67
+ removeAllListeners(): this;
68
+ /**
69
+ * Originate a call to this channel
70
+ */
71
+ originate(params: Omit<OriginateParams, 'channelId'>): Promise<void>;
72
+ /**
73
+ * Answer this channel
74
+ */
75
+ answer(): Promise<void>;
76
+ /**
77
+ * Hangup this channel
78
+ */
79
+ hangup(params?: HangupParams): Promise<void>;
80
+ /**
81
+ * Continue this channel in the dialplan
82
+ */
83
+ continueInDialplan(params?: ContinueParams): Promise<void>;
84
+ /**
85
+ * Move this channel to a different Stasis application
86
+ */
87
+ move(params: MoveParams): Promise<void>;
88
+ /**
89
+ * Redirect this channel to a different location
90
+ */
91
+ redirect(endpoint: string): Promise<void>;
92
+ /**
93
+ * Indicate ringing to this channel
94
+ */
95
+ ring(): Promise<void>;
96
+ /**
97
+ * Stop indicating ringing to this channel
98
+ */
99
+ ringStop(): Promise<void>;
100
+ /**
101
+ * Send DTMF to this channel
102
+ */
103
+ sendDTMF(params: DTMFParams): Promise<void>;
104
+ /**
105
+ * Mute this channel
106
+ */
107
+ mute(direction?: 'both' | 'in' | 'out'): Promise<void>;
108
+ /**
109
+ * Unmute this channel
110
+ */
111
+ unmute(direction?: 'both' | 'in' | 'out'): Promise<void>;
112
+ /**
113
+ * Put this channel on hold
114
+ */
115
+ hold(): Promise<void>;
116
+ /**
117
+ * Remove this channel from hold
118
+ */
119
+ unhold(): Promise<void>;
120
+ /**
121
+ * Start music on hold for this channel
122
+ */
123
+ startMoh(mohClass?: string): Promise<void>;
124
+ /**
125
+ * Stop music on hold for this channel
126
+ */
127
+ stopMoh(): Promise<void>;
128
+ /**
129
+ * Start silence on this channel
130
+ */
131
+ startSilence(): Promise<void>;
132
+ /**
133
+ * Stop silence on this channel
134
+ */
135
+ stopSilence(): Promise<void>;
136
+ /**
137
+ * Play media to this channel
138
+ */
139
+ play(params: PlayParams): Promise<PlaybackInstance>;
140
+ /**
141
+ * Record audio from this channel
142
+ */
143
+ record(params: RecordParams): Promise<LiveRecordingInstance>;
144
+ /**
145
+ * Get a channel variable
146
+ */
147
+ getVariable(variable: string): Promise<string>;
148
+ /**
149
+ * Set a channel variable
150
+ */
151
+ setVariable(variable: string, value?: string): Promise<void>;
152
+ /**
153
+ * Start snooping on this channel
154
+ */
155
+ snoop(params: SnoopParams): Promise<ChannelInstance>;
156
+ /**
157
+ * Dial this channel
158
+ */
159
+ dial(params?: DialParams): Promise<void>;
160
+ /**
161
+ * Get RTP statistics for this channel
162
+ */
163
+ getRtpStatistics(): Promise<RTPstat>;
164
+ }
165
+ export {};
166
+ //# sourceMappingURL=channel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../src/models/channel.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,278 @@
1
+ /**
2
+ * Channel model and instance class
3
+ */
4
+ /**
5
+ * Channel instance with bound operations and event handling
6
+ */
7
+ export class ChannelInstance {
8
+ // Channel properties
9
+ id;
10
+ name = '';
11
+ state = 'Down';
12
+ caller = { name: '', number: '' };
13
+ connected = { name: '', number: '' };
14
+ accountcode = '';
15
+ dialplan = { context: '', exten: '', priority: 1 };
16
+ creationtime = '';
17
+ language = 'en';
18
+ channelvars;
19
+ protocol_id;
20
+ client;
21
+ listeners = new Map();
22
+ constructor(client, id, data) {
23
+ this.client = client;
24
+ this.id = id || crypto.randomUUID();
25
+ if (data) {
26
+ this.updateData(data);
27
+ }
28
+ // Register this instance for events
29
+ this.client._registerChannelInstance(this.id, this);
30
+ }
31
+ /**
32
+ * Update channel data from an event or API response
33
+ */
34
+ updateData(data) {
35
+ if (data.id !== undefined)
36
+ this.id = data.id;
37
+ if (data.name !== undefined)
38
+ this.name = data.name;
39
+ if (data.state !== undefined)
40
+ this.state = data.state;
41
+ if (data.caller !== undefined)
42
+ this.caller = data.caller;
43
+ if (data.connected !== undefined)
44
+ this.connected = data.connected;
45
+ if (data.accountcode !== undefined)
46
+ this.accountcode = data.accountcode;
47
+ if (data.dialplan !== undefined)
48
+ this.dialplan = data.dialplan;
49
+ if (data.creationtime !== undefined)
50
+ this.creationtime = data.creationtime;
51
+ if (data.language !== undefined)
52
+ this.language = data.language;
53
+ if (data.channelvars !== undefined)
54
+ this.channelvars = data.channelvars;
55
+ if (data.protocol_id !== undefined)
56
+ this.protocol_id = data.protocol_id;
57
+ }
58
+ /**
59
+ * Add an event listener
60
+ */
61
+ on(event, listener) {
62
+ let eventListeners = this.listeners.get(event);
63
+ if (!eventListeners) {
64
+ eventListeners = new Set();
65
+ this.listeners.set(event, eventListeners);
66
+ }
67
+ eventListeners.add(listener);
68
+ return this;
69
+ }
70
+ /**
71
+ * Add a one-time event listener
72
+ */
73
+ once(event, listener) {
74
+ const wrappedListener = ((...args) => {
75
+ this.off(event, wrappedListener);
76
+ listener(...args);
77
+ });
78
+ return this.on(event, wrappedListener);
79
+ }
80
+ /**
81
+ * Remove an event listener
82
+ */
83
+ off(event, listener) {
84
+ const eventListeners = this.listeners.get(event);
85
+ if (eventListeners) {
86
+ eventListeners.delete(listener);
87
+ }
88
+ return this;
89
+ }
90
+ /**
91
+ * Emit an event to listeners
92
+ * @internal
93
+ */
94
+ _emit(event, data) {
95
+ const eventListeners = this.listeners.get(event);
96
+ if (eventListeners) {
97
+ for (const listener of eventListeners) {
98
+ try {
99
+ listener(data, this);
100
+ }
101
+ catch (error) {
102
+ console.error(`Error in channel event listener for ${event}:`, error);
103
+ }
104
+ }
105
+ }
106
+ }
107
+ /**
108
+ * Remove all event listeners and unregister from client
109
+ */
110
+ removeAllListeners() {
111
+ this.listeners.clear();
112
+ this.client._unregisterChannelInstance(this.id);
113
+ return this;
114
+ }
115
+ // ============================================================================
116
+ // Bound Channel Operations
117
+ // ============================================================================
118
+ /**
119
+ * Originate a call to this channel
120
+ */
121
+ async originate(params) {
122
+ const result = await this.client.channels.originateWithId(this.id, params);
123
+ this.updateData(result);
124
+ }
125
+ /**
126
+ * Answer this channel
127
+ */
128
+ async answer() {
129
+ return this.client.channels.answer(this.id);
130
+ }
131
+ /**
132
+ * Hangup this channel
133
+ */
134
+ async hangup(params) {
135
+ return this.client.channels.hangup(this.id, params);
136
+ }
137
+ /**
138
+ * Continue this channel in the dialplan
139
+ */
140
+ async continueInDialplan(params) {
141
+ return this.client.channels.continueInDialplan(this.id, params);
142
+ }
143
+ /**
144
+ * Move this channel to a different Stasis application
145
+ */
146
+ async move(params) {
147
+ return this.client.channels.move(this.id, params);
148
+ }
149
+ /**
150
+ * Redirect this channel to a different location
151
+ */
152
+ async redirect(endpoint) {
153
+ return this.client.channels.redirect(this.id, endpoint);
154
+ }
155
+ /**
156
+ * Indicate ringing to this channel
157
+ */
158
+ async ring() {
159
+ return this.client.channels.ring(this.id);
160
+ }
161
+ /**
162
+ * Stop indicating ringing to this channel
163
+ */
164
+ async ringStop() {
165
+ return this.client.channels.ringStop(this.id);
166
+ }
167
+ /**
168
+ * Send DTMF to this channel
169
+ */
170
+ async sendDTMF(params) {
171
+ return this.client.channels.sendDTMF(this.id, params);
172
+ }
173
+ /**
174
+ * Mute this channel
175
+ */
176
+ async mute(direction = 'both') {
177
+ return this.client.channels.mute(this.id, direction);
178
+ }
179
+ /**
180
+ * Unmute this channel
181
+ */
182
+ async unmute(direction = 'both') {
183
+ return this.client.channels.unmute(this.id, direction);
184
+ }
185
+ /**
186
+ * Put this channel on hold
187
+ */
188
+ async hold() {
189
+ return this.client.channels.hold(this.id);
190
+ }
191
+ /**
192
+ * Remove this channel from hold
193
+ */
194
+ async unhold() {
195
+ return this.client.channels.unhold(this.id);
196
+ }
197
+ /**
198
+ * Start music on hold for this channel
199
+ */
200
+ async startMoh(mohClass) {
201
+ return this.client.channels.startMoh(this.id, mohClass);
202
+ }
203
+ /**
204
+ * Stop music on hold for this channel
205
+ */
206
+ async stopMoh() {
207
+ return this.client.channels.stopMoh(this.id);
208
+ }
209
+ /**
210
+ * Start silence on this channel
211
+ */
212
+ async startSilence() {
213
+ return this.client.channels.startSilence(this.id);
214
+ }
215
+ /**
216
+ * Stop silence on this channel
217
+ */
218
+ async stopSilence() {
219
+ return this.client.channels.stopSilence(this.id);
220
+ }
221
+ /**
222
+ * Play media to this channel
223
+ */
224
+ async play(params) {
225
+ // Create playback instance first to register for events
226
+ const playback = this.client.Playback(params.playbackId);
227
+ await this.client.channels.play(this.id, {
228
+ ...params,
229
+ playbackId: playback.id,
230
+ });
231
+ return playback;
232
+ }
233
+ /**
234
+ * Record audio from this channel
235
+ */
236
+ async record(params) {
237
+ // Create recording instance first to register for events
238
+ const recording = this.client.LiveRecording(params.name);
239
+ await this.client.channels.record(this.id, params);
240
+ return recording;
241
+ }
242
+ /**
243
+ * Get a channel variable
244
+ */
245
+ async getVariable(variable) {
246
+ return this.client.channels.getVariable(this.id, variable);
247
+ }
248
+ /**
249
+ * Set a channel variable
250
+ */
251
+ async setVariable(variable, value) {
252
+ return this.client.channels.setVariable(this.id, variable, value);
253
+ }
254
+ /**
255
+ * Start snooping on this channel
256
+ */
257
+ async snoop(params) {
258
+ const snoopChannel = this.client.Channel(params.snoopId);
259
+ await this.client.channels.snoop(this.id, {
260
+ ...params,
261
+ snoopId: snoopChannel.id,
262
+ });
263
+ return snoopChannel;
264
+ }
265
+ /**
266
+ * Dial this channel
267
+ */
268
+ async dial(params) {
269
+ return this.client.channels.dial(this.id, params);
270
+ }
271
+ /**
272
+ * Get RTP statistics for this channel
273
+ */
274
+ async getRtpStatistics() {
275
+ return this.client.channels.getRtpStatistics(this.id);
276
+ }
277
+ }
278
+ //# sourceMappingURL=channel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel.js","sourceRoot":"","sources":["../../src/models/channel.ts"],"names":[],"mappings":"AAAA;;GAEG;AAyDH;;GAEG;AACH,MAAM,OAAO,eAAe;IAC1B,qBAAqB;IACrB,EAAE,CAAS;IACX,IAAI,GAAW,EAAE,CAAC;IAClB,KAAK,GAAiB,MAAM,CAAC;IAC7B,MAAM,GAAa,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAC5C,SAAS,GAAa,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAC/C,WAAW,GAAW,EAAE,CAAC;IACzB,QAAQ,GAAgB,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IAChE,YAAY,GAAW,EAAE,CAAC;IAC1B,QAAQ,GAAW,IAAI,CAAC;IACxB,WAAW,CAA0B;IACrC,WAAW,CAAU;IAEJ,MAAM,CAAY;IAClB,SAAS,GAAmD,IAAI,GAAG,EAAE,CAAC;IAEvF,YAAY,MAAiB,EAAE,EAAW,EAAE,IAAuB;QACjE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QAEpC,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;QAED,oCAAoC;QACpC,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,IAAsB;QAC/B,IAAI,IAAI,CAAC,EAAE,KAAK,SAAS;YAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QAC7C,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;YAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACnD,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;YAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACtD,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;YAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACzD,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;YAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAClE,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;YAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACxE,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;YAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/D,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS;YAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC3E,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;YAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/D,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;YAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACxE,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;YAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IAC1E,CAAC;IAED;;OAEG;IACH,EAAE,CACA,KAAQ,EACR,QAAkC;QAElC,IAAI,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,cAAc,GAAG,IAAI,GAAG,EAAE,CAAC;YAC3B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;QAC5C,CAAC;QACD,cAAc,CAAC,GAAG,CAAC,QAAwC,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,IAAI,CACF,KAAQ,EACR,QAAkC;QAElC,MAAM,eAAe,GAAG,CAAC,CAAC,GAAG,IAAe,EAAE,EAAE;YAC9C,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,eAA2C,CAAC,CAAC;YAC5D,QAAyC,CAAC,GAAG,IAAI,CAAC,CAAC;QACtD,CAAC,CAA6B,CAAC;QAE/B,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,GAAG,CACD,KAAQ,EACR,QAAkC;QAElC,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,cAAc,EAAE,CAAC;YACnB,cAAc,CAAC,MAAM,CAAC,QAAwC,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,KAAK,CAA6B,KAAQ,EAAE,IAAoB;QAC9D,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,cAAc,EAAE,CAAC;YACnB,KAAK,MAAM,QAAQ,IAAI,cAAc,EAAE,CAAC;gBACtC,IAAI,CAAC;oBACH,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACvB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,KAAK,CAAC,uCAAuC,KAAK,GAAG,EAAE,KAAK,CAAC,CAAC;gBACxE,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,kBAAkB;QAChB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,MAAM,CAAC,0BAA0B,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,+EAA+E;IAC/E,2BAA2B;IAC3B,+EAA+E;IAE/E;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,MAA0C;QACxD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAC3E,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,MAAqB;QAChC,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB,CAAC,MAAuB;QAC9C,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAClE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,MAAkB;QAC3B,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,QAAgB;QAC7B,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC1D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,MAAkB;QAC/B,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,YAAmC,MAAM;QAClD,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IACvD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,YAAmC,MAAM;QACpD,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,QAAiB;QAC9B,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC1D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,MAAkB;QAC3B,wDAAwD;QACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACzD,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;YACvC,GAAG,MAAM;YACT,UAAU,EAAE,QAAQ,CAAC,EAAE;SACxB,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,MAAoB;QAC/B,yDAAyD;QACzD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QACnD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,QAAgB;QAChC,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC7D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,QAAgB,EAAE,KAAc;QAChD,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IACpE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,CAAC,MAAmB;QAC7B,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACzD,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE;YACxC,GAAG,MAAM;YACT,OAAO,EAAE,YAAY,CAAC,EAAE;SACzB,CAAC,CAAC;QACH,OAAO,YAAY,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,MAAmB;QAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxD,CAAC;CACF"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Model exports
3
+ */
4
+ export { ChannelInstance } from './channel.js';
5
+ export { BridgeInstance } from './bridge.js';
6
+ export { PlaybackInstance } from './playback.js';
7
+ export { LiveRecordingInstance, StoredRecordingInstance } from './recording.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Model exports
3
+ */
4
+ export { ChannelInstance } from './channel.js';
5
+ export { BridgeInstance } from './bridge.js';
6
+ export { PlaybackInstance } from './playback.js';
7
+ export { LiveRecordingInstance, StoredRecordingInstance } from './recording.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC"}