@absolutejs/voice 0.0.22-beta.325 → 0.0.22-beta.326

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/index.js CHANGED
@@ -30278,6 +30278,21 @@ var buildOperationsRecordLinks = (input) => {
30278
30278
  sessionId,
30279
30279
  status: "fail"
30280
30280
  })) : [];
30281
+ const telephonyMedia = input.telephonyMedia && input.telephonyMedia.status !== "pass" ? input.telephonyMedia.carriers.filter((carrier) => carrier.status !== "pass").flatMap((carrier) => {
30282
+ const sessionIds = [
30283
+ ...carrier.lifecycle.streamIds,
30284
+ carrier.frame?.sessionId
30285
+ ].filter((value, index, values) => typeof value === "string" && value.length > 0 && values.indexOf(value) === index);
30286
+ const fallbackSessionId = `${carrier.carrier}-telephony-media`;
30287
+ const ids = sessionIds.length > 0 ? sessionIds : [fallbackSessionId];
30288
+ return ids.map((sessionId) => ({
30289
+ detail: carrier.issues[0] ?? `${carrier.lifecycle.issues.length} telephony media lifecycle issue(s)`,
30290
+ href: voiceOperationsRecordHref(input.base, sessionId),
30291
+ label: "Open telephony media operations record",
30292
+ sessionId,
30293
+ status: "fail"
30294
+ }));
30295
+ }) : [];
30281
30296
  return {
30282
30297
  failedSessions: input.failedSessionIds.map((sessionId) => ({
30283
30298
  href: voiceOperationsRecordHref(input.base, sessionId),
@@ -30287,7 +30302,8 @@ var buildOperationsRecordLinks = (input) => {
30287
30302
  })),
30288
30303
  failingLatency,
30289
30304
  mediaQuality,
30290
- providerErrors
30305
+ providerErrors,
30306
+ telephonyMedia
30291
30307
  };
30292
30308
  };
30293
30309
  var firstOperationsRecordHref = (links) => links[0]?.href;
@@ -30388,7 +30404,8 @@ var buildVoiceProductionReadinessReport = async (options, input = {}) => {
30388
30404
  liveLatencyFailAfterMs: options.liveLatencyFailAfterMs ?? 3200,
30389
30405
  liveLatencyMaxAgeMs: options.liveLatencyMaxAgeMs,
30390
30406
  liveLatencyWarnAfterMs: options.liveLatencyWarnAfterMs ?? 1800,
30391
- mediaPipeline
30407
+ mediaPipeline,
30408
+ telephonyMedia
30392
30409
  });
30393
30410
  const checks = [
30394
30411
  {
@@ -30671,11 +30688,11 @@ var buildVoiceProductionReadinessReport = async (options, input = {}) => {
30671
30688
  const firstIssue = telephonyMedia.issues[0];
30672
30689
  checks.push({
30673
30690
  detail: telephonyMediaSummary.status === "pass" ? `Telephony media serializers are passing for ${telephonyMediaSummary.passed}/${telephonyMediaSummary.carriers} carrier(s) with ${telephonyMediaSummary.audioBytes} audio byte(s), ${telephonyMediaSummary.mediaEvents} media event(s), and valid start/media/stop lifecycle sequencing.` : firstIssue ?? `${telephonyMediaSummary.issues} telephony media serializer issue(s) need review.`,
30674
- href: options.links?.telephonyMedia ?? "/voice/telephony-media",
30691
+ href: firstOperationsRecordHref(operationsRecords.telephonyMedia) ?? options.links?.telephonyMedia ?? "/voice/telephony-media",
30675
30692
  label: "Telephony media serializers",
30676
30693
  proofSource: proofSource("telephonyMedia", "carrierMediaSerializers"),
30677
30694
  gateExplanation: telephonyMediaSummary.status === "pass" ? undefined : {
30678
- evidenceHref: options.links?.telephonyMedia ?? "/voice/telephony-media",
30695
+ evidenceHref: firstOperationsRecordHref(operationsRecords.telephonyMedia) ?? options.links?.telephonyMedia ?? "/voice/telephony-media",
30679
30696
  observed: firstIssue ?? `${telephonyMediaSummary.issues} issue(s)`,
30680
30697
  remediation: "Inspect carrier media proof, fix start/media/stop sequencing, payload parsing, byte flow, or outbound envelope serialization, then rerun readiness proof.",
30681
30698
  thresholdLabel: "Telephony media serializer and lifecycle status",
@@ -30684,6 +30701,13 @@ var buildVoiceProductionReadinessReport = async (options, input = {}) => {
30684
30701
  status: telephonyMediaSummary.status,
30685
30702
  value: telephonyMediaSummary.status === "pass" ? `${telephonyMediaSummary.passed}/${telephonyMediaSummary.carriers}` : `${telephonyMediaSummary.failed}/${telephonyMediaSummary.carriers} failing`,
30686
30703
  actions: telephonyMediaSummary.status === "pass" ? [] : [
30704
+ ...firstOperationsRecordHref(operationsRecords.telephonyMedia) ? [
30705
+ {
30706
+ description: "Open the exact call/session operations record for the first telephony media lifecycle issue.",
30707
+ href: firstOperationsRecordHref(operationsRecords.telephonyMedia),
30708
+ label: "Open telephony media operations record"
30709
+ }
30710
+ ] : [],
30687
30711
  {
30688
30712
  description: "Open telephony media proof and inspect carrier media lifecycle sequencing, payload parsing, MediaFrame shape, byte flow, and outbound envelope serialization.",
30689
30713
  href: options.links?.telephonyMedia ?? "/voice/telephony-media",
@@ -351,6 +351,7 @@ export type VoiceProductionReadinessOperationsRecordLinks = {
351
351
  failingLatency: VoiceProductionReadinessOperationsRecordLink[];
352
352
  mediaQuality: VoiceProductionReadinessOperationsRecordLink[];
353
353
  providerErrors: VoiceProductionReadinessOperationsRecordLink[];
354
+ telephonyMedia: VoiceProductionReadinessOperationsRecordLink[];
354
355
  };
355
356
  export type VoiceProductionReadinessAuditRequirement = {
356
357
  label?: string;
@@ -118,6 +118,13 @@ export declare const useVoiceReadinessFailures: (path?: string, options?: VoiceR
118
118
  readonly sessionId: string;
119
119
  readonly status: import("..").VoiceProductionReadinessStatus;
120
120
  }[];
121
+ readonly telephonyMedia: readonly {
122
+ readonly detail?: string | undefined;
123
+ readonly href: string;
124
+ readonly label: string;
125
+ readonly sessionId: string;
126
+ readonly status: import("..").VoiceProductionReadinessStatus;
127
+ }[];
121
128
  } | undefined;
122
129
  readonly status: import("..").VoiceProductionReadinessStatus;
123
130
  readonly summary: {
@@ -543,6 +550,13 @@ export declare const useVoiceReadinessFailures: (path?: string, options?: VoiceR
543
550
  readonly sessionId: string;
544
551
  readonly status: import("..").VoiceProductionReadinessStatus;
545
552
  }[];
553
+ readonly telephonyMedia: readonly {
554
+ readonly detail?: string | undefined;
555
+ readonly href: string;
556
+ readonly label: string;
557
+ readonly sessionId: string;
558
+ readonly status: import("..").VoiceProductionReadinessStatus;
559
+ }[];
546
560
  } | undefined;
547
561
  readonly status: import("..").VoiceProductionReadinessStatus;
548
562
  readonly summary: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@absolutejs/voice",
3
- "version": "0.0.22-beta.325",
3
+ "version": "0.0.22-beta.326",
4
4
  "description": "Voice primitives and Elysia plugin for AbsoluteJS",
5
5
  "repository": {
6
6
  "type": "git",