telnyx 5.119.0 → 5.121.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.
Files changed (49) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +21 -0
  3. data/README.md +1 -1
  4. data/lib/telnyx/client.rb +6 -0
  5. data/lib/telnyx/models/call_dial_params.rb +551 -1
  6. data/lib/telnyx/models/calls/action_answer_params.rb +556 -1
  7. data/lib/telnyx/models/calls/action_gather_using_speak_params.rb +2 -2
  8. data/lib/telnyx/models/calls/action_speak_params.rb +2 -2
  9. data/lib/telnyx/models/calls/action_start_conversation_relay_params.rb +411 -84
  10. data/lib/telnyx/models/conferences/action_speak_params.rb +2 -2
  11. data/lib/telnyx/models/voice_sdk_call_report_list_params.rb +56 -0
  12. data/lib/telnyx/models/voice_sdk_call_report_list_response.rb +385 -0
  13. data/lib/telnyx/models/voice_sdk_call_report_retrieve_params.rb +20 -0
  14. data/lib/telnyx/models/voice_sdk_call_report_retrieve_response.rb +390 -0
  15. data/lib/telnyx/models.rb +4 -0
  16. data/lib/telnyx/resources/calls/actions.rb +26 -8
  17. data/lib/telnyx/resources/calls.rb +3 -1
  18. data/lib/telnyx/resources/voice_sdk_call_reports.rb +71 -0
  19. data/lib/telnyx/version.rb +1 -1
  20. data/lib/telnyx.rb +5 -0
  21. data/rbi/telnyx/client.rbi +5 -0
  22. data/rbi/telnyx/models/call_dial_params.rbi +1273 -0
  23. data/rbi/telnyx/models/calls/action_answer_params.rbi +1279 -0
  24. data/rbi/telnyx/models/calls/action_gather_using_speak_params.rbi +4 -4
  25. data/rbi/telnyx/models/calls/action_speak_params.rbi +4 -4
  26. data/rbi/telnyx/models/calls/action_start_conversation_relay_params.rbi +928 -133
  27. data/rbi/telnyx/models/conferences/action_speak_params.rbi +4 -4
  28. data/rbi/telnyx/models/voice_sdk_call_report_list_params.rbi +108 -0
  29. data/rbi/telnyx/models/voice_sdk_call_report_list_response.rbi +774 -0
  30. data/rbi/telnyx/models/voice_sdk_call_report_retrieve_params.rbi +38 -0
  31. data/rbi/telnyx/models/voice_sdk_call_report_retrieve_response.rbi +782 -0
  32. data/rbi/telnyx/models.rbi +5 -0
  33. data/rbi/telnyx/resources/calls/actions.rbi +73 -24
  34. data/rbi/telnyx/resources/calls.rbi +9 -0
  35. data/rbi/telnyx/resources/conferences/actions.rbi +2 -2
  36. data/rbi/telnyx/resources/voice_sdk_call_reports.rbi +58 -0
  37. data/sig/telnyx/client.rbs +2 -0
  38. data/sig/telnyx/models/call_dial_params.rbs +440 -0
  39. data/sig/telnyx/models/calls/action_answer_params.rbs +440 -0
  40. data/sig/telnyx/models/calls/action_start_conversation_relay_params.rbs +317 -51
  41. data/sig/telnyx/models/voice_sdk_call_report_list_params.rbs +57 -0
  42. data/sig/telnyx/models/voice_sdk_call_report_list_response.rbs +340 -0
  43. data/sig/telnyx/models/voice_sdk_call_report_retrieve_params.rbs +23 -0
  44. data/sig/telnyx/models/voice_sdk_call_report_retrieve_response.rbs +345 -0
  45. data/sig/telnyx/models.rbs +4 -0
  46. data/sig/telnyx/resources/calls/actions.rbs +12 -3
  47. data/sig/telnyx/resources/calls.rbs +1 -0
  48. data/sig/telnyx/resources/voice_sdk_call_reports.rbs +19 -0
  49. metadata +17 -2
@@ -60,12 +60,9 @@ module Telnyx
60
60
  sig { params(conversation_relay_dtmf_detection: T::Boolean).void }
61
61
  attr_writer :conversation_relay_dtmf_detection
62
62
 
63
- # Conversation Relay connection settings. This object is used by TeXML Call
64
- # Scripting's `<ConversationRelay>` verb. The `interruptible` and
65
- # `interruptible_greeting` fields are shorthand for
66
- # `interruption_settings.interruptible` and
67
- # `interruption_settings.interruptible_greeting`; use top-level
68
- # `interruption_settings` for the full interruption settings shape.
63
+ # Conversation Relay connection settings. This object can provide `url`,
64
+ # `dtmf_detection`, `interruptible`, `interruptible_greeting`, and `languages`.
65
+ # Top-level aliases override nested values when both are present.
69
66
  sig do
70
67
  returns(
71
68
  T.nilable(
@@ -91,6 +88,23 @@ module Telnyx
91
88
  sig { params(conversation_relay_url: String).void }
92
89
  attr_writer :conversation_relay_url
93
90
 
91
+ # Custom key-value parameters forwarded to the relay session as
92
+ # `assistant.dynamic_variables`. If `assistant.dynamic_variables` is also present,
93
+ # these values are merged in.
94
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
95
+ attr_reader :custom_parameters
96
+
97
+ sig { params(custom_parameters: T::Hash[Symbol, T.anything]).void }
98
+ attr_writer :custom_parameters
99
+
100
+ # Public alias for `conversation_relay_dtmf_detection`. If both are present, this
101
+ # value wins.
102
+ sig { returns(T.nilable(T::Boolean)) }
103
+ attr_reader :dtmf_detection
104
+
105
+ sig { params(dtmf_detection: T::Boolean).void }
106
+ attr_writer :dtmf_detection
107
+
94
108
  # Text played when the relay session starts.
95
109
  sig { returns(T.nilable(String)) }
96
110
  attr_reader :greeting
@@ -98,6 +112,46 @@ module Telnyx
98
112
  sig { params(greeting: String).void }
99
113
  attr_writer :greeting
100
114
 
115
+ # Controls when caller input can interrupt assistant speech. `any` allows speech
116
+ # or DTMF interruptions; `none` disables interruptions; `speech` allows speech
117
+ # only; `dtmf` allows DTMF only.
118
+ sig do
119
+ returns(
120
+ T.nilable(
121
+ Telnyx::Calls::ActionStartConversationRelayParams::Interruptible::OrSymbol
122
+ )
123
+ )
124
+ end
125
+ attr_reader :interruptible
126
+
127
+ sig do
128
+ params(
129
+ interruptible:
130
+ Telnyx::Calls::ActionStartConversationRelayParams::Interruptible::OrSymbol
131
+ ).void
132
+ end
133
+ attr_writer :interruptible
134
+
135
+ # Controls when caller input can interrupt assistant speech. `any` allows speech
136
+ # or DTMF interruptions; `none` disables interruptions; `speech` allows speech
137
+ # only; `dtmf` allows DTMF only.
138
+ sig do
139
+ returns(
140
+ T.nilable(
141
+ Telnyx::Calls::ActionStartConversationRelayParams::InterruptibleGreeting::OrSymbol
142
+ )
143
+ )
144
+ end
145
+ attr_reader :interruptible_greeting
146
+
147
+ sig do
148
+ params(
149
+ interruptible_greeting:
150
+ Telnyx::Calls::ActionStartConversationRelayParams::InterruptibleGreeting::OrSymbol
151
+ ).void
152
+ end
153
+ attr_writer :interruptible_greeting
154
+
101
155
  # Settings for handling caller interruptions during Conversation Relay speech.
102
156
  sig do
103
157
  returns(
@@ -117,16 +171,14 @@ module Telnyx
117
171
  attr_writer :interruption_settings
118
172
 
119
173
  # Default language for the relay session. This value is used for both
120
- # text-to-speech and speech recognition unless `tts_language` or
121
- # `transcription_language` are provided.
174
+ # text-to-speech and speech recognition.
122
175
  sig { returns(T.nilable(String)) }
123
176
  attr_reader :language
124
177
 
125
178
  sig { params(language: String).void }
126
179
  attr_writer :language
127
180
 
128
- # Language-specific TTS and transcription settings. Use this when the relay
129
- # session needs per-language provider, voice, or speech model configuration.
181
+ # Per-language TTS and transcription settings.
130
182
  sig do
131
183
  returns(
132
184
  T.nilable(
@@ -148,38 +200,78 @@ module Telnyx
148
200
  end
149
201
  attr_writer :languages
150
202
 
151
- # Speech-to-text settings for Conversation Relay.
203
+ # Structured voice provider. Must be supplied together with `structured_provider`.
204
+ sig { returns(T.nilable(String)) }
205
+ attr_reader :provider
206
+
207
+ sig { params(provider: String).void }
208
+ attr_writer :provider
209
+
210
+ # Provider-specific structured voice settings. Must be supplied together with
211
+ # `provider`; Telnyx sends the value as the nested provider configuration for
212
+ # Conversation Relay.
213
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
214
+ attr_reader :structured_provider
215
+
216
+ sig { params(structured_provider: T::Hash[Symbol, T.anything]).void }
217
+ attr_writer :structured_provider
218
+
219
+ # Not supported for Conversation Relay start requests. Use `transcription_engine`
220
+ # and `transcription_engine_config` instead.
221
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
222
+ attr_reader :transcription
223
+
224
+ sig { params(transcription: T::Hash[Symbol, T.anything]).void }
225
+ attr_writer :transcription
226
+
227
+ # Engine to use for speech recognition. Legacy values `A` - `Google`, `B` -
228
+ # `Telnyx` are supported for backward compatibility. For Conversation Relay, use
229
+ # this field with `transcription_engine_config`; the `transcription` object is not
230
+ # supported.
152
231
  sig do
153
232
  returns(
154
233
  T.nilable(
155
- Telnyx::Calls::ActionStartConversationRelayParams::Transcription
234
+ Telnyx::Calls::ActionStartConversationRelayParams::TranscriptionEngine::OrSymbol
156
235
  )
157
236
  )
158
237
  end
159
- attr_reader :transcription
238
+ attr_reader :transcription_engine
160
239
 
161
240
  sig do
162
241
  params(
163
- transcription:
164
- Telnyx::Calls::ActionStartConversationRelayParams::Transcription::OrHash
242
+ transcription_engine:
243
+ Telnyx::Calls::ActionStartConversationRelayParams::TranscriptionEngine::OrSymbol
165
244
  ).void
166
245
  end
167
- attr_writer :transcription
246
+ attr_writer :transcription_engine
247
+
248
+ # Engine-specific transcription settings for Conversation Relay. This accepts the
249
+ # same provider-specific options used by the Call Transcription Start command,
250
+ # such as `transcription_model`, without requiring the engine discriminator to be
251
+ # repeated inside this object.
252
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
253
+ attr_reader :transcription_engine_config
254
+
255
+ sig do
256
+ params(transcription_engine_config: T::Hash[Symbol, T.anything]).void
257
+ end
258
+ attr_writer :transcription_engine_config
168
259
 
169
- # Language to use for speech recognition. Overrides `language` for transcription
170
- # when provided.
260
+ # Text-to-speech provider. If omitted, Telnyx derives it from `voice` or
261
+ # `provider`.
171
262
  sig { returns(T.nilable(String)) }
172
- attr_reader :transcription_language
263
+ attr_reader :tts_provider
173
264
 
174
- sig { params(transcription_language: String).void }
175
- attr_writer :transcription_language
265
+ sig { params(tts_provider: String).void }
266
+ attr_writer :tts_provider
176
267
 
177
- # Language to use for text-to-speech. Overrides `language` for TTS when provided.
268
+ # Public alias for `conversation_relay_url`. Must start with `ws://` or `wss://`.
269
+ # If both are present, this value wins.
178
270
  sig { returns(T.nilable(String)) }
179
- attr_reader :tts_language
271
+ attr_reader :url
180
272
 
181
- sig { params(tts_language: String).void }
182
- attr_writer :tts_language
273
+ sig { params(url: String).void }
274
+ attr_writer :url
183
275
 
184
276
  # The voice to be used by the voice assistant. Currently we support ElevenLabs,
185
277
  # Telnyx and AWS voices.
@@ -221,9 +313,11 @@ module Telnyx
221
313
  Telnyx::Calls::ElevenLabsVoiceSettings,
222
314
  Telnyx::Calls::TelnyxVoiceSettings,
223
315
  Telnyx::Calls::AwsVoiceSettings,
316
+ Telnyx::MinimaxVoiceSettings,
224
317
  Telnyx::AzureVoiceSettings,
225
318
  Telnyx::RimeVoiceSettings,
226
319
  Telnyx::ResembleVoiceSettings,
320
+ Telnyx::Calls::ActionStartConversationRelayParams::VoiceSettings::Inworld,
227
321
  Telnyx::XaiVoiceSettings
228
322
  )
229
323
  )
@@ -238,9 +332,11 @@ module Telnyx
238
332
  Telnyx::Calls::ElevenLabsVoiceSettings::OrHash,
239
333
  Telnyx::Calls::TelnyxVoiceSettings::OrHash,
240
334
  Telnyx::Calls::AwsVoiceSettings::OrHash,
335
+ Telnyx::MinimaxVoiceSettings::OrHash,
241
336
  Telnyx::AzureVoiceSettings::OrHash,
242
337
  Telnyx::RimeVoiceSettings::OrHash,
243
338
  Telnyx::ResembleVoiceSettings::OrHash,
339
+ Telnyx::Calls::ActionStartConversationRelayParams::VoiceSettings::Inworld::OrHash,
244
340
  Telnyx::XaiVoiceSettings::OrHash
245
341
  )
246
342
  ).void
@@ -258,7 +354,13 @@ module Telnyx
258
354
  conversation_relay_settings:
259
355
  Telnyx::Calls::ActionStartConversationRelayParams::ConversationRelaySettings::OrHash,
260
356
  conversation_relay_url: String,
357
+ custom_parameters: T::Hash[Symbol, T.anything],
358
+ dtmf_detection: T::Boolean,
261
359
  greeting: String,
360
+ interruptible:
361
+ Telnyx::Calls::ActionStartConversationRelayParams::Interruptible::OrSymbol,
362
+ interruptible_greeting:
363
+ Telnyx::Calls::ActionStartConversationRelayParams::InterruptibleGreeting::OrSymbol,
262
364
  interruption_settings:
263
365
  Telnyx::Calls::ActionStartConversationRelayParams::InterruptionSettings::OrHash,
264
366
  language: String,
@@ -266,19 +368,25 @@ module Telnyx
266
368
  T::Array[
267
369
  Telnyx::Calls::ActionStartConversationRelayParams::Language::OrHash
268
370
  ],
269
- transcription:
270
- Telnyx::Calls::ActionStartConversationRelayParams::Transcription::OrHash,
271
- transcription_language: String,
272
- tts_language: String,
371
+ provider: String,
372
+ structured_provider: T::Hash[Symbol, T.anything],
373
+ transcription: T::Hash[Symbol, T.anything],
374
+ transcription_engine:
375
+ Telnyx::Calls::ActionStartConversationRelayParams::TranscriptionEngine::OrSymbol,
376
+ transcription_engine_config: T::Hash[Symbol, T.anything],
377
+ tts_provider: String,
378
+ url: String,
273
379
  voice: String,
274
380
  voice_settings:
275
381
  T.any(
276
382
  Telnyx::Calls::ElevenLabsVoiceSettings::OrHash,
277
383
  Telnyx::Calls::TelnyxVoiceSettings::OrHash,
278
384
  Telnyx::Calls::AwsVoiceSettings::OrHash,
385
+ Telnyx::MinimaxVoiceSettings::OrHash,
279
386
  Telnyx::AzureVoiceSettings::OrHash,
280
387
  Telnyx::RimeVoiceSettings::OrHash,
281
388
  Telnyx::ResembleVoiceSettings::OrHash,
389
+ Telnyx::Calls::ActionStartConversationRelayParams::VoiceSettings::Inworld::OrHash,
282
390
  Telnyx::XaiVoiceSettings::OrHash
283
391
  ),
284
392
  request_options: Telnyx::RequestOptions::OrHash
@@ -297,34 +405,62 @@ module Telnyx
297
405
  command_id: nil,
298
406
  # Enable DTMF detection for the relay session.
299
407
  conversation_relay_dtmf_detection: nil,
300
- # Conversation Relay connection settings. This object is used by TeXML Call
301
- # Scripting's `<ConversationRelay>` verb. The `interruptible` and
302
- # `interruptible_greeting` fields are shorthand for
303
- # `interruption_settings.interruptible` and
304
- # `interruption_settings.interruptible_greeting`; use top-level
305
- # `interruption_settings` for the full interruption settings shape.
408
+ # Conversation Relay connection settings. This object can provide `url`,
409
+ # `dtmf_detection`, `interruptible`, `interruptible_greeting`, and `languages`.
410
+ # Top-level aliases override nested values when both are present.
306
411
  conversation_relay_settings: nil,
307
412
  # WebSocket URL for your Conversation Relay server. Must start with `ws://` or
308
413
  # `wss://`.
309
414
  conversation_relay_url: nil,
415
+ # Custom key-value parameters forwarded to the relay session as
416
+ # `assistant.dynamic_variables`. If `assistant.dynamic_variables` is also present,
417
+ # these values are merged in.
418
+ custom_parameters: nil,
419
+ # Public alias for `conversation_relay_dtmf_detection`. If both are present, this
420
+ # value wins.
421
+ dtmf_detection: nil,
310
422
  # Text played when the relay session starts.
311
423
  greeting: nil,
424
+ # Controls when caller input can interrupt assistant speech. `any` allows speech
425
+ # or DTMF interruptions; `none` disables interruptions; `speech` allows speech
426
+ # only; `dtmf` allows DTMF only.
427
+ interruptible: nil,
428
+ # Controls when caller input can interrupt assistant speech. `any` allows speech
429
+ # or DTMF interruptions; `none` disables interruptions; `speech` allows speech
430
+ # only; `dtmf` allows DTMF only.
431
+ interruptible_greeting: nil,
312
432
  # Settings for handling caller interruptions during Conversation Relay speech.
313
433
  interruption_settings: nil,
314
434
  # Default language for the relay session. This value is used for both
315
- # text-to-speech and speech recognition unless `tts_language` or
316
- # `transcription_language` are provided.
435
+ # text-to-speech and speech recognition.
317
436
  language: nil,
318
- # Language-specific TTS and transcription settings. Use this when the relay
319
- # session needs per-language provider, voice, or speech model configuration.
437
+ # Per-language TTS and transcription settings.
320
438
  languages: nil,
321
- # Speech-to-text settings for Conversation Relay.
439
+ # Structured voice provider. Must be supplied together with `structured_provider`.
440
+ provider: nil,
441
+ # Provider-specific structured voice settings. Must be supplied together with
442
+ # `provider`; Telnyx sends the value as the nested provider configuration for
443
+ # Conversation Relay.
444
+ structured_provider: nil,
445
+ # Not supported for Conversation Relay start requests. Use `transcription_engine`
446
+ # and `transcription_engine_config` instead.
322
447
  transcription: nil,
323
- # Language to use for speech recognition. Overrides `language` for transcription
324
- # when provided.
325
- transcription_language: nil,
326
- # Language to use for text-to-speech. Overrides `language` for TTS when provided.
327
- tts_language: nil,
448
+ # Engine to use for speech recognition. Legacy values `A` - `Google`, `B` -
449
+ # `Telnyx` are supported for backward compatibility. For Conversation Relay, use
450
+ # this field with `transcription_engine_config`; the `transcription` object is not
451
+ # supported.
452
+ transcription_engine: nil,
453
+ # Engine-specific transcription settings for Conversation Relay. This accepts the
454
+ # same provider-specific options used by the Call Transcription Start command,
455
+ # such as `transcription_model`, without requiring the engine discriminator to be
456
+ # repeated inside this object.
457
+ transcription_engine_config: nil,
458
+ # Text-to-speech provider. If omitted, Telnyx derives it from `voice` or
459
+ # `provider`.
460
+ tts_provider: nil,
461
+ # Public alias for `conversation_relay_url`. Must start with `ws://` or `wss://`.
462
+ # If both are present, this value wins.
463
+ url: nil,
328
464
  # The voice to be used by the voice assistant. Currently we support ElevenLabs,
329
465
  # Telnyx and AWS voices.
330
466
  #
@@ -370,7 +506,13 @@ module Telnyx
370
506
  conversation_relay_settings:
371
507
  Telnyx::Calls::ActionStartConversationRelayParams::ConversationRelaySettings,
372
508
  conversation_relay_url: String,
509
+ custom_parameters: T::Hash[Symbol, T.anything],
510
+ dtmf_detection: T::Boolean,
373
511
  greeting: String,
512
+ interruptible:
513
+ Telnyx::Calls::ActionStartConversationRelayParams::Interruptible::OrSymbol,
514
+ interruptible_greeting:
515
+ Telnyx::Calls::ActionStartConversationRelayParams::InterruptibleGreeting::OrSymbol,
374
516
  interruption_settings:
375
517
  Telnyx::Calls::ActionStartConversationRelayParams::InterruptionSettings,
376
518
  language: String,
@@ -378,19 +520,25 @@ module Telnyx
378
520
  T::Array[
379
521
  Telnyx::Calls::ActionStartConversationRelayParams::Language
380
522
  ],
381
- transcription:
382
- Telnyx::Calls::ActionStartConversationRelayParams::Transcription,
383
- transcription_language: String,
384
- tts_language: String,
523
+ provider: String,
524
+ structured_provider: T::Hash[Symbol, T.anything],
525
+ transcription: T::Hash[Symbol, T.anything],
526
+ transcription_engine:
527
+ Telnyx::Calls::ActionStartConversationRelayParams::TranscriptionEngine::OrSymbol,
528
+ transcription_engine_config: T::Hash[Symbol, T.anything],
529
+ tts_provider: String,
530
+ url: String,
385
531
  voice: String,
386
532
  voice_settings:
387
533
  T.any(
388
534
  Telnyx::Calls::ElevenLabsVoiceSettings,
389
535
  Telnyx::Calls::TelnyxVoiceSettings,
390
536
  Telnyx::Calls::AwsVoiceSettings,
537
+ Telnyx::MinimaxVoiceSettings,
391
538
  Telnyx::AzureVoiceSettings,
392
539
  Telnyx::RimeVoiceSettings,
393
540
  Telnyx::ResembleVoiceSettings,
541
+ Telnyx::Calls::ActionStartConversationRelayParams::VoiceSettings::Inworld,
394
542
  Telnyx::XaiVoiceSettings
395
543
  ),
396
544
  request_options: Telnyx::RequestOptions
@@ -519,12 +667,9 @@ module Telnyx
519
667
  end
520
668
  attr_writer :languages
521
669
 
522
- # Conversation Relay connection settings. This object is used by TeXML Call
523
- # Scripting's `<ConversationRelay>` verb. The `interruptible` and
524
- # `interruptible_greeting` fields are shorthand for
525
- # `interruption_settings.interruptible` and
526
- # `interruption_settings.interruptible_greeting`; use top-level
527
- # `interruption_settings` for the full interruption settings shape.
670
+ # Conversation Relay connection settings. This object can provide `url`,
671
+ # `dtmf_detection`, `interruptible`, `interruptible_greeting`, and `languages`.
672
+ # Top-level aliases override nested values when both are present.
528
673
  sig do
529
674
  params(
530
675
  url: String,
@@ -680,28 +825,64 @@ module Telnyx
680
825
  )
681
826
  end
682
827
 
683
- # BCP 47 language code.
684
- sig { returns(T.nilable(String)) }
685
- attr_reader :code
686
-
687
- sig { params(code: String).void }
688
- attr_writer :code
828
+ # BCP 47 language tag for this language configuration.
829
+ sig { returns(String) }
830
+ attr_accessor :language
689
831
 
690
- # Speech recognition model for this language.
832
+ # Conversation Relay speech model. Prefer
833
+ # `transcription_engine_config.transcription_model` when configuring
834
+ # speech-to-text.
691
835
  sig { returns(T.nilable(String)) }
692
836
  attr_reader :speech_model
693
837
 
694
838
  sig { params(speech_model: String).void }
695
839
  attr_writer :speech_model
696
840
 
697
- # Speech-to-text provider for this language.
841
+ # Engine to use for speech recognition. Legacy values `A` - `Google`, `B` -
842
+ # `Telnyx` are supported for backward compatibility. When provided in a
843
+ # Conversation Relay language entry, Telnyx derives `transcription_provider` and
844
+ # `speech_model` for that language.
845
+ sig do
846
+ returns(
847
+ T.nilable(
848
+ Telnyx::Calls::ActionStartConversationRelayParams::ConversationRelaySettings::Language::TranscriptionEngine::OrSymbol
849
+ )
850
+ )
851
+ end
852
+ attr_reader :transcription_engine
853
+
854
+ sig do
855
+ params(
856
+ transcription_engine:
857
+ Telnyx::Calls::ActionStartConversationRelayParams::ConversationRelaySettings::Language::TranscriptionEngine::OrSymbol
858
+ ).void
859
+ end
860
+ attr_writer :transcription_engine
861
+
862
+ # Engine-specific transcription settings for Conversation Relay. This accepts the
863
+ # same provider-specific options used by the Call Transcription Start command,
864
+ # such as `transcription_model`, without requiring the engine discriminator to be
865
+ # repeated inside this object.
866
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
867
+ attr_reader :transcription_engine_config
868
+
869
+ sig do
870
+ params(
871
+ transcription_engine_config: T::Hash[Symbol, T.anything]
872
+ ).void
873
+ end
874
+ attr_writer :transcription_engine_config
875
+
876
+ # Conversation Relay transcription provider name. Prefer `transcription_engine`
877
+ # when configuring speech-to-text.
698
878
  sig { returns(T.nilable(String)) }
699
879
  attr_reader :transcription_provider
700
880
 
701
881
  sig { params(transcription_provider: String).void }
702
882
  attr_writer :transcription_provider
703
883
 
704
- # Text-to-speech provider for this language.
884
+ # Text-to-speech provider for this language. If omitted and `voice` is provided,
885
+ # Telnyx derives the provider from the voice identifier.
705
886
  sig { returns(T.nilable(String)) }
706
887
  attr_reader :tts_provider
707
888
 
@@ -715,43 +896,354 @@ module Telnyx
715
896
  sig { params(voice: String).void }
716
897
  attr_writer :voice
717
898
 
718
- # Language-specific speech and transcription settings for Conversation Relay.
899
+ # The settings associated with the voice selected
900
+ sig do
901
+ returns(
902
+ T.nilable(
903
+ T.any(
904
+ Telnyx::Calls::ElevenLabsVoiceSettings,
905
+ Telnyx::Calls::TelnyxVoiceSettings,
906
+ Telnyx::Calls::AwsVoiceSettings,
907
+ Telnyx::MinimaxVoiceSettings,
908
+ Telnyx::AzureVoiceSettings,
909
+ Telnyx::RimeVoiceSettings,
910
+ Telnyx::ResembleVoiceSettings,
911
+ Telnyx::Calls::ActionStartConversationRelayParams::ConversationRelaySettings::Language::VoiceSettings::Inworld,
912
+ Telnyx::XaiVoiceSettings
913
+ )
914
+ )
915
+ )
916
+ end
917
+ attr_reader :voice_settings
918
+
919
+ sig do
920
+ params(
921
+ voice_settings:
922
+ T.any(
923
+ Telnyx::Calls::ElevenLabsVoiceSettings::OrHash,
924
+ Telnyx::Calls::TelnyxVoiceSettings::OrHash,
925
+ Telnyx::Calls::AwsVoiceSettings::OrHash,
926
+ Telnyx::MinimaxVoiceSettings::OrHash,
927
+ Telnyx::AzureVoiceSettings::OrHash,
928
+ Telnyx::RimeVoiceSettings::OrHash,
929
+ Telnyx::ResembleVoiceSettings::OrHash,
930
+ Telnyx::Calls::ActionStartConversationRelayParams::ConversationRelaySettings::Language::VoiceSettings::Inworld::OrHash,
931
+ Telnyx::XaiVoiceSettings::OrHash
932
+ )
933
+ ).void
934
+ end
935
+ attr_writer :voice_settings
936
+
937
+ # Language-specific TTS and transcription settings for Conversation Relay.
719
938
  sig do
720
939
  params(
721
- code: String,
940
+ language: String,
722
941
  speech_model: String,
942
+ transcription_engine:
943
+ Telnyx::Calls::ActionStartConversationRelayParams::ConversationRelaySettings::Language::TranscriptionEngine::OrSymbol,
944
+ transcription_engine_config: T::Hash[Symbol, T.anything],
723
945
  transcription_provider: String,
724
946
  tts_provider: String,
725
- voice: String
947
+ voice: String,
948
+ voice_settings:
949
+ T.any(
950
+ Telnyx::Calls::ElevenLabsVoiceSettings::OrHash,
951
+ Telnyx::Calls::TelnyxVoiceSettings::OrHash,
952
+ Telnyx::Calls::AwsVoiceSettings::OrHash,
953
+ Telnyx::MinimaxVoiceSettings::OrHash,
954
+ Telnyx::AzureVoiceSettings::OrHash,
955
+ Telnyx::RimeVoiceSettings::OrHash,
956
+ Telnyx::ResembleVoiceSettings::OrHash,
957
+ Telnyx::Calls::ActionStartConversationRelayParams::ConversationRelaySettings::Language::VoiceSettings::Inworld::OrHash,
958
+ Telnyx::XaiVoiceSettings::OrHash
959
+ )
726
960
  ).returns(T.attached_class)
727
961
  end
728
962
  def self.new(
729
- # BCP 47 language code.
730
- code: nil,
731
- # Speech recognition model for this language.
963
+ # BCP 47 language tag for this language configuration.
964
+ language:,
965
+ # Conversation Relay speech model. Prefer
966
+ # `transcription_engine_config.transcription_model` when configuring
967
+ # speech-to-text.
732
968
  speech_model: nil,
733
- # Speech-to-text provider for this language.
969
+ # Engine to use for speech recognition. Legacy values `A` - `Google`, `B` -
970
+ # `Telnyx` are supported for backward compatibility. When provided in a
971
+ # Conversation Relay language entry, Telnyx derives `transcription_provider` and
972
+ # `speech_model` for that language.
973
+ transcription_engine: nil,
974
+ # Engine-specific transcription settings for Conversation Relay. This accepts the
975
+ # same provider-specific options used by the Call Transcription Start command,
976
+ # such as `transcription_model`, without requiring the engine discriminator to be
977
+ # repeated inside this object.
978
+ transcription_engine_config: nil,
979
+ # Conversation Relay transcription provider name. Prefer `transcription_engine`
980
+ # when configuring speech-to-text.
734
981
  transcription_provider: nil,
735
- # Text-to-speech provider for this language.
982
+ # Text-to-speech provider for this language. If omitted and `voice` is provided,
983
+ # Telnyx derives the provider from the voice identifier.
736
984
  tts_provider: nil,
737
985
  # Voice identifier for this language.
738
- voice: nil
986
+ voice: nil,
987
+ # The settings associated with the voice selected
988
+ voice_settings: nil
739
989
  )
740
990
  end
741
991
 
742
992
  sig do
743
993
  override.returns(
744
994
  {
745
- code: String,
995
+ language: String,
746
996
  speech_model: String,
997
+ transcription_engine:
998
+ Telnyx::Calls::ActionStartConversationRelayParams::ConversationRelaySettings::Language::TranscriptionEngine::OrSymbol,
999
+ transcription_engine_config: T::Hash[Symbol, T.anything],
747
1000
  transcription_provider: String,
748
1001
  tts_provider: String,
749
- voice: String
1002
+ voice: String,
1003
+ voice_settings:
1004
+ T.any(
1005
+ Telnyx::Calls::ElevenLabsVoiceSettings,
1006
+ Telnyx::Calls::TelnyxVoiceSettings,
1007
+ Telnyx::Calls::AwsVoiceSettings,
1008
+ Telnyx::MinimaxVoiceSettings,
1009
+ Telnyx::AzureVoiceSettings,
1010
+ Telnyx::RimeVoiceSettings,
1011
+ Telnyx::ResembleVoiceSettings,
1012
+ Telnyx::Calls::ActionStartConversationRelayParams::ConversationRelaySettings::Language::VoiceSettings::Inworld,
1013
+ Telnyx::XaiVoiceSettings
1014
+ )
750
1015
  }
751
1016
  )
752
1017
  end
753
1018
  def to_hash
754
1019
  end
1020
+
1021
+ # Engine to use for speech recognition. Legacy values `A` - `Google`, `B` -
1022
+ # `Telnyx` are supported for backward compatibility. When provided in a
1023
+ # Conversation Relay language entry, Telnyx derives `transcription_provider` and
1024
+ # `speech_model` for that language.
1025
+ module TranscriptionEngine
1026
+ extend Telnyx::Internal::Type::Enum
1027
+
1028
+ TaggedSymbol =
1029
+ T.type_alias do
1030
+ T.all(
1031
+ Symbol,
1032
+ Telnyx::Calls::ActionStartConversationRelayParams::ConversationRelaySettings::Language::TranscriptionEngine
1033
+ )
1034
+ end
1035
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1036
+
1037
+ GOOGLE =
1038
+ T.let(
1039
+ :Google,
1040
+ Telnyx::Calls::ActionStartConversationRelayParams::ConversationRelaySettings::Language::TranscriptionEngine::TaggedSymbol
1041
+ )
1042
+ TELNYX =
1043
+ T.let(
1044
+ :Telnyx,
1045
+ Telnyx::Calls::ActionStartConversationRelayParams::ConversationRelaySettings::Language::TranscriptionEngine::TaggedSymbol
1046
+ )
1047
+ DEEPGRAM =
1048
+ T.let(
1049
+ :Deepgram,
1050
+ Telnyx::Calls::ActionStartConversationRelayParams::ConversationRelaySettings::Language::TranscriptionEngine::TaggedSymbol
1051
+ )
1052
+ AZURE =
1053
+ T.let(
1054
+ :Azure,
1055
+ Telnyx::Calls::ActionStartConversationRelayParams::ConversationRelaySettings::Language::TranscriptionEngine::TaggedSymbol
1056
+ )
1057
+ X_AI =
1058
+ T.let(
1059
+ :xAI,
1060
+ Telnyx::Calls::ActionStartConversationRelayParams::ConversationRelaySettings::Language::TranscriptionEngine::TaggedSymbol
1061
+ )
1062
+ ASSEMBLY_AI =
1063
+ T.let(
1064
+ :AssemblyAI,
1065
+ Telnyx::Calls::ActionStartConversationRelayParams::ConversationRelaySettings::Language::TranscriptionEngine::TaggedSymbol
1066
+ )
1067
+ SPEECHMATICS =
1068
+ T.let(
1069
+ :Speechmatics,
1070
+ Telnyx::Calls::ActionStartConversationRelayParams::ConversationRelaySettings::Language::TranscriptionEngine::TaggedSymbol
1071
+ )
1072
+ SONIOX =
1073
+ T.let(
1074
+ :Soniox,
1075
+ Telnyx::Calls::ActionStartConversationRelayParams::ConversationRelaySettings::Language::TranscriptionEngine::TaggedSymbol
1076
+ )
1077
+ A =
1078
+ T.let(
1079
+ :A,
1080
+ Telnyx::Calls::ActionStartConversationRelayParams::ConversationRelaySettings::Language::TranscriptionEngine::TaggedSymbol
1081
+ )
1082
+ B =
1083
+ T.let(
1084
+ :B,
1085
+ Telnyx::Calls::ActionStartConversationRelayParams::ConversationRelaySettings::Language::TranscriptionEngine::TaggedSymbol
1086
+ )
1087
+
1088
+ sig do
1089
+ override.returns(
1090
+ T::Array[
1091
+ Telnyx::Calls::ActionStartConversationRelayParams::ConversationRelaySettings::Language::TranscriptionEngine::TaggedSymbol
1092
+ ]
1093
+ )
1094
+ end
1095
+ def self.values
1096
+ end
1097
+ end
1098
+
1099
+ # The settings associated with the voice selected
1100
+ module VoiceSettings
1101
+ extend Telnyx::Internal::Type::Union
1102
+
1103
+ Variants =
1104
+ T.type_alias do
1105
+ T.any(
1106
+ Telnyx::Calls::ElevenLabsVoiceSettings,
1107
+ Telnyx::Calls::TelnyxVoiceSettings,
1108
+ Telnyx::Calls::AwsVoiceSettings,
1109
+ Telnyx::MinimaxVoiceSettings,
1110
+ Telnyx::AzureVoiceSettings,
1111
+ Telnyx::RimeVoiceSettings,
1112
+ Telnyx::ResembleVoiceSettings,
1113
+ Telnyx::Calls::ActionStartConversationRelayParams::ConversationRelaySettings::Language::VoiceSettings::Inworld,
1114
+ Telnyx::XaiVoiceSettings
1115
+ )
1116
+ end
1117
+
1118
+ class Inworld < Telnyx::Internal::Type::BaseModel
1119
+ OrHash =
1120
+ T.type_alias do
1121
+ T.any(
1122
+ Telnyx::Calls::ActionStartConversationRelayParams::ConversationRelaySettings::Language::VoiceSettings::Inworld,
1123
+ Telnyx::Internal::AnyHash
1124
+ )
1125
+ end
1126
+
1127
+ # Voice settings provider type
1128
+ sig { returns(Symbol) }
1129
+ attr_accessor :type
1130
+
1131
+ sig { params(type: Symbol).returns(T.attached_class) }
1132
+ def self.new(
1133
+ # Voice settings provider type
1134
+ type: :inworld
1135
+ )
1136
+ end
1137
+
1138
+ sig { override.returns({ type: Symbol }) }
1139
+ def to_hash
1140
+ end
1141
+ end
1142
+
1143
+ sig do
1144
+ override.returns(
1145
+ T::Array[
1146
+ Telnyx::Calls::ActionStartConversationRelayParams::ConversationRelaySettings::Language::VoiceSettings::Variants
1147
+ ]
1148
+ )
1149
+ end
1150
+ def self.variants
1151
+ end
1152
+ end
1153
+ end
1154
+ end
1155
+
1156
+ # Controls when caller input can interrupt assistant speech. `any` allows speech
1157
+ # or DTMF interruptions; `none` disables interruptions; `speech` allows speech
1158
+ # only; `dtmf` allows DTMF only.
1159
+ module Interruptible
1160
+ extend Telnyx::Internal::Type::Enum
1161
+
1162
+ TaggedSymbol =
1163
+ T.type_alias do
1164
+ T.all(
1165
+ Symbol,
1166
+ Telnyx::Calls::ActionStartConversationRelayParams::Interruptible
1167
+ )
1168
+ end
1169
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1170
+
1171
+ NONE =
1172
+ T.let(
1173
+ :none,
1174
+ Telnyx::Calls::ActionStartConversationRelayParams::Interruptible::TaggedSymbol
1175
+ )
1176
+ ANY =
1177
+ T.let(
1178
+ :any,
1179
+ Telnyx::Calls::ActionStartConversationRelayParams::Interruptible::TaggedSymbol
1180
+ )
1181
+ SPEECH =
1182
+ T.let(
1183
+ :speech,
1184
+ Telnyx::Calls::ActionStartConversationRelayParams::Interruptible::TaggedSymbol
1185
+ )
1186
+ DTMF =
1187
+ T.let(
1188
+ :dtmf,
1189
+ Telnyx::Calls::ActionStartConversationRelayParams::Interruptible::TaggedSymbol
1190
+ )
1191
+
1192
+ sig do
1193
+ override.returns(
1194
+ T::Array[
1195
+ Telnyx::Calls::ActionStartConversationRelayParams::Interruptible::TaggedSymbol
1196
+ ]
1197
+ )
1198
+ end
1199
+ def self.values
1200
+ end
1201
+ end
1202
+
1203
+ # Controls when caller input can interrupt assistant speech. `any` allows speech
1204
+ # or DTMF interruptions; `none` disables interruptions; `speech` allows speech
1205
+ # only; `dtmf` allows DTMF only.
1206
+ module InterruptibleGreeting
1207
+ extend Telnyx::Internal::Type::Enum
1208
+
1209
+ TaggedSymbol =
1210
+ T.type_alias do
1211
+ T.all(
1212
+ Symbol,
1213
+ Telnyx::Calls::ActionStartConversationRelayParams::InterruptibleGreeting
1214
+ )
1215
+ end
1216
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1217
+
1218
+ NONE =
1219
+ T.let(
1220
+ :none,
1221
+ Telnyx::Calls::ActionStartConversationRelayParams::InterruptibleGreeting::TaggedSymbol
1222
+ )
1223
+ ANY =
1224
+ T.let(
1225
+ :any,
1226
+ Telnyx::Calls::ActionStartConversationRelayParams::InterruptibleGreeting::TaggedSymbol
1227
+ )
1228
+ SPEECH =
1229
+ T.let(
1230
+ :speech,
1231
+ Telnyx::Calls::ActionStartConversationRelayParams::InterruptibleGreeting::TaggedSymbol
1232
+ )
1233
+ DTMF =
1234
+ T.let(
1235
+ :dtmf,
1236
+ Telnyx::Calls::ActionStartConversationRelayParams::InterruptibleGreeting::TaggedSymbol
1237
+ )
1238
+
1239
+ sig do
1240
+ override.returns(
1241
+ T::Array[
1242
+ Telnyx::Calls::ActionStartConversationRelayParams::InterruptibleGreeting::TaggedSymbol
1243
+ ]
1244
+ )
1245
+ end
1246
+ def self.values
755
1247
  end
756
1248
  end
757
1249
 
@@ -1030,28 +1522,64 @@ module Telnyx
1030
1522
  )
1031
1523
  end
1032
1524
 
1033
- # BCP 47 language code.
1034
- sig { returns(T.nilable(String)) }
1035
- attr_reader :code
1036
-
1037
- sig { params(code: String).void }
1038
- attr_writer :code
1525
+ # BCP 47 language tag for this language configuration.
1526
+ sig { returns(String) }
1527
+ attr_accessor :language
1039
1528
 
1040
- # Speech recognition model for this language.
1529
+ # Conversation Relay speech model. Prefer
1530
+ # `transcription_engine_config.transcription_model` when configuring
1531
+ # speech-to-text.
1041
1532
  sig { returns(T.nilable(String)) }
1042
1533
  attr_reader :speech_model
1043
1534
 
1044
1535
  sig { params(speech_model: String).void }
1045
1536
  attr_writer :speech_model
1046
1537
 
1047
- # Speech-to-text provider for this language.
1538
+ # Engine to use for speech recognition. Legacy values `A` - `Google`, `B` -
1539
+ # `Telnyx` are supported for backward compatibility. When provided in a
1540
+ # Conversation Relay language entry, Telnyx derives `transcription_provider` and
1541
+ # `speech_model` for that language.
1542
+ sig do
1543
+ returns(
1544
+ T.nilable(
1545
+ Telnyx::Calls::ActionStartConversationRelayParams::Language::TranscriptionEngine::OrSymbol
1546
+ )
1547
+ )
1548
+ end
1549
+ attr_reader :transcription_engine
1550
+
1551
+ sig do
1552
+ params(
1553
+ transcription_engine:
1554
+ Telnyx::Calls::ActionStartConversationRelayParams::Language::TranscriptionEngine::OrSymbol
1555
+ ).void
1556
+ end
1557
+ attr_writer :transcription_engine
1558
+
1559
+ # Engine-specific transcription settings for Conversation Relay. This accepts the
1560
+ # same provider-specific options used by the Call Transcription Start command,
1561
+ # such as `transcription_model`, without requiring the engine discriminator to be
1562
+ # repeated inside this object.
1563
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
1564
+ attr_reader :transcription_engine_config
1565
+
1566
+ sig do
1567
+ params(
1568
+ transcription_engine_config: T::Hash[Symbol, T.anything]
1569
+ ).void
1570
+ end
1571
+ attr_writer :transcription_engine_config
1572
+
1573
+ # Conversation Relay transcription provider name. Prefer `transcription_engine`
1574
+ # when configuring speech-to-text.
1048
1575
  sig { returns(T.nilable(String)) }
1049
1576
  attr_reader :transcription_provider
1050
1577
 
1051
1578
  sig { params(transcription_provider: String).void }
1052
1579
  attr_writer :transcription_provider
1053
1580
 
1054
- # Text-to-speech provider for this language.
1581
+ # Text-to-speech provider for this language. If omitted and `voice` is provided,
1582
+ # Telnyx derives the provider from the voice identifier.
1055
1583
  sig { returns(T.nilable(String)) }
1056
1584
  attr_reader :tts_provider
1057
1585
 
@@ -1065,97 +1593,337 @@ module Telnyx
1065
1593
  sig { params(voice: String).void }
1066
1594
  attr_writer :voice
1067
1595
 
1068
- # Language-specific speech and transcription settings for Conversation Relay.
1596
+ # The settings associated with the voice selected
1597
+ sig do
1598
+ returns(
1599
+ T.nilable(
1600
+ T.any(
1601
+ Telnyx::Calls::ElevenLabsVoiceSettings,
1602
+ Telnyx::Calls::TelnyxVoiceSettings,
1603
+ Telnyx::Calls::AwsVoiceSettings,
1604
+ Telnyx::MinimaxVoiceSettings,
1605
+ Telnyx::AzureVoiceSettings,
1606
+ Telnyx::RimeVoiceSettings,
1607
+ Telnyx::ResembleVoiceSettings,
1608
+ Telnyx::Calls::ActionStartConversationRelayParams::Language::VoiceSettings::Inworld,
1609
+ Telnyx::XaiVoiceSettings
1610
+ )
1611
+ )
1612
+ )
1613
+ end
1614
+ attr_reader :voice_settings
1615
+
1616
+ sig do
1617
+ params(
1618
+ voice_settings:
1619
+ T.any(
1620
+ Telnyx::Calls::ElevenLabsVoiceSettings::OrHash,
1621
+ Telnyx::Calls::TelnyxVoiceSettings::OrHash,
1622
+ Telnyx::Calls::AwsVoiceSettings::OrHash,
1623
+ Telnyx::MinimaxVoiceSettings::OrHash,
1624
+ Telnyx::AzureVoiceSettings::OrHash,
1625
+ Telnyx::RimeVoiceSettings::OrHash,
1626
+ Telnyx::ResembleVoiceSettings::OrHash,
1627
+ Telnyx::Calls::ActionStartConversationRelayParams::Language::VoiceSettings::Inworld::OrHash,
1628
+ Telnyx::XaiVoiceSettings::OrHash
1629
+ )
1630
+ ).void
1631
+ end
1632
+ attr_writer :voice_settings
1633
+
1634
+ # Language-specific TTS and transcription settings for Conversation Relay.
1069
1635
  sig do
1070
1636
  params(
1071
- code: String,
1637
+ language: String,
1072
1638
  speech_model: String,
1639
+ transcription_engine:
1640
+ Telnyx::Calls::ActionStartConversationRelayParams::Language::TranscriptionEngine::OrSymbol,
1641
+ transcription_engine_config: T::Hash[Symbol, T.anything],
1073
1642
  transcription_provider: String,
1074
1643
  tts_provider: String,
1075
- voice: String
1644
+ voice: String,
1645
+ voice_settings:
1646
+ T.any(
1647
+ Telnyx::Calls::ElevenLabsVoiceSettings::OrHash,
1648
+ Telnyx::Calls::TelnyxVoiceSettings::OrHash,
1649
+ Telnyx::Calls::AwsVoiceSettings::OrHash,
1650
+ Telnyx::MinimaxVoiceSettings::OrHash,
1651
+ Telnyx::AzureVoiceSettings::OrHash,
1652
+ Telnyx::RimeVoiceSettings::OrHash,
1653
+ Telnyx::ResembleVoiceSettings::OrHash,
1654
+ Telnyx::Calls::ActionStartConversationRelayParams::Language::VoiceSettings::Inworld::OrHash,
1655
+ Telnyx::XaiVoiceSettings::OrHash
1656
+ )
1076
1657
  ).returns(T.attached_class)
1077
1658
  end
1078
1659
  def self.new(
1079
- # BCP 47 language code.
1080
- code: nil,
1081
- # Speech recognition model for this language.
1660
+ # BCP 47 language tag for this language configuration.
1661
+ language:,
1662
+ # Conversation Relay speech model. Prefer
1663
+ # `transcription_engine_config.transcription_model` when configuring
1664
+ # speech-to-text.
1082
1665
  speech_model: nil,
1083
- # Speech-to-text provider for this language.
1666
+ # Engine to use for speech recognition. Legacy values `A` - `Google`, `B` -
1667
+ # `Telnyx` are supported for backward compatibility. When provided in a
1668
+ # Conversation Relay language entry, Telnyx derives `transcription_provider` and
1669
+ # `speech_model` for that language.
1670
+ transcription_engine: nil,
1671
+ # Engine-specific transcription settings for Conversation Relay. This accepts the
1672
+ # same provider-specific options used by the Call Transcription Start command,
1673
+ # such as `transcription_model`, without requiring the engine discriminator to be
1674
+ # repeated inside this object.
1675
+ transcription_engine_config: nil,
1676
+ # Conversation Relay transcription provider name. Prefer `transcription_engine`
1677
+ # when configuring speech-to-text.
1084
1678
  transcription_provider: nil,
1085
- # Text-to-speech provider for this language.
1679
+ # Text-to-speech provider for this language. If omitted and `voice` is provided,
1680
+ # Telnyx derives the provider from the voice identifier.
1086
1681
  tts_provider: nil,
1087
1682
  # Voice identifier for this language.
1088
- voice: nil
1683
+ voice: nil,
1684
+ # The settings associated with the voice selected
1685
+ voice_settings: nil
1089
1686
  )
1090
1687
  end
1091
1688
 
1092
1689
  sig do
1093
1690
  override.returns(
1094
1691
  {
1095
- code: String,
1692
+ language: String,
1096
1693
  speech_model: String,
1694
+ transcription_engine:
1695
+ Telnyx::Calls::ActionStartConversationRelayParams::Language::TranscriptionEngine::OrSymbol,
1696
+ transcription_engine_config: T::Hash[Symbol, T.anything],
1097
1697
  transcription_provider: String,
1098
1698
  tts_provider: String,
1099
- voice: String
1699
+ voice: String,
1700
+ voice_settings:
1701
+ T.any(
1702
+ Telnyx::Calls::ElevenLabsVoiceSettings,
1703
+ Telnyx::Calls::TelnyxVoiceSettings,
1704
+ Telnyx::Calls::AwsVoiceSettings,
1705
+ Telnyx::MinimaxVoiceSettings,
1706
+ Telnyx::AzureVoiceSettings,
1707
+ Telnyx::RimeVoiceSettings,
1708
+ Telnyx::ResembleVoiceSettings,
1709
+ Telnyx::Calls::ActionStartConversationRelayParams::Language::VoiceSettings::Inworld,
1710
+ Telnyx::XaiVoiceSettings
1711
+ )
1100
1712
  }
1101
1713
  )
1102
1714
  end
1103
1715
  def to_hash
1104
1716
  end
1105
- end
1106
1717
 
1107
- class Transcription < Telnyx::Internal::Type::BaseModel
1108
- OrHash =
1109
- T.type_alias do
1110
- T.any(
1111
- Telnyx::Calls::ActionStartConversationRelayParams::Transcription,
1112
- Telnyx::Internal::AnyHash
1718
+ # Engine to use for speech recognition. Legacy values `A` - `Google`, `B` -
1719
+ # `Telnyx` are supported for backward compatibility. When provided in a
1720
+ # Conversation Relay language entry, Telnyx derives `transcription_provider` and
1721
+ # `speech_model` for that language.
1722
+ module TranscriptionEngine
1723
+ extend Telnyx::Internal::Type::Enum
1724
+
1725
+ TaggedSymbol =
1726
+ T.type_alias do
1727
+ T.all(
1728
+ Symbol,
1729
+ Telnyx::Calls::ActionStartConversationRelayParams::Language::TranscriptionEngine
1730
+ )
1731
+ end
1732
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1733
+
1734
+ GOOGLE =
1735
+ T.let(
1736
+ :Google,
1737
+ Telnyx::Calls::ActionStartConversationRelayParams::Language::TranscriptionEngine::TaggedSymbol
1738
+ )
1739
+ TELNYX =
1740
+ T.let(
1741
+ :Telnyx,
1742
+ Telnyx::Calls::ActionStartConversationRelayParams::Language::TranscriptionEngine::TaggedSymbol
1743
+ )
1744
+ DEEPGRAM =
1745
+ T.let(
1746
+ :Deepgram,
1747
+ Telnyx::Calls::ActionStartConversationRelayParams::Language::TranscriptionEngine::TaggedSymbol
1748
+ )
1749
+ AZURE =
1750
+ T.let(
1751
+ :Azure,
1752
+ Telnyx::Calls::ActionStartConversationRelayParams::Language::TranscriptionEngine::TaggedSymbol
1753
+ )
1754
+ X_AI =
1755
+ T.let(
1756
+ :xAI,
1757
+ Telnyx::Calls::ActionStartConversationRelayParams::Language::TranscriptionEngine::TaggedSymbol
1758
+ )
1759
+ ASSEMBLY_AI =
1760
+ T.let(
1761
+ :AssemblyAI,
1762
+ Telnyx::Calls::ActionStartConversationRelayParams::Language::TranscriptionEngine::TaggedSymbol
1763
+ )
1764
+ SPEECHMATICS =
1765
+ T.let(
1766
+ :Speechmatics,
1767
+ Telnyx::Calls::ActionStartConversationRelayParams::Language::TranscriptionEngine::TaggedSymbol
1768
+ )
1769
+ SONIOX =
1770
+ T.let(
1771
+ :Soniox,
1772
+ Telnyx::Calls::ActionStartConversationRelayParams::Language::TranscriptionEngine::TaggedSymbol
1773
+ )
1774
+ A =
1775
+ T.let(
1776
+ :A,
1777
+ Telnyx::Calls::ActionStartConversationRelayParams::Language::TranscriptionEngine::TaggedSymbol
1778
+ )
1779
+ B =
1780
+ T.let(
1781
+ :B,
1782
+ Telnyx::Calls::ActionStartConversationRelayParams::Language::TranscriptionEngine::TaggedSymbol
1783
+ )
1784
+
1785
+ sig do
1786
+ override.returns(
1787
+ T::Array[
1788
+ Telnyx::Calls::ActionStartConversationRelayParams::Language::TranscriptionEngine::TaggedSymbol
1789
+ ]
1113
1790
  )
1114
1791
  end
1792
+ def self.values
1793
+ end
1794
+ end
1115
1795
 
1116
- # Transcription language.
1117
- sig { returns(T.nilable(String)) }
1118
- attr_reader :language
1796
+ # The settings associated with the voice selected
1797
+ module VoiceSettings
1798
+ extend Telnyx::Internal::Type::Union
1119
1799
 
1120
- sig { params(language: String).void }
1121
- attr_writer :language
1800
+ Variants =
1801
+ T.type_alias do
1802
+ T.any(
1803
+ Telnyx::Calls::ElevenLabsVoiceSettings,
1804
+ Telnyx::Calls::TelnyxVoiceSettings,
1805
+ Telnyx::Calls::AwsVoiceSettings,
1806
+ Telnyx::MinimaxVoiceSettings,
1807
+ Telnyx::AzureVoiceSettings,
1808
+ Telnyx::RimeVoiceSettings,
1809
+ Telnyx::ResembleVoiceSettings,
1810
+ Telnyx::Calls::ActionStartConversationRelayParams::Language::VoiceSettings::Inworld,
1811
+ Telnyx::XaiVoiceSettings
1812
+ )
1813
+ end
1122
1814
 
1123
- # Transcription model to use.
1124
- sig { returns(T.nilable(String)) }
1125
- attr_reader :model
1815
+ class Inworld < Telnyx::Internal::Type::BaseModel
1816
+ OrHash =
1817
+ T.type_alias do
1818
+ T.any(
1819
+ Telnyx::Calls::ActionStartConversationRelayParams::Language::VoiceSettings::Inworld,
1820
+ Telnyx::Internal::AnyHash
1821
+ )
1822
+ end
1823
+
1824
+ # Voice settings provider type
1825
+ sig { returns(Symbol) }
1826
+ attr_accessor :type
1827
+
1828
+ sig { params(type: Symbol).returns(T.attached_class) }
1829
+ def self.new(
1830
+ # Voice settings provider type
1831
+ type: :inworld
1832
+ )
1833
+ end
1126
1834
 
1127
- sig { params(model: String).void }
1128
- attr_writer :model
1835
+ sig { override.returns({ type: Symbol }) }
1836
+ def to_hash
1837
+ end
1838
+ end
1129
1839
 
1130
- # Transcription provider to use.
1131
- sig { returns(T.nilable(String)) }
1132
- attr_reader :provider
1840
+ sig do
1841
+ override.returns(
1842
+ T::Array[
1843
+ Telnyx::Calls::ActionStartConversationRelayParams::Language::VoiceSettings::Variants
1844
+ ]
1845
+ )
1846
+ end
1847
+ def self.variants
1848
+ end
1849
+ end
1850
+ end
1133
1851
 
1134
- sig { params(provider: String).void }
1135
- attr_writer :provider
1852
+ # Engine to use for speech recognition. Legacy values `A` - `Google`, `B` -
1853
+ # `Telnyx` are supported for backward compatibility. For Conversation Relay, use
1854
+ # this field with `transcription_engine_config`; the `transcription` object is not
1855
+ # supported.
1856
+ module TranscriptionEngine
1857
+ extend Telnyx::Internal::Type::Enum
1136
1858
 
1137
- # Speech-to-text settings for Conversation Relay.
1138
- sig do
1139
- params(language: String, model: String, provider: String).returns(
1140
- T.attached_class
1859
+ TaggedSymbol =
1860
+ T.type_alias do
1861
+ T.all(
1862
+ Symbol,
1863
+ Telnyx::Calls::ActionStartConversationRelayParams::TranscriptionEngine
1864
+ )
1865
+ end
1866
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1867
+
1868
+ GOOGLE =
1869
+ T.let(
1870
+ :Google,
1871
+ Telnyx::Calls::ActionStartConversationRelayParams::TranscriptionEngine::TaggedSymbol
1872
+ )
1873
+ TELNYX =
1874
+ T.let(
1875
+ :Telnyx,
1876
+ Telnyx::Calls::ActionStartConversationRelayParams::TranscriptionEngine::TaggedSymbol
1877
+ )
1878
+ DEEPGRAM =
1879
+ T.let(
1880
+ :Deepgram,
1881
+ Telnyx::Calls::ActionStartConversationRelayParams::TranscriptionEngine::TaggedSymbol
1882
+ )
1883
+ AZURE =
1884
+ T.let(
1885
+ :Azure,
1886
+ Telnyx::Calls::ActionStartConversationRelayParams::TranscriptionEngine::TaggedSymbol
1887
+ )
1888
+ X_AI =
1889
+ T.let(
1890
+ :xAI,
1891
+ Telnyx::Calls::ActionStartConversationRelayParams::TranscriptionEngine::TaggedSymbol
1892
+ )
1893
+ ASSEMBLY_AI =
1894
+ T.let(
1895
+ :AssemblyAI,
1896
+ Telnyx::Calls::ActionStartConversationRelayParams::TranscriptionEngine::TaggedSymbol
1897
+ )
1898
+ SPEECHMATICS =
1899
+ T.let(
1900
+ :Speechmatics,
1901
+ Telnyx::Calls::ActionStartConversationRelayParams::TranscriptionEngine::TaggedSymbol
1902
+ )
1903
+ SONIOX =
1904
+ T.let(
1905
+ :Soniox,
1906
+ Telnyx::Calls::ActionStartConversationRelayParams::TranscriptionEngine::TaggedSymbol
1907
+ )
1908
+ A =
1909
+ T.let(
1910
+ :A,
1911
+ Telnyx::Calls::ActionStartConversationRelayParams::TranscriptionEngine::TaggedSymbol
1912
+ )
1913
+ B =
1914
+ T.let(
1915
+ :B,
1916
+ Telnyx::Calls::ActionStartConversationRelayParams::TranscriptionEngine::TaggedSymbol
1141
1917
  )
1142
- end
1143
- def self.new(
1144
- # Transcription language.
1145
- language: nil,
1146
- # Transcription model to use.
1147
- model: nil,
1148
- # Transcription provider to use.
1149
- provider: nil
1150
- )
1151
- end
1152
1918
 
1153
1919
  sig do
1154
1920
  override.returns(
1155
- { language: String, model: String, provider: String }
1921
+ T::Array[
1922
+ Telnyx::Calls::ActionStartConversationRelayParams::TranscriptionEngine::TaggedSymbol
1923
+ ]
1156
1924
  )
1157
1925
  end
1158
- def to_hash
1926
+ def self.values
1159
1927
  end
1160
1928
  end
1161
1929
 
@@ -1169,13 +1937,40 @@ module Telnyx
1169
1937
  Telnyx::Calls::ElevenLabsVoiceSettings,
1170
1938
  Telnyx::Calls::TelnyxVoiceSettings,
1171
1939
  Telnyx::Calls::AwsVoiceSettings,
1940
+ Telnyx::MinimaxVoiceSettings,
1172
1941
  Telnyx::AzureVoiceSettings,
1173
1942
  Telnyx::RimeVoiceSettings,
1174
1943
  Telnyx::ResembleVoiceSettings,
1944
+ Telnyx::Calls::ActionStartConversationRelayParams::VoiceSettings::Inworld,
1175
1945
  Telnyx::XaiVoiceSettings
1176
1946
  )
1177
1947
  end
1178
1948
 
1949
+ class Inworld < Telnyx::Internal::Type::BaseModel
1950
+ OrHash =
1951
+ T.type_alias do
1952
+ T.any(
1953
+ Telnyx::Calls::ActionStartConversationRelayParams::VoiceSettings::Inworld,
1954
+ Telnyx::Internal::AnyHash
1955
+ )
1956
+ end
1957
+
1958
+ # Voice settings provider type
1959
+ sig { returns(Symbol) }
1960
+ attr_accessor :type
1961
+
1962
+ sig { params(type: Symbol).returns(T.attached_class) }
1963
+ def self.new(
1964
+ # Voice settings provider type
1965
+ type: :inworld
1966
+ )
1967
+ end
1968
+
1969
+ sig { override.returns({ type: Symbol }) }
1970
+ def to_hash
1971
+ end
1972
+ end
1973
+
1179
1974
  sig do
1180
1975
  override.returns(
1181
1976
  T::Array[