@ipcom/asterisk-ari 0.0.147 → 0.0.148
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
CHANGED
|
@@ -1206,57 +1206,49 @@ var ChannelInstance = class {
|
|
|
1206
1206
|
throw new Error("Media URL is required");
|
|
1207
1207
|
}
|
|
1208
1208
|
try {
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
console.error("Failed to get channel details:", error);
|
|
1218
|
-
throw new Error("Could not initialize channel data");
|
|
1209
|
+
const mediaPath = options.media.replace("sound:", "");
|
|
1210
|
+
console.log("Formatted media path:", mediaPath);
|
|
1211
|
+
if (!this.channelData) {
|
|
1212
|
+
console.log("Fetching channel details...");
|
|
1213
|
+
this.channelData = await this.getDetails();
|
|
1214
|
+
}
|
|
1215
|
+
if (!this.channelData?.id) {
|
|
1216
|
+
throw new Error("Channel ID is not available");
|
|
1219
1217
|
}
|
|
1220
|
-
|
|
1221
|
-
|
|
1218
|
+
console.log("Channel state:", this.channelData.state);
|
|
1219
|
+
const playback = this.client.Playback(playbackId || v4_default());
|
|
1220
|
+
const payload = {
|
|
1221
|
+
media: options.media,
|
|
1222
|
+
...options.lang && { lang: options.lang }
|
|
1223
|
+
};
|
|
1224
|
+
console.log("Sending playback request:", {
|
|
1222
1225
|
channelId: this.id,
|
|
1223
|
-
playbackId:
|
|
1224
|
-
|
|
1226
|
+
playbackId: playback.id,
|
|
1227
|
+
payload
|
|
1225
1228
|
});
|
|
1229
|
+
await this.baseClient.post(
|
|
1230
|
+
`/channels/${this.id}/play/${playback.id}`,
|
|
1231
|
+
payload
|
|
1232
|
+
);
|
|
1226
1233
|
try {
|
|
1227
|
-
await
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
);
|
|
1231
|
-
console.log("Successfully initiated playback:", {
|
|
1232
|
-
channelId: this.id,
|
|
1233
|
-
playbackId: playbackInstance.id
|
|
1234
|
-
});
|
|
1235
|
-
const playbackStatus = await playbackInstance.get().catch((err) => {
|
|
1236
|
-
console.warn("Could not verify playback status:", err);
|
|
1237
|
-
return null;
|
|
1238
|
-
});
|
|
1239
|
-
if (!playbackStatus) {
|
|
1240
|
-
console.warn("Playback was created but status could not be verified");
|
|
1241
|
-
} else {
|
|
1242
|
-
console.log("Playback status:", playbackStatus);
|
|
1234
|
+
const playbackStatus = await playback.get();
|
|
1235
|
+
if (playbackStatus.state !== "playing") {
|
|
1236
|
+
console.warn("Playback not in playing state:", playbackStatus);
|
|
1243
1237
|
}
|
|
1244
|
-
|
|
1238
|
+
playback.once("PlaybackFinished", (event) => {
|
|
1239
|
+
console.log("Playback finished", event);
|
|
1240
|
+
});
|
|
1245
1241
|
} catch (error) {
|
|
1246
|
-
|
|
1247
|
-
console.error(
|
|
1248
|
-
`Failed to start playback on channel ${this.id}:`,
|
|
1249
|
-
message
|
|
1250
|
-
);
|
|
1251
|
-
try {
|
|
1252
|
-
await playbackInstance.stop().catch();
|
|
1253
|
-
} catch {
|
|
1254
|
-
}
|
|
1255
|
-
throw new Error(`Failed to start playback: ${message}`);
|
|
1242
|
+
console.warn("Could not verify playback status:", error);
|
|
1256
1243
|
}
|
|
1244
|
+
return playback;
|
|
1257
1245
|
} catch (error) {
|
|
1258
1246
|
const message = getErrorMessage(error);
|
|
1259
|
-
console.error(`Error playing media on channel ${this.id}:`,
|
|
1247
|
+
console.error(`Error playing media on channel ${this.id}:`, {
|
|
1248
|
+
error: message,
|
|
1249
|
+
options,
|
|
1250
|
+
channelState: this.channelData?.state
|
|
1251
|
+
});
|
|
1260
1252
|
throw new Error(`Failed to play media: ${message}`);
|
|
1261
1253
|
}
|
|
1262
1254
|
}
|