@ipcom/asterisk-ari 0.0.28 → 0.0.29
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.
- package/dist/cjs/index.cjs +80 -51
- package/dist/cjs/index.cjs.map +2 -2
- package/dist/esm/index.js +80 -51
- package/dist/esm/index.js.map +2 -2
- package/dist/types/ari-client/resources/channels.d.ts +18 -2
- package/dist/types/ari-client/resources/channels.d.ts.map +1 -1
- package/dist/types/ari-client/resources/playbacks.d.ts +3 -2
- package/dist/types/ari-client/resources/playbacks.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/cjs/index.cjs
CHANGED
|
@@ -863,9 +863,10 @@ function toQueryParams2(options) {
|
|
|
863
863
|
).toString();
|
|
864
864
|
}
|
|
865
865
|
var ChannelInstance = class extends import_events.EventEmitter {
|
|
866
|
-
constructor(client, channelId) {
|
|
866
|
+
constructor(client, baseClient, channelId) {
|
|
867
867
|
super();
|
|
868
868
|
this.client = client;
|
|
869
|
+
this.baseClient = baseClient;
|
|
869
870
|
this.channelId = channelId;
|
|
870
871
|
}
|
|
871
872
|
channelData = null;
|
|
@@ -876,7 +877,7 @@ var ChannelInstance = class extends import_events.EventEmitter {
|
|
|
876
877
|
if (this.channelData) {
|
|
877
878
|
throw new Error("O canal j\xE1 foi criado.");
|
|
878
879
|
}
|
|
879
|
-
const channel = await this.
|
|
880
|
+
const channel = await this.baseClient.post("/channels", data);
|
|
880
881
|
this.channelData = channel;
|
|
881
882
|
this.emit("ChannelCreated", channel, this);
|
|
882
883
|
return channel;
|
|
@@ -889,7 +890,7 @@ var ChannelInstance = class extends import_events.EventEmitter {
|
|
|
889
890
|
throw new Error("Nenhum canal est\xE1 associado a esta inst\xE2ncia.");
|
|
890
891
|
}
|
|
891
892
|
const id = this.channelId || this.channelData?.id;
|
|
892
|
-
const details = await this.
|
|
893
|
+
const details = await this.baseClient.get(`/channels/${id}`);
|
|
893
894
|
this.channelData = details;
|
|
894
895
|
return details;
|
|
895
896
|
}
|
|
@@ -900,9 +901,27 @@ var ChannelInstance = class extends import_events.EventEmitter {
|
|
|
900
901
|
if (!this.channelData) {
|
|
901
902
|
throw new Error("O canal ainda n\xE3o foi criado.");
|
|
902
903
|
}
|
|
903
|
-
await this.
|
|
904
|
+
await this.baseClient.delete(`/channels/${this.channelData.id}`);
|
|
904
905
|
this.emit("ChannelHungUp", this.channelData);
|
|
905
906
|
}
|
|
907
|
+
/**
|
|
908
|
+
* Toca um arquivo de mídia no canal.
|
|
909
|
+
*
|
|
910
|
+
* @param options - Opções para o playback, incluindo mídia e idioma.
|
|
911
|
+
* @param playback - (Opcional) Uma instância de `PlaybackInstance` para gerenciar o playback. Se não fornecido, será criada uma nova.
|
|
912
|
+
* @returns Uma instância de `PlaybackInstance` associada ao playback.
|
|
913
|
+
*/
|
|
914
|
+
async play(options, playback) {
|
|
915
|
+
if (!playback) {
|
|
916
|
+
playback = this.client.Playback();
|
|
917
|
+
}
|
|
918
|
+
await this.baseClient.post(
|
|
919
|
+
`/channels/${this.channelData?.id}/play/${playback.id}`,
|
|
920
|
+
// Agora o ID é garantido
|
|
921
|
+
options
|
|
922
|
+
);
|
|
923
|
+
return playback;
|
|
924
|
+
}
|
|
906
925
|
/**
|
|
907
926
|
* Adiciona um listener para eventos de canal.
|
|
908
927
|
*/
|
|
@@ -926,21 +945,23 @@ var ChannelInstance = class extends import_events.EventEmitter {
|
|
|
926
945
|
}
|
|
927
946
|
};
|
|
928
947
|
var Channels = class extends import_events.EventEmitter {
|
|
929
|
-
constructor(client) {
|
|
948
|
+
constructor(baseClient, client, channelId) {
|
|
930
949
|
super();
|
|
950
|
+
this.baseClient = baseClient;
|
|
931
951
|
this.client = client;
|
|
952
|
+
this.channelId = channelId;
|
|
932
953
|
}
|
|
933
954
|
/**
|
|
934
955
|
* Cria uma nova instância de `ChannelInstance` sem originar um canal físico.
|
|
935
956
|
*/
|
|
936
957
|
createChannelInstance(channelId) {
|
|
937
|
-
return new ChannelInstance(this.client, channelId);
|
|
958
|
+
return new ChannelInstance(this.client, this.baseClient, channelId);
|
|
938
959
|
}
|
|
939
960
|
/**
|
|
940
961
|
* Origina um canal físico diretamente, sem uma instância de `ChannelInstance`.
|
|
941
962
|
*/
|
|
942
963
|
async originate(data) {
|
|
943
|
-
return this.
|
|
964
|
+
return this.baseClient.post("/channels", data);
|
|
944
965
|
}
|
|
945
966
|
/**
|
|
946
967
|
* Lida com eventos relacionados ao canal e os emite para listeners registrados.
|
|
@@ -976,7 +997,7 @@ var Channels = class extends import_events.EventEmitter {
|
|
|
976
997
|
* Lista todos os canais ativos.
|
|
977
998
|
*/
|
|
978
999
|
async list() {
|
|
979
|
-
const channels = await this.
|
|
1000
|
+
const channels = await this.baseClient.get("/channels");
|
|
980
1001
|
if (!Array.isArray(channels)) {
|
|
981
1002
|
throw new Error("Resposta da API /channels n\xE3o \xE9 um array.");
|
|
982
1003
|
}
|
|
@@ -986,14 +1007,14 @@ var Channels = class extends import_events.EventEmitter {
|
|
|
986
1007
|
* Obtém detalhes de um canal específico.
|
|
987
1008
|
*/
|
|
988
1009
|
async getDetails(channelId) {
|
|
989
|
-
return this.
|
|
1010
|
+
return this.baseClient.get(`/channels/${channelId}`);
|
|
990
1011
|
}
|
|
991
1012
|
/**
|
|
992
1013
|
* Reproduz mídia em um canal.
|
|
993
1014
|
*/
|
|
994
1015
|
async playMedia(channelId, media, options) {
|
|
995
1016
|
const queryParams = options ? `?${new URLSearchParams(options).toString()}` : "";
|
|
996
|
-
return this.
|
|
1017
|
+
return this.baseClient.post(
|
|
997
1018
|
`/channels/${channelId}/play${queryParams}`,
|
|
998
1019
|
{ media }
|
|
999
1020
|
);
|
|
@@ -1006,7 +1027,7 @@ var Channels = class extends import_events.EventEmitter {
|
|
|
1006
1027
|
...options?.reason_code && { reason_code: options.reason_code },
|
|
1007
1028
|
...options?.reason && { reason: options.reason }
|
|
1008
1029
|
});
|
|
1009
|
-
return this.
|
|
1030
|
+
return this.baseClient.delete(
|
|
1010
1031
|
`/channels/${channelId}?${queryParams.toString()}`
|
|
1011
1032
|
);
|
|
1012
1033
|
}
|
|
@@ -1015,41 +1036,45 @@ var Channels = class extends import_events.EventEmitter {
|
|
|
1015
1036
|
*/
|
|
1016
1037
|
async snoopChannel(channelId, options) {
|
|
1017
1038
|
const queryParams = toQueryParams2(options);
|
|
1018
|
-
return this.
|
|
1039
|
+
return this.baseClient.post(
|
|
1019
1040
|
`/channels/${channelId}/snoop?${queryParams}`
|
|
1020
1041
|
);
|
|
1021
1042
|
}
|
|
1022
1043
|
async startSilence(channelId) {
|
|
1023
|
-
return this.
|
|
1044
|
+
return this.baseClient.post(`/channels/${channelId}/silence`);
|
|
1024
1045
|
}
|
|
1025
1046
|
async stopSilence(channelId) {
|
|
1026
|
-
return this.
|
|
1047
|
+
return this.baseClient.delete(`/channels/${channelId}/silence`);
|
|
1027
1048
|
}
|
|
1028
1049
|
async getRTPStatistics(channelId) {
|
|
1029
|
-
return this.
|
|
1050
|
+
return this.baseClient.get(
|
|
1051
|
+
`/channels/${channelId}/rtp_statistics`
|
|
1052
|
+
);
|
|
1030
1053
|
}
|
|
1031
1054
|
async createExternalMedia(options) {
|
|
1032
1055
|
const queryParams = new URLSearchParams(options);
|
|
1033
|
-
return this.
|
|
1056
|
+
return this.baseClient.post(
|
|
1034
1057
|
`/channels/externalMedia?${queryParams.toString()}`
|
|
1035
1058
|
);
|
|
1036
1059
|
}
|
|
1037
1060
|
async playWithId(channelId, playbackId, media, options) {
|
|
1038
1061
|
const queryParams = options ? `?${new URLSearchParams(options).toString()}` : "";
|
|
1039
|
-
return this.
|
|
1062
|
+
return this.baseClient.post(
|
|
1040
1063
|
`/channels/${channelId}/play/${playbackId}${queryParams}`,
|
|
1041
1064
|
{ media }
|
|
1042
1065
|
);
|
|
1043
1066
|
}
|
|
1044
1067
|
async snoopChannelWithId(channelId, snoopId, options) {
|
|
1045
1068
|
const queryParams = new URLSearchParams(options);
|
|
1046
|
-
return this.
|
|
1069
|
+
return this.baseClient.post(
|
|
1047
1070
|
`/channels/${channelId}/snoop/${snoopId}?${queryParams.toString()}`
|
|
1048
1071
|
);
|
|
1049
1072
|
}
|
|
1050
1073
|
async startMohWithClass(channelId, mohClass) {
|
|
1051
1074
|
const queryParams = `mohClass=${encodeURIComponent(mohClass)}`;
|
|
1052
|
-
return this.
|
|
1075
|
+
return this.baseClient.post(
|
|
1076
|
+
`/channels/${channelId}/moh?${queryParams}`
|
|
1077
|
+
);
|
|
1053
1078
|
}
|
|
1054
1079
|
/**
|
|
1055
1080
|
* Gets the value of a channel variable or function.
|
|
@@ -1063,7 +1088,7 @@ var Channels = class extends import_events.EventEmitter {
|
|
|
1063
1088
|
if (!variable) {
|
|
1064
1089
|
throw new Error("The 'variable' parameter is required.");
|
|
1065
1090
|
}
|
|
1066
|
-
return this.
|
|
1091
|
+
return this.baseClient.get(
|
|
1067
1092
|
`/channels/${channelId}/variable?variable=${encodeURIComponent(variable)}`
|
|
1068
1093
|
);
|
|
1069
1094
|
}
|
|
@@ -1084,7 +1109,7 @@ var Channels = class extends import_events.EventEmitter {
|
|
|
1084
1109
|
variable,
|
|
1085
1110
|
...value && { value }
|
|
1086
1111
|
});
|
|
1087
|
-
await this.
|
|
1112
|
+
await this.baseClient.post(
|
|
1088
1113
|
`/channels/${channelId}/variable?${queryParams.toString()}`
|
|
1089
1114
|
);
|
|
1090
1115
|
}
|
|
@@ -1092,7 +1117,7 @@ var Channels = class extends import_events.EventEmitter {
|
|
|
1092
1117
|
* Moves the channel to another Stasis application.
|
|
1093
1118
|
*/
|
|
1094
1119
|
async moveToApplication(channelId, app, appArgs) {
|
|
1095
|
-
return this.
|
|
1120
|
+
return this.baseClient.post(`/channels/${channelId}/move`, {
|
|
1096
1121
|
app,
|
|
1097
1122
|
appArgs
|
|
1098
1123
|
});
|
|
@@ -1101,7 +1126,7 @@ var Channels = class extends import_events.EventEmitter {
|
|
|
1101
1126
|
* Continues the dialplan for a specific channel.
|
|
1102
1127
|
*/
|
|
1103
1128
|
async continueDialplan(channelId, context, extension, priority, label) {
|
|
1104
|
-
return this.
|
|
1129
|
+
return this.baseClient.post(`/channels/${channelId}/continue`, {
|
|
1105
1130
|
context,
|
|
1106
1131
|
extension,
|
|
1107
1132
|
priority,
|
|
@@ -1112,13 +1137,13 @@ var Channels = class extends import_events.EventEmitter {
|
|
|
1112
1137
|
* Stops music on hold (MOH) for a channel.
|
|
1113
1138
|
*/
|
|
1114
1139
|
async stopMusicOnHold(channelId) {
|
|
1115
|
-
return this.
|
|
1140
|
+
return this.baseClient.delete(`/channels/${channelId}/moh`);
|
|
1116
1141
|
}
|
|
1117
1142
|
/**
|
|
1118
1143
|
* Starts music on hold (MOH) for a channel.
|
|
1119
1144
|
*/
|
|
1120
1145
|
async startMusicOnHold(channelId) {
|
|
1121
|
-
return this.
|
|
1146
|
+
return this.baseClient.post(`/channels/${channelId}/moh`);
|
|
1122
1147
|
}
|
|
1123
1148
|
/**
|
|
1124
1149
|
* Starts playback of a media file on a channel.
|
|
@@ -1128,7 +1153,7 @@ var Channels = class extends import_events.EventEmitter {
|
|
|
1128
1153
|
*/
|
|
1129
1154
|
async startPlayback(channelId, media, options) {
|
|
1130
1155
|
const queryParams = options ? `?${new URLSearchParams(options).toString()}` : "";
|
|
1131
|
-
return this.
|
|
1156
|
+
return this.baseClient.post(
|
|
1132
1157
|
`/channels/${channelId}/play${queryParams}`,
|
|
1133
1158
|
{ media }
|
|
1134
1159
|
);
|
|
@@ -1137,7 +1162,7 @@ var Channels = class extends import_events.EventEmitter {
|
|
|
1137
1162
|
* Stops playback of a media file on a channel.
|
|
1138
1163
|
*/
|
|
1139
1164
|
async stopPlayback(channelId, playbackId) {
|
|
1140
|
-
return this.
|
|
1165
|
+
return this.baseClient.delete(
|
|
1141
1166
|
`/channels/${channelId}/play/${playbackId}`
|
|
1142
1167
|
);
|
|
1143
1168
|
}
|
|
@@ -1145,7 +1170,7 @@ var Channels = class extends import_events.EventEmitter {
|
|
|
1145
1170
|
* Pauses playback of a media file on a channel.
|
|
1146
1171
|
*/
|
|
1147
1172
|
async pausePlayback(channelId, playbackId) {
|
|
1148
|
-
return this.
|
|
1173
|
+
return this.baseClient.post(
|
|
1149
1174
|
`/channels/${channelId}/play/${playbackId}/pause`
|
|
1150
1175
|
);
|
|
1151
1176
|
}
|
|
@@ -1153,7 +1178,7 @@ var Channels = class extends import_events.EventEmitter {
|
|
|
1153
1178
|
* Resumes playback of a media file on a channel.
|
|
1154
1179
|
*/
|
|
1155
1180
|
async resumePlayback(channelId, playbackId) {
|
|
1156
|
-
return this.
|
|
1181
|
+
return this.baseClient.delete(
|
|
1157
1182
|
`/channels/${channelId}/play/${playbackId}/pause`
|
|
1158
1183
|
);
|
|
1159
1184
|
}
|
|
@@ -1161,7 +1186,7 @@ var Channels = class extends import_events.EventEmitter {
|
|
|
1161
1186
|
* Rewinds playback of a media file on a channel.
|
|
1162
1187
|
*/
|
|
1163
1188
|
async rewindPlayback(channelId, playbackId, skipMs) {
|
|
1164
|
-
return this.
|
|
1189
|
+
return this.baseClient.post(
|
|
1165
1190
|
`/channels/${channelId}/play/${playbackId}/rewind`,
|
|
1166
1191
|
{ skipMs }
|
|
1167
1192
|
);
|
|
@@ -1170,7 +1195,7 @@ var Channels = class extends import_events.EventEmitter {
|
|
|
1170
1195
|
* Fast-forwards playback of a media file on a channel.
|
|
1171
1196
|
*/
|
|
1172
1197
|
async fastForwardPlayback(channelId, playbackId, skipMs) {
|
|
1173
|
-
return this.
|
|
1198
|
+
return this.baseClient.post(
|
|
1174
1199
|
`/channels/${channelId}/play/${playbackId}/forward`,
|
|
1175
1200
|
{ skipMs }
|
|
1176
1201
|
);
|
|
@@ -1184,7 +1209,7 @@ var Channels = class extends import_events.EventEmitter {
|
|
|
1184
1209
|
([, value]) => value !== void 0
|
|
1185
1210
|
)
|
|
1186
1211
|
);
|
|
1187
|
-
return this.
|
|
1212
|
+
return this.baseClient.post(
|
|
1188
1213
|
`/channels/${channelId}/record?${queryParams.toString()}`
|
|
1189
1214
|
);
|
|
1190
1215
|
}
|
|
@@ -1196,7 +1221,7 @@ var Channels = class extends import_events.EventEmitter {
|
|
|
1196
1221
|
...caller && { caller },
|
|
1197
1222
|
...timeout && { timeout: timeout.toString() }
|
|
1198
1223
|
});
|
|
1199
|
-
return this.
|
|
1224
|
+
return this.baseClient.post(
|
|
1200
1225
|
`/channels/${channelId}/dial?${queryParams.toString()}`
|
|
1201
1226
|
);
|
|
1202
1227
|
}
|
|
@@ -1204,7 +1229,7 @@ var Channels = class extends import_events.EventEmitter {
|
|
|
1204
1229
|
* Redirects the channel to a different location.
|
|
1205
1230
|
*/
|
|
1206
1231
|
async redirectChannel(channelId, endpoint) {
|
|
1207
|
-
return this.
|
|
1232
|
+
return this.baseClient.post(
|
|
1208
1233
|
`/channels/${channelId}/redirect?endpoint=${encodeURIComponent(endpoint)}`
|
|
1209
1234
|
);
|
|
1210
1235
|
}
|
|
@@ -1212,19 +1237,19 @@ var Channels = class extends import_events.EventEmitter {
|
|
|
1212
1237
|
* Answers a channel.
|
|
1213
1238
|
*/
|
|
1214
1239
|
async answerChannel(channelId) {
|
|
1215
|
-
return this.
|
|
1240
|
+
return this.baseClient.post(`/channels/${channelId}/answer`);
|
|
1216
1241
|
}
|
|
1217
1242
|
/**
|
|
1218
1243
|
* Sends a ringing indication to a channel.
|
|
1219
1244
|
*/
|
|
1220
1245
|
async ringChannel(channelId) {
|
|
1221
|
-
return this.
|
|
1246
|
+
return this.baseClient.post(`/channels/${channelId}/ring`);
|
|
1222
1247
|
}
|
|
1223
1248
|
/**
|
|
1224
1249
|
* Stops ringing indication on a channel.
|
|
1225
1250
|
*/
|
|
1226
1251
|
async stopRingChannel(channelId) {
|
|
1227
|
-
return this.
|
|
1252
|
+
return this.baseClient.delete(`/channels/${channelId}/ring`);
|
|
1228
1253
|
}
|
|
1229
1254
|
/**
|
|
1230
1255
|
* Sends DTMF to a channel.
|
|
@@ -1237,7 +1262,7 @@ var Channels = class extends import_events.EventEmitter {
|
|
|
1237
1262
|
...options?.duration && { duration: options.duration.toString() },
|
|
1238
1263
|
...options?.after && { after: options.after.toString() }
|
|
1239
1264
|
});
|
|
1240
|
-
return this.
|
|
1265
|
+
return this.baseClient.post(
|
|
1241
1266
|
`/channels/${channelId}/dtmf?${queryParams.toString()}`
|
|
1242
1267
|
);
|
|
1243
1268
|
}
|
|
@@ -1245,7 +1270,7 @@ var Channels = class extends import_events.EventEmitter {
|
|
|
1245
1270
|
* Mutes a channel.
|
|
1246
1271
|
*/
|
|
1247
1272
|
async muteChannel(channelId, direction = "both") {
|
|
1248
|
-
return this.
|
|
1273
|
+
return this.baseClient.post(
|
|
1249
1274
|
`/channels/${channelId}/mute?direction=${direction}`
|
|
1250
1275
|
);
|
|
1251
1276
|
}
|
|
@@ -1253,7 +1278,7 @@ var Channels = class extends import_events.EventEmitter {
|
|
|
1253
1278
|
* Unmutes a channel.
|
|
1254
1279
|
*/
|
|
1255
1280
|
async unmuteChannel(channelId, direction = "both") {
|
|
1256
|
-
return this.
|
|
1281
|
+
return this.baseClient.delete(
|
|
1257
1282
|
`/channels/${channelId}/mute?direction=${direction}`
|
|
1258
1283
|
);
|
|
1259
1284
|
}
|
|
@@ -1261,25 +1286,25 @@ var Channels = class extends import_events.EventEmitter {
|
|
|
1261
1286
|
* Puts a channel on hold.
|
|
1262
1287
|
*/
|
|
1263
1288
|
async holdChannel(channelId) {
|
|
1264
|
-
return this.
|
|
1289
|
+
return this.baseClient.post(`/channels/${channelId}/hold`);
|
|
1265
1290
|
}
|
|
1266
1291
|
/**
|
|
1267
1292
|
* Removes a channel from hold.
|
|
1268
1293
|
*/
|
|
1269
1294
|
async unholdChannel(channelId) {
|
|
1270
|
-
return this.
|
|
1295
|
+
return this.baseClient.delete(`/channels/${channelId}/hold`);
|
|
1271
1296
|
}
|
|
1272
1297
|
/**
|
|
1273
1298
|
* Creates a channel and places it in a Stasis app without dialing it.
|
|
1274
1299
|
*/
|
|
1275
1300
|
async createChannel(data) {
|
|
1276
|
-
return this.
|
|
1301
|
+
return this.baseClient.post("/channels/create", data);
|
|
1277
1302
|
}
|
|
1278
1303
|
/**
|
|
1279
1304
|
* Creates a new channel with a specific ID and originates a call.
|
|
1280
1305
|
*/
|
|
1281
1306
|
async originateWithId(channelId, data) {
|
|
1282
|
-
return this.
|
|
1307
|
+
return this.baseClient.post(`/channels/${channelId}`, data);
|
|
1283
1308
|
}
|
|
1284
1309
|
};
|
|
1285
1310
|
|
|
@@ -1332,12 +1357,15 @@ var Endpoints = class {
|
|
|
1332
1357
|
// src/ari-client/resources/playbacks.ts
|
|
1333
1358
|
var import_events2 = require("events");
|
|
1334
1359
|
var PlaybackInstance = class extends import_events2.EventEmitter {
|
|
1335
|
-
|
|
1360
|
+
// Garantimos que o ID esteja disponível
|
|
1361
|
+
constructor(baseClient, playbackId) {
|
|
1336
1362
|
super();
|
|
1337
|
-
this.
|
|
1363
|
+
this.baseClient = baseClient;
|
|
1338
1364
|
this.playbackId = playbackId;
|
|
1365
|
+
this.id = playbackId || `playback-${Date.now()}`;
|
|
1339
1366
|
}
|
|
1340
1367
|
playbackData = null;
|
|
1368
|
+
id;
|
|
1341
1369
|
/**
|
|
1342
1370
|
* Obtém os detalhes do playback.
|
|
1343
1371
|
*/
|
|
@@ -1346,7 +1374,7 @@ var PlaybackInstance = class extends import_events2.EventEmitter {
|
|
|
1346
1374
|
throw new Error("Nenhum playback associado a esta inst\xE2ncia.");
|
|
1347
1375
|
}
|
|
1348
1376
|
const id = this.playbackId || this.playbackData?.id;
|
|
1349
|
-
const details = await this.
|
|
1377
|
+
const details = await this.baseClient.get(`/playbacks/${id}`);
|
|
1350
1378
|
this.playbackData = details;
|
|
1351
1379
|
return details;
|
|
1352
1380
|
}
|
|
@@ -1357,7 +1385,7 @@ var PlaybackInstance = class extends import_events2.EventEmitter {
|
|
|
1357
1385
|
if (!this.playbackId) {
|
|
1358
1386
|
throw new Error("Nenhum playback associado para controlar.");
|
|
1359
1387
|
}
|
|
1360
|
-
await this.
|
|
1388
|
+
await this.baseClient.post(`/playbacks/${this.playbackId}/control`, {
|
|
1361
1389
|
operation
|
|
1362
1390
|
});
|
|
1363
1391
|
}
|
|
@@ -1368,7 +1396,7 @@ var PlaybackInstance = class extends import_events2.EventEmitter {
|
|
|
1368
1396
|
if (!this.playbackId) {
|
|
1369
1397
|
throw new Error("Nenhum playback associado para encerrar.");
|
|
1370
1398
|
}
|
|
1371
|
-
await this.
|
|
1399
|
+
await this.baseClient.post(`/playbacks/${this.playbackId}/stop`);
|
|
1372
1400
|
this.emit("PlaybackStopped", this.playbackData);
|
|
1373
1401
|
}
|
|
1374
1402
|
/**
|
|
@@ -1402,7 +1430,8 @@ var Playbacks = class extends import_events2.EventEmitter {
|
|
|
1402
1430
|
* Inicializa uma nova instância de `PlaybackInstance`.
|
|
1403
1431
|
*/
|
|
1404
1432
|
Playback(playbackId) {
|
|
1405
|
-
|
|
1433
|
+
const id = playbackId || `playback-${Date.now()}`;
|
|
1434
|
+
return new PlaybackInstance(this.client, id);
|
|
1406
1435
|
}
|
|
1407
1436
|
/**
|
|
1408
1437
|
* Emite eventos de playback.
|
|
@@ -1648,7 +1677,7 @@ var AriClient = class {
|
|
|
1648
1677
|
const normalizedHost = config.host.replace(/^https?:\/\//, "");
|
|
1649
1678
|
const baseUrl = `${httpProtocol}://${normalizedHost}:${config.port}/ari`;
|
|
1650
1679
|
this.baseClient = new BaseClient(baseUrl, config.username, config.password);
|
|
1651
|
-
this.channels = new Channels(this.baseClient);
|
|
1680
|
+
this.channels = new Channels(this.baseClient, this);
|
|
1652
1681
|
this.endpoints = new Endpoints(this.baseClient);
|
|
1653
1682
|
this.applications = new Applications(this.baseClient);
|
|
1654
1683
|
this.playbacks = new Playbacks(this.baseClient);
|