@ipcom/asterisk-ari 0.0.150 → 0.0.151
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/esm/index.js
CHANGED
|
@@ -1191,31 +1191,59 @@ var ChannelInstance = class {
|
|
|
1191
1191
|
this.channelData = await this.getDetails();
|
|
1192
1192
|
}
|
|
1193
1193
|
const playback = this.client.Playback(playbackId || v4_default());
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
console.log("Playback realmente iniciado:", playback.id);
|
|
1197
|
-
resolve(playback);
|
|
1198
|
-
}
|
|
1199
|
-
});
|
|
1200
|
-
playback.once("PlaybackFinished", async (event) => {
|
|
1194
|
+
let playbackStarted = false;
|
|
1195
|
+
const failureListener = (event) => {
|
|
1201
1196
|
if ("playback" in event && event.playback) {
|
|
1202
|
-
|
|
1203
|
-
if (playbackState === "failed") {
|
|
1197
|
+
if (event.playback.state === "failed") {
|
|
1204
1198
|
console.error("Playback falhou:", {
|
|
1205
1199
|
playbackId: playback.id,
|
|
1206
1200
|
channelId: this.id,
|
|
1207
|
-
state:
|
|
1201
|
+
state: event.playback.state
|
|
1208
1202
|
});
|
|
1209
|
-
|
|
1203
|
+
if (!playbackStarted) {
|
|
1204
|
+
reject(
|
|
1205
|
+
new Error(
|
|
1206
|
+
`Playback failed to start: ${event.playback.state}`
|
|
1207
|
+
)
|
|
1208
|
+
);
|
|
1209
|
+
}
|
|
1210
1210
|
}
|
|
1211
1211
|
}
|
|
1212
|
-
}
|
|
1212
|
+
};
|
|
1213
|
+
const startListener = (event) => {
|
|
1214
|
+
if ("playback" in event && event.playback) {
|
|
1215
|
+
console.log("Playback come\xE7ou:", {
|
|
1216
|
+
playbackId: playback.id,
|
|
1217
|
+
channelId: this.id,
|
|
1218
|
+
state: event.playback.state
|
|
1219
|
+
});
|
|
1220
|
+
playbackStarted = true;
|
|
1221
|
+
setTimeout(async () => {
|
|
1222
|
+
try {
|
|
1223
|
+
const status = await playback.get();
|
|
1224
|
+
if (status.state === "playing") {
|
|
1225
|
+
resolve(playback);
|
|
1226
|
+
} else {
|
|
1227
|
+
reject(
|
|
1228
|
+
new Error(`Playback started but state is ${status.state}`)
|
|
1229
|
+
);
|
|
1230
|
+
}
|
|
1231
|
+
} catch (_err) {
|
|
1232
|
+
reject(new Error("Failed to verify playback status"));
|
|
1233
|
+
}
|
|
1234
|
+
}, 500);
|
|
1235
|
+
}
|
|
1236
|
+
};
|
|
1237
|
+
playback.once("PlaybackStarted", startListener);
|
|
1238
|
+
playback.once("PlaybackFinished", failureListener);
|
|
1213
1239
|
await this.baseClient.post(
|
|
1214
1240
|
`/channels/${this.id}/play/${playback.id}`,
|
|
1215
1241
|
options
|
|
1216
1242
|
);
|
|
1217
1243
|
setTimeout(() => {
|
|
1218
|
-
|
|
1244
|
+
if (!playbackStarted) {
|
|
1245
|
+
reject(new Error("Playback timeout - n\xE3o iniciou"));
|
|
1246
|
+
}
|
|
1219
1247
|
}, 5e3);
|
|
1220
1248
|
} catch (error) {
|
|
1221
1249
|
reject(error);
|