@ipcom/asterisk-ari 0.0.28 → 0.0.30
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 +84 -51
- package/dist/cjs/index.cjs.map +2 -2
- package/dist/esm/index.js +82 -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/dist/types/index.d.ts +2 -2
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/esm/index.js
CHANGED
|
@@ -843,9 +843,10 @@ function toQueryParams2(options) {
|
|
|
843
843
|
).toString();
|
|
844
844
|
}
|
|
845
845
|
var ChannelInstance = class extends EventEmitter {
|
|
846
|
-
constructor(client, channelId) {
|
|
846
|
+
constructor(client, baseClient, channelId) {
|
|
847
847
|
super();
|
|
848
848
|
this.client = client;
|
|
849
|
+
this.baseClient = baseClient;
|
|
849
850
|
this.channelId = channelId;
|
|
850
851
|
}
|
|
851
852
|
channelData = null;
|
|
@@ -856,7 +857,7 @@ var ChannelInstance = class extends EventEmitter {
|
|
|
856
857
|
if (this.channelData) {
|
|
857
858
|
throw new Error("O canal j\xE1 foi criado.");
|
|
858
859
|
}
|
|
859
|
-
const channel = await this.
|
|
860
|
+
const channel = await this.baseClient.post("/channels", data);
|
|
860
861
|
this.channelData = channel;
|
|
861
862
|
this.emit("ChannelCreated", channel, this);
|
|
862
863
|
return channel;
|
|
@@ -869,7 +870,7 @@ var ChannelInstance = class extends EventEmitter {
|
|
|
869
870
|
throw new Error("Nenhum canal est\xE1 associado a esta inst\xE2ncia.");
|
|
870
871
|
}
|
|
871
872
|
const id = this.channelId || this.channelData?.id;
|
|
872
|
-
const details = await this.
|
|
873
|
+
const details = await this.baseClient.get(`/channels/${id}`);
|
|
873
874
|
this.channelData = details;
|
|
874
875
|
return details;
|
|
875
876
|
}
|
|
@@ -880,9 +881,27 @@ var ChannelInstance = class extends EventEmitter {
|
|
|
880
881
|
if (!this.channelData) {
|
|
881
882
|
throw new Error("O canal ainda n\xE3o foi criado.");
|
|
882
883
|
}
|
|
883
|
-
await this.
|
|
884
|
+
await this.baseClient.delete(`/channels/${this.channelData.id}`);
|
|
884
885
|
this.emit("ChannelHungUp", this.channelData);
|
|
885
886
|
}
|
|
887
|
+
/**
|
|
888
|
+
* Toca um arquivo de mídia no canal.
|
|
889
|
+
*
|
|
890
|
+
* @param options - Opções para o playback, incluindo mídia e idioma.
|
|
891
|
+
* @param playback - (Opcional) Uma instância de `PlaybackInstance` para gerenciar o playback. Se não fornecido, será criada uma nova.
|
|
892
|
+
* @returns Uma instância de `PlaybackInstance` associada ao playback.
|
|
893
|
+
*/
|
|
894
|
+
async play(options, playback) {
|
|
895
|
+
if (!playback) {
|
|
896
|
+
playback = this.client.Playback();
|
|
897
|
+
}
|
|
898
|
+
await this.baseClient.post(
|
|
899
|
+
`/channels/${this.channelData?.id}/play/${playback.id}`,
|
|
900
|
+
// Agora o ID é garantido
|
|
901
|
+
options
|
|
902
|
+
);
|
|
903
|
+
return playback;
|
|
904
|
+
}
|
|
886
905
|
/**
|
|
887
906
|
* Adiciona um listener para eventos de canal.
|
|
888
907
|
*/
|
|
@@ -906,21 +925,23 @@ var ChannelInstance = class extends EventEmitter {
|
|
|
906
925
|
}
|
|
907
926
|
};
|
|
908
927
|
var Channels = class extends EventEmitter {
|
|
909
|
-
constructor(client) {
|
|
928
|
+
constructor(baseClient, client, channelId) {
|
|
910
929
|
super();
|
|
930
|
+
this.baseClient = baseClient;
|
|
911
931
|
this.client = client;
|
|
932
|
+
this.channelId = channelId;
|
|
912
933
|
}
|
|
913
934
|
/**
|
|
914
935
|
* Cria uma nova instância de `ChannelInstance` sem originar um canal físico.
|
|
915
936
|
*/
|
|
916
937
|
createChannelInstance(channelId) {
|
|
917
|
-
return new ChannelInstance(this.client, channelId);
|
|
938
|
+
return new ChannelInstance(this.client, this.baseClient, channelId);
|
|
918
939
|
}
|
|
919
940
|
/**
|
|
920
941
|
* Origina um canal físico diretamente, sem uma instância de `ChannelInstance`.
|
|
921
942
|
*/
|
|
922
943
|
async originate(data) {
|
|
923
|
-
return this.
|
|
944
|
+
return this.baseClient.post("/channels", data);
|
|
924
945
|
}
|
|
925
946
|
/**
|
|
926
947
|
* Lida com eventos relacionados ao canal e os emite para listeners registrados.
|
|
@@ -956,7 +977,7 @@ var Channels = class extends EventEmitter {
|
|
|
956
977
|
* Lista todos os canais ativos.
|
|
957
978
|
*/
|
|
958
979
|
async list() {
|
|
959
|
-
const channels = await this.
|
|
980
|
+
const channels = await this.baseClient.get("/channels");
|
|
960
981
|
if (!Array.isArray(channels)) {
|
|
961
982
|
throw new Error("Resposta da API /channels n\xE3o \xE9 um array.");
|
|
962
983
|
}
|
|
@@ -966,14 +987,14 @@ var Channels = class extends EventEmitter {
|
|
|
966
987
|
* Obtém detalhes de um canal específico.
|
|
967
988
|
*/
|
|
968
989
|
async getDetails(channelId) {
|
|
969
|
-
return this.
|
|
990
|
+
return this.baseClient.get(`/channels/${channelId}`);
|
|
970
991
|
}
|
|
971
992
|
/**
|
|
972
993
|
* Reproduz mídia em um canal.
|
|
973
994
|
*/
|
|
974
995
|
async playMedia(channelId, media, options) {
|
|
975
996
|
const queryParams = options ? `?${new URLSearchParams(options).toString()}` : "";
|
|
976
|
-
return this.
|
|
997
|
+
return this.baseClient.post(
|
|
977
998
|
`/channels/${channelId}/play${queryParams}`,
|
|
978
999
|
{ media }
|
|
979
1000
|
);
|
|
@@ -986,7 +1007,7 @@ var Channels = class extends EventEmitter {
|
|
|
986
1007
|
...options?.reason_code && { reason_code: options.reason_code },
|
|
987
1008
|
...options?.reason && { reason: options.reason }
|
|
988
1009
|
});
|
|
989
|
-
return this.
|
|
1010
|
+
return this.baseClient.delete(
|
|
990
1011
|
`/channels/${channelId}?${queryParams.toString()}`
|
|
991
1012
|
);
|
|
992
1013
|
}
|
|
@@ -995,41 +1016,45 @@ var Channels = class extends EventEmitter {
|
|
|
995
1016
|
*/
|
|
996
1017
|
async snoopChannel(channelId, options) {
|
|
997
1018
|
const queryParams = toQueryParams2(options);
|
|
998
|
-
return this.
|
|
1019
|
+
return this.baseClient.post(
|
|
999
1020
|
`/channels/${channelId}/snoop?${queryParams}`
|
|
1000
1021
|
);
|
|
1001
1022
|
}
|
|
1002
1023
|
async startSilence(channelId) {
|
|
1003
|
-
return this.
|
|
1024
|
+
return this.baseClient.post(`/channels/${channelId}/silence`);
|
|
1004
1025
|
}
|
|
1005
1026
|
async stopSilence(channelId) {
|
|
1006
|
-
return this.
|
|
1027
|
+
return this.baseClient.delete(`/channels/${channelId}/silence`);
|
|
1007
1028
|
}
|
|
1008
1029
|
async getRTPStatistics(channelId) {
|
|
1009
|
-
return this.
|
|
1030
|
+
return this.baseClient.get(
|
|
1031
|
+
`/channels/${channelId}/rtp_statistics`
|
|
1032
|
+
);
|
|
1010
1033
|
}
|
|
1011
1034
|
async createExternalMedia(options) {
|
|
1012
1035
|
const queryParams = new URLSearchParams(options);
|
|
1013
|
-
return this.
|
|
1036
|
+
return this.baseClient.post(
|
|
1014
1037
|
`/channels/externalMedia?${queryParams.toString()}`
|
|
1015
1038
|
);
|
|
1016
1039
|
}
|
|
1017
1040
|
async playWithId(channelId, playbackId, media, options) {
|
|
1018
1041
|
const queryParams = options ? `?${new URLSearchParams(options).toString()}` : "";
|
|
1019
|
-
return this.
|
|
1042
|
+
return this.baseClient.post(
|
|
1020
1043
|
`/channels/${channelId}/play/${playbackId}${queryParams}`,
|
|
1021
1044
|
{ media }
|
|
1022
1045
|
);
|
|
1023
1046
|
}
|
|
1024
1047
|
async snoopChannelWithId(channelId, snoopId, options) {
|
|
1025
1048
|
const queryParams = new URLSearchParams(options);
|
|
1026
|
-
return this.
|
|
1049
|
+
return this.baseClient.post(
|
|
1027
1050
|
`/channels/${channelId}/snoop/${snoopId}?${queryParams.toString()}`
|
|
1028
1051
|
);
|
|
1029
1052
|
}
|
|
1030
1053
|
async startMohWithClass(channelId, mohClass) {
|
|
1031
1054
|
const queryParams = `mohClass=${encodeURIComponent(mohClass)}`;
|
|
1032
|
-
return this.
|
|
1055
|
+
return this.baseClient.post(
|
|
1056
|
+
`/channels/${channelId}/moh?${queryParams}`
|
|
1057
|
+
);
|
|
1033
1058
|
}
|
|
1034
1059
|
/**
|
|
1035
1060
|
* Gets the value of a channel variable or function.
|
|
@@ -1043,7 +1068,7 @@ var Channels = class extends EventEmitter {
|
|
|
1043
1068
|
if (!variable) {
|
|
1044
1069
|
throw new Error("The 'variable' parameter is required.");
|
|
1045
1070
|
}
|
|
1046
|
-
return this.
|
|
1071
|
+
return this.baseClient.get(
|
|
1047
1072
|
`/channels/${channelId}/variable?variable=${encodeURIComponent(variable)}`
|
|
1048
1073
|
);
|
|
1049
1074
|
}
|
|
@@ -1064,7 +1089,7 @@ var Channels = class extends EventEmitter {
|
|
|
1064
1089
|
variable,
|
|
1065
1090
|
...value && { value }
|
|
1066
1091
|
});
|
|
1067
|
-
await this.
|
|
1092
|
+
await this.baseClient.post(
|
|
1068
1093
|
`/channels/${channelId}/variable?${queryParams.toString()}`
|
|
1069
1094
|
);
|
|
1070
1095
|
}
|
|
@@ -1072,7 +1097,7 @@ var Channels = class extends EventEmitter {
|
|
|
1072
1097
|
* Moves the channel to another Stasis application.
|
|
1073
1098
|
*/
|
|
1074
1099
|
async moveToApplication(channelId, app, appArgs) {
|
|
1075
|
-
return this.
|
|
1100
|
+
return this.baseClient.post(`/channels/${channelId}/move`, {
|
|
1076
1101
|
app,
|
|
1077
1102
|
appArgs
|
|
1078
1103
|
});
|
|
@@ -1081,7 +1106,7 @@ var Channels = class extends EventEmitter {
|
|
|
1081
1106
|
* Continues the dialplan for a specific channel.
|
|
1082
1107
|
*/
|
|
1083
1108
|
async continueDialplan(channelId, context, extension, priority, label) {
|
|
1084
|
-
return this.
|
|
1109
|
+
return this.baseClient.post(`/channels/${channelId}/continue`, {
|
|
1085
1110
|
context,
|
|
1086
1111
|
extension,
|
|
1087
1112
|
priority,
|
|
@@ -1092,13 +1117,13 @@ var Channels = class extends EventEmitter {
|
|
|
1092
1117
|
* Stops music on hold (MOH) for a channel.
|
|
1093
1118
|
*/
|
|
1094
1119
|
async stopMusicOnHold(channelId) {
|
|
1095
|
-
return this.
|
|
1120
|
+
return this.baseClient.delete(`/channels/${channelId}/moh`);
|
|
1096
1121
|
}
|
|
1097
1122
|
/**
|
|
1098
1123
|
* Starts music on hold (MOH) for a channel.
|
|
1099
1124
|
*/
|
|
1100
1125
|
async startMusicOnHold(channelId) {
|
|
1101
|
-
return this.
|
|
1126
|
+
return this.baseClient.post(`/channels/${channelId}/moh`);
|
|
1102
1127
|
}
|
|
1103
1128
|
/**
|
|
1104
1129
|
* Starts playback of a media file on a channel.
|
|
@@ -1108,7 +1133,7 @@ var Channels = class extends EventEmitter {
|
|
|
1108
1133
|
*/
|
|
1109
1134
|
async startPlayback(channelId, media, options) {
|
|
1110
1135
|
const queryParams = options ? `?${new URLSearchParams(options).toString()}` : "";
|
|
1111
|
-
return this.
|
|
1136
|
+
return this.baseClient.post(
|
|
1112
1137
|
`/channels/${channelId}/play${queryParams}`,
|
|
1113
1138
|
{ media }
|
|
1114
1139
|
);
|
|
@@ -1117,7 +1142,7 @@ var Channels = class extends EventEmitter {
|
|
|
1117
1142
|
* Stops playback of a media file on a channel.
|
|
1118
1143
|
*/
|
|
1119
1144
|
async stopPlayback(channelId, playbackId) {
|
|
1120
|
-
return this.
|
|
1145
|
+
return this.baseClient.delete(
|
|
1121
1146
|
`/channels/${channelId}/play/${playbackId}`
|
|
1122
1147
|
);
|
|
1123
1148
|
}
|
|
@@ -1125,7 +1150,7 @@ var Channels = class extends EventEmitter {
|
|
|
1125
1150
|
* Pauses playback of a media file on a channel.
|
|
1126
1151
|
*/
|
|
1127
1152
|
async pausePlayback(channelId, playbackId) {
|
|
1128
|
-
return this.
|
|
1153
|
+
return this.baseClient.post(
|
|
1129
1154
|
`/channels/${channelId}/play/${playbackId}/pause`
|
|
1130
1155
|
);
|
|
1131
1156
|
}
|
|
@@ -1133,7 +1158,7 @@ var Channels = class extends EventEmitter {
|
|
|
1133
1158
|
* Resumes playback of a media file on a channel.
|
|
1134
1159
|
*/
|
|
1135
1160
|
async resumePlayback(channelId, playbackId) {
|
|
1136
|
-
return this.
|
|
1161
|
+
return this.baseClient.delete(
|
|
1137
1162
|
`/channels/${channelId}/play/${playbackId}/pause`
|
|
1138
1163
|
);
|
|
1139
1164
|
}
|
|
@@ -1141,7 +1166,7 @@ var Channels = class extends EventEmitter {
|
|
|
1141
1166
|
* Rewinds playback of a media file on a channel.
|
|
1142
1167
|
*/
|
|
1143
1168
|
async rewindPlayback(channelId, playbackId, skipMs) {
|
|
1144
|
-
return this.
|
|
1169
|
+
return this.baseClient.post(
|
|
1145
1170
|
`/channels/${channelId}/play/${playbackId}/rewind`,
|
|
1146
1171
|
{ skipMs }
|
|
1147
1172
|
);
|
|
@@ -1150,7 +1175,7 @@ var Channels = class extends EventEmitter {
|
|
|
1150
1175
|
* Fast-forwards playback of a media file on a channel.
|
|
1151
1176
|
*/
|
|
1152
1177
|
async fastForwardPlayback(channelId, playbackId, skipMs) {
|
|
1153
|
-
return this.
|
|
1178
|
+
return this.baseClient.post(
|
|
1154
1179
|
`/channels/${channelId}/play/${playbackId}/forward`,
|
|
1155
1180
|
{ skipMs }
|
|
1156
1181
|
);
|
|
@@ -1164,7 +1189,7 @@ var Channels = class extends EventEmitter {
|
|
|
1164
1189
|
([, value]) => value !== void 0
|
|
1165
1190
|
)
|
|
1166
1191
|
);
|
|
1167
|
-
return this.
|
|
1192
|
+
return this.baseClient.post(
|
|
1168
1193
|
`/channels/${channelId}/record?${queryParams.toString()}`
|
|
1169
1194
|
);
|
|
1170
1195
|
}
|
|
@@ -1176,7 +1201,7 @@ var Channels = class extends EventEmitter {
|
|
|
1176
1201
|
...caller && { caller },
|
|
1177
1202
|
...timeout && { timeout: timeout.toString() }
|
|
1178
1203
|
});
|
|
1179
|
-
return this.
|
|
1204
|
+
return this.baseClient.post(
|
|
1180
1205
|
`/channels/${channelId}/dial?${queryParams.toString()}`
|
|
1181
1206
|
);
|
|
1182
1207
|
}
|
|
@@ -1184,7 +1209,7 @@ var Channels = class extends EventEmitter {
|
|
|
1184
1209
|
* Redirects the channel to a different location.
|
|
1185
1210
|
*/
|
|
1186
1211
|
async redirectChannel(channelId, endpoint) {
|
|
1187
|
-
return this.
|
|
1212
|
+
return this.baseClient.post(
|
|
1188
1213
|
`/channels/${channelId}/redirect?endpoint=${encodeURIComponent(endpoint)}`
|
|
1189
1214
|
);
|
|
1190
1215
|
}
|
|
@@ -1192,19 +1217,19 @@ var Channels = class extends EventEmitter {
|
|
|
1192
1217
|
* Answers a channel.
|
|
1193
1218
|
*/
|
|
1194
1219
|
async answerChannel(channelId) {
|
|
1195
|
-
return this.
|
|
1220
|
+
return this.baseClient.post(`/channels/${channelId}/answer`);
|
|
1196
1221
|
}
|
|
1197
1222
|
/**
|
|
1198
1223
|
* Sends a ringing indication to a channel.
|
|
1199
1224
|
*/
|
|
1200
1225
|
async ringChannel(channelId) {
|
|
1201
|
-
return this.
|
|
1226
|
+
return this.baseClient.post(`/channels/${channelId}/ring`);
|
|
1202
1227
|
}
|
|
1203
1228
|
/**
|
|
1204
1229
|
* Stops ringing indication on a channel.
|
|
1205
1230
|
*/
|
|
1206
1231
|
async stopRingChannel(channelId) {
|
|
1207
|
-
return this.
|
|
1232
|
+
return this.baseClient.delete(`/channels/${channelId}/ring`);
|
|
1208
1233
|
}
|
|
1209
1234
|
/**
|
|
1210
1235
|
* Sends DTMF to a channel.
|
|
@@ -1217,7 +1242,7 @@ var Channels = class extends EventEmitter {
|
|
|
1217
1242
|
...options?.duration && { duration: options.duration.toString() },
|
|
1218
1243
|
...options?.after && { after: options.after.toString() }
|
|
1219
1244
|
});
|
|
1220
|
-
return this.
|
|
1245
|
+
return this.baseClient.post(
|
|
1221
1246
|
`/channels/${channelId}/dtmf?${queryParams.toString()}`
|
|
1222
1247
|
);
|
|
1223
1248
|
}
|
|
@@ -1225,7 +1250,7 @@ var Channels = class extends EventEmitter {
|
|
|
1225
1250
|
* Mutes a channel.
|
|
1226
1251
|
*/
|
|
1227
1252
|
async muteChannel(channelId, direction = "both") {
|
|
1228
|
-
return this.
|
|
1253
|
+
return this.baseClient.post(
|
|
1229
1254
|
`/channels/${channelId}/mute?direction=${direction}`
|
|
1230
1255
|
);
|
|
1231
1256
|
}
|
|
@@ -1233,7 +1258,7 @@ var Channels = class extends EventEmitter {
|
|
|
1233
1258
|
* Unmutes a channel.
|
|
1234
1259
|
*/
|
|
1235
1260
|
async unmuteChannel(channelId, direction = "both") {
|
|
1236
|
-
return this.
|
|
1261
|
+
return this.baseClient.delete(
|
|
1237
1262
|
`/channels/${channelId}/mute?direction=${direction}`
|
|
1238
1263
|
);
|
|
1239
1264
|
}
|
|
@@ -1241,25 +1266,25 @@ var Channels = class extends EventEmitter {
|
|
|
1241
1266
|
* Puts a channel on hold.
|
|
1242
1267
|
*/
|
|
1243
1268
|
async holdChannel(channelId) {
|
|
1244
|
-
return this.
|
|
1269
|
+
return this.baseClient.post(`/channels/${channelId}/hold`);
|
|
1245
1270
|
}
|
|
1246
1271
|
/**
|
|
1247
1272
|
* Removes a channel from hold.
|
|
1248
1273
|
*/
|
|
1249
1274
|
async unholdChannel(channelId) {
|
|
1250
|
-
return this.
|
|
1275
|
+
return this.baseClient.delete(`/channels/${channelId}/hold`);
|
|
1251
1276
|
}
|
|
1252
1277
|
/**
|
|
1253
1278
|
* Creates a channel and places it in a Stasis app without dialing it.
|
|
1254
1279
|
*/
|
|
1255
1280
|
async createChannel(data) {
|
|
1256
|
-
return this.
|
|
1281
|
+
return this.baseClient.post("/channels/create", data);
|
|
1257
1282
|
}
|
|
1258
1283
|
/**
|
|
1259
1284
|
* Creates a new channel with a specific ID and originates a call.
|
|
1260
1285
|
*/
|
|
1261
1286
|
async originateWithId(channelId, data) {
|
|
1262
|
-
return this.
|
|
1287
|
+
return this.baseClient.post(`/channels/${channelId}`, data);
|
|
1263
1288
|
}
|
|
1264
1289
|
};
|
|
1265
1290
|
|
|
@@ -1312,12 +1337,15 @@ var Endpoints = class {
|
|
|
1312
1337
|
// src/ari-client/resources/playbacks.ts
|
|
1313
1338
|
import { EventEmitter as EventEmitter2 } from "events";
|
|
1314
1339
|
var PlaybackInstance = class extends EventEmitter2 {
|
|
1315
|
-
|
|
1340
|
+
// Garantimos que o ID esteja disponível
|
|
1341
|
+
constructor(baseClient, playbackId) {
|
|
1316
1342
|
super();
|
|
1317
|
-
this.
|
|
1343
|
+
this.baseClient = baseClient;
|
|
1318
1344
|
this.playbackId = playbackId;
|
|
1345
|
+
this.id = playbackId || `playback-${Date.now()}`;
|
|
1319
1346
|
}
|
|
1320
1347
|
playbackData = null;
|
|
1348
|
+
id;
|
|
1321
1349
|
/**
|
|
1322
1350
|
* Obtém os detalhes do playback.
|
|
1323
1351
|
*/
|
|
@@ -1326,7 +1354,7 @@ var PlaybackInstance = class extends EventEmitter2 {
|
|
|
1326
1354
|
throw new Error("Nenhum playback associado a esta inst\xE2ncia.");
|
|
1327
1355
|
}
|
|
1328
1356
|
const id = this.playbackId || this.playbackData?.id;
|
|
1329
|
-
const details = await this.
|
|
1357
|
+
const details = await this.baseClient.get(`/playbacks/${id}`);
|
|
1330
1358
|
this.playbackData = details;
|
|
1331
1359
|
return details;
|
|
1332
1360
|
}
|
|
@@ -1337,7 +1365,7 @@ var PlaybackInstance = class extends EventEmitter2 {
|
|
|
1337
1365
|
if (!this.playbackId) {
|
|
1338
1366
|
throw new Error("Nenhum playback associado para controlar.");
|
|
1339
1367
|
}
|
|
1340
|
-
await this.
|
|
1368
|
+
await this.baseClient.post(`/playbacks/${this.playbackId}/control`, {
|
|
1341
1369
|
operation
|
|
1342
1370
|
});
|
|
1343
1371
|
}
|
|
@@ -1348,7 +1376,7 @@ var PlaybackInstance = class extends EventEmitter2 {
|
|
|
1348
1376
|
if (!this.playbackId) {
|
|
1349
1377
|
throw new Error("Nenhum playback associado para encerrar.");
|
|
1350
1378
|
}
|
|
1351
|
-
await this.
|
|
1379
|
+
await this.baseClient.post(`/playbacks/${this.playbackId}/stop`);
|
|
1352
1380
|
this.emit("PlaybackStopped", this.playbackData);
|
|
1353
1381
|
}
|
|
1354
1382
|
/**
|
|
@@ -1382,7 +1410,8 @@ var Playbacks = class extends EventEmitter2 {
|
|
|
1382
1410
|
* Inicializa uma nova instância de `PlaybackInstance`.
|
|
1383
1411
|
*/
|
|
1384
1412
|
Playback(playbackId) {
|
|
1385
|
-
|
|
1413
|
+
const id = playbackId || `playback-${Date.now()}`;
|
|
1414
|
+
return new PlaybackInstance(this.client, id);
|
|
1386
1415
|
}
|
|
1387
1416
|
/**
|
|
1388
1417
|
* Emite eventos de playback.
|
|
@@ -1628,7 +1657,7 @@ var AriClient = class {
|
|
|
1628
1657
|
const normalizedHost = config.host.replace(/^https?:\/\//, "");
|
|
1629
1658
|
const baseUrl = `${httpProtocol}://${normalizedHost}:${config.port}/ari`;
|
|
1630
1659
|
this.baseClient = new BaseClient(baseUrl, config.username, config.password);
|
|
1631
|
-
this.channels = new Channels(this.baseClient);
|
|
1660
|
+
this.channels = new Channels(this.baseClient, this);
|
|
1632
1661
|
this.endpoints = new Endpoints(this.baseClient);
|
|
1633
1662
|
this.applications = new Applications(this.baseClient);
|
|
1634
1663
|
this.playbacks = new Playbacks(this.baseClient);
|
|
@@ -2464,8 +2493,10 @@ export {
|
|
|
2464
2493
|
AriClient,
|
|
2465
2494
|
Asterisk,
|
|
2466
2495
|
Bridges,
|
|
2496
|
+
ChannelInstance,
|
|
2467
2497
|
Channels,
|
|
2468
2498
|
Endpoints,
|
|
2499
|
+
PlaybackInstance,
|
|
2469
2500
|
Playbacks,
|
|
2470
2501
|
Sounds
|
|
2471
2502
|
};
|