@wildix/wilma-voice-client 0.0.39 → 0.0.41

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.
@@ -1,5 +1,5 @@
1
1
  import type { DocumentType as __DocumentType, StreamingBlobTypes } from "@smithy/types";
2
- import type { VoiceAudioEncoding, VoiceCallBackendTransport, VoiceCallEndReason, VoiceCallToolPhase, VoiceCommandType, VoiceControlAction, VoiceEventType, VoiceInputMode, VoicePronunciationEncoding } from "./enums";
2
+ import type { MediaAudioBeginFrameType, MediaAudioEncoding, MediaAudioEndFrameType, MediaDtmfFrameType, MediaDuckFrameType, MediaErrorFrameType, MediaFinishedFrameType, MediaFinishFrameType, MediaFinishReason, MediaHangupFrameType, MediaLanguageFrameType, MediaParty, MediaPlaybackEvent, MediaPlaybackFrameType, MediaPlaybackStopCause, MediaRestoreFrameType, MediaRunPurpose, MediaStartedFrameType, MediaStartFrameType, MediaStopFrameType, MediaTranscriptionFrameType, MediaTransferFrameType, MediaVadFrameType, VoiceAudioEncoding, VoiceCallEndReason, VoiceCallToolPhase, VoiceCommandType, VoiceControlAction, VoiceEventType, VoiceInputMode, VoicePronunciationEncoding } from "./enums";
3
3
  /**
4
4
  * A pronunciation rule for one phrase. Belongs to a LANGUAGE, not to the agent: 'Wildix' is
5
5
  * respelled differently for an Italian and a German voice, so one list shared ACROSS languages
@@ -182,51 +182,6 @@ export interface VoiceCallAgentTranscriptionEvent {
182
182
  language?: string | undefined;
183
183
  time?: number | undefined;
184
184
  }
185
- /**
186
- * One delivery to the agent's external backend, for a call whose replies this platform does not
187
- * produce.
188
- *
189
- * Without it such a call reads as a call where nothing happens: the transcript shows the greeting
190
- * and then silence, and a backend that is unreachable, one that refuses, and one that answers 200
191
- * and then says nothing are the same empty panel. Diagnosing that is one of the reasons the
192
- * preview exists, so the delivery has to be visible where the call is watched rather than only in
193
- * a service log.
194
- *
195
- * This platform puts no request body, no signature and no credential on it: the envelope holds
196
- * the caller's words, and this stream is read by anyone who may watch the call. `error` is the
197
- * one member carrying the backend's OWN words, truncated — a backend that echoes what it was
198
- * sent echoes it here, which is the tenant's own text reaching the tenant's own operators.
199
- * @public
200
- */
201
- export interface VoiceCallBackendEvent {
202
- /**
203
- * Which transport carries an external backend's events.
204
- * @public
205
- */
206
- transport: VoiceCallBackendTransport;
207
- /**
208
- * The event delivered, by its name in the backend contract — `started`, `reply`, `playback`, `ended`.
209
- * @public
210
- */
211
- event: string;
212
- delivered: boolean;
213
- /**
214
- * HTTP status for the webhook transport; absent for a queue send, which has none.
215
- * @public
216
- */
217
- status?: number | undefined;
218
- /**
219
- * How long the delivery took, in milliseconds.
220
- * @public
221
- */
222
- durationMs?: number | undefined;
223
- /**
224
- * Why the backend did not receive it, truncated. Absent when it did — `delivered` is what says
225
- * whether it arrived, and this only ever explains a `false`.
226
- * @public
227
- */
228
- error?: string | undefined;
229
- }
230
185
  /**
231
186
  * The session ended. After `transfer` another session of the same call may follow with its own `started`.
232
187
  * @public
@@ -401,7 +356,7 @@ export interface VoiceCallTranscriptionEvent {
401
356
  * One event on a live call. The SSE frame's `event:` is the member name and `data:` this whole union document, so a frame reads `data: \{"say": \{...\}\}` — never the member's payload on its own.
402
357
  * @public
403
358
  */
404
- export type VoiceCallEvent = VoiceCallEvent.AgentTranscriptionMember | VoiceCallEvent.BackendMember | VoiceCallEvent.EndedMember | VoiceCallEvent.InterruptionMember | VoiceCallEvent.LanguageMember | VoiceCallEvent.PlaybackMember | VoiceCallEvent.ReplyMember | VoiceCallEvent.SayMember | VoiceCallEvent.StartedMember | VoiceCallEvent.ToolMember | VoiceCallEvent.TranscriptionMember | VoiceCallEvent.$UnknownMember;
359
+ export type VoiceCallEvent = VoiceCallEvent.AgentTranscriptionMember | VoiceCallEvent.EndedMember | VoiceCallEvent.InterruptionMember | VoiceCallEvent.LanguageMember | VoiceCallEvent.PlaybackMember | VoiceCallEvent.ReplyMember | VoiceCallEvent.SayMember | VoiceCallEvent.StartedMember | VoiceCallEvent.ToolMember | VoiceCallEvent.TranscriptionMember | VoiceCallEvent.$UnknownMember;
405
360
  /**
406
361
  * @public
407
362
  */
@@ -420,7 +375,6 @@ export declare namespace VoiceCallEvent {
420
375
  interruption?: never;
421
376
  language?: never;
422
377
  tool?: never;
423
- backend?: never;
424
378
  ended?: never;
425
379
  $unknown?: never;
426
380
  }
@@ -438,7 +392,6 @@ export declare namespace VoiceCallEvent {
438
392
  interruption?: never;
439
393
  language?: never;
440
394
  tool?: never;
441
- backend?: never;
442
395
  ended?: never;
443
396
  $unknown?: never;
444
397
  }
@@ -456,7 +409,6 @@ export declare namespace VoiceCallEvent {
456
409
  interruption?: never;
457
410
  language?: never;
458
411
  tool?: never;
459
- backend?: never;
460
412
  ended?: never;
461
413
  $unknown?: never;
462
414
  }
@@ -474,7 +426,6 @@ export declare namespace VoiceCallEvent {
474
426
  interruption?: never;
475
427
  language?: never;
476
428
  tool?: never;
477
- backend?: never;
478
429
  ended?: never;
479
430
  $unknown?: never;
480
431
  }
@@ -492,7 +443,6 @@ export declare namespace VoiceCallEvent {
492
443
  interruption?: never;
493
444
  language?: never;
494
445
  tool?: never;
495
- backend?: never;
496
446
  ended?: never;
497
447
  $unknown?: never;
498
448
  }
@@ -510,7 +460,6 @@ export declare namespace VoiceCallEvent {
510
460
  interruption?: never;
511
461
  language?: never;
512
462
  tool?: never;
513
- backend?: never;
514
463
  ended?: never;
515
464
  $unknown?: never;
516
465
  }
@@ -528,7 +477,6 @@ export declare namespace VoiceCallEvent {
528
477
  interruption: VoiceCallInterruptionEvent;
529
478
  language?: never;
530
479
  tool?: never;
531
- backend?: never;
532
480
  ended?: never;
533
481
  $unknown?: never;
534
482
  }
@@ -546,7 +494,6 @@ export declare namespace VoiceCallEvent {
546
494
  interruption?: never;
547
495
  language: VoiceCallLanguageEvent;
548
496
  tool?: never;
549
- backend?: never;
550
497
  ended?: never;
551
498
  $unknown?: never;
552
499
  }
@@ -564,37 +511,6 @@ export declare namespace VoiceCallEvent {
564
511
  interruption?: never;
565
512
  language?: never;
566
513
  tool: VoiceCallToolEvent;
567
- backend?: never;
568
- ended?: never;
569
- $unknown?: never;
570
- }
571
- /**
572
- * One delivery to the agent's external backend, for a call whose replies this platform does not
573
- * produce.
574
- *
575
- * Without it such a call reads as a call where nothing happens: the transcript shows the greeting
576
- * and then silence, and a backend that is unreachable, one that refuses, and one that answers 200
577
- * and then says nothing are the same empty panel. Diagnosing that is one of the reasons the
578
- * preview exists, so the delivery has to be visible where the call is watched rather than only in
579
- * a service log.
580
- *
581
- * This platform puts no request body, no signature and no credential on it: the envelope holds
582
- * the caller's words, and this stream is read by anyone who may watch the call. `error` is the
583
- * one member carrying the backend's OWN words, truncated — a backend that echoes what it was
584
- * sent echoes it here, which is the tenant's own text reaching the tenant's own operators.
585
- * @public
586
- */
587
- interface BackendMember {
588
- started?: never;
589
- transcription?: never;
590
- agentTranscription?: never;
591
- reply?: never;
592
- say?: never;
593
- playback?: never;
594
- interruption?: never;
595
- language?: never;
596
- tool?: never;
597
- backend: VoiceCallBackendEvent;
598
514
  ended?: never;
599
515
  $unknown?: never;
600
516
  }
@@ -612,7 +528,6 @@ export declare namespace VoiceCallEvent {
612
528
  interruption?: never;
613
529
  language?: never;
614
530
  tool?: never;
615
- backend?: never;
616
531
  ended: VoiceCallEndedEvent;
617
532
  $unknown?: never;
618
533
  }
@@ -629,7 +544,6 @@ export declare namespace VoiceCallEvent {
629
544
  interruption?: never;
630
545
  language?: never;
631
546
  tool?: never;
632
- backend?: never;
633
547
  ended?: never;
634
548
  $unknown: [string, any];
635
549
  }
@@ -647,7 +561,6 @@ export declare namespace VoiceCallEvent {
647
561
  interruption: (value: VoiceCallInterruptionEvent) => T;
648
562
  language: (value: VoiceCallLanguageEvent) => T;
649
563
  tool: (value: VoiceCallToolEvent) => T;
650
- backend: (value: VoiceCallBackendEvent) => T;
651
564
  ended: (value: VoiceCallEndedEvent) => T;
652
565
  _: (name: string, value: any) => T;
653
566
  }
@@ -851,6 +764,586 @@ export interface InterruptionWebsocketEvent {
851
764
  */
852
765
  event: InterruptionEvent;
853
766
  }
767
+ /**
768
+ * Opens an agent audio stream. `MediaCloudAudio` messages of the stream follow until `audio.end`. Streams do not interleave.
769
+ * @public
770
+ */
771
+ export interface MediaAudioBeginFrame {
772
+ type: MediaAudioBeginFrameType;
773
+ /**
774
+ * Id of a reply, a stream, an utterance or a DTMF input, unique in the run.
775
+ * @public
776
+ */
777
+ replyId: string;
778
+ /**
779
+ * Id of a reply, a stream, an utterance or a DTMF input, unique in the run.
780
+ * @public
781
+ */
782
+ streamId: string;
783
+ /**
784
+ * Sample rate of the stream's `pcm_s16le` mono audio in Hz: 8000, 16000, 22050 or 24000.
785
+ * @public
786
+ */
787
+ sampleRate: number;
788
+ }
789
+ /**
790
+ * Closes an agent audio stream.
791
+ * @public
792
+ */
793
+ export interface MediaAudioEndFrame {
794
+ type: MediaAudioEndFrameType;
795
+ /**
796
+ * Id of a reply, a stream, an utterance or a DTMF input, unique in the run.
797
+ * @public
798
+ */
799
+ streamId: string;
800
+ }
801
+ /**
802
+ * Lower the volume of a playing reply.
803
+ * @public
804
+ */
805
+ export interface MediaDuckFrame {
806
+ type: MediaDuckFrameType;
807
+ /**
808
+ * Id of a reply, a stream, an utterance or a DTMF input, unique in the run.
809
+ * @public
810
+ */
811
+ replyId: string;
812
+ /**
813
+ * Target gain in dB.
814
+ * @public
815
+ */
816
+ volumeDb: number;
817
+ /**
818
+ * Ramp duration in ms.
819
+ * @public
820
+ */
821
+ rampMs: number;
822
+ }
823
+ /**
824
+ * An error on the run. When `retryable` is false, the socket closes after it.
825
+ * @public
826
+ */
827
+ export interface MediaErrorFrame {
828
+ type: MediaErrorFrameType;
829
+ /**
830
+ * Stable error code, for example `START_TIMEOUT`, `PROTOCOL_ERROR` or `STT_FAILED`.
831
+ * @public
832
+ */
833
+ code: string;
834
+ retryable: boolean;
835
+ message: string;
836
+ }
837
+ /**
838
+ * Answer to `finish`: the cloud processed all audio. The socket closes with 1000 after it.
839
+ * @public
840
+ */
841
+ export interface MediaFinishedFrame {
842
+ type: MediaFinishedFrameType;
843
+ }
844
+ /**
845
+ * Hang up the call after the queued agent audio plays. Terminal: the PBX answers with `finish`.
846
+ * @public
847
+ */
848
+ export interface MediaHangupFrame {
849
+ type: MediaHangupFrameType;
850
+ }
851
+ /**
852
+ * The call continues in another language.
853
+ * @public
854
+ */
855
+ export interface MediaLanguageFrame {
856
+ type: MediaLanguageFrameType;
857
+ /**
858
+ * Language that the call continues in.
859
+ * @public
860
+ */
861
+ language: string;
862
+ }
863
+ /**
864
+ * Return a reply to full volume.
865
+ * @public
866
+ */
867
+ export interface MediaRestoreFrame {
868
+ type: MediaRestoreFrameType;
869
+ /**
870
+ * Id of a reply, a stream, an utterance or a DTMF input, unique in the run.
871
+ * @public
872
+ */
873
+ replyId: string;
874
+ /**
875
+ * Ramp duration in ms.
876
+ * @public
877
+ */
878
+ rampMs: number;
879
+ }
880
+ /**
881
+ * The agent that answers the run.
882
+ * @public
883
+ */
884
+ export interface MediaStartedAgent {
885
+ name: string;
886
+ }
887
+ /**
888
+ * Caller voice detection of a run, with every value resolved.
889
+ * @public
890
+ */
891
+ export interface MediaVoiceDetection {
892
+ /**
893
+ * Silence in ms that ends the caller speech.
894
+ * @public
895
+ */
896
+ silenceMs: number;
897
+ /**
898
+ * Level in dBFS below which caller audio is silence.
899
+ * @public
900
+ */
901
+ silenceLevelDb: number;
902
+ /**
903
+ * Mean frame level in dBFS from which caller audio is speech.
904
+ * @public
905
+ */
906
+ speechLevelDb: number;
907
+ }
908
+ /**
909
+ * The cloud accepted `start`. Sent once per connection.
910
+ * @public
911
+ */
912
+ export interface MediaStartedFrame {
913
+ type: MediaStartedFrameType;
914
+ /**
915
+ * Id of the cloud stream of this run. Cloud logs carry it; use it to match PBX and cloud logs.
916
+ * @public
917
+ */
918
+ streamId: string;
919
+ /**
920
+ * Present when the run purpose is `agent`.
921
+ * @public
922
+ */
923
+ agent?: MediaStartedAgent | undefined;
924
+ /**
925
+ * Group of the agent. Absent when the agent has none.
926
+ * @public
927
+ */
928
+ groupId?: string | undefined;
929
+ /**
930
+ * Music-on-hold class that the PBX plays after each caller turn until agent audio starts. Absent: none.
931
+ * @public
932
+ */
933
+ backgroundSound?: string | undefined;
934
+ /**
935
+ * Caller voice detection that the PBX uses for the `vad` frames of this run. Absent: the PBX keeps its defaults.
936
+ * @public
937
+ */
938
+ voiceDetection?: MediaVoiceDetection | undefined;
939
+ }
940
+ /**
941
+ * Stop every agent audio stream of the run: the one that plays and the ones that wait.
942
+ * @public
943
+ */
944
+ export interface MediaStopFrame {
945
+ type: MediaStopFrameType;
946
+ }
947
+ /**
948
+ * Words of one party. Partials and the final of one utterance share `id`. For the agent, the words that played.
949
+ * @public
950
+ */
951
+ export interface MediaTranscriptionFrame {
952
+ type: MediaTranscriptionFrameType;
953
+ /**
954
+ * Party that spoke. The agent's own words are `callee`.
955
+ * @public
956
+ */
957
+ party: MediaParty;
958
+ /**
959
+ * Id of a reply, a stream, an utterance or a DTMF input, unique in the run.
960
+ * @public
961
+ */
962
+ id: string;
963
+ final: boolean;
964
+ text: string;
965
+ /**
966
+ * Run-clock time or duration in ms of PBX audio since the run started. It continues across reconnects.
967
+ * @public
968
+ */
969
+ startMs: number;
970
+ /**
971
+ * Run-clock time or duration in ms of PBX audio since the run started. It continues across reconnects.
972
+ * @public
973
+ */
974
+ endMs: number;
975
+ /**
976
+ * BCP-47 language tag, optionally with a region subtag: 'en', 'en-US', 'pt-BR'. Deliberately a
977
+ * constrained string rather than an enum: the offerable set is a property of the selected
978
+ * recogniser and changes with it, so an enumeration here would cap the set at whatever was known
979
+ * when the model was released.
980
+ * @public
981
+ */
982
+ language: string;
983
+ /**
984
+ * Recogniser confidence from 0 to 1. Absent when the text is not from a recogniser, or the engine gives none.
985
+ * @public
986
+ */
987
+ confidence?: number | undefined;
988
+ }
989
+ /**
990
+ * Transfer the call after the queued agent audio plays. Terminal: the PBX answers with `finish`.
991
+ * @public
992
+ */
993
+ export interface MediaTransferFrame {
994
+ type: MediaTransferFrameType;
995
+ /**
996
+ * Dialplan context of the target.
997
+ * @public
998
+ */
999
+ context: string;
1000
+ /**
1001
+ * Extension of the target.
1002
+ * @public
1003
+ */
1004
+ extension: string;
1005
+ }
1006
+ /**
1007
+ * One example of each message that the cloud sends.
1008
+ * @public
1009
+ */
1010
+ export interface MediaCloudFrames {
1011
+ /**
1012
+ * The cloud accepted `start`. Sent once per connection.
1013
+ * @public
1014
+ */
1015
+ started?: MediaStartedFrame | undefined;
1016
+ /**
1017
+ * Words of one party. Partials and the final of one utterance share `id`. For the agent, the words that played.
1018
+ * @public
1019
+ */
1020
+ transcription?: MediaTranscriptionFrame | undefined;
1021
+ /**
1022
+ * Opens an agent audio stream. `MediaCloudAudio` messages of the stream follow until `audio.end`. Streams do not interleave.
1023
+ * @public
1024
+ */
1025
+ audioBegin?: MediaAudioBeginFrame | undefined;
1026
+ /**
1027
+ * One binary audio message. In the describe answer it is base64; on the socket it is raw bytes.
1028
+ * @public
1029
+ */
1030
+ audio?: Uint8Array | undefined;
1031
+ /**
1032
+ * Closes an agent audio stream.
1033
+ * @public
1034
+ */
1035
+ audioEnd?: MediaAudioEndFrame | undefined;
1036
+ /**
1037
+ * Stop every agent audio stream of the run: the one that plays and the ones that wait.
1038
+ * @public
1039
+ */
1040
+ stop?: MediaStopFrame | undefined;
1041
+ /**
1042
+ * Lower the volume of a playing reply.
1043
+ * @public
1044
+ */
1045
+ duck?: MediaDuckFrame | undefined;
1046
+ /**
1047
+ * Return a reply to full volume.
1048
+ * @public
1049
+ */
1050
+ restore?: MediaRestoreFrame | undefined;
1051
+ /**
1052
+ * The call continues in another language.
1053
+ * @public
1054
+ */
1055
+ language?: MediaLanguageFrame | undefined;
1056
+ /**
1057
+ * Transfer the call after the queued agent audio plays. Terminal: the PBX answers with `finish`.
1058
+ * @public
1059
+ */
1060
+ transfer?: MediaTransferFrame | undefined;
1061
+ /**
1062
+ * Hang up the call after the queued agent audio plays. Terminal: the PBX answers with `finish`.
1063
+ * @public
1064
+ */
1065
+ hangup?: MediaHangupFrame | undefined;
1066
+ /**
1067
+ * An error on the run. When `retryable` is false, the socket closes after it.
1068
+ * @public
1069
+ */
1070
+ error?: MediaErrorFrame | undefined;
1071
+ /**
1072
+ * Answer to `finish`: the cloud processed all audio. The socket closes with 1000 after it.
1073
+ * @public
1074
+ */
1075
+ finished?: MediaFinishedFrame | undefined;
1076
+ }
1077
+ /**
1078
+ * DTMF input that the PBX collected. The cloud takes `digits` as the caller's reply.
1079
+ * @public
1080
+ */
1081
+ export interface MediaDtmfFrame {
1082
+ type: MediaDtmfFrameType;
1083
+ /**
1084
+ * Id of a reply, a stream, an utterance or a DTMF input, unique in the run.
1085
+ * @public
1086
+ */
1087
+ id: string;
1088
+ digits: string;
1089
+ }
1090
+ /**
1091
+ * The run ended on the PBX. The PBX sends no audio after it and waits up to 3 s for `finished`.
1092
+ * @public
1093
+ */
1094
+ export interface MediaFinishFrame {
1095
+ type: MediaFinishFrameType;
1096
+ /**
1097
+ * Who ended the run on the PBX.
1098
+ * @public
1099
+ */
1100
+ reason: MediaFinishReason;
1101
+ }
1102
+ /**
1103
+ * An agent audio stream changed state on the PBX.
1104
+ * @public
1105
+ */
1106
+ export interface MediaPlaybackFrame {
1107
+ type: MediaPlaybackFrameType;
1108
+ /**
1109
+ * Id of a reply, a stream, an utterance or a DTMF input, unique in the run.
1110
+ * @public
1111
+ */
1112
+ replyId: string;
1113
+ /**
1114
+ * Id of a reply, a stream, an utterance or a DTMF input, unique in the run.
1115
+ * @public
1116
+ */
1117
+ streamId: string;
1118
+ /**
1119
+ * Event of an agent audio stream.
1120
+ * @public
1121
+ */
1122
+ event: MediaPlaybackEvent;
1123
+ /**
1124
+ * Run-clock time or duration in ms of PBX audio since the run started. It continues across reconnects.
1125
+ * @public
1126
+ */
1127
+ atMs: number;
1128
+ /**
1129
+ * Audio of the stream that played, in ms. Present with `finished` and `stopped`.
1130
+ * @public
1131
+ */
1132
+ playedMs?: number | undefined;
1133
+ /**
1134
+ * Present with `stopped`.
1135
+ * @public
1136
+ */
1137
+ cause?: MediaPlaybackStopCause | undefined;
1138
+ }
1139
+ /**
1140
+ * The agent of a media run. At most one of `draft` and `version` is set.
1141
+ * @public
1142
+ */
1143
+ export interface MediaStartAgent {
1144
+ /**
1145
+ * Agent id.
1146
+ * @public
1147
+ */
1148
+ id: string;
1149
+ /**
1150
+ * True to run the unpublished draft. Absent or null: false.
1151
+ * @public
1152
+ */
1153
+ draft?: boolean | undefined;
1154
+ /**
1155
+ * Published version to run. Absent or null: the version the agent routing selects.
1156
+ * @public
1157
+ */
1158
+ version?: number | undefined;
1159
+ }
1160
+ /**
1161
+ * Format of the binary PBX audio (`MediaPbxAudio`). Channel 0 is the caller; channel 1, when present, is the callee. Samples interleave.
1162
+ * @public
1163
+ */
1164
+ export interface MediaAudioFormat {
1165
+ /**
1166
+ * Sample encoding of PBX audio.
1167
+ * @public
1168
+ */
1169
+ encoding: MediaAudioEncoding;
1170
+ /**
1171
+ * Sample rate in Hz.
1172
+ * @public
1173
+ */
1174
+ sampleRate: number;
1175
+ /**
1176
+ * Number of channels.
1177
+ * @public
1178
+ */
1179
+ channels: number;
1180
+ }
1181
+ /**
1182
+ * Caller identity. Each member is absent, null or empty when unknown.
1183
+ * @public
1184
+ */
1185
+ export interface MediaStartCaller {
1186
+ name?: string | undefined;
1187
+ number?: string | undefined;
1188
+ email?: string | undefined;
1189
+ company?: string | undefined;
1190
+ }
1191
+ /**
1192
+ * First text frame of a socket, sent within 10 s of the upgrade. Opens a run, or attaches a reconnect to it.
1193
+ * @public
1194
+ */
1195
+ export interface MediaStartFrame {
1196
+ type: MediaStartFrameType;
1197
+ /**
1198
+ * Purpose of a media run.
1199
+ * @public
1200
+ */
1201
+ purpose: MediaRunPurpose;
1202
+ /**
1203
+ * Id of the PBX call. Use it to correlate the call events of the run.
1204
+ * @public
1205
+ */
1206
+ callId: string;
1207
+ /**
1208
+ * Index of this run on the call, from 0.
1209
+ * @public
1210
+ */
1211
+ flowIndex: number;
1212
+ /**
1213
+ * Id of this run. The same on every connection of the run; the cloud attaches a reconnect and settles a takeover by it.
1214
+ * @public
1215
+ */
1216
+ sessionId: string;
1217
+ /**
1218
+ * True when an earlier connection of this run got `started`: the cloud continues that session without a new greeting.
1219
+ * @public
1220
+ */
1221
+ resume: boolean;
1222
+ /**
1223
+ * Run-clock time of the first audio byte of this connection: 0 on the first connection.
1224
+ * @public
1225
+ */
1226
+ resumeAtMs: number;
1227
+ /**
1228
+ * Format of the binary PBX audio (`MediaPbxAudio`). Channel 0 is the caller; channel 1, when present, is the callee. Samples interleave.
1229
+ * @public
1230
+ */
1231
+ audio: MediaAudioFormat;
1232
+ /**
1233
+ * Present when `purpose` is `agent`.
1234
+ * @public
1235
+ */
1236
+ agent?: MediaStartAgent | undefined;
1237
+ /**
1238
+ * Languages to recognise when `purpose` is `transcription`. May be empty only when `autoDetect` is true. Ignored when `purpose` is `agent`: the agent settings give the languages.
1239
+ * @public
1240
+ */
1241
+ languages?: string[] | undefined;
1242
+ /**
1243
+ * Language of the call. Required when `purpose` is `agent`: the agent starts in its configured language that matches it. With `transcription`, absent or null means the first of `languages`.
1244
+ * @public
1245
+ */
1246
+ preferredLanguage?: string | undefined;
1247
+ /**
1248
+ * True to identify the caller's language among `languages` when `purpose` is `transcription`. Absent: false. Ignored when `purpose` is `agent`.
1249
+ * @public
1250
+ */
1251
+ autoDetect?: boolean | undefined;
1252
+ /**
1253
+ * Caller identity. Each member is absent, null or empty when unknown.
1254
+ * @public
1255
+ */
1256
+ caller: MediaStartCaller;
1257
+ /**
1258
+ * Number that the caller dialled. Absent, null or empty when unknown.
1259
+ * @public
1260
+ */
1261
+ dialedNumber?: string | undefined;
1262
+ /**
1263
+ * Base64 of a JSON object of the `VOICEBOT_*` channel variables. Absent, null or empty when there are none.
1264
+ * @public
1265
+ */
1266
+ variables?: string | undefined;
1267
+ }
1268
+ /**
1269
+ * Voice activity of a party as the PBX detects it. Sent when the state changes, and every 100 ms while agent audio plays.
1270
+ * @public
1271
+ */
1272
+ export interface MediaVadFrame {
1273
+ type: MediaVadFrameType;
1274
+ /**
1275
+ * Party whose audio the report describes.
1276
+ * @public
1277
+ */
1278
+ party: MediaParty;
1279
+ /**
1280
+ * True while the party speaks.
1281
+ * @public
1282
+ */
1283
+ speaking: boolean;
1284
+ /**
1285
+ * Energy of the audio frame that produced the report, in dBFS.
1286
+ * @public
1287
+ */
1288
+ energyDb: number;
1289
+ /**
1290
+ * Run-clock time or duration in ms of PBX audio since the run started. It continues across reconnects.
1291
+ * @public
1292
+ */
1293
+ atMs: number;
1294
+ }
1295
+ /**
1296
+ * One example of each message that the PBX sends.
1297
+ * @public
1298
+ */
1299
+ export interface MediaPbxFrames {
1300
+ /**
1301
+ * First text frame of a socket, sent within 10 s of the upgrade. Opens a run, or attaches a reconnect to it.
1302
+ * @public
1303
+ */
1304
+ start?: MediaStartFrame | undefined;
1305
+ /**
1306
+ * One binary audio message. In the describe answer it is base64; on the socket it is raw bytes.
1307
+ * @public
1308
+ */
1309
+ audio?: Uint8Array | undefined;
1310
+ /**
1311
+ * Voice activity of a party as the PBX detects it. Sent when the state changes, and every 100 ms while agent audio plays.
1312
+ * @public
1313
+ */
1314
+ vad?: MediaVadFrame | undefined;
1315
+ /**
1316
+ * DTMF input that the PBX collected. The cloud takes `digits` as the caller's reply.
1317
+ * @public
1318
+ */
1319
+ dtmf?: MediaDtmfFrame | undefined;
1320
+ /**
1321
+ * An agent audio stream changed state on the PBX.
1322
+ * @public
1323
+ */
1324
+ playback?: MediaPlaybackFrame | undefined;
1325
+ /**
1326
+ * The run ended on the PBX. The PBX sends no audio after it and waits up to 3 s for `finished`.
1327
+ * @public
1328
+ */
1329
+ finish?: MediaFinishFrame | undefined;
1330
+ }
1331
+ /**
1332
+ * One example of each message of the PBX media socket.
1333
+ * @public
1334
+ */
1335
+ export interface MediaProtocolFrames {
1336
+ /**
1337
+ * Messages that the PBX sends.
1338
+ * @public
1339
+ */
1340
+ pbx?: MediaPbxFrames | undefined;
1341
+ /**
1342
+ * Messages that the cloud sends.
1343
+ * @public
1344
+ */
1345
+ cloud?: MediaCloudFrames | undefined;
1346
+ }
854
1347
  /**
855
1348
  * Client-reported progress of an in-flight reply playback.
856
1349
  * @public
@@ -1360,18 +1853,111 @@ export interface DescribeVoiceProtocolOutput {
1360
1853
  * @public
1361
1854
  */
1362
1855
  callEvent?: VoiceCallEvent | undefined;
1856
+ /**
1857
+ * Messages of the PBX media socket `/v2/voice/media/ws` (subprotocol `wilma-media-v2`): one example of each. The binary audio messages are base64 here and raw bytes on the socket.
1858
+ * @public
1859
+ */
1860
+ media?: MediaProtocolFrames | undefined;
1861
+ }
1862
+ /**
1863
+ * @public
1864
+ */
1865
+ export interface GetVoiceDefaultsInput {
1866
+ }
1867
+ /**
1868
+ * Defaults of the tuning members of `VoiceChannelSettings.interruptions`.
1869
+ * @public
1870
+ */
1871
+ export interface VoiceInterruptionDefaults {
1872
+ /**
1873
+ * Minimum number of caller words that count as an interruption.
1874
+ * @public
1875
+ */
1876
+ minWords: number;
1877
+ /**
1878
+ * Minimum recognition confidence, from 0 to 1, of the caller words that count as an interruption.
1879
+ * @public
1880
+ */
1881
+ minConfidence: number;
1882
+ /**
1883
+ * Caller speech in ms before the agent's reply is lowered.
1884
+ * @public
1885
+ */
1886
+ duckAfterMs: number;
1887
+ /**
1888
+ * Volume in dB of a lowered reply.
1889
+ * @public
1890
+ */
1891
+ duckVolumeDb: number;
1892
+ /**
1893
+ * Caller silence in ms before a lowered reply gets its volume back.
1894
+ * @public
1895
+ */
1896
+ restoreAfterMs: number;
1897
+ }
1898
+ /**
1899
+ * Defaults of `VoiceChannelSettings.turnEnd`.
1900
+ * @public
1901
+ */
1902
+ export interface VoiceTurnEndDefaults {
1903
+ /**
1904
+ * Wait in ms after the recogniser marks the end of a caller phrase, before the agent answers.
1905
+ * @public
1906
+ */
1907
+ holdMs: number;
1908
+ }
1909
+ /**
1910
+ * Defaults of `VoiceChannelSettings.voiceDetection`.
1911
+ * @public
1912
+ */
1913
+ export interface VoiceDetectionDefaults {
1914
+ /**
1915
+ * Silence in ms that ends the caller speech.
1916
+ * @public
1917
+ */
1918
+ silenceMs: number;
1919
+ /**
1920
+ * Level in dBFS below which caller audio is silence.
1921
+ * @public
1922
+ */
1923
+ silenceLevelDb: number;
1924
+ /**
1925
+ * Mean frame level in dBFS from which caller audio is speech.
1926
+ * @public
1927
+ */
1928
+ speechLevelDb: number;
1929
+ }
1930
+ /**
1931
+ * @public
1932
+ */
1933
+ export interface GetVoiceDefaultsOutput {
1934
+ /**
1935
+ * Defaults of `VoiceChannelSettings.voiceDetection`.
1936
+ * @public
1937
+ */
1938
+ voiceDetection: VoiceDetectionDefaults;
1939
+ /**
1940
+ * Defaults of the tuning members of `VoiceChannelSettings.interruptions`.
1941
+ * @public
1942
+ */
1943
+ interruptions: VoiceInterruptionDefaults;
1944
+ /**
1945
+ * Defaults of `VoiceChannelSettings.turnEnd`.
1946
+ * @public
1947
+ */
1948
+ turnEnd: VoiceTurnEndDefaults;
1363
1949
  }
1364
1950
  /**
1365
1951
  * @public
1366
1952
  */
1367
1953
  export interface ListVoicesInput {
1368
1954
  /**
1369
- * Provider whose catalog to read: 'elevenlabs', 'google', 'amazon_polly'. This is the scheme of the URIs answered on `voices`.
1955
+ * Provider whose catalog to read: 'elevenlabs', 'google', 'amazon_polly', 'soniox'. This is the scheme of the URIs answered on `voices`.
1370
1956
  * @public
1371
1957
  */
1372
1958
  provider: string;
1373
1959
  /**
1374
- * Server-side filter for language-bound providers: only voices whose language SET CONTAINS this code. Ignored for ElevenLabs, whose voices are not language bound.
1960
+ * Server-side filter for language-bound providers: only voices whose language SET CONTAINS this code. Ignored for ElevenLabs, whose voices are not language bound. For Soniox it keeps the voices whose model speaks the language.
1375
1961
  * @public
1376
1962
  */
1377
1963
  language?: string | undefined;