@tx5dr/contracts 1.4.0 → 1.6.0
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/schema/__tests__/radio-power-support.test.d.ts +2 -0
- package/dist/schema/__tests__/radio-power-support.test.d.ts.map +1 -0
- package/dist/schema/__tests__/radio-power-support.test.js +19 -0
- package/dist/schema/__tests__/radio-power-support.test.js.map +1 -0
- package/dist/schema/__tests__/realtime-settings.schema.test.d.ts +2 -0
- package/dist/schema/__tests__/realtime-settings.schema.test.d.ts.map +1 -0
- package/dist/schema/__tests__/realtime-settings.schema.test.js +122 -0
- package/dist/schema/__tests__/realtime-settings.schema.test.js.map +1 -0
- package/dist/schema/cpu-profile.schema.d.ts +4 -4
- package/dist/schema/desktop-https.schema.d.ts +9 -0
- package/dist/schema/desktop-https.schema.d.ts.map +1 -1
- package/dist/schema/desktop-https.schema.js +3 -0
- package/dist/schema/desktop-https.schema.js.map +1 -1
- package/dist/schema/openwebrx.schema.d.ts +1 -1
- package/dist/schema/openwebrx.schema.d.ts.map +1 -1
- package/dist/schema/openwebrx.schema.js +1 -1
- package/dist/schema/openwebrx.schema.js.map +1 -1
- package/dist/schema/operator.schema.d.ts +32 -32
- package/dist/schema/plugin.schema.d.ts +702 -168
- package/dist/schema/plugin.schema.d.ts.map +1 -1
- package/dist/schema/plugin.schema.js +38 -3
- package/dist/schema/plugin.schema.js.map +1 -1
- package/dist/schema/radio-capability.schema.d.ts +42 -2
- package/dist/schema/radio-capability.schema.d.ts.map +1 -1
- package/dist/schema/radio-capability.schema.js +18 -1
- package/dist/schema/radio-capability.schema.js.map +1 -1
- package/dist/schema/radio-power-support.d.ts +8 -0
- package/dist/schema/radio-power-support.d.ts.map +1 -1
- package/dist/schema/radio-power-support.js +38 -26
- package/dist/schema/radio-power-support.js.map +1 -1
- package/dist/schema/radio-power.schema.d.ts +10 -6
- package/dist/schema/radio-power.schema.d.ts.map +1 -1
- package/dist/schema/radio-power.schema.js +8 -6
- package/dist/schema/radio-power.schema.js.map +1 -1
- package/dist/schema/realtime.schema.d.ts +797 -417
- package/dist/schema/realtime.schema.d.ts.map +1 -1
- package/dist/schema/realtime.schema.js +205 -51
- package/dist/schema/realtime.schema.js.map +1 -1
- package/dist/schema/server-message-keys.d.ts +2 -2
- package/dist/schema/server-message-keys.d.ts.map +1 -1
- package/dist/schema/server-message-keys.js +2 -2
- package/dist/schema/server-message-keys.js.map +1 -1
- package/dist/schema/slot-info.schema.d.ts +6 -0
- package/dist/schema/slot-info.schema.d.ts.map +1 -1
- package/dist/schema/slot-info.schema.js +3 -1
- package/dist/schema/slot-info.schema.js.map +1 -1
- package/dist/schema/websocket.schema.d.ts +1436 -640
- package/dist/schema/websocket.schema.d.ts.map +1 -1
- package/dist/schema/websocket.schema.js +2 -1
- package/dist/schema/websocket.schema.js.map +1 -1
- package/package.json +1 -1
- package/src/schema/__tests__/radio-power-support.test.ts +26 -0
- package/src/schema/__tests__/realtime-settings.schema.test.ts +142 -0
- package/src/schema/desktop-https.schema.ts +3 -1
- package/src/schema/openwebrx.schema.ts +1 -1
- package/src/schema/plugin.schema.ts +44 -3
- package/src/schema/radio-capability.schema.ts +25 -1
- package/src/schema/radio-power-support.ts +49 -26
- package/src/schema/radio-power.schema.ts +8 -6
- package/src/schema/realtime.schema.ts +247 -65
- package/src/schema/server-message-keys.ts +2 -2
- package/src/schema/slot-info.schema.ts +3 -1
- package/src/schema/websocket.schema.ts +3 -1
|
@@ -1,32 +1,168 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
export declare const RealtimeScopeSchema: z.ZodEnum<["radio", "openwebrx-preview"]>;
|
|
3
3
|
export type RealtimeScope = z.infer<typeof RealtimeScopeSchema>;
|
|
4
|
-
export declare const
|
|
5
|
-
export type RealtimeParticipantKind = z.infer<typeof RealtimeParticipantKindSchema>;
|
|
6
|
-
export declare const RealtimeTransportKindSchema: z.ZodEnum<["livekit", "ws-compat"]>;
|
|
4
|
+
export declare const RealtimeTransportKindSchema: z.ZodEnum<["rtc-data-audio", "ws-compat"]>;
|
|
7
5
|
export type RealtimeTransportKind = z.infer<typeof RealtimeTransportKindSchema>;
|
|
8
6
|
export declare const RealtimeSessionDirectionSchema: z.ZodEnum<["recv", "send"]>;
|
|
9
7
|
export type RealtimeSessionDirection = z.infer<typeof RealtimeSessionDirectionSchema>;
|
|
8
|
+
export declare const RealtimeAudioCodecSchema: z.ZodEnum<["opus", "pcm-s16le"]>;
|
|
9
|
+
export type RealtimeAudioCodec = z.infer<typeof RealtimeAudioCodecSchema>;
|
|
10
|
+
export declare const RealtimeAudioCodecPreferenceSchema: z.ZodEnum<["auto", "opus", "pcm"]>;
|
|
11
|
+
export type RealtimeAudioCodecPreference = z.infer<typeof RealtimeAudioCodecPreferenceSchema>;
|
|
12
|
+
export declare const DEFAULT_REALTIME_AUDIO_CODEC_PREFERENCE: RealtimeAudioCodecPreference;
|
|
13
|
+
export declare const RealtimeAudioCodecCapabilitiesSchema: z.ZodOptional<z.ZodObject<{
|
|
14
|
+
opus: z.ZodOptional<z.ZodObject<{
|
|
15
|
+
encode: z.ZodOptional<z.ZodBoolean>;
|
|
16
|
+
decode: z.ZodOptional<z.ZodBoolean>;
|
|
17
|
+
sampleRates: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
|
|
18
|
+
encodeSampleRates: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
|
|
19
|
+
decodeSampleRates: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
|
|
20
|
+
}, "strip", z.ZodTypeAny, {
|
|
21
|
+
encode?: boolean | undefined;
|
|
22
|
+
decode?: boolean | undefined;
|
|
23
|
+
sampleRates?: number[] | undefined;
|
|
24
|
+
encodeSampleRates?: number[] | undefined;
|
|
25
|
+
decodeSampleRates?: number[] | undefined;
|
|
26
|
+
}, {
|
|
27
|
+
encode?: boolean | undefined;
|
|
28
|
+
decode?: boolean | undefined;
|
|
29
|
+
sampleRates?: number[] | undefined;
|
|
30
|
+
encodeSampleRates?: number[] | undefined;
|
|
31
|
+
decodeSampleRates?: number[] | undefined;
|
|
32
|
+
}>>;
|
|
33
|
+
pcmS16le: z.ZodOptional<z.ZodBoolean>;
|
|
34
|
+
}, "strip", z.ZodTypeAny, {
|
|
35
|
+
opus?: {
|
|
36
|
+
encode?: boolean | undefined;
|
|
37
|
+
decode?: boolean | undefined;
|
|
38
|
+
sampleRates?: number[] | undefined;
|
|
39
|
+
encodeSampleRates?: number[] | undefined;
|
|
40
|
+
decodeSampleRates?: number[] | undefined;
|
|
41
|
+
} | undefined;
|
|
42
|
+
pcmS16le?: boolean | undefined;
|
|
43
|
+
}, {
|
|
44
|
+
opus?: {
|
|
45
|
+
encode?: boolean | undefined;
|
|
46
|
+
decode?: boolean | undefined;
|
|
47
|
+
sampleRates?: number[] | undefined;
|
|
48
|
+
encodeSampleRates?: number[] | undefined;
|
|
49
|
+
decodeSampleRates?: number[] | undefined;
|
|
50
|
+
} | undefined;
|
|
51
|
+
pcmS16le?: boolean | undefined;
|
|
52
|
+
}>>;
|
|
53
|
+
export type RealtimeAudioCodecCapabilities = z.infer<typeof RealtimeAudioCodecCapabilitiesSchema>;
|
|
54
|
+
export declare const ResolvedRealtimeAudioCodecPolicySchema: z.ZodObject<{
|
|
55
|
+
preference: z.ZodEnum<["auto", "opus", "pcm"]>;
|
|
56
|
+
resolvedCodec: z.ZodEnum<["opus", "pcm-s16le"]>;
|
|
57
|
+
fallbackReason: z.ZodNullable<z.ZodEnum<["not-needed", "client-forced-pcm", "client-opus-unavailable", "server-opus-unavailable", "scope-not-supported"]>>;
|
|
58
|
+
codecSampleRate: z.ZodNullable<z.ZodNumber>;
|
|
59
|
+
bitrateBps: z.ZodNullable<z.ZodNumber>;
|
|
60
|
+
frameDurationMs: z.ZodNullable<z.ZodNumber>;
|
|
61
|
+
}, "strip", z.ZodTypeAny, {
|
|
62
|
+
preference: "pcm" | "auto" | "opus";
|
|
63
|
+
resolvedCodec: "opus" | "pcm-s16le";
|
|
64
|
+
fallbackReason: "not-needed" | "client-forced-pcm" | "client-opus-unavailable" | "server-opus-unavailable" | "scope-not-supported" | null;
|
|
65
|
+
codecSampleRate: number | null;
|
|
66
|
+
bitrateBps: number | null;
|
|
67
|
+
frameDurationMs: number | null;
|
|
68
|
+
}, {
|
|
69
|
+
preference: "pcm" | "auto" | "opus";
|
|
70
|
+
resolvedCodec: "opus" | "pcm-s16le";
|
|
71
|
+
fallbackReason: "not-needed" | "client-forced-pcm" | "client-opus-unavailable" | "server-opus-unavailable" | "scope-not-supported" | null;
|
|
72
|
+
codecSampleRate: number | null;
|
|
73
|
+
bitrateBps: number | null;
|
|
74
|
+
frameDurationMs: number | null;
|
|
75
|
+
}>;
|
|
76
|
+
export type ResolvedRealtimeAudioCodecPolicy = z.infer<typeof ResolvedRealtimeAudioCodecPolicySchema>;
|
|
77
|
+
export declare const VoiceTxBufferProfileSchema: z.ZodEnum<["auto", "custom"]>;
|
|
78
|
+
export type VoiceTxBufferProfile = z.infer<typeof VoiceTxBufferProfileSchema>;
|
|
79
|
+
export declare const VoiceTxCustomTargetBufferMsSchema: z.ZodEffects<z.ZodOptional<z.ZodNumber>, number | undefined, unknown>;
|
|
80
|
+
export declare const VoiceTxBufferPreferenceSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
|
|
81
|
+
profile: z.ZodDefault<z.ZodEnum<["auto", "custom"]>>;
|
|
82
|
+
customTargetBufferMs: z.ZodEffects<z.ZodOptional<z.ZodNumber>, number | undefined, unknown>;
|
|
83
|
+
}, "strip", z.ZodTypeAny, {
|
|
84
|
+
profile: "custom" | "auto";
|
|
85
|
+
customTargetBufferMs?: number | undefined;
|
|
86
|
+
}, {
|
|
87
|
+
profile?: "custom" | "auto" | undefined;
|
|
88
|
+
customTargetBufferMs?: unknown;
|
|
89
|
+
}>, {
|
|
90
|
+
profile: "custom" | "auto";
|
|
91
|
+
customTargetBufferMs?: number | undefined;
|
|
92
|
+
}, unknown>, {
|
|
93
|
+
profile: "custom" | "auto";
|
|
94
|
+
customTargetBufferMs?: number | undefined;
|
|
95
|
+
}, unknown>;
|
|
96
|
+
export type VoiceTxBufferPreference = z.infer<typeof VoiceTxBufferPreferenceSchema>;
|
|
97
|
+
export declare const ResolvedVoiceTxBufferPolicySchema: z.ZodObject<{
|
|
98
|
+
profile: z.ZodEnum<["auto", "custom"]>;
|
|
99
|
+
targetMs: z.ZodNumber;
|
|
100
|
+
minMs: z.ZodNumber;
|
|
101
|
+
maxMs: z.ZodNumber;
|
|
102
|
+
headroomMs: z.ZodNumber;
|
|
103
|
+
staleFrameMs: z.ZodNumber;
|
|
104
|
+
uplinkMaxBufferedAudioMs: z.ZodNumber;
|
|
105
|
+
uplinkDegradedBufferedAudioMs: z.ZodNumber;
|
|
106
|
+
}, "strip", z.ZodTypeAny, {
|
|
107
|
+
profile: "custom" | "auto";
|
|
108
|
+
targetMs: number;
|
|
109
|
+
minMs: number;
|
|
110
|
+
maxMs: number;
|
|
111
|
+
headroomMs: number;
|
|
112
|
+
staleFrameMs: number;
|
|
113
|
+
uplinkMaxBufferedAudioMs: number;
|
|
114
|
+
uplinkDegradedBufferedAudioMs: number;
|
|
115
|
+
}, {
|
|
116
|
+
profile: "custom" | "auto";
|
|
117
|
+
targetMs: number;
|
|
118
|
+
minMs: number;
|
|
119
|
+
maxMs: number;
|
|
120
|
+
headroomMs: number;
|
|
121
|
+
staleFrameMs: number;
|
|
122
|
+
uplinkMaxBufferedAudioMs: number;
|
|
123
|
+
uplinkDegradedBufferedAudioMs: number;
|
|
124
|
+
}>;
|
|
125
|
+
export type ResolvedVoiceTxBufferPolicy = z.infer<typeof ResolvedVoiceTxBufferPolicySchema>;
|
|
126
|
+
export declare const DEFAULT_VOICE_TX_BUFFER_PROFILE: VoiceTxBufferProfile;
|
|
127
|
+
export declare function resolveVoiceTxBufferPolicy(preference?: VoiceTxBufferPreference | null): ResolvedVoiceTxBufferPolicy;
|
|
10
128
|
export declare const RealtimeConnectivityErrorCodeSchema: z.ZodEnum<["TOKEN_REQUEST_FAILED", "SIGNALING_UNREACHABLE", "PUBLIC_URL_MISCONFIGURED", "ICE_CONNECTION_FAILED", "NO_AUDIO_TRACK", "AUDIO_PLAYBACK_BLOCKED", "SESSION_EXPIRED_OR_INVALID", "MEDIA_DEVICE_PERMISSION_DENIED", "UNKNOWN_REALTIME_ERROR"]>;
|
|
11
129
|
export type RealtimeConnectivityErrorCode = z.infer<typeof RealtimeConnectivityErrorCodeSchema>;
|
|
12
130
|
export declare const RealtimeConnectivityHintsSchema: z.ZodObject<{
|
|
13
131
|
signalingUrl: z.ZodString;
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
132
|
+
localUdpPort: z.ZodNumber;
|
|
133
|
+
publicCandidateEnabled: z.ZodBoolean;
|
|
134
|
+
publicEndpoint: z.ZodNullable<z.ZodObject<{
|
|
135
|
+
host: z.ZodString;
|
|
136
|
+
port: z.ZodNumber;
|
|
137
|
+
}, "strip", z.ZodTypeAny, {
|
|
138
|
+
host: string;
|
|
139
|
+
port: number;
|
|
140
|
+
}, {
|
|
141
|
+
host: string;
|
|
142
|
+
port: number;
|
|
143
|
+
}>>;
|
|
144
|
+
iceServers: z.ZodArray<z.ZodString, "many">;
|
|
145
|
+
fallbackTransport: z.ZodLiteral<"ws-compat">;
|
|
18
146
|
}, "strip", z.ZodTypeAny, {
|
|
19
147
|
signalingUrl: string;
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
148
|
+
localUdpPort: number;
|
|
149
|
+
publicCandidateEnabled: boolean;
|
|
150
|
+
publicEndpoint: {
|
|
151
|
+
host: string;
|
|
152
|
+
port: number;
|
|
153
|
+
} | null;
|
|
154
|
+
iceServers: string[];
|
|
155
|
+
fallbackTransport: "ws-compat";
|
|
24
156
|
}, {
|
|
25
157
|
signalingUrl: string;
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
158
|
+
localUdpPort: number;
|
|
159
|
+
publicCandidateEnabled: boolean;
|
|
160
|
+
publicEndpoint: {
|
|
161
|
+
host: string;
|
|
162
|
+
port: number;
|
|
163
|
+
} | null;
|
|
164
|
+
iceServers: string[];
|
|
165
|
+
fallbackTransport: "ws-compat";
|
|
30
166
|
}>;
|
|
31
167
|
export type RealtimeConnectivityHints = z.infer<typeof RealtimeConnectivityHintsSchema>;
|
|
32
168
|
export declare const RealtimeConnectivityIssueSchema: z.ZodObject<{
|
|
@@ -40,7 +176,7 @@ export declare const RealtimeConnectivityIssueSchema: z.ZodObject<{
|
|
|
40
176
|
}, "strip", z.ZodTypeAny, {
|
|
41
177
|
code: "TOKEN_REQUEST_FAILED" | "SIGNALING_UNREACHABLE" | "PUBLIC_URL_MISCONFIGURED" | "ICE_CONNECTION_FAILED" | "NO_AUDIO_TRACK" | "AUDIO_PLAYBACK_BLOCKED" | "SESSION_EXPIRED_OR_INVALID" | "MEDIA_DEVICE_PERMISSION_DENIED" | "UNKNOWN_REALTIME_ERROR";
|
|
42
178
|
scope: "radio" | "openwebrx-preview";
|
|
43
|
-
stage: "
|
|
179
|
+
stage: "runtime" | "token" | "connect" | "publish" | "subscribe";
|
|
44
180
|
userMessage: string;
|
|
45
181
|
suggestions: string[];
|
|
46
182
|
technicalDetails?: string | undefined;
|
|
@@ -48,570 +184,670 @@ export declare const RealtimeConnectivityIssueSchema: z.ZodObject<{
|
|
|
48
184
|
}, {
|
|
49
185
|
code: "TOKEN_REQUEST_FAILED" | "SIGNALING_UNREACHABLE" | "PUBLIC_URL_MISCONFIGURED" | "ICE_CONNECTION_FAILED" | "NO_AUDIO_TRACK" | "AUDIO_PLAYBACK_BLOCKED" | "SESSION_EXPIRED_OR_INVALID" | "MEDIA_DEVICE_PERMISSION_DENIED" | "UNKNOWN_REALTIME_ERROR";
|
|
50
186
|
scope: "radio" | "openwebrx-preview";
|
|
51
|
-
stage: "
|
|
187
|
+
stage: "runtime" | "token" | "connect" | "publish" | "subscribe";
|
|
52
188
|
userMessage: string;
|
|
53
189
|
suggestions: string[];
|
|
54
190
|
technicalDetails?: string | undefined;
|
|
55
191
|
context?: Record<string, string> | undefined;
|
|
56
192
|
}>;
|
|
57
193
|
export type RealtimeConnectivityIssue = z.infer<typeof RealtimeConnectivityIssueSchema>;
|
|
58
|
-
export declare const RealtimeTokenRequestSchema: z.ZodObject<{
|
|
59
|
-
scope: z.ZodEnum<["radio", "openwebrx-preview"]>;
|
|
60
|
-
publish: z.ZodOptional<z.ZodBoolean>;
|
|
61
|
-
previewSessionId: z.ZodOptional<z.ZodString>;
|
|
62
|
-
}, "strip", z.ZodTypeAny, {
|
|
63
|
-
scope: "radio" | "openwebrx-preview";
|
|
64
|
-
publish?: boolean | undefined;
|
|
65
|
-
previewSessionId?: string | undefined;
|
|
66
|
-
}, {
|
|
67
|
-
scope: "radio" | "openwebrx-preview";
|
|
68
|
-
publish?: boolean | undefined;
|
|
69
|
-
previewSessionId?: string | undefined;
|
|
70
|
-
}>;
|
|
71
|
-
export type RealtimeTokenRequest = z.infer<typeof RealtimeTokenRequestSchema>;
|
|
72
194
|
export declare const RealtimeSessionRequestSchema: z.ZodObject<{
|
|
73
195
|
scope: z.ZodEnum<["radio", "openwebrx-preview"]>;
|
|
74
196
|
direction: z.ZodEnum<["recv", "send"]>;
|
|
75
197
|
previewSessionId: z.ZodOptional<z.ZodString>;
|
|
76
|
-
transportOverride: z.ZodOptional<z.ZodEnum<["
|
|
198
|
+
transportOverride: z.ZodOptional<z.ZodEnum<["rtc-data-audio", "ws-compat"]>>;
|
|
199
|
+
voiceTxBufferPreference: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodObject<{
|
|
200
|
+
profile: z.ZodDefault<z.ZodEnum<["auto", "custom"]>>;
|
|
201
|
+
customTargetBufferMs: z.ZodEffects<z.ZodOptional<z.ZodNumber>, number | undefined, unknown>;
|
|
202
|
+
}, "strip", z.ZodTypeAny, {
|
|
203
|
+
profile: "custom" | "auto";
|
|
204
|
+
customTargetBufferMs?: number | undefined;
|
|
205
|
+
}, {
|
|
206
|
+
profile?: "custom" | "auto" | undefined;
|
|
207
|
+
customTargetBufferMs?: unknown;
|
|
208
|
+
}>, {
|
|
209
|
+
profile: "custom" | "auto";
|
|
210
|
+
customTargetBufferMs?: number | undefined;
|
|
211
|
+
}, unknown>, {
|
|
212
|
+
profile: "custom" | "auto";
|
|
213
|
+
customTargetBufferMs?: number | undefined;
|
|
214
|
+
}, unknown>>;
|
|
215
|
+
audioCodecPreference: z.ZodDefault<z.ZodEnum<["auto", "opus", "pcm"]>>;
|
|
216
|
+
audioCodecCapabilities: z.ZodOptional<z.ZodObject<{
|
|
217
|
+
opus: z.ZodOptional<z.ZodObject<{
|
|
218
|
+
encode: z.ZodOptional<z.ZodBoolean>;
|
|
219
|
+
decode: z.ZodOptional<z.ZodBoolean>;
|
|
220
|
+
sampleRates: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
|
|
221
|
+
encodeSampleRates: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
|
|
222
|
+
decodeSampleRates: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
|
|
223
|
+
}, "strip", z.ZodTypeAny, {
|
|
224
|
+
encode?: boolean | undefined;
|
|
225
|
+
decode?: boolean | undefined;
|
|
226
|
+
sampleRates?: number[] | undefined;
|
|
227
|
+
encodeSampleRates?: number[] | undefined;
|
|
228
|
+
decodeSampleRates?: number[] | undefined;
|
|
229
|
+
}, {
|
|
230
|
+
encode?: boolean | undefined;
|
|
231
|
+
decode?: boolean | undefined;
|
|
232
|
+
sampleRates?: number[] | undefined;
|
|
233
|
+
encodeSampleRates?: number[] | undefined;
|
|
234
|
+
decodeSampleRates?: number[] | undefined;
|
|
235
|
+
}>>;
|
|
236
|
+
pcmS16le: z.ZodOptional<z.ZodBoolean>;
|
|
237
|
+
}, "strip", z.ZodTypeAny, {
|
|
238
|
+
opus?: {
|
|
239
|
+
encode?: boolean | undefined;
|
|
240
|
+
decode?: boolean | undefined;
|
|
241
|
+
sampleRates?: number[] | undefined;
|
|
242
|
+
encodeSampleRates?: number[] | undefined;
|
|
243
|
+
decodeSampleRates?: number[] | undefined;
|
|
244
|
+
} | undefined;
|
|
245
|
+
pcmS16le?: boolean | undefined;
|
|
246
|
+
}, {
|
|
247
|
+
opus?: {
|
|
248
|
+
encode?: boolean | undefined;
|
|
249
|
+
decode?: boolean | undefined;
|
|
250
|
+
sampleRates?: number[] | undefined;
|
|
251
|
+
encodeSampleRates?: number[] | undefined;
|
|
252
|
+
decodeSampleRates?: number[] | undefined;
|
|
253
|
+
} | undefined;
|
|
254
|
+
pcmS16le?: boolean | undefined;
|
|
255
|
+
}>>;
|
|
77
256
|
}, "strip", z.ZodTypeAny, {
|
|
78
257
|
scope: "radio" | "openwebrx-preview";
|
|
79
258
|
direction: "recv" | "send";
|
|
259
|
+
audioCodecPreference: "pcm" | "auto" | "opus";
|
|
80
260
|
previewSessionId?: string | undefined;
|
|
81
|
-
transportOverride?: "
|
|
261
|
+
transportOverride?: "rtc-data-audio" | "ws-compat" | undefined;
|
|
262
|
+
voiceTxBufferPreference?: {
|
|
263
|
+
profile: "custom" | "auto";
|
|
264
|
+
customTargetBufferMs?: number | undefined;
|
|
265
|
+
} | undefined;
|
|
266
|
+
audioCodecCapabilities?: {
|
|
267
|
+
opus?: {
|
|
268
|
+
encode?: boolean | undefined;
|
|
269
|
+
decode?: boolean | undefined;
|
|
270
|
+
sampleRates?: number[] | undefined;
|
|
271
|
+
encodeSampleRates?: number[] | undefined;
|
|
272
|
+
decodeSampleRates?: number[] | undefined;
|
|
273
|
+
} | undefined;
|
|
274
|
+
pcmS16le?: boolean | undefined;
|
|
275
|
+
} | undefined;
|
|
82
276
|
}, {
|
|
83
277
|
scope: "radio" | "openwebrx-preview";
|
|
84
278
|
direction: "recv" | "send";
|
|
85
279
|
previewSessionId?: string | undefined;
|
|
86
|
-
transportOverride?: "
|
|
280
|
+
transportOverride?: "rtc-data-audio" | "ws-compat" | undefined;
|
|
281
|
+
voiceTxBufferPreference?: unknown;
|
|
282
|
+
audioCodecPreference?: "pcm" | "auto" | "opus" | undefined;
|
|
283
|
+
audioCodecCapabilities?: {
|
|
284
|
+
opus?: {
|
|
285
|
+
encode?: boolean | undefined;
|
|
286
|
+
decode?: boolean | undefined;
|
|
287
|
+
sampleRates?: number[] | undefined;
|
|
288
|
+
encodeSampleRates?: number[] | undefined;
|
|
289
|
+
decodeSampleRates?: number[] | undefined;
|
|
290
|
+
} | undefined;
|
|
291
|
+
pcmS16le?: boolean | undefined;
|
|
292
|
+
} | undefined;
|
|
87
293
|
}>;
|
|
88
294
|
export type RealtimeSessionRequest = z.infer<typeof RealtimeSessionRequestSchema>;
|
|
89
|
-
export declare const RealtimeParticipantMetadataSchema: z.ZodObject<{
|
|
90
|
-
role: z.ZodString;
|
|
91
|
-
tokenId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
92
|
-
operatorIds: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
93
|
-
clientKind: z.ZodString;
|
|
94
|
-
participantKind: z.ZodEnum<["listener", "publisher", "bridge"]>;
|
|
95
|
-
scope: z.ZodEnum<["radio", "openwebrx-preview"]>;
|
|
96
|
-
previewSessionId: z.ZodOptional<z.ZodString>;
|
|
97
|
-
}, "strip", z.ZodTypeAny, {
|
|
98
|
-
scope: "radio" | "openwebrx-preview";
|
|
99
|
-
role: string;
|
|
100
|
-
clientKind: string;
|
|
101
|
-
participantKind: "listener" | "publisher" | "bridge";
|
|
102
|
-
operatorIds?: string[] | undefined;
|
|
103
|
-
tokenId?: string | null | undefined;
|
|
104
|
-
previewSessionId?: string | undefined;
|
|
105
|
-
}, {
|
|
106
|
-
scope: "radio" | "openwebrx-preview";
|
|
107
|
-
role: string;
|
|
108
|
-
clientKind: string;
|
|
109
|
-
participantKind: "listener" | "publisher" | "bridge";
|
|
110
|
-
operatorIds?: string[] | undefined;
|
|
111
|
-
tokenId?: string | null | undefined;
|
|
112
|
-
previewSessionId?: string | undefined;
|
|
113
|
-
}>;
|
|
114
|
-
export type RealtimeParticipantMetadata = z.infer<typeof RealtimeParticipantMetadataSchema>;
|
|
115
|
-
export declare const RealtimeTokenResponseSchema: z.ZodObject<{
|
|
116
|
-
url: z.ZodString;
|
|
117
|
-
roomName: z.ZodString;
|
|
118
|
-
token: z.ZodString;
|
|
119
|
-
participantIdentity: z.ZodString;
|
|
120
|
-
participantName: z.ZodString;
|
|
121
|
-
participantMetadata: z.ZodObject<{
|
|
122
|
-
role: z.ZodString;
|
|
123
|
-
tokenId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
124
|
-
operatorIds: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
125
|
-
clientKind: z.ZodString;
|
|
126
|
-
participantKind: z.ZodEnum<["listener", "publisher", "bridge"]>;
|
|
127
|
-
scope: z.ZodEnum<["radio", "openwebrx-preview"]>;
|
|
128
|
-
previewSessionId: z.ZodOptional<z.ZodString>;
|
|
129
|
-
}, "strip", z.ZodTypeAny, {
|
|
130
|
-
scope: "radio" | "openwebrx-preview";
|
|
131
|
-
role: string;
|
|
132
|
-
clientKind: string;
|
|
133
|
-
participantKind: "listener" | "publisher" | "bridge";
|
|
134
|
-
operatorIds?: string[] | undefined;
|
|
135
|
-
tokenId?: string | null | undefined;
|
|
136
|
-
previewSessionId?: string | undefined;
|
|
137
|
-
}, {
|
|
138
|
-
scope: "radio" | "openwebrx-preview";
|
|
139
|
-
role: string;
|
|
140
|
-
clientKind: string;
|
|
141
|
-
participantKind: "listener" | "publisher" | "bridge";
|
|
142
|
-
operatorIds?: string[] | undefined;
|
|
143
|
-
tokenId?: string | null | undefined;
|
|
144
|
-
previewSessionId?: string | undefined;
|
|
145
|
-
}>;
|
|
146
|
-
connectivityHints: z.ZodObject<{
|
|
147
|
-
signalingUrl: z.ZodString;
|
|
148
|
-
signalingPort: z.ZodNumber;
|
|
149
|
-
rtcTcpPort: z.ZodNumber;
|
|
150
|
-
udpPortRange: z.ZodString;
|
|
151
|
-
publicUrlOverrideActive: z.ZodBoolean;
|
|
152
|
-
}, "strip", z.ZodTypeAny, {
|
|
153
|
-
signalingUrl: string;
|
|
154
|
-
signalingPort: number;
|
|
155
|
-
rtcTcpPort: number;
|
|
156
|
-
udpPortRange: string;
|
|
157
|
-
publicUrlOverrideActive: boolean;
|
|
158
|
-
}, {
|
|
159
|
-
signalingUrl: string;
|
|
160
|
-
signalingPort: number;
|
|
161
|
-
rtcTcpPort: number;
|
|
162
|
-
udpPortRange: string;
|
|
163
|
-
publicUrlOverrideActive: boolean;
|
|
164
|
-
}>;
|
|
165
|
-
}, "strip", z.ZodTypeAny, {
|
|
166
|
-
url: string;
|
|
167
|
-
token: string;
|
|
168
|
-
roomName: string;
|
|
169
|
-
participantIdentity: string;
|
|
170
|
-
participantName: string;
|
|
171
|
-
participantMetadata: {
|
|
172
|
-
scope: "radio" | "openwebrx-preview";
|
|
173
|
-
role: string;
|
|
174
|
-
clientKind: string;
|
|
175
|
-
participantKind: "listener" | "publisher" | "bridge";
|
|
176
|
-
operatorIds?: string[] | undefined;
|
|
177
|
-
tokenId?: string | null | undefined;
|
|
178
|
-
previewSessionId?: string | undefined;
|
|
179
|
-
};
|
|
180
|
-
connectivityHints: {
|
|
181
|
-
signalingUrl: string;
|
|
182
|
-
signalingPort: number;
|
|
183
|
-
rtcTcpPort: number;
|
|
184
|
-
udpPortRange: string;
|
|
185
|
-
publicUrlOverrideActive: boolean;
|
|
186
|
-
};
|
|
187
|
-
}, {
|
|
188
|
-
url: string;
|
|
189
|
-
token: string;
|
|
190
|
-
roomName: string;
|
|
191
|
-
participantIdentity: string;
|
|
192
|
-
participantName: string;
|
|
193
|
-
participantMetadata: {
|
|
194
|
-
scope: "radio" | "openwebrx-preview";
|
|
195
|
-
role: string;
|
|
196
|
-
clientKind: string;
|
|
197
|
-
participantKind: "listener" | "publisher" | "bridge";
|
|
198
|
-
operatorIds?: string[] | undefined;
|
|
199
|
-
tokenId?: string | null | undefined;
|
|
200
|
-
previewSessionId?: string | undefined;
|
|
201
|
-
};
|
|
202
|
-
connectivityHints: {
|
|
203
|
-
signalingUrl: string;
|
|
204
|
-
signalingPort: number;
|
|
205
|
-
rtcTcpPort: number;
|
|
206
|
-
udpPortRange: string;
|
|
207
|
-
publicUrlOverrideActive: boolean;
|
|
208
|
-
};
|
|
209
|
-
}>;
|
|
210
|
-
export type RealtimeTokenResponse = z.infer<typeof RealtimeTokenResponseSchema>;
|
|
211
295
|
export declare const RealtimeTransportOfferSchema: z.ZodObject<{
|
|
212
|
-
transport: z.ZodEnum<["
|
|
296
|
+
transport: z.ZodEnum<["rtc-data-audio", "ws-compat"]>;
|
|
213
297
|
direction: z.ZodEnum<["recv", "send"]>;
|
|
214
298
|
url: z.ZodString;
|
|
215
299
|
token: z.ZodString;
|
|
216
300
|
participantIdentity: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
217
301
|
participantName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
218
|
-
roomName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
219
302
|
}, "strip", z.ZodTypeAny, {
|
|
220
303
|
url: string;
|
|
221
304
|
token: string;
|
|
222
305
|
direction: "recv" | "send";
|
|
223
|
-
transport: "
|
|
224
|
-
roomName?: string | null | undefined;
|
|
306
|
+
transport: "rtc-data-audio" | "ws-compat";
|
|
225
307
|
participantIdentity?: string | null | undefined;
|
|
226
308
|
participantName?: string | null | undefined;
|
|
227
309
|
}, {
|
|
228
310
|
url: string;
|
|
229
311
|
token: string;
|
|
230
312
|
direction: "recv" | "send";
|
|
231
|
-
transport: "
|
|
232
|
-
roomName?: string | null | undefined;
|
|
313
|
+
transport: "rtc-data-audio" | "ws-compat";
|
|
233
314
|
participantIdentity?: string | null | undefined;
|
|
234
315
|
participantName?: string | null | undefined;
|
|
235
316
|
}>;
|
|
236
317
|
export type RealtimeTransportOffer = z.infer<typeof RealtimeTransportOfferSchema>;
|
|
237
318
|
export declare const RealtimeTransportPolicySchema: z.ZodEnum<["auto", "force-compat"]>;
|
|
238
319
|
export type RealtimeTransportPolicy = z.infer<typeof RealtimeTransportPolicySchema>;
|
|
239
|
-
export declare const
|
|
240
|
-
export type
|
|
320
|
+
export declare const RtcDataAudioPublicHostSchema: z.ZodEffects<z.ZodUnion<[z.ZodEffects<z.ZodLiteral<"">, null, "">, z.ZodEffects<z.ZodString, string, string>, z.ZodNull]>, string | null, unknown>;
|
|
321
|
+
export type RtcDataAudioPublicHost = z.infer<typeof RtcDataAudioPublicHostSchema>;
|
|
322
|
+
export declare const RtcDataAudioPublicUdpPortSchema: z.ZodEffects<z.ZodNullable<z.ZodNumber>, number | null, unknown>;
|
|
323
|
+
export type RtcDataAudioPublicUdpPort = z.infer<typeof RtcDataAudioPublicUdpPortSchema>;
|
|
241
324
|
export declare const RealtimeSessionResponseSchema: z.ZodObject<{
|
|
242
325
|
scope: z.ZodEnum<["radio", "openwebrx-preview"]>;
|
|
243
326
|
direction: z.ZodEnum<["recv", "send"]>;
|
|
244
|
-
preferredTransport: z.ZodEnum<["
|
|
327
|
+
preferredTransport: z.ZodEnum<["rtc-data-audio", "ws-compat"]>;
|
|
245
328
|
effectiveTransportPolicy: z.ZodEnum<["auto", "force-compat"]>;
|
|
246
|
-
selectionReason: z.ZodEnum<["client-override", "server-policy", "
|
|
329
|
+
selectionReason: z.ZodEnum<["client-override", "server-policy", "default-rtc-data-audio", "rtc-data-audio-unavailable"]>;
|
|
247
330
|
forcedCompatibilityMode: z.ZodBoolean;
|
|
248
331
|
offers: z.ZodArray<z.ZodObject<{
|
|
249
|
-
transport: z.ZodEnum<["
|
|
332
|
+
transport: z.ZodEnum<["rtc-data-audio", "ws-compat"]>;
|
|
250
333
|
direction: z.ZodEnum<["recv", "send"]>;
|
|
251
334
|
url: z.ZodString;
|
|
252
335
|
token: z.ZodString;
|
|
253
336
|
participantIdentity: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
254
337
|
participantName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
255
|
-
roomName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
256
338
|
}, "strip", z.ZodTypeAny, {
|
|
257
339
|
url: string;
|
|
258
340
|
token: string;
|
|
259
341
|
direction: "recv" | "send";
|
|
260
|
-
transport: "
|
|
261
|
-
roomName?: string | null | undefined;
|
|
342
|
+
transport: "rtc-data-audio" | "ws-compat";
|
|
262
343
|
participantIdentity?: string | null | undefined;
|
|
263
344
|
participantName?: string | null | undefined;
|
|
264
345
|
}, {
|
|
265
346
|
url: string;
|
|
266
347
|
token: string;
|
|
267
348
|
direction: "recv" | "send";
|
|
268
|
-
transport: "
|
|
269
|
-
roomName?: string | null | undefined;
|
|
349
|
+
transport: "rtc-data-audio" | "ws-compat";
|
|
270
350
|
participantIdentity?: string | null | undefined;
|
|
271
351
|
participantName?: string | null | undefined;
|
|
272
352
|
}>, "many">;
|
|
273
353
|
connectivityHints: z.ZodObject<{
|
|
274
354
|
signalingUrl: z.ZodString;
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
355
|
+
localUdpPort: z.ZodNumber;
|
|
356
|
+
publicCandidateEnabled: z.ZodBoolean;
|
|
357
|
+
publicEndpoint: z.ZodNullable<z.ZodObject<{
|
|
358
|
+
host: z.ZodString;
|
|
359
|
+
port: z.ZodNumber;
|
|
360
|
+
}, "strip", z.ZodTypeAny, {
|
|
361
|
+
host: string;
|
|
362
|
+
port: number;
|
|
363
|
+
}, {
|
|
364
|
+
host: string;
|
|
365
|
+
port: number;
|
|
366
|
+
}>>;
|
|
367
|
+
iceServers: z.ZodArray<z.ZodString, "many">;
|
|
368
|
+
fallbackTransport: z.ZodLiteral<"ws-compat">;
|
|
279
369
|
}, "strip", z.ZodTypeAny, {
|
|
280
370
|
signalingUrl: string;
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
371
|
+
localUdpPort: number;
|
|
372
|
+
publicCandidateEnabled: boolean;
|
|
373
|
+
publicEndpoint: {
|
|
374
|
+
host: string;
|
|
375
|
+
port: number;
|
|
376
|
+
} | null;
|
|
377
|
+
iceServers: string[];
|
|
378
|
+
fallbackTransport: "ws-compat";
|
|
285
379
|
}, {
|
|
286
380
|
signalingUrl: string;
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
381
|
+
localUdpPort: number;
|
|
382
|
+
publicCandidateEnabled: boolean;
|
|
383
|
+
publicEndpoint: {
|
|
384
|
+
host: string;
|
|
385
|
+
port: number;
|
|
386
|
+
} | null;
|
|
387
|
+
iceServers: string[];
|
|
388
|
+
fallbackTransport: "ws-compat";
|
|
389
|
+
}>;
|
|
390
|
+
voiceTxBufferPolicy: z.ZodOptional<z.ZodObject<{
|
|
391
|
+
profile: z.ZodEnum<["auto", "custom"]>;
|
|
392
|
+
targetMs: z.ZodNumber;
|
|
393
|
+
minMs: z.ZodNumber;
|
|
394
|
+
maxMs: z.ZodNumber;
|
|
395
|
+
headroomMs: z.ZodNumber;
|
|
396
|
+
staleFrameMs: z.ZodNumber;
|
|
397
|
+
uplinkMaxBufferedAudioMs: z.ZodNumber;
|
|
398
|
+
uplinkDegradedBufferedAudioMs: z.ZodNumber;
|
|
399
|
+
}, "strip", z.ZodTypeAny, {
|
|
400
|
+
profile: "custom" | "auto";
|
|
401
|
+
targetMs: number;
|
|
402
|
+
minMs: number;
|
|
403
|
+
maxMs: number;
|
|
404
|
+
headroomMs: number;
|
|
405
|
+
staleFrameMs: number;
|
|
406
|
+
uplinkMaxBufferedAudioMs: number;
|
|
407
|
+
uplinkDegradedBufferedAudioMs: number;
|
|
408
|
+
}, {
|
|
409
|
+
profile: "custom" | "auto";
|
|
410
|
+
targetMs: number;
|
|
411
|
+
minMs: number;
|
|
412
|
+
maxMs: number;
|
|
413
|
+
headroomMs: number;
|
|
414
|
+
staleFrameMs: number;
|
|
415
|
+
uplinkMaxBufferedAudioMs: number;
|
|
416
|
+
uplinkDegradedBufferedAudioMs: number;
|
|
417
|
+
}>>;
|
|
418
|
+
audioCodecPolicy: z.ZodObject<{
|
|
419
|
+
preference: z.ZodEnum<["auto", "opus", "pcm"]>;
|
|
420
|
+
resolvedCodec: z.ZodEnum<["opus", "pcm-s16le"]>;
|
|
421
|
+
fallbackReason: z.ZodNullable<z.ZodEnum<["not-needed", "client-forced-pcm", "client-opus-unavailable", "server-opus-unavailable", "scope-not-supported"]>>;
|
|
422
|
+
codecSampleRate: z.ZodNullable<z.ZodNumber>;
|
|
423
|
+
bitrateBps: z.ZodNullable<z.ZodNumber>;
|
|
424
|
+
frameDurationMs: z.ZodNullable<z.ZodNumber>;
|
|
425
|
+
}, "strip", z.ZodTypeAny, {
|
|
426
|
+
preference: "pcm" | "auto" | "opus";
|
|
427
|
+
resolvedCodec: "opus" | "pcm-s16le";
|
|
428
|
+
fallbackReason: "not-needed" | "client-forced-pcm" | "client-opus-unavailable" | "server-opus-unavailable" | "scope-not-supported" | null;
|
|
429
|
+
codecSampleRate: number | null;
|
|
430
|
+
bitrateBps: number | null;
|
|
431
|
+
frameDurationMs: number | null;
|
|
432
|
+
}, {
|
|
433
|
+
preference: "pcm" | "auto" | "opus";
|
|
434
|
+
resolvedCodec: "opus" | "pcm-s16le";
|
|
435
|
+
fallbackReason: "not-needed" | "client-forced-pcm" | "client-opus-unavailable" | "server-opus-unavailable" | "scope-not-supported" | null;
|
|
436
|
+
codecSampleRate: number | null;
|
|
437
|
+
bitrateBps: number | null;
|
|
438
|
+
frameDurationMs: number | null;
|
|
291
439
|
}>;
|
|
292
440
|
}, "strip", z.ZodTypeAny, {
|
|
293
441
|
scope: "radio" | "openwebrx-preview";
|
|
294
442
|
direction: "recv" | "send";
|
|
295
|
-
|
|
296
|
-
signalingUrl: string;
|
|
297
|
-
signalingPort: number;
|
|
298
|
-
rtcTcpPort: number;
|
|
299
|
-
udpPortRange: string;
|
|
300
|
-
publicUrlOverrideActive: boolean;
|
|
301
|
-
};
|
|
302
|
-
preferredTransport: "livekit" | "ws-compat";
|
|
443
|
+
preferredTransport: "rtc-data-audio" | "ws-compat";
|
|
303
444
|
effectiveTransportPolicy: "auto" | "force-compat";
|
|
304
|
-
selectionReason: "client-override" | "server-policy" | "
|
|
445
|
+
selectionReason: "client-override" | "server-policy" | "default-rtc-data-audio" | "rtc-data-audio-unavailable";
|
|
305
446
|
forcedCompatibilityMode: boolean;
|
|
306
447
|
offers: {
|
|
307
448
|
url: string;
|
|
308
449
|
token: string;
|
|
309
450
|
direction: "recv" | "send";
|
|
310
|
-
transport: "
|
|
311
|
-
roomName?: string | null | undefined;
|
|
451
|
+
transport: "rtc-data-audio" | "ws-compat";
|
|
312
452
|
participantIdentity?: string | null | undefined;
|
|
313
453
|
participantName?: string | null | undefined;
|
|
314
454
|
}[];
|
|
315
|
-
}, {
|
|
316
|
-
scope: "radio" | "openwebrx-preview";
|
|
317
|
-
direction: "recv" | "send";
|
|
318
455
|
connectivityHints: {
|
|
319
456
|
signalingUrl: string;
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
457
|
+
localUdpPort: number;
|
|
458
|
+
publicCandidateEnabled: boolean;
|
|
459
|
+
publicEndpoint: {
|
|
460
|
+
host: string;
|
|
461
|
+
port: number;
|
|
462
|
+
} | null;
|
|
463
|
+
iceServers: string[];
|
|
464
|
+
fallbackTransport: "ws-compat";
|
|
465
|
+
};
|
|
466
|
+
audioCodecPolicy: {
|
|
467
|
+
preference: "pcm" | "auto" | "opus";
|
|
468
|
+
resolvedCodec: "opus" | "pcm-s16le";
|
|
469
|
+
fallbackReason: "not-needed" | "client-forced-pcm" | "client-opus-unavailable" | "server-opus-unavailable" | "scope-not-supported" | null;
|
|
470
|
+
codecSampleRate: number | null;
|
|
471
|
+
bitrateBps: number | null;
|
|
472
|
+
frameDurationMs: number | null;
|
|
324
473
|
};
|
|
325
|
-
|
|
474
|
+
voiceTxBufferPolicy?: {
|
|
475
|
+
profile: "custom" | "auto";
|
|
476
|
+
targetMs: number;
|
|
477
|
+
minMs: number;
|
|
478
|
+
maxMs: number;
|
|
479
|
+
headroomMs: number;
|
|
480
|
+
staleFrameMs: number;
|
|
481
|
+
uplinkMaxBufferedAudioMs: number;
|
|
482
|
+
uplinkDegradedBufferedAudioMs: number;
|
|
483
|
+
} | undefined;
|
|
484
|
+
}, {
|
|
485
|
+
scope: "radio" | "openwebrx-preview";
|
|
486
|
+
direction: "recv" | "send";
|
|
487
|
+
preferredTransport: "rtc-data-audio" | "ws-compat";
|
|
326
488
|
effectiveTransportPolicy: "auto" | "force-compat";
|
|
327
|
-
selectionReason: "client-override" | "server-policy" | "
|
|
489
|
+
selectionReason: "client-override" | "server-policy" | "default-rtc-data-audio" | "rtc-data-audio-unavailable";
|
|
328
490
|
forcedCompatibilityMode: boolean;
|
|
329
491
|
offers: {
|
|
330
492
|
url: string;
|
|
331
493
|
token: string;
|
|
332
494
|
direction: "recv" | "send";
|
|
333
|
-
transport: "
|
|
334
|
-
roomName?: string | null | undefined;
|
|
495
|
+
transport: "rtc-data-audio" | "ws-compat";
|
|
335
496
|
participantIdentity?: string | null | undefined;
|
|
336
497
|
participantName?: string | null | undefined;
|
|
337
498
|
}[];
|
|
499
|
+
connectivityHints: {
|
|
500
|
+
signalingUrl: string;
|
|
501
|
+
localUdpPort: number;
|
|
502
|
+
publicCandidateEnabled: boolean;
|
|
503
|
+
publicEndpoint: {
|
|
504
|
+
host: string;
|
|
505
|
+
port: number;
|
|
506
|
+
} | null;
|
|
507
|
+
iceServers: string[];
|
|
508
|
+
fallbackTransport: "ws-compat";
|
|
509
|
+
};
|
|
510
|
+
audioCodecPolicy: {
|
|
511
|
+
preference: "pcm" | "auto" | "opus";
|
|
512
|
+
resolvedCodec: "opus" | "pcm-s16le";
|
|
513
|
+
fallbackReason: "not-needed" | "client-forced-pcm" | "client-opus-unavailable" | "server-opus-unavailable" | "scope-not-supported" | null;
|
|
514
|
+
codecSampleRate: number | null;
|
|
515
|
+
bitrateBps: number | null;
|
|
516
|
+
frameDurationMs: number | null;
|
|
517
|
+
};
|
|
518
|
+
voiceTxBufferPolicy?: {
|
|
519
|
+
profile: "custom" | "auto";
|
|
520
|
+
targetMs: number;
|
|
521
|
+
minMs: number;
|
|
522
|
+
maxMs: number;
|
|
523
|
+
headroomMs: number;
|
|
524
|
+
staleFrameMs: number;
|
|
525
|
+
uplinkMaxBufferedAudioMs: number;
|
|
526
|
+
uplinkDegradedBufferedAudioMs: number;
|
|
527
|
+
} | undefined;
|
|
338
528
|
}>;
|
|
339
529
|
export type RealtimeSessionResponse = z.infer<typeof RealtimeSessionResponseSchema>;
|
|
340
530
|
export declare const RealtimeSettingsSchema: z.ZodObject<{
|
|
341
|
-
publicWsUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
342
531
|
transportPolicy: z.ZodOptional<z.ZodEnum<["auto", "force-compat"]>>;
|
|
343
|
-
|
|
344
|
-
|
|
532
|
+
rtcDataAudioPublicHost: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodEffects<z.ZodLiteral<"">, null, "">, z.ZodEffects<z.ZodString, string, string>, z.ZodNull]>, string | null, unknown>>;
|
|
533
|
+
rtcDataAudioPublicUdpPort: z.ZodOptional<z.ZodEffects<z.ZodNullable<z.ZodNumber>, number | null, unknown>>;
|
|
345
534
|
}, "strip", z.ZodTypeAny, {
|
|
346
|
-
publicWsUrl?: string | null | undefined;
|
|
347
535
|
transportPolicy?: "auto" | "force-compat" | undefined;
|
|
348
|
-
|
|
349
|
-
|
|
536
|
+
rtcDataAudioPublicHost?: string | null | undefined;
|
|
537
|
+
rtcDataAudioPublicUdpPort?: number | null | undefined;
|
|
350
538
|
}, {
|
|
351
|
-
publicWsUrl?: string | null | undefined;
|
|
352
539
|
transportPolicy?: "auto" | "force-compat" | undefined;
|
|
353
|
-
|
|
354
|
-
|
|
540
|
+
rtcDataAudioPublicHost?: unknown;
|
|
541
|
+
rtcDataAudioPublicUdpPort?: unknown;
|
|
355
542
|
}>;
|
|
356
543
|
export type RealtimeSettings = z.infer<typeof RealtimeSettingsSchema>;
|
|
357
|
-
export declare const
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
544
|
+
export declare const RealtimeRtcDataAudioRuntimeSchema: z.ZodObject<{
|
|
545
|
+
localUdpPort: z.ZodNumber;
|
|
546
|
+
publicCandidateEnabled: z.ZodBoolean;
|
|
547
|
+
publicEndpoint: z.ZodNullable<z.ZodObject<{
|
|
548
|
+
host: z.ZodString;
|
|
549
|
+
port: z.ZodNumber;
|
|
550
|
+
}, "strip", z.ZodTypeAny, {
|
|
551
|
+
host: string;
|
|
552
|
+
port: number;
|
|
553
|
+
}, {
|
|
554
|
+
host: string;
|
|
555
|
+
port: number;
|
|
556
|
+
}>>;
|
|
366
557
|
}, "strip", z.ZodTypeAny, {
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
558
|
+
localUdpPort: number;
|
|
559
|
+
publicCandidateEnabled: boolean;
|
|
560
|
+
publicEndpoint: {
|
|
561
|
+
host: string;
|
|
562
|
+
port: number;
|
|
563
|
+
} | null;
|
|
373
564
|
}, {
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
565
|
+
localUdpPort: number;
|
|
566
|
+
publicCandidateEnabled: boolean;
|
|
567
|
+
publicEndpoint: {
|
|
568
|
+
host: string;
|
|
569
|
+
port: number;
|
|
570
|
+
} | null;
|
|
380
571
|
}>;
|
|
381
|
-
export type
|
|
572
|
+
export type RealtimeRtcDataAudioRuntime = z.infer<typeof RealtimeRtcDataAudioRuntimeSchema>;
|
|
382
573
|
export declare const RealtimeSettingsRuntimeSchema: z.ZodObject<{
|
|
383
|
-
liveKitEnabled: z.ZodBoolean;
|
|
384
574
|
connectivityHints: z.ZodObject<{
|
|
385
575
|
signalingUrl: z.ZodString;
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
576
|
+
localUdpPort: z.ZodNumber;
|
|
577
|
+
publicCandidateEnabled: z.ZodBoolean;
|
|
578
|
+
publicEndpoint: z.ZodNullable<z.ZodObject<{
|
|
579
|
+
host: z.ZodString;
|
|
580
|
+
port: z.ZodNumber;
|
|
581
|
+
}, "strip", z.ZodTypeAny, {
|
|
582
|
+
host: string;
|
|
583
|
+
port: number;
|
|
584
|
+
}, {
|
|
585
|
+
host: string;
|
|
586
|
+
port: number;
|
|
587
|
+
}>>;
|
|
588
|
+
iceServers: z.ZodArray<z.ZodString, "many">;
|
|
589
|
+
fallbackTransport: z.ZodLiteral<"ws-compat">;
|
|
390
590
|
}, "strip", z.ZodTypeAny, {
|
|
391
591
|
signalingUrl: string;
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
592
|
+
localUdpPort: number;
|
|
593
|
+
publicCandidateEnabled: boolean;
|
|
594
|
+
publicEndpoint: {
|
|
595
|
+
host: string;
|
|
596
|
+
port: number;
|
|
597
|
+
} | null;
|
|
598
|
+
iceServers: string[];
|
|
599
|
+
fallbackTransport: "ws-compat";
|
|
396
600
|
}, {
|
|
397
601
|
signalingUrl: string;
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
602
|
+
localUdpPort: number;
|
|
603
|
+
publicCandidateEnabled: boolean;
|
|
604
|
+
publicEndpoint: {
|
|
605
|
+
host: string;
|
|
606
|
+
port: number;
|
|
607
|
+
} | null;
|
|
608
|
+
iceServers: string[];
|
|
609
|
+
fallbackTransport: "ws-compat";
|
|
402
610
|
}>;
|
|
403
|
-
radioReceiveTransport: z.ZodEnum<["
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
611
|
+
radioReceiveTransport: z.ZodEnum<["rtc-data-audio", "ws-compat"]>;
|
|
612
|
+
rtcDataAudio: z.ZodObject<{
|
|
613
|
+
localUdpPort: z.ZodNumber;
|
|
614
|
+
publicCandidateEnabled: z.ZodBoolean;
|
|
615
|
+
publicEndpoint: z.ZodNullable<z.ZodObject<{
|
|
616
|
+
host: z.ZodString;
|
|
617
|
+
port: z.ZodNumber;
|
|
618
|
+
}, "strip", z.ZodTypeAny, {
|
|
619
|
+
host: string;
|
|
620
|
+
port: number;
|
|
621
|
+
}, {
|
|
622
|
+
host: string;
|
|
623
|
+
port: number;
|
|
624
|
+
}>>;
|
|
413
625
|
}, "strip", z.ZodTypeAny, {
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
626
|
+
localUdpPort: number;
|
|
627
|
+
publicCandidateEnabled: boolean;
|
|
628
|
+
publicEndpoint: {
|
|
629
|
+
host: string;
|
|
630
|
+
port: number;
|
|
631
|
+
} | null;
|
|
420
632
|
}, {
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
633
|
+
localUdpPort: number;
|
|
634
|
+
publicCandidateEnabled: boolean;
|
|
635
|
+
publicEndpoint: {
|
|
636
|
+
host: string;
|
|
637
|
+
port: number;
|
|
638
|
+
} | null;
|
|
427
639
|
}>;
|
|
428
640
|
}, "strip", z.ZodTypeAny, {
|
|
429
641
|
connectivityHints: {
|
|
430
642
|
signalingUrl: string;
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
643
|
+
localUdpPort: number;
|
|
644
|
+
publicCandidateEnabled: boolean;
|
|
645
|
+
publicEndpoint: {
|
|
646
|
+
host: string;
|
|
647
|
+
port: number;
|
|
648
|
+
} | null;
|
|
649
|
+
iceServers: string[];
|
|
650
|
+
fallbackTransport: "ws-compat";
|
|
435
651
|
};
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
initialized: boolean;
|
|
445
|
-
apiKeyPreview: string | null;
|
|
446
|
-
rotatedAt: string | null;
|
|
652
|
+
radioReceiveTransport: "rtc-data-audio" | "ws-compat";
|
|
653
|
+
rtcDataAudio: {
|
|
654
|
+
localUdpPort: number;
|
|
655
|
+
publicCandidateEnabled: boolean;
|
|
656
|
+
publicEndpoint: {
|
|
657
|
+
host: string;
|
|
658
|
+
port: number;
|
|
659
|
+
} | null;
|
|
447
660
|
};
|
|
448
661
|
}, {
|
|
449
662
|
connectivityHints: {
|
|
450
663
|
signalingUrl: string;
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
664
|
+
localUdpPort: number;
|
|
665
|
+
publicCandidateEnabled: boolean;
|
|
666
|
+
publicEndpoint: {
|
|
667
|
+
host: string;
|
|
668
|
+
port: number;
|
|
669
|
+
} | null;
|
|
670
|
+
iceServers: string[];
|
|
671
|
+
fallbackTransport: "ws-compat";
|
|
455
672
|
};
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
initialized: boolean;
|
|
465
|
-
apiKeyPreview: string | null;
|
|
466
|
-
rotatedAt: string | null;
|
|
673
|
+
radioReceiveTransport: "rtc-data-audio" | "ws-compat";
|
|
674
|
+
rtcDataAudio: {
|
|
675
|
+
localUdpPort: number;
|
|
676
|
+
publicCandidateEnabled: boolean;
|
|
677
|
+
publicEndpoint: {
|
|
678
|
+
host: string;
|
|
679
|
+
port: number;
|
|
680
|
+
} | null;
|
|
467
681
|
};
|
|
468
682
|
}>;
|
|
469
683
|
export type RealtimeSettingsRuntime = z.infer<typeof RealtimeSettingsRuntimeSchema>;
|
|
470
684
|
export declare const RealtimeSettingsResponseDataSchema: z.ZodObject<{
|
|
471
|
-
publicWsUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
472
685
|
transportPolicy: z.ZodOptional<z.ZodEnum<["auto", "force-compat"]>>;
|
|
473
|
-
|
|
474
|
-
|
|
686
|
+
rtcDataAudioPublicHost: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodEffects<z.ZodLiteral<"">, null, "">, z.ZodEffects<z.ZodString, string, string>, z.ZodNull]>, string | null, unknown>>;
|
|
687
|
+
rtcDataAudioPublicUdpPort: z.ZodOptional<z.ZodEffects<z.ZodNullable<z.ZodNumber>, number | null, unknown>>;
|
|
475
688
|
} & {
|
|
476
689
|
runtime: z.ZodOptional<z.ZodObject<{
|
|
477
|
-
liveKitEnabled: z.ZodBoolean;
|
|
478
690
|
connectivityHints: z.ZodObject<{
|
|
479
691
|
signalingUrl: z.ZodString;
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
692
|
+
localUdpPort: z.ZodNumber;
|
|
693
|
+
publicCandidateEnabled: z.ZodBoolean;
|
|
694
|
+
publicEndpoint: z.ZodNullable<z.ZodObject<{
|
|
695
|
+
host: z.ZodString;
|
|
696
|
+
port: z.ZodNumber;
|
|
697
|
+
}, "strip", z.ZodTypeAny, {
|
|
698
|
+
host: string;
|
|
699
|
+
port: number;
|
|
700
|
+
}, {
|
|
701
|
+
host: string;
|
|
702
|
+
port: number;
|
|
703
|
+
}>>;
|
|
704
|
+
iceServers: z.ZodArray<z.ZodString, "many">;
|
|
705
|
+
fallbackTransport: z.ZodLiteral<"ws-compat">;
|
|
484
706
|
}, "strip", z.ZodTypeAny, {
|
|
485
707
|
signalingUrl: string;
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
708
|
+
localUdpPort: number;
|
|
709
|
+
publicCandidateEnabled: boolean;
|
|
710
|
+
publicEndpoint: {
|
|
711
|
+
host: string;
|
|
712
|
+
port: number;
|
|
713
|
+
} | null;
|
|
714
|
+
iceServers: string[];
|
|
715
|
+
fallbackTransport: "ws-compat";
|
|
490
716
|
}, {
|
|
491
717
|
signalingUrl: string;
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
718
|
+
localUdpPort: number;
|
|
719
|
+
publicCandidateEnabled: boolean;
|
|
720
|
+
publicEndpoint: {
|
|
721
|
+
host: string;
|
|
722
|
+
port: number;
|
|
723
|
+
} | null;
|
|
724
|
+
iceServers: string[];
|
|
725
|
+
fallbackTransport: "ws-compat";
|
|
496
726
|
}>;
|
|
497
|
-
radioReceiveTransport: z.ZodEnum<["
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
727
|
+
radioReceiveTransport: z.ZodEnum<["rtc-data-audio", "ws-compat"]>;
|
|
728
|
+
rtcDataAudio: z.ZodObject<{
|
|
729
|
+
localUdpPort: z.ZodNumber;
|
|
730
|
+
publicCandidateEnabled: z.ZodBoolean;
|
|
731
|
+
publicEndpoint: z.ZodNullable<z.ZodObject<{
|
|
732
|
+
host: z.ZodString;
|
|
733
|
+
port: z.ZodNumber;
|
|
734
|
+
}, "strip", z.ZodTypeAny, {
|
|
735
|
+
host: string;
|
|
736
|
+
port: number;
|
|
737
|
+
}, {
|
|
738
|
+
host: string;
|
|
739
|
+
port: number;
|
|
740
|
+
}>>;
|
|
507
741
|
}, "strip", z.ZodTypeAny, {
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
742
|
+
localUdpPort: number;
|
|
743
|
+
publicCandidateEnabled: boolean;
|
|
744
|
+
publicEndpoint: {
|
|
745
|
+
host: string;
|
|
746
|
+
port: number;
|
|
747
|
+
} | null;
|
|
514
748
|
}, {
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
749
|
+
localUdpPort: number;
|
|
750
|
+
publicCandidateEnabled: boolean;
|
|
751
|
+
publicEndpoint: {
|
|
752
|
+
host: string;
|
|
753
|
+
port: number;
|
|
754
|
+
} | null;
|
|
521
755
|
}>;
|
|
522
756
|
}, "strip", z.ZodTypeAny, {
|
|
523
757
|
connectivityHints: {
|
|
524
758
|
signalingUrl: string;
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
759
|
+
localUdpPort: number;
|
|
760
|
+
publicCandidateEnabled: boolean;
|
|
761
|
+
publicEndpoint: {
|
|
762
|
+
host: string;
|
|
763
|
+
port: number;
|
|
764
|
+
} | null;
|
|
765
|
+
iceServers: string[];
|
|
766
|
+
fallbackTransport: "ws-compat";
|
|
529
767
|
};
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
initialized: boolean;
|
|
539
|
-
apiKeyPreview: string | null;
|
|
540
|
-
rotatedAt: string | null;
|
|
768
|
+
radioReceiveTransport: "rtc-data-audio" | "ws-compat";
|
|
769
|
+
rtcDataAudio: {
|
|
770
|
+
localUdpPort: number;
|
|
771
|
+
publicCandidateEnabled: boolean;
|
|
772
|
+
publicEndpoint: {
|
|
773
|
+
host: string;
|
|
774
|
+
port: number;
|
|
775
|
+
} | null;
|
|
541
776
|
};
|
|
542
777
|
}, {
|
|
543
778
|
connectivityHints: {
|
|
544
779
|
signalingUrl: string;
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
780
|
+
localUdpPort: number;
|
|
781
|
+
publicCandidateEnabled: boolean;
|
|
782
|
+
publicEndpoint: {
|
|
783
|
+
host: string;
|
|
784
|
+
port: number;
|
|
785
|
+
} | null;
|
|
786
|
+
iceServers: string[];
|
|
787
|
+
fallbackTransport: "ws-compat";
|
|
549
788
|
};
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
initialized: boolean;
|
|
559
|
-
apiKeyPreview: string | null;
|
|
560
|
-
rotatedAt: string | null;
|
|
789
|
+
radioReceiveTransport: "rtc-data-audio" | "ws-compat";
|
|
790
|
+
rtcDataAudio: {
|
|
791
|
+
localUdpPort: number;
|
|
792
|
+
publicCandidateEnabled: boolean;
|
|
793
|
+
publicEndpoint: {
|
|
794
|
+
host: string;
|
|
795
|
+
port: number;
|
|
796
|
+
} | null;
|
|
561
797
|
};
|
|
562
798
|
}>>;
|
|
563
799
|
}, "strip", z.ZodTypeAny, {
|
|
564
800
|
runtime?: {
|
|
565
801
|
connectivityHints: {
|
|
566
802
|
signalingUrl: string;
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
803
|
+
localUdpPort: number;
|
|
804
|
+
publicCandidateEnabled: boolean;
|
|
805
|
+
publicEndpoint: {
|
|
806
|
+
host: string;
|
|
807
|
+
port: number;
|
|
808
|
+
} | null;
|
|
809
|
+
iceServers: string[];
|
|
810
|
+
fallbackTransport: "ws-compat";
|
|
571
811
|
};
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
initialized: boolean;
|
|
581
|
-
apiKeyPreview: string | null;
|
|
582
|
-
rotatedAt: string | null;
|
|
812
|
+
radioReceiveTransport: "rtc-data-audio" | "ws-compat";
|
|
813
|
+
rtcDataAudio: {
|
|
814
|
+
localUdpPort: number;
|
|
815
|
+
publicCandidateEnabled: boolean;
|
|
816
|
+
publicEndpoint: {
|
|
817
|
+
host: string;
|
|
818
|
+
port: number;
|
|
819
|
+
} | null;
|
|
583
820
|
};
|
|
584
821
|
} | undefined;
|
|
585
|
-
publicWsUrl?: string | null | undefined;
|
|
586
822
|
transportPolicy?: "auto" | "force-compat" | undefined;
|
|
587
|
-
|
|
588
|
-
|
|
823
|
+
rtcDataAudioPublicHost?: string | null | undefined;
|
|
824
|
+
rtcDataAudioPublicUdpPort?: number | null | undefined;
|
|
589
825
|
}, {
|
|
590
826
|
runtime?: {
|
|
591
827
|
connectivityHints: {
|
|
592
828
|
signalingUrl: string;
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
829
|
+
localUdpPort: number;
|
|
830
|
+
publicCandidateEnabled: boolean;
|
|
831
|
+
publicEndpoint: {
|
|
832
|
+
host: string;
|
|
833
|
+
port: number;
|
|
834
|
+
} | null;
|
|
835
|
+
iceServers: string[];
|
|
836
|
+
fallbackTransport: "ws-compat";
|
|
597
837
|
};
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
initialized: boolean;
|
|
607
|
-
apiKeyPreview: string | null;
|
|
608
|
-
rotatedAt: string | null;
|
|
838
|
+
radioReceiveTransport: "rtc-data-audio" | "ws-compat";
|
|
839
|
+
rtcDataAudio: {
|
|
840
|
+
localUdpPort: number;
|
|
841
|
+
publicCandidateEnabled: boolean;
|
|
842
|
+
publicEndpoint: {
|
|
843
|
+
host: string;
|
|
844
|
+
port: number;
|
|
845
|
+
} | null;
|
|
609
846
|
};
|
|
610
847
|
} | undefined;
|
|
611
|
-
publicWsUrl?: string | null | undefined;
|
|
612
848
|
transportPolicy?: "auto" | "force-compat" | undefined;
|
|
613
|
-
|
|
614
|
-
|
|
849
|
+
rtcDataAudioPublicHost?: unknown;
|
|
850
|
+
rtcDataAudioPublicUdpPort?: unknown;
|
|
615
851
|
}>;
|
|
616
852
|
export type RealtimeSettingsResponseData = z.infer<typeof RealtimeSettingsResponseDataSchema>;
|
|
617
853
|
export declare const RealtimeSourceStatsSchema: z.ZodObject<{
|
|
@@ -673,7 +909,7 @@ export declare const RealtimeStatsResponseSchema: z.ZodObject<{
|
|
|
673
909
|
audioLevel?: number | undefined;
|
|
674
910
|
droppedSamples?: number | undefined;
|
|
675
911
|
}>>;
|
|
676
|
-
transport: z.ZodOptional<z.ZodNullable<z.ZodEnum<["
|
|
912
|
+
transport: z.ZodOptional<z.ZodNullable<z.ZodEnum<["rtc-data-audio", "ws-compat"]>>>;
|
|
677
913
|
}, "strip", z.ZodTypeAny, {
|
|
678
914
|
scope: "radio" | "openwebrx-preview";
|
|
679
915
|
source: {
|
|
@@ -685,7 +921,7 @@ export declare const RealtimeStatsResponseSchema: z.ZodObject<{
|
|
|
685
921
|
droppedSamples?: number | undefined;
|
|
686
922
|
} | null;
|
|
687
923
|
previewSessionId?: string | null | undefined;
|
|
688
|
-
transport?: "
|
|
924
|
+
transport?: "rtc-data-audio" | "ws-compat" | null | undefined;
|
|
689
925
|
}, {
|
|
690
926
|
scope: "radio" | "openwebrx-preview";
|
|
691
927
|
source: {
|
|
@@ -697,7 +933,7 @@ export declare const RealtimeStatsResponseSchema: z.ZodObject<{
|
|
|
697
933
|
droppedSamples?: number | undefined;
|
|
698
934
|
} | null;
|
|
699
935
|
previewSessionId?: string | null | undefined;
|
|
700
|
-
transport?: "
|
|
936
|
+
transport?: "rtc-data-audio" | "ws-compat" | null | undefined;
|
|
701
937
|
}>;
|
|
702
938
|
export type RealtimeStatsResponse = z.infer<typeof RealtimeStatsResponseSchema>;
|
|
703
939
|
export declare const RealtimeVoiceTxMetricWindowSchema: z.ZodObject<{
|
|
@@ -718,7 +954,7 @@ export declare const RealtimeVoiceTxBottleneckStageSchema: z.ZodEnum<["client-ca
|
|
|
718
954
|
export type RealtimeVoiceTxBottleneckStage = z.infer<typeof RealtimeVoiceTxBottleneckStageSchema>;
|
|
719
955
|
export declare const RealtimeVoiceTxSummarySchema: z.ZodObject<{
|
|
720
956
|
active: z.ZodBoolean;
|
|
721
|
-
transport: z.ZodNullable<z.ZodEnum<["
|
|
957
|
+
transport: z.ZodNullable<z.ZodEnum<["rtc-data-audio", "ws-compat"]>>;
|
|
722
958
|
bottleneckStage: z.ZodNullable<z.ZodEnum<["client-capture", "transport", "server-ingress", "server-queue", "server-output"]>>;
|
|
723
959
|
startedAt: z.ZodNullable<z.ZodNumber>;
|
|
724
960
|
updatedAt: z.ZodNullable<z.ZodNumber>;
|
|
@@ -728,7 +964,7 @@ export declare const RealtimeVoiceTxSummarySchema: z.ZodObject<{
|
|
|
728
964
|
active: boolean;
|
|
729
965
|
label: string | null;
|
|
730
966
|
updatedAt: number | null;
|
|
731
|
-
transport: "
|
|
967
|
+
transport: "rtc-data-audio" | "ws-compat" | null;
|
|
732
968
|
bottleneckStage: "transport" | "client-capture" | "server-ingress" | "server-queue" | "server-output" | null;
|
|
733
969
|
startedAt: number | null;
|
|
734
970
|
clientId: string | null;
|
|
@@ -736,7 +972,7 @@ export declare const RealtimeVoiceTxSummarySchema: z.ZodObject<{
|
|
|
736
972
|
active: boolean;
|
|
737
973
|
label: string | null;
|
|
738
974
|
updatedAt: number | null;
|
|
739
|
-
transport: "
|
|
975
|
+
transport: "rtc-data-audio" | "ws-compat" | null;
|
|
740
976
|
bottleneckStage: "transport" | "client-capture" | "server-ingress" | "server-queue" | "server-output" | null;
|
|
741
977
|
startedAt: number | null;
|
|
742
978
|
clientId: string | null;
|
|
@@ -796,6 +1032,10 @@ export declare const RealtimeVoiceTxServerIngressStatsSchema: z.ZodObject<{
|
|
|
796
1032
|
queueDepthFrames: z.ZodNumber;
|
|
797
1033
|
queuedAudioMs: z.ZodNumber;
|
|
798
1034
|
droppedFrames: z.ZodNumber;
|
|
1035
|
+
staleDroppedFrames: z.ZodNumber;
|
|
1036
|
+
underrunCount: z.ZodNumber;
|
|
1037
|
+
plcFrames: z.ZodNumber;
|
|
1038
|
+
jitterTargetMs: z.ZodNumber;
|
|
799
1039
|
}, "strip", z.ZodTypeAny, {
|
|
800
1040
|
frameIntervalMs: {
|
|
801
1041
|
current: number | null;
|
|
@@ -805,6 +1045,10 @@ export declare const RealtimeVoiceTxServerIngressStatsSchema: z.ZodObject<{
|
|
|
805
1045
|
queueDepthFrames: number;
|
|
806
1046
|
queuedAudioMs: number;
|
|
807
1047
|
droppedFrames: number;
|
|
1048
|
+
staleDroppedFrames: number;
|
|
1049
|
+
underrunCount: number;
|
|
1050
|
+
plcFrames: number;
|
|
1051
|
+
jitterTargetMs: number;
|
|
808
1052
|
}, {
|
|
809
1053
|
frameIntervalMs: {
|
|
810
1054
|
current: number | null;
|
|
@@ -814,6 +1058,10 @@ export declare const RealtimeVoiceTxServerIngressStatsSchema: z.ZodObject<{
|
|
|
814
1058
|
queueDepthFrames: number;
|
|
815
1059
|
queuedAudioMs: number;
|
|
816
1060
|
droppedFrames: number;
|
|
1061
|
+
staleDroppedFrames: number;
|
|
1062
|
+
underrunCount: number;
|
|
1063
|
+
plcFrames: number;
|
|
1064
|
+
jitterTargetMs: number;
|
|
817
1065
|
}>;
|
|
818
1066
|
export type RealtimeVoiceTxServerIngressStats = z.infer<typeof RealtimeVoiceTxServerIngressStatsSchema>;
|
|
819
1067
|
export declare const RealtimeVoiceTxServerOutputStatsSchema: z.ZodObject<{
|
|
@@ -856,6 +1104,19 @@ export declare const RealtimeVoiceTxServerOutputStatsSchema: z.ZodObject<{
|
|
|
856
1104
|
rolling: number | null;
|
|
857
1105
|
peak: number | null;
|
|
858
1106
|
}>;
|
|
1107
|
+
serverPipelineMs: z.ZodObject<{
|
|
1108
|
+
current: z.ZodNullable<z.ZodNumber>;
|
|
1109
|
+
rolling: z.ZodNullable<z.ZodNumber>;
|
|
1110
|
+
peak: z.ZodNullable<z.ZodNumber>;
|
|
1111
|
+
}, "strip", z.ZodTypeAny, {
|
|
1112
|
+
current: number | null;
|
|
1113
|
+
rolling: number | null;
|
|
1114
|
+
peak: number | null;
|
|
1115
|
+
}, {
|
|
1116
|
+
current: number | null;
|
|
1117
|
+
rolling: number | null;
|
|
1118
|
+
peak: number | null;
|
|
1119
|
+
}>;
|
|
859
1120
|
endToEndMs: z.ZodObject<{
|
|
860
1121
|
current: z.ZodNullable<z.ZodNumber>;
|
|
861
1122
|
rolling: z.ZodNullable<z.ZodNumber>;
|
|
@@ -882,6 +1143,19 @@ export declare const RealtimeVoiceTxServerOutputStatsSchema: z.ZodObject<{
|
|
|
882
1143
|
rolling: number | null;
|
|
883
1144
|
peak: number | null;
|
|
884
1145
|
}>;
|
|
1146
|
+
outputWriteIntervalMs: z.ZodObject<{
|
|
1147
|
+
current: z.ZodNullable<z.ZodNumber>;
|
|
1148
|
+
rolling: z.ZodNullable<z.ZodNumber>;
|
|
1149
|
+
peak: z.ZodNullable<z.ZodNumber>;
|
|
1150
|
+
}, "strip", z.ZodTypeAny, {
|
|
1151
|
+
current: number | null;
|
|
1152
|
+
rolling: number | null;
|
|
1153
|
+
peak: number | null;
|
|
1154
|
+
}, {
|
|
1155
|
+
current: number | null;
|
|
1156
|
+
rolling: number | null;
|
|
1157
|
+
peak: number | null;
|
|
1158
|
+
}>;
|
|
885
1159
|
outputSampleRate: z.ZodNullable<z.ZodNumber>;
|
|
886
1160
|
outputBufferSize: z.ZodNullable<z.ZodNumber>;
|
|
887
1161
|
writeFailures: z.ZodNumber;
|
|
@@ -901,6 +1175,11 @@ export declare const RealtimeVoiceTxServerOutputStatsSchema: z.ZodObject<{
|
|
|
901
1175
|
rolling: number | null;
|
|
902
1176
|
peak: number | null;
|
|
903
1177
|
};
|
|
1178
|
+
serverPipelineMs: {
|
|
1179
|
+
current: number | null;
|
|
1180
|
+
rolling: number | null;
|
|
1181
|
+
peak: number | null;
|
|
1182
|
+
};
|
|
904
1183
|
endToEndMs: {
|
|
905
1184
|
current: number | null;
|
|
906
1185
|
rolling: number | null;
|
|
@@ -911,6 +1190,11 @@ export declare const RealtimeVoiceTxServerOutputStatsSchema: z.ZodObject<{
|
|
|
911
1190
|
rolling: number | null;
|
|
912
1191
|
peak: number | null;
|
|
913
1192
|
};
|
|
1193
|
+
outputWriteIntervalMs: {
|
|
1194
|
+
current: number | null;
|
|
1195
|
+
rolling: number | null;
|
|
1196
|
+
peak: number | null;
|
|
1197
|
+
};
|
|
914
1198
|
outputSampleRate: number | null;
|
|
915
1199
|
outputBufferSize: number | null;
|
|
916
1200
|
writeFailures: number;
|
|
@@ -930,6 +1214,11 @@ export declare const RealtimeVoiceTxServerOutputStatsSchema: z.ZodObject<{
|
|
|
930
1214
|
rolling: number | null;
|
|
931
1215
|
peak: number | null;
|
|
932
1216
|
};
|
|
1217
|
+
serverPipelineMs: {
|
|
1218
|
+
current: number | null;
|
|
1219
|
+
rolling: number | null;
|
|
1220
|
+
peak: number | null;
|
|
1221
|
+
};
|
|
933
1222
|
endToEndMs: {
|
|
934
1223
|
current: number | null;
|
|
935
1224
|
rolling: number | null;
|
|
@@ -940,6 +1229,11 @@ export declare const RealtimeVoiceTxServerOutputStatsSchema: z.ZodObject<{
|
|
|
940
1229
|
rolling: number | null;
|
|
941
1230
|
peak: number | null;
|
|
942
1231
|
};
|
|
1232
|
+
outputWriteIntervalMs: {
|
|
1233
|
+
current: number | null;
|
|
1234
|
+
rolling: number | null;
|
|
1235
|
+
peak: number | null;
|
|
1236
|
+
};
|
|
943
1237
|
outputSampleRate: number | null;
|
|
944
1238
|
outputBufferSize: number | null;
|
|
945
1239
|
writeFailures: number;
|
|
@@ -949,7 +1243,7 @@ export declare const RealtimeVoiceTxStatsResponseSchema: z.ZodObject<{
|
|
|
949
1243
|
scope: z.ZodEnum<["radio", "openwebrx-preview"]>;
|
|
950
1244
|
summary: z.ZodObject<{
|
|
951
1245
|
active: z.ZodBoolean;
|
|
952
|
-
transport: z.ZodNullable<z.ZodEnum<["
|
|
1246
|
+
transport: z.ZodNullable<z.ZodEnum<["rtc-data-audio", "ws-compat"]>>;
|
|
953
1247
|
bottleneckStage: z.ZodNullable<z.ZodEnum<["client-capture", "transport", "server-ingress", "server-queue", "server-output"]>>;
|
|
954
1248
|
startedAt: z.ZodNullable<z.ZodNumber>;
|
|
955
1249
|
updatedAt: z.ZodNullable<z.ZodNumber>;
|
|
@@ -959,7 +1253,7 @@ export declare const RealtimeVoiceTxStatsResponseSchema: z.ZodObject<{
|
|
|
959
1253
|
active: boolean;
|
|
960
1254
|
label: string | null;
|
|
961
1255
|
updatedAt: number | null;
|
|
962
|
-
transport: "
|
|
1256
|
+
transport: "rtc-data-audio" | "ws-compat" | null;
|
|
963
1257
|
bottleneckStage: "transport" | "client-capture" | "server-ingress" | "server-queue" | "server-output" | null;
|
|
964
1258
|
startedAt: number | null;
|
|
965
1259
|
clientId: string | null;
|
|
@@ -967,7 +1261,7 @@ export declare const RealtimeVoiceTxStatsResponseSchema: z.ZodObject<{
|
|
|
967
1261
|
active: boolean;
|
|
968
1262
|
label: string | null;
|
|
969
1263
|
updatedAt: number | null;
|
|
970
|
-
transport: "
|
|
1264
|
+
transport: "rtc-data-audio" | "ws-compat" | null;
|
|
971
1265
|
bottleneckStage: "transport" | "client-capture" | "server-ingress" | "server-queue" | "server-output" | null;
|
|
972
1266
|
startedAt: number | null;
|
|
973
1267
|
clientId: string | null;
|
|
@@ -1025,6 +1319,10 @@ export declare const RealtimeVoiceTxStatsResponseSchema: z.ZodObject<{
|
|
|
1025
1319
|
queueDepthFrames: z.ZodNumber;
|
|
1026
1320
|
queuedAudioMs: z.ZodNumber;
|
|
1027
1321
|
droppedFrames: z.ZodNumber;
|
|
1322
|
+
staleDroppedFrames: z.ZodNumber;
|
|
1323
|
+
underrunCount: z.ZodNumber;
|
|
1324
|
+
plcFrames: z.ZodNumber;
|
|
1325
|
+
jitterTargetMs: z.ZodNumber;
|
|
1028
1326
|
}, "strip", z.ZodTypeAny, {
|
|
1029
1327
|
frameIntervalMs: {
|
|
1030
1328
|
current: number | null;
|
|
@@ -1034,6 +1332,10 @@ export declare const RealtimeVoiceTxStatsResponseSchema: z.ZodObject<{
|
|
|
1034
1332
|
queueDepthFrames: number;
|
|
1035
1333
|
queuedAudioMs: number;
|
|
1036
1334
|
droppedFrames: number;
|
|
1335
|
+
staleDroppedFrames: number;
|
|
1336
|
+
underrunCount: number;
|
|
1337
|
+
plcFrames: number;
|
|
1338
|
+
jitterTargetMs: number;
|
|
1037
1339
|
}, {
|
|
1038
1340
|
frameIntervalMs: {
|
|
1039
1341
|
current: number | null;
|
|
@@ -1043,6 +1345,10 @@ export declare const RealtimeVoiceTxStatsResponseSchema: z.ZodObject<{
|
|
|
1043
1345
|
queueDepthFrames: number;
|
|
1044
1346
|
queuedAudioMs: number;
|
|
1045
1347
|
droppedFrames: number;
|
|
1348
|
+
staleDroppedFrames: number;
|
|
1349
|
+
underrunCount: number;
|
|
1350
|
+
plcFrames: number;
|
|
1351
|
+
jitterTargetMs: number;
|
|
1046
1352
|
}>;
|
|
1047
1353
|
serverOutput: z.ZodObject<{
|
|
1048
1354
|
resampleMs: z.ZodObject<{
|
|
@@ -1084,6 +1390,19 @@ export declare const RealtimeVoiceTxStatsResponseSchema: z.ZodObject<{
|
|
|
1084
1390
|
rolling: number | null;
|
|
1085
1391
|
peak: number | null;
|
|
1086
1392
|
}>;
|
|
1393
|
+
serverPipelineMs: z.ZodObject<{
|
|
1394
|
+
current: z.ZodNullable<z.ZodNumber>;
|
|
1395
|
+
rolling: z.ZodNullable<z.ZodNumber>;
|
|
1396
|
+
peak: z.ZodNullable<z.ZodNumber>;
|
|
1397
|
+
}, "strip", z.ZodTypeAny, {
|
|
1398
|
+
current: number | null;
|
|
1399
|
+
rolling: number | null;
|
|
1400
|
+
peak: number | null;
|
|
1401
|
+
}, {
|
|
1402
|
+
current: number | null;
|
|
1403
|
+
rolling: number | null;
|
|
1404
|
+
peak: number | null;
|
|
1405
|
+
}>;
|
|
1087
1406
|
endToEndMs: z.ZodObject<{
|
|
1088
1407
|
current: z.ZodNullable<z.ZodNumber>;
|
|
1089
1408
|
rolling: z.ZodNullable<z.ZodNumber>;
|
|
@@ -1110,6 +1429,19 @@ export declare const RealtimeVoiceTxStatsResponseSchema: z.ZodObject<{
|
|
|
1110
1429
|
rolling: number | null;
|
|
1111
1430
|
peak: number | null;
|
|
1112
1431
|
}>;
|
|
1432
|
+
outputWriteIntervalMs: z.ZodObject<{
|
|
1433
|
+
current: z.ZodNullable<z.ZodNumber>;
|
|
1434
|
+
rolling: z.ZodNullable<z.ZodNumber>;
|
|
1435
|
+
peak: z.ZodNullable<z.ZodNumber>;
|
|
1436
|
+
}, "strip", z.ZodTypeAny, {
|
|
1437
|
+
current: number | null;
|
|
1438
|
+
rolling: number | null;
|
|
1439
|
+
peak: number | null;
|
|
1440
|
+
}, {
|
|
1441
|
+
current: number | null;
|
|
1442
|
+
rolling: number | null;
|
|
1443
|
+
peak: number | null;
|
|
1444
|
+
}>;
|
|
1113
1445
|
outputSampleRate: z.ZodNullable<z.ZodNumber>;
|
|
1114
1446
|
outputBufferSize: z.ZodNullable<z.ZodNumber>;
|
|
1115
1447
|
writeFailures: z.ZodNumber;
|
|
@@ -1129,6 +1461,11 @@ export declare const RealtimeVoiceTxStatsResponseSchema: z.ZodObject<{
|
|
|
1129
1461
|
rolling: number | null;
|
|
1130
1462
|
peak: number | null;
|
|
1131
1463
|
};
|
|
1464
|
+
serverPipelineMs: {
|
|
1465
|
+
current: number | null;
|
|
1466
|
+
rolling: number | null;
|
|
1467
|
+
peak: number | null;
|
|
1468
|
+
};
|
|
1132
1469
|
endToEndMs: {
|
|
1133
1470
|
current: number | null;
|
|
1134
1471
|
rolling: number | null;
|
|
@@ -1139,6 +1476,11 @@ export declare const RealtimeVoiceTxStatsResponseSchema: z.ZodObject<{
|
|
|
1139
1476
|
rolling: number | null;
|
|
1140
1477
|
peak: number | null;
|
|
1141
1478
|
};
|
|
1479
|
+
outputWriteIntervalMs: {
|
|
1480
|
+
current: number | null;
|
|
1481
|
+
rolling: number | null;
|
|
1482
|
+
peak: number | null;
|
|
1483
|
+
};
|
|
1142
1484
|
outputSampleRate: number | null;
|
|
1143
1485
|
outputBufferSize: number | null;
|
|
1144
1486
|
writeFailures: number;
|
|
@@ -1158,6 +1500,11 @@ export declare const RealtimeVoiceTxStatsResponseSchema: z.ZodObject<{
|
|
|
1158
1500
|
rolling: number | null;
|
|
1159
1501
|
peak: number | null;
|
|
1160
1502
|
};
|
|
1503
|
+
serverPipelineMs: {
|
|
1504
|
+
current: number | null;
|
|
1505
|
+
rolling: number | null;
|
|
1506
|
+
peak: number | null;
|
|
1507
|
+
};
|
|
1161
1508
|
endToEndMs: {
|
|
1162
1509
|
current: number | null;
|
|
1163
1510
|
rolling: number | null;
|
|
@@ -1168,6 +1515,11 @@ export declare const RealtimeVoiceTxStatsResponseSchema: z.ZodObject<{
|
|
|
1168
1515
|
rolling: number | null;
|
|
1169
1516
|
peak: number | null;
|
|
1170
1517
|
};
|
|
1518
|
+
outputWriteIntervalMs: {
|
|
1519
|
+
current: number | null;
|
|
1520
|
+
rolling: number | null;
|
|
1521
|
+
peak: number | null;
|
|
1522
|
+
};
|
|
1171
1523
|
outputSampleRate: number | null;
|
|
1172
1524
|
outputBufferSize: number | null;
|
|
1173
1525
|
writeFailures: number;
|
|
@@ -1177,7 +1529,7 @@ export declare const RealtimeVoiceTxStatsResponseSchema: z.ZodObject<{
|
|
|
1177
1529
|
active: boolean;
|
|
1178
1530
|
label: string | null;
|
|
1179
1531
|
updatedAt: number | null;
|
|
1180
|
-
transport: "
|
|
1532
|
+
transport: "rtc-data-audio" | "ws-compat" | null;
|
|
1181
1533
|
bottleneckStage: "transport" | "client-capture" | "server-ingress" | "server-queue" | "server-output" | null;
|
|
1182
1534
|
startedAt: number | null;
|
|
1183
1535
|
clientId: string | null;
|
|
@@ -1202,6 +1554,10 @@ export declare const RealtimeVoiceTxStatsResponseSchema: z.ZodObject<{
|
|
|
1202
1554
|
queueDepthFrames: number;
|
|
1203
1555
|
queuedAudioMs: number;
|
|
1204
1556
|
droppedFrames: number;
|
|
1557
|
+
staleDroppedFrames: number;
|
|
1558
|
+
underrunCount: number;
|
|
1559
|
+
plcFrames: number;
|
|
1560
|
+
jitterTargetMs: number;
|
|
1205
1561
|
};
|
|
1206
1562
|
serverOutput: {
|
|
1207
1563
|
resampleMs: {
|
|
@@ -1219,6 +1575,11 @@ export declare const RealtimeVoiceTxStatsResponseSchema: z.ZodObject<{
|
|
|
1219
1575
|
rolling: number | null;
|
|
1220
1576
|
peak: number | null;
|
|
1221
1577
|
};
|
|
1578
|
+
serverPipelineMs: {
|
|
1579
|
+
current: number | null;
|
|
1580
|
+
rolling: number | null;
|
|
1581
|
+
peak: number | null;
|
|
1582
|
+
};
|
|
1222
1583
|
endToEndMs: {
|
|
1223
1584
|
current: number | null;
|
|
1224
1585
|
rolling: number | null;
|
|
@@ -1229,6 +1590,11 @@ export declare const RealtimeVoiceTxStatsResponseSchema: z.ZodObject<{
|
|
|
1229
1590
|
rolling: number | null;
|
|
1230
1591
|
peak: number | null;
|
|
1231
1592
|
};
|
|
1593
|
+
outputWriteIntervalMs: {
|
|
1594
|
+
current: number | null;
|
|
1595
|
+
rolling: number | null;
|
|
1596
|
+
peak: number | null;
|
|
1597
|
+
};
|
|
1232
1598
|
outputSampleRate: number | null;
|
|
1233
1599
|
outputBufferSize: number | null;
|
|
1234
1600
|
writeFailures: number;
|
|
@@ -1238,7 +1604,7 @@ export declare const RealtimeVoiceTxStatsResponseSchema: z.ZodObject<{
|
|
|
1238
1604
|
active: boolean;
|
|
1239
1605
|
label: string | null;
|
|
1240
1606
|
updatedAt: number | null;
|
|
1241
|
-
transport: "
|
|
1607
|
+
transport: "rtc-data-audio" | "ws-compat" | null;
|
|
1242
1608
|
bottleneckStage: "transport" | "client-capture" | "server-ingress" | "server-queue" | "server-output" | null;
|
|
1243
1609
|
startedAt: number | null;
|
|
1244
1610
|
clientId: string | null;
|
|
@@ -1263,6 +1629,10 @@ export declare const RealtimeVoiceTxStatsResponseSchema: z.ZodObject<{
|
|
|
1263
1629
|
queueDepthFrames: number;
|
|
1264
1630
|
queuedAudioMs: number;
|
|
1265
1631
|
droppedFrames: number;
|
|
1632
|
+
staleDroppedFrames: number;
|
|
1633
|
+
underrunCount: number;
|
|
1634
|
+
plcFrames: number;
|
|
1635
|
+
jitterTargetMs: number;
|
|
1266
1636
|
};
|
|
1267
1637
|
serverOutput: {
|
|
1268
1638
|
resampleMs: {
|
|
@@ -1280,6 +1650,11 @@ export declare const RealtimeVoiceTxStatsResponseSchema: z.ZodObject<{
|
|
|
1280
1650
|
rolling: number | null;
|
|
1281
1651
|
peak: number | null;
|
|
1282
1652
|
};
|
|
1653
|
+
serverPipelineMs: {
|
|
1654
|
+
current: number | null;
|
|
1655
|
+
rolling: number | null;
|
|
1656
|
+
peak: number | null;
|
|
1657
|
+
};
|
|
1283
1658
|
endToEndMs: {
|
|
1284
1659
|
current: number | null;
|
|
1285
1660
|
rolling: number | null;
|
|
@@ -1290,6 +1665,11 @@ export declare const RealtimeVoiceTxStatsResponseSchema: z.ZodObject<{
|
|
|
1290
1665
|
rolling: number | null;
|
|
1291
1666
|
peak: number | null;
|
|
1292
1667
|
};
|
|
1668
|
+
outputWriteIntervalMs: {
|
|
1669
|
+
current: number | null;
|
|
1670
|
+
rolling: number | null;
|
|
1671
|
+
peak: number | null;
|
|
1672
|
+
};
|
|
1293
1673
|
outputSampleRate: number | null;
|
|
1294
1674
|
outputBufferSize: number | null;
|
|
1295
1675
|
writeFailures: number;
|