@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,94 @@
1
+ /**
2
+ * Asterisk system API resource
3
+ */
4
+ import { BaseResource } from './base.js';
5
+ /**
6
+ * Asterisk API - Manage Asterisk system resources
7
+ */
8
+ export class AsteriskResource extends BaseResource {
9
+ constructor(http, version) {
10
+ super(http, version);
11
+ }
12
+ /**
13
+ * Get Asterisk system information
14
+ */
15
+ async getInfo(only) {
16
+ return this.http.get('/asterisk/info', {
17
+ only: only?.join(','),
18
+ });
19
+ }
20
+ /**
21
+ * List Asterisk modules
22
+ */
23
+ async listModules() {
24
+ return this.http.get('/asterisk/modules');
25
+ }
26
+ /**
27
+ * Get a specific Asterisk module
28
+ */
29
+ async getModule(moduleName) {
30
+ return this.http.get(`/asterisk/modules/${encodeURIComponent(moduleName)}`);
31
+ }
32
+ /**
33
+ * Load an Asterisk module
34
+ */
35
+ async loadModule(moduleName) {
36
+ return this.http.post(`/asterisk/modules/${encodeURIComponent(moduleName)}`);
37
+ }
38
+ /**
39
+ * Unload an Asterisk module
40
+ */
41
+ async unloadModule(moduleName) {
42
+ return this.http.delete(`/asterisk/modules/${encodeURIComponent(moduleName)}`);
43
+ }
44
+ /**
45
+ * Reload an Asterisk module
46
+ */
47
+ async reloadModule(moduleName) {
48
+ return this.http.put(`/asterisk/modules/${encodeURIComponent(moduleName)}`);
49
+ }
50
+ /**
51
+ * List logging channels
52
+ */
53
+ async listLogChannels() {
54
+ return this.http.get('/asterisk/logging');
55
+ }
56
+ /**
57
+ * Add a logging channel
58
+ */
59
+ async addLogChannel(logChannelName, configuration) {
60
+ return this.http.post(`/asterisk/logging/${encodeURIComponent(logChannelName)}`, undefined, { configuration });
61
+ }
62
+ /**
63
+ * Delete a logging channel
64
+ */
65
+ async deleteLogChannel(logChannelName) {
66
+ return this.http.delete(`/asterisk/logging/${encodeURIComponent(logChannelName)}`);
67
+ }
68
+ /**
69
+ * Rotate a log channel
70
+ */
71
+ async rotateLogChannel(logChannelName) {
72
+ return this.http.put(`/asterisk/logging/${encodeURIComponent(logChannelName)}/rotate`);
73
+ }
74
+ /**
75
+ * Get a global variable
76
+ */
77
+ async getGlobalVariable(variable) {
78
+ const result = await this.http.get('/asterisk/variable', { variable });
79
+ return result.value;
80
+ }
81
+ /**
82
+ * Set a global variable
83
+ */
84
+ async setGlobalVariable(variable, value) {
85
+ return this.http.post('/asterisk/variable', undefined, { variable, value });
86
+ }
87
+ /**
88
+ * Ping Asterisk
89
+ */
90
+ async ping() {
91
+ return this.http.get('/asterisk/ping');
92
+ }
93
+ }
94
+ //# sourceMappingURL=asterisk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asterisk.js","sourceRoot":"","sources":["../../src/resources/asterisk.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAOzC;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,YAAY;IAChD,YAAY,IAAoB,EAAE,OAAsB;QACtD,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,IAA2B;QACvC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAe,gBAAgB,EAAE;YACnD,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;SACtB,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAW,mBAAmB,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,UAAkB;QAChC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAS,qBAAqB,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACtF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,UAAkB;QACjC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAO,qBAAqB,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACrF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,UAAkB;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAO,qBAAqB,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACvF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,UAAkB;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAO,qBAAqB,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACpF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe;QACnB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAe,mBAAmB,CAAC,CAAC;IAC1D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,cAAsB,EAAE,aAAqB;QAC/D,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,qBAAqB,kBAAkB,CAAC,cAAc,CAAC,EAAE,EACzD,SAAS,EACT,EAAE,aAAa,EAAE,CAClB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,cAAsB;QAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAO,qBAAqB,kBAAkB,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IAC3F,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,cAAsB;QAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAO,qBAAqB,kBAAkB,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IAC/F,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CAAC,QAAgB;QACtC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAW,oBAAoB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QACjF,OAAO,MAAM,CAAC,KAAK,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CAAC,QAAgB,EAAE,KAAc;QACtD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAO,oBAAoB,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IACpF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACzC,CAAC;CACF"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Base resource class for API resources
3
+ */
4
+ import type { HttpConnection } from '../connection.js';
5
+ import type { VersionCompat } from '../version.js';
6
+ /**
7
+ * Base class for ARI API resources
8
+ */
9
+ export declare abstract class BaseResource {
10
+ protected readonly http: HttpConnection;
11
+ protected readonly version: VersionCompat;
12
+ constructor(http: HttpConnection, version: VersionCompat);
13
+ /**
14
+ * Check if a method is available for the current Asterisk version
15
+ */
16
+ protected validateVersion(method: string): void;
17
+ }
18
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/resources/base.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD;;GAEG;AACH,8BAAsB,YAAY;IAChC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IACxC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;gBAE9B,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa;IAKxD;;OAEG;IACH,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;CAGhD"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Base resource class for API resources
3
+ */
4
+ /**
5
+ * Base class for ARI API resources
6
+ */
7
+ export class BaseResource {
8
+ http;
9
+ version;
10
+ constructor(http, version) {
11
+ this.http = http;
12
+ this.version = version;
13
+ }
14
+ /**
15
+ * Check if a method is available for the current Asterisk version
16
+ */
17
+ validateVersion(method) {
18
+ this.version.validateMethod(method);
19
+ }
20
+ }
21
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/resources/base.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH;;GAEG;AACH,MAAM,OAAgB,YAAY;IACb,IAAI,CAAiB;IACrB,OAAO,CAAgB;IAE1C,YAAY,IAAoB,EAAE,OAAsB;QACtD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;OAEG;IACO,eAAe,CAAC,MAAc;QACtC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;CACF"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Bridges API resource
3
+ */
4
+ import { BaseResource } from './base.js';
5
+ import type { HttpConnection } from '../connection.js';
6
+ import type { VersionCompat } from '../version.js';
7
+ import type { Bridge, CreateBridgeParams, AddChannelParams, RemoveChannelParams, PlayBridgeParams, RecordBridgeParams, Playback, LiveRecording } from '../types/api.js';
8
+ /**
9
+ * Bridges API - Manage bridges (conference rooms, etc.)
10
+ */
11
+ export declare class BridgesResource extends BaseResource {
12
+ constructor(http: HttpConnection, version: VersionCompat);
13
+ /**
14
+ * List all active bridges
15
+ */
16
+ list(): Promise<Bridge[]>;
17
+ /**
18
+ * Get a bridge's details
19
+ */
20
+ get(bridgeId: string): Promise<Bridge>;
21
+ /**
22
+ * Create a new bridge
23
+ */
24
+ create(params?: CreateBridgeParams): Promise<Bridge>;
25
+ /**
26
+ * Create a bridge or update an existing bridge
27
+ */
28
+ createOrUpdate(bridgeId: string, params?: Omit<CreateBridgeParams, 'bridgeId'>): Promise<Bridge>;
29
+ /**
30
+ * Destroy a bridge
31
+ */
32
+ destroy(bridgeId: string): Promise<void>;
33
+ /**
34
+ * Add channel(s) to a bridge
35
+ */
36
+ addChannel(bridgeId: string, params: AddChannelParams): Promise<void>;
37
+ /**
38
+ * Remove channel(s) from a bridge
39
+ */
40
+ removeChannel(bridgeId: string, params: RemoveChannelParams): Promise<void>;
41
+ /**
42
+ * Set the video source for a bridge
43
+ */
44
+ setVideoSource(bridgeId: string, channelId: string): Promise<void>;
45
+ /**
46
+ * Clear the video source for a bridge
47
+ */
48
+ clearVideoSource(bridgeId: string): Promise<void>;
49
+ /**
50
+ * Start music on hold for a bridge
51
+ */
52
+ startMoh(bridgeId: string, mohClass?: string): Promise<void>;
53
+ /**
54
+ * Stop music on hold for a bridge
55
+ */
56
+ stopMoh(bridgeId: string): Promise<void>;
57
+ /**
58
+ * Play media to a bridge
59
+ */
60
+ play(bridgeId: string, params: PlayBridgeParams): Promise<Playback>;
61
+ /**
62
+ * Record audio from a bridge
63
+ */
64
+ record(bridgeId: string, params: RecordBridgeParams): Promise<LiveRecording>;
65
+ }
66
+ //# sourceMappingURL=bridges.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridges.d.ts","sourceRoot":"","sources":["../../src/resources/bridges.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EACV,MAAM,EACN,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,QAAQ,EACR,aAAa,EACd,MAAM,iBAAiB,CAAC;AAEzB;;GAEG;AACH,qBAAa,eAAgB,SAAQ,YAAY;gBACnC,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa;IAIxD;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAI/B;;OAEG;IACG,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI5C;;OAEG;IACG,MAAM,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC;IAc1D;;OAEG;IACG,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAQtG;;OAEG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C;;OAEG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAW3E;;OAEG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAWjF;;OAEG;IACG,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMxE;;OAEG;IACG,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvD;;OAEG;IACG,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQlE;;OAEG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C;;OAEG;IACG,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAwBzE;;OAEG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC;CAOnF"}
@@ -0,0 +1,109 @@
1
+ /**
2
+ * Bridges API resource
3
+ */
4
+ import { BaseResource } from './base.js';
5
+ import { toQueryParams } from '../connection.js';
6
+ /**
7
+ * Bridges API - Manage bridges (conference rooms, etc.)
8
+ */
9
+ export class BridgesResource extends BaseResource {
10
+ constructor(http, version) {
11
+ super(http, version);
12
+ }
13
+ /**
14
+ * List all active bridges
15
+ */
16
+ async list() {
17
+ return this.http.get('/bridges');
18
+ }
19
+ /**
20
+ * Get a bridge's details
21
+ */
22
+ async get(bridgeId) {
23
+ return this.http.get(`/bridges/${encodeURIComponent(bridgeId)}`);
24
+ }
25
+ /**
26
+ * Create a new bridge
27
+ */
28
+ async create(params) {
29
+ const { bridgeId, ...rest } = params || {};
30
+ if (bridgeId) {
31
+ return this.http.post(`/bridges/${encodeURIComponent(bridgeId)}`, undefined, rest);
32
+ }
33
+ return this.http.post('/bridges', undefined, rest);
34
+ }
35
+ /**
36
+ * Create a bridge or update an existing bridge
37
+ */
38
+ async createOrUpdate(bridgeId, params) {
39
+ return this.http.post(`/bridges/${encodeURIComponent(bridgeId)}`, undefined, params);
40
+ }
41
+ /**
42
+ * Destroy a bridge
43
+ */
44
+ async destroy(bridgeId) {
45
+ return this.http.delete(`/bridges/${encodeURIComponent(bridgeId)}`);
46
+ }
47
+ /**
48
+ * Add channel(s) to a bridge
49
+ */
50
+ async addChannel(bridgeId, params) {
51
+ const { channel, ...rest } = params;
52
+ const channelArray = Array.isArray(channel) ? channel : [channel];
53
+ return this.http.post(`/bridges/${encodeURIComponent(bridgeId)}/addChannel`, undefined, { channel: channelArray, ...rest });
54
+ }
55
+ /**
56
+ * Remove channel(s) from a bridge
57
+ */
58
+ async removeChannel(bridgeId, params) {
59
+ const { channel } = params;
60
+ const channelArray = Array.isArray(channel) ? channel : [channel];
61
+ return this.http.post(`/bridges/${encodeURIComponent(bridgeId)}/removeChannel`, undefined, { channel: channelArray });
62
+ }
63
+ /**
64
+ * Set the video source for a bridge
65
+ */
66
+ async setVideoSource(bridgeId, channelId) {
67
+ return this.http.post(`/bridges/${encodeURIComponent(bridgeId)}/videoSource/${encodeURIComponent(channelId)}`);
68
+ }
69
+ /**
70
+ * Clear the video source for a bridge
71
+ */
72
+ async clearVideoSource(bridgeId) {
73
+ return this.http.delete(`/bridges/${encodeURIComponent(bridgeId)}/videoSource`);
74
+ }
75
+ /**
76
+ * Start music on hold for a bridge
77
+ */
78
+ async startMoh(bridgeId, mohClass) {
79
+ return this.http.post(`/bridges/${encodeURIComponent(bridgeId)}/moh`, undefined, mohClass ? { mohClass } : undefined);
80
+ }
81
+ /**
82
+ * Stop music on hold for a bridge
83
+ */
84
+ async stopMoh(bridgeId) {
85
+ return this.http.delete(`/bridges/${encodeURIComponent(bridgeId)}/moh`);
86
+ }
87
+ /**
88
+ * Play media to a bridge
89
+ */
90
+ async play(bridgeId, params) {
91
+ const { media, playbackId, ...rest } = params;
92
+ const mediaArray = Array.isArray(media) ? media : [media];
93
+ const query = {
94
+ ...rest,
95
+ media: mediaArray,
96
+ };
97
+ if (playbackId) {
98
+ return this.http.post(`/bridges/${encodeURIComponent(bridgeId)}/play/${encodeURIComponent(playbackId)}`, undefined, query);
99
+ }
100
+ return this.http.post(`/bridges/${encodeURIComponent(bridgeId)}/play`, undefined, query);
101
+ }
102
+ /**
103
+ * Record audio from a bridge
104
+ */
105
+ async record(bridgeId, params) {
106
+ return this.http.post(`/bridges/${encodeURIComponent(bridgeId)}/record`, undefined, toQueryParams(params));
107
+ }
108
+ }
109
+ //# sourceMappingURL=bridges.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridges.js","sourceRoot":"","sources":["../../src/resources/bridges.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,130 @@
1
+ /**
2
+ * Channels API resource
3
+ */
4
+ import { BaseResource } from './base.js';
5
+ import type { HttpConnection } from '../connection.js';
6
+ import type { VersionCompat } from '../version.js';
7
+ import type { Channel, OriginateParams, CreateChannelParams, HangupParams, ContinueParams, MoveParams, DTMFParams, PlayParams, RecordParams, SnoopParams, DialParams, ExternalMediaParams, Playback, LiveRecording, RTPstat } from '../types/api.js';
8
+ /**
9
+ * Channels API - Manage calls and channels
10
+ */
11
+ export declare class ChannelsResource extends BaseResource {
12
+ constructor(http: HttpConnection, version: VersionCompat);
13
+ /**
14
+ * List all active channels
15
+ */
16
+ list(): Promise<Channel[]>;
17
+ /**
18
+ * Get a channel's details
19
+ */
20
+ get(channelId: string): Promise<Channel>;
21
+ /**
22
+ * Create a new channel (dial out)
23
+ */
24
+ originate(params: OriginateParams): Promise<Channel>;
25
+ /**
26
+ * Create a new channel with a specific ID
27
+ */
28
+ originateWithId(channelId: string, params: OriginateParams): Promise<Channel>;
29
+ /**
30
+ * Create a channel (without dialing)
31
+ */
32
+ create(params: CreateChannelParams): Promise<Channel>;
33
+ /**
34
+ * Hangup a channel
35
+ */
36
+ hangup(channelId: string, params?: HangupParams): Promise<void>;
37
+ /**
38
+ * Continue the channel in the dialplan
39
+ */
40
+ continueInDialplan(channelId: string, params?: ContinueParams): Promise<void>;
41
+ /**
42
+ * Move the channel to a different Stasis application
43
+ */
44
+ move(channelId: string, params: MoveParams): Promise<void>;
45
+ /**
46
+ * Redirect the channel to a different location
47
+ */
48
+ redirect(channelId: string, endpoint: string): Promise<void>;
49
+ /**
50
+ * Answer a channel
51
+ */
52
+ answer(channelId: string): Promise<void>;
53
+ /**
54
+ * Indicate ringing to a channel
55
+ */
56
+ ring(channelId: string): Promise<void>;
57
+ /**
58
+ * Stop indicating ringing to a channel
59
+ */
60
+ ringStop(channelId: string): Promise<void>;
61
+ /**
62
+ * Send DTMF to a channel
63
+ */
64
+ sendDTMF(channelId: string, params: DTMFParams): Promise<void>;
65
+ /**
66
+ * Mute a channel
67
+ */
68
+ mute(channelId: string, direction?: 'both' | 'in' | 'out'): Promise<void>;
69
+ /**
70
+ * Unmute a channel
71
+ */
72
+ unmute(channelId: string, direction?: 'both' | 'in' | 'out'): Promise<void>;
73
+ /**
74
+ * Put a channel on hold
75
+ */
76
+ hold(channelId: string): Promise<void>;
77
+ /**
78
+ * Remove a channel from hold
79
+ */
80
+ unhold(channelId: string): Promise<void>;
81
+ /**
82
+ * Start music on hold for a channel
83
+ */
84
+ startMoh(channelId: string, mohClass?: string): Promise<void>;
85
+ /**
86
+ * Stop music on hold for a channel
87
+ */
88
+ stopMoh(channelId: string): Promise<void>;
89
+ /**
90
+ * Start silence on a channel
91
+ */
92
+ startSilence(channelId: string): Promise<void>;
93
+ /**
94
+ * Stop silence on a channel
95
+ */
96
+ stopSilence(channelId: string): Promise<void>;
97
+ /**
98
+ * Play media to a channel
99
+ */
100
+ play(channelId: string, params: PlayParams): Promise<Playback>;
101
+ /**
102
+ * Record audio from a channel
103
+ */
104
+ record(channelId: string, params: RecordParams): Promise<LiveRecording>;
105
+ /**
106
+ * Get a channel variable
107
+ */
108
+ getVariable(channelId: string, variable: string): Promise<string>;
109
+ /**
110
+ * Set a channel variable
111
+ */
112
+ setVariable(channelId: string, variable: string, value?: string): Promise<void>;
113
+ /**
114
+ * Start snooping on a channel
115
+ */
116
+ snoop(channelId: string, params: SnoopParams): Promise<Channel>;
117
+ /**
118
+ * Dial a created channel
119
+ */
120
+ dial(channelId: string, params?: DialParams): Promise<void>;
121
+ /**
122
+ * Get RTP statistics for a channel
123
+ */
124
+ getRtpStatistics(channelId: string): Promise<RTPstat>;
125
+ /**
126
+ * Create an external media channel
127
+ */
128
+ externalMedia(params: ExternalMediaParams): Promise<Channel>;
129
+ }
130
+ //# sourceMappingURL=channels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channels.d.ts","sourceRoot":"","sources":["../../src/resources/channels.ts"],"names":[],"mappings":"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"}