telnyx 5.164.0 → 5.166.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 (84) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +26 -0
  3. data/README.md +1 -1
  4. data/lib/telnyx/client.rb +4 -5
  5. data/lib/telnyx/lib/webhook_verification.rb +54 -155
  6. data/lib/telnyx/lib.rb +3 -1
  7. data/lib/telnyx/models/ai/assistant_tool.rb +14 -1
  8. data/lib/telnyx/models/ai/transcription_settings.rb +20 -15
  9. data/lib/telnyx/models/ai/transcription_settings_config.rb +35 -10
  10. data/lib/telnyx/models/call_dial_params.rb +13 -1
  11. data/lib/telnyx/models/calls/action_transfer_params.rb +13 -1
  12. data/lib/telnyx/models/connection_rtcp_settings.rb +3 -3
  13. data/lib/telnyx/models/credential_connections/action_check_registration_status_response.rb +12 -12
  14. data/lib/telnyx/models/external_requirements/sub_number_order_retrieve_params.rb +28 -0
  15. data/lib/telnyx/models/external_requirements/sub_number_order_retrieve_response.rb +104 -0
  16. data/lib/telnyx/models/external_requirements/sub_number_order_update_params.rb +69 -0
  17. data/lib/telnyx/models/external_requirements/sub_number_order_update_response.rb +66 -0
  18. data/lib/telnyx/models/outbound_voice_profile.rb +14 -14
  19. data/lib/telnyx/models/outbound_voice_profile_create_params.rb +14 -14
  20. data/lib/telnyx/models/outbound_voice_profile_update_params.rb +14 -14
  21. data/lib/telnyx/models/uac_connections/action_check_registration_status_response.rb +12 -12
  22. data/lib/telnyx/models.rb +2 -2
  23. data/lib/telnyx/resources/calls/actions.rb +3 -1
  24. data/lib/telnyx/resources/calls.rb +3 -1
  25. data/lib/telnyx/resources/credential_connections/actions.rb +3 -3
  26. data/lib/telnyx/resources/external_requirements/sub_number_orders.rb +99 -0
  27. data/lib/telnyx/resources/external_requirements.rb +19 -0
  28. data/lib/telnyx/resources/outbound_voice_profiles.rb +2 -2
  29. data/lib/telnyx/resources/uac_connections/actions.rb +3 -3
  30. data/lib/telnyx/resources/webhooks.rb +1 -1
  31. data/lib/telnyx/version.rb +1 -1
  32. data/lib/telnyx.rb +6 -4
  33. data/rbi/telnyx/client.rbi +3 -4
  34. data/rbi/telnyx/models/ai/assistant_tool.rbi +21 -0
  35. data/rbi/telnyx/models/ai/transcription_settings.rbi +40 -28
  36. data/rbi/telnyx/models/ai/transcription_settings_config.rbi +52 -12
  37. data/rbi/telnyx/models/call_dial_params.rbi +19 -0
  38. data/rbi/telnyx/models/calls/action_transfer_params.rbi +19 -0
  39. data/rbi/telnyx/models/connection_rtcp_settings.rbi +4 -4
  40. data/rbi/telnyx/models/credential_connections/action_check_registration_status_response.rbi +18 -36
  41. data/rbi/telnyx/models/external_requirements/sub_number_order_retrieve_params.rbi +52 -0
  42. data/rbi/telnyx/models/external_requirements/sub_number_order_retrieve_response.rbi +248 -0
  43. data/rbi/telnyx/models/external_requirements/sub_number_order_update_params.rbi +119 -0
  44. data/rbi/telnyx/models/external_requirements/sub_number_order_update_response.rbi +159 -0
  45. data/rbi/telnyx/models/outbound_voice_profile.rbi +18 -18
  46. data/rbi/telnyx/models/outbound_voice_profile_create_params.rbi +18 -18
  47. data/rbi/telnyx/models/outbound_voice_profile_update_params.rbi +18 -18
  48. data/rbi/telnyx/models/uac_connections/action_check_registration_status_response.rbi +18 -36
  49. data/rbi/telnyx/models.rbi +2 -3
  50. data/rbi/telnyx/resources/calls/actions.rbi +7 -0
  51. data/rbi/telnyx/resources/calls.rbi +7 -0
  52. data/rbi/telnyx/resources/credential_connections/actions.rbi +3 -3
  53. data/rbi/telnyx/resources/external_requirements/sub_number_orders.rbi +71 -0
  54. data/rbi/telnyx/resources/external_requirements.rbi +16 -0
  55. data/rbi/telnyx/resources/outbound_voice_profiles.rbi +4 -4
  56. data/rbi/telnyx/resources/uac_connections/actions.rbi +3 -3
  57. data/sig/telnyx/client.rbs +2 -2
  58. data/sig/telnyx/models/ai/assistant_tool.rbs +7 -0
  59. data/sig/telnyx/models/ai/transcription_settings.rbs +2 -0
  60. data/sig/telnyx/models/ai/transcription_settings_config.rbs +14 -0
  61. data/sig/telnyx/models/call_dial_params.rbs +7 -0
  62. data/sig/telnyx/models/calls/action_transfer_params.rbs +7 -0
  63. data/sig/telnyx/models/credential_connections/action_check_registration_status_response.rbs +24 -36
  64. data/sig/telnyx/models/external_requirements/sub_number_order_retrieve_params.rbs +30 -0
  65. data/sig/telnyx/models/external_requirements/sub_number_order_retrieve_response.rbs +110 -0
  66. data/sig/telnyx/models/external_requirements/sub_number_order_update_params.rbs +50 -0
  67. data/sig/telnyx/models/external_requirements/sub_number_order_update_response.rbs +75 -0
  68. data/sig/telnyx/models/uac_connections/action_check_registration_status_response.rbs +24 -36
  69. data/sig/telnyx/models.rbs +2 -2
  70. data/sig/telnyx/resources/calls/actions.rbs +1 -0
  71. data/sig/telnyx/resources/calls.rbs +1 -0
  72. data/sig/telnyx/resources/external_requirements/sub_number_orders.rbs +22 -0
  73. data/sig/telnyx/resources/external_requirements.rbs +9 -0
  74. metadata +20 -26
  75. data/lib/telnyx/lib/webhooks_ed25519.rb +0 -63
  76. data/lib/telnyx/models/sip_registration_status_retrieve_params.rb +0 -59
  77. data/lib/telnyx/models/sip_registration_status_retrieve_response.rb +0 -214
  78. data/lib/telnyx/resources/sip_registration_status.rb +0 -59
  79. data/rbi/telnyx/models/sip_registration_status_retrieve_params.rbi +0 -124
  80. data/rbi/telnyx/models/sip_registration_status_retrieve_response.rbi +0 -416
  81. data/rbi/telnyx/resources/sip_registration_status.rbi +0 -52
  82. data/sig/telnyx/models/sip_registration_status_retrieve_params.rbs +0 -55
  83. data/sig/telnyx/models/sip_registration_status_retrieve_response.rbs +0 -195
  84. data/sig/telnyx/resources/sip_registration_status.rbs +0 -14
@@ -35,7 +35,7 @@ module Telnyx
35
35
  # When the `record` parameter is set to `record-from-answer`, the response will
36
36
  # include a `recording_id` field.
37
37
  #
38
- # @overload dial(connection_id:, from:, to:, answering_machine_detection: nil, answering_machine_detection_config: nil, assistant: nil, audio_url: nil, billing_group_id: nil, bridge_intent: nil, bridge_on_answer: nil, client_state: nil, command_id: nil, conference_config: nil, conversation_relay_config: nil, custom_headers: nil, deepfake_detection: nil, dialogflow_config: nil, enable_dialogflow: nil, from_display_name: nil, link_to: nil, media_encryption: nil, media_name: nil, park_after_unbridge: nil, preferred_codecs: nil, prevent_double_bridge: nil, privacy: nil, record: nil, record_channels: nil, record_custom_file_name: nil, record_format: nil, record_max_length: nil, record_timeout_secs: nil, record_track: nil, record_trim: nil, retry_on_timeout: nil, route_to_mobile: nil, send_digits_on_answer: nil, send_silence_when_idle: nil, sip_auth_password: nil, sip_auth_username: nil, sip_headers: nil, sip_region: nil, sip_transport_protocol: nil, sound_modifications: nil, stream_auth_token: nil, stream_bidirectional_codec: nil, stream_bidirectional_mode: nil, stream_bidirectional_sampling_rate: nil, stream_bidirectional_target_legs: nil, stream_codec: nil, stream_establish_before_call_originate: nil, stream_track: nil, stream_url: nil, supervise_call_control_id: nil, supervisor_role: nil, time_limit_secs: nil, timeout_secs: nil, transcription: nil, transcription_config: nil, webhook_retries_policies: nil, webhook_url: nil, webhook_url_method: nil, webhook_urls: nil, webhook_urls_method: nil, request_options: {})
38
+ # @overload dial(connection_id:, from:, to:, answering_machine_detection: nil, answering_machine_detection_config: nil, assistant: nil, audio_url: nil, billing_group_id: nil, bridge_intent: nil, bridge_on_answer: nil, client_state: nil, command_id: nil, conference_config: nil, conversation_relay_config: nil, custom_headers: nil, deepfake_detection: nil, dialogflow_config: nil, diversion: nil, enable_dialogflow: nil, from_display_name: nil, link_to: nil, media_encryption: nil, media_name: nil, park_after_unbridge: nil, preferred_codecs: nil, prevent_double_bridge: nil, privacy: nil, record: nil, record_channels: nil, record_custom_file_name: nil, record_format: nil, record_max_length: nil, record_timeout_secs: nil, record_track: nil, record_trim: nil, retry_on_timeout: nil, route_to_mobile: nil, send_digits_on_answer: nil, send_silence_when_idle: nil, sip_auth_password: nil, sip_auth_username: nil, sip_headers: nil, sip_region: nil, sip_transport_protocol: nil, sound_modifications: nil, stream_auth_token: nil, stream_bidirectional_codec: nil, stream_bidirectional_mode: nil, stream_bidirectional_sampling_rate: nil, stream_bidirectional_target_legs: nil, stream_codec: nil, stream_establish_before_call_originate: nil, stream_track: nil, stream_url: nil, supervise_call_control_id: nil, supervisor_role: nil, time_limit_secs: nil, timeout_secs: nil, transcription: nil, transcription_config: nil, webhook_retries_policies: nil, webhook_url: nil, webhook_url_method: nil, webhook_urls: nil, webhook_urls_method: nil, request_options: {})
39
39
  #
40
40
  # @param connection_id [String] The ID of the Call Control App (formerly ID of the connection) to be used when d
41
41
  #
@@ -71,6 +71,8 @@ module Telnyx
71
71
  #
72
72
  # @param dialogflow_config [Telnyx::Models::DialogflowConfig]
73
73
  #
74
+ # @param diversion [String] The number the inbound call being transferred was originally received on, in +E1
75
+ #
74
76
  # @param enable_dialogflow [Boolean] Enables Dialogflow for the current call. The default value is false.
75
77
  #
76
78
  # @param from_display_name [String] The `from_display_name` string to be used as the caller id name (SIP From Displa
@@ -5,9 +5,9 @@ module Telnyx
5
5
  class CredentialConnections
6
6
  # Credential connection operations
7
7
  class Actions
8
- # Checks the registration_status for a credential connection,
9
- # (`registration_status`) as well as the timestamp for the last SIP registration
10
- # event (`registration_status_updated_at`)
8
+ # Returns the live SIP registration status for a credential connection. Reports
9
+ # whether the endpoint is currently registered (`status`) and the timestamp of the
10
+ # last SIP registration event (`last_registration`).
11
11
  #
12
12
  # @overload check_registration_status(id, request_options: {})
13
13
  #
@@ -0,0 +1,99 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telnyx
4
+ module Resources
5
+ class ExternalRequirements
6
+ # Requirement Groups
7
+ class SubNumberOrders
8
+ # Some parameter documentations has been truncated, see
9
+ # {Telnyx::Models::ExternalRequirements::SubNumberOrderRetrieveParams} for more
10
+ # details.
11
+ #
12
+ # Returns the input fields an action requirement needs and the current requirement
13
+ # action for a sub number order. Action requirements are fulfilled by an external
14
+ # step rather than by uploading documents. Australia mobile ID verification is
15
+ # currently the only action requirement. Once a verification link has been
16
+ # generated, it is returned in `requirement_action.value`.
17
+ #
18
+ # @overload retrieve(sub_number_order_id, regulatory_requirement_id:, request_options: {})
19
+ #
20
+ # @param sub_number_order_id [String] The ID of the sub number order the requirement belongs to.
21
+ #
22
+ # @param regulatory_requirement_id [String] The ID of the regulatory (action) requirement. For Australia mobile ID verificat
23
+ #
24
+ # @param request_options [Telnyx::RequestOptions, Hash{Symbol=>Object}, nil]
25
+ #
26
+ # @return [Telnyx::Models::ExternalRequirements::SubNumberOrderRetrieveResponse]
27
+ #
28
+ # @see Telnyx::Models::ExternalRequirements::SubNumberOrderRetrieveParams
29
+ def retrieve(sub_number_order_id, params)
30
+ parsed, options = Telnyx::ExternalRequirements::SubNumberOrderRetrieveParams.dump_request(params)
31
+ regulatory_requirement_id =
32
+ parsed.delete(:regulatory_requirement_id) do
33
+ raise ArgumentError.new("missing required path argument #{_1}")
34
+ end
35
+ @client.request(
36
+ method: :get,
37
+ path: [
38
+ "external_requirements/%1$s/sub_number_orders/%2$s",
39
+ regulatory_requirement_id,
40
+ sub_number_order_id
41
+ ],
42
+ model: Telnyx::Models::ExternalRequirements::SubNumberOrderRetrieveResponse,
43
+ options: options
44
+ )
45
+ end
46
+
47
+ # Some parameter documentations has been truncated, see
48
+ # {Telnyx::Models::ExternalRequirements::SubNumberOrderUpdateParams} for more
49
+ # details.
50
+ #
51
+ # Submits the end user's details to the external verification provider and returns
52
+ # the requirement action. Australia mobile ID verification is currently the only
53
+ # action requirement. It generates a unique Onfido verification link, returned in
54
+ # `requirement_action.value`, which you share with the end user. The end user's
55
+ # `first_name` and `last_name` must be nested inside a `requirement` object;
56
+ # sending them at the top level is rejected.
57
+ #
58
+ # @overload update(sub_number_order_id, regulatory_requirement_id:, requirement:, request_options: {})
59
+ #
60
+ # @param sub_number_order_id [String] Path param: The ID of the sub number order the requirement belongs to.
61
+ #
62
+ # @param regulatory_requirement_id [String] Path param: The ID of the regulatory (action) requirement. For Australia mobile
63
+ #
64
+ # @param requirement [Telnyx::Models::ExternalRequirements::SubNumberOrderUpdateParams::Requirement] Body param: The end user's identity details for the action requirement. Australi
65
+ #
66
+ # @param request_options [Telnyx::RequestOptions, Hash{Symbol=>Object}, nil]
67
+ #
68
+ # @return [Telnyx::Models::ExternalRequirements::SubNumberOrderUpdateResponse]
69
+ #
70
+ # @see Telnyx::Models::ExternalRequirements::SubNumberOrderUpdateParams
71
+ def update(sub_number_order_id, params)
72
+ parsed, options = Telnyx::ExternalRequirements::SubNumberOrderUpdateParams.dump_request(params)
73
+ regulatory_requirement_id =
74
+ parsed.delete(:regulatory_requirement_id) do
75
+ raise ArgumentError.new("missing required path argument #{_1}")
76
+ end
77
+ @client.request(
78
+ method: :post,
79
+ path: [
80
+ "external_requirements/%1$s/sub_number_orders/%2$s",
81
+ regulatory_requirement_id,
82
+ sub_number_order_id
83
+ ],
84
+ body: parsed,
85
+ model: Telnyx::Models::ExternalRequirements::SubNumberOrderUpdateResponse,
86
+ options: options
87
+ )
88
+ end
89
+
90
+ # @api private
91
+ #
92
+ # @param client [Telnyx::Client]
93
+ def initialize(client:)
94
+ @client = client
95
+ end
96
+ end
97
+ end
98
+ end
99
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telnyx
4
+ module Resources
5
+ class ExternalRequirements
6
+ # Requirement Groups
7
+ # @return [Telnyx::Resources::ExternalRequirements::SubNumberOrders]
8
+ attr_reader :sub_number_orders
9
+
10
+ # @api private
11
+ #
12
+ # @param client [Telnyx::Client]
13
+ def initialize(client:)
14
+ @client = client
15
+ @sub_number_orders = Telnyx::Resources::ExternalRequirements::SubNumberOrders.new(client: client)
16
+ end
17
+ end
18
+ end
19
+ end
@@ -18,7 +18,7 @@ module Telnyx
18
18
  #
19
19
  # @param call_recording [Telnyx::Models::OutboundCallRecording]
20
20
  #
21
- # @param calling_window [Telnyx::Models::OutboundVoiceProfileCreateParams::CallingWindow] (BETA) Specifies the time window and call limits for calls made using this outbo
21
+ # @param calling_window [Telnyx::Models::OutboundVoiceProfileCreateParams::CallingWindow] Specifies the time window and call limits for calls made using this outbound voi
22
22
  #
23
23
  # @param concurrent_call_limit [Integer, nil] Must be no more than your global concurrent call limit. Null means no limit.
24
24
  #
@@ -91,7 +91,7 @@ module Telnyx
91
91
  #
92
92
  # @param call_recording [Telnyx::Models::OutboundCallRecording]
93
93
  #
94
- # @param calling_window [Telnyx::Models::OutboundVoiceProfileUpdateParams::CallingWindow] (BETA) Specifies the time window and call limits for calls made using this outbo
94
+ # @param calling_window [Telnyx::Models::OutboundVoiceProfileUpdateParams::CallingWindow] Specifies the time window and call limits for calls made using this outbound voi
95
95
  #
96
96
  # @param concurrent_call_limit [Integer, nil] Must be no more than your global concurrent call limit. Null means no limit.
97
97
  #
@@ -5,9 +5,9 @@ module Telnyx
5
5
  class UacConnections
6
6
  # UAC connection operations
7
7
  class Actions
8
- # Checks the registration status for a UAC connection (`registration_status`) as
9
- # well as the timestamp for the last SIP registration event
10
- # (`registration_status_updated_at`).
8
+ # Returns the live SIP registration status for a UAC connection. Reports whether
9
+ # the endpoint is currently registered (`status`) and the timestamp of the last
10
+ # SIP registration event (`last_registration`).
11
11
  #
12
12
  # @overload check_registration_status(id, request_options: {})
13
13
  #
@@ -23,7 +23,7 @@ module Telnyx
23
23
  raise ArgumentError.new("Cannot verify a webhook without a key on either the client's public_key or passed in as an argument")
24
24
  end
25
25
 
26
- ::StandardWebhooks::Webhook.new(key).verify(payload, headers)
26
+ Telnyx::Lib::WebhookVerification.verify_signature!(payload, headers, key)
27
27
 
28
28
  parsed = JSON.parse(payload, symbolize_names: true)
29
29
  Telnyx::Internal::Type::Converter.coerce(Telnyx::Models::UnwrapWebhookEvent, parsed)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Telnyx
4
- VERSION = "5.164.0"
4
+ VERSION = "5.166.0"
5
5
  end
data/lib/telnyx.rb CHANGED
@@ -31,7 +31,6 @@ end
31
31
 
32
32
  # Gems.
33
33
  require "connection_pool"
34
- require "standardwebhooks"
35
34
 
36
35
  # Package files.
37
36
  require_relative "telnyx/version"
@@ -1231,6 +1230,10 @@ require_relative "telnyx/models/external_connection_update_location_params"
1231
1230
  require_relative "telnyx/models/external_connection_update_location_response"
1232
1231
  require_relative "telnyx/models/external_connection_update_params"
1233
1232
  require_relative "telnyx/models/external_connection_update_response"
1233
+ require_relative "telnyx/models/external_requirements/sub_number_order_retrieve_params"
1234
+ require_relative "telnyx/models/external_requirements/sub_number_order_retrieve_response"
1235
+ require_relative "telnyx/models/external_requirements/sub_number_order_update_params"
1236
+ require_relative "telnyx/models/external_requirements/sub_number_order_update_response"
1234
1237
  require_relative "telnyx/models/external_voice_integrations_pagination_meta"
1235
1238
  require_relative "telnyx/models/fax"
1236
1239
  require_relative "telnyx/models/fax_application"
@@ -2445,8 +2448,6 @@ require_relative "telnyx/models/siprec_connector_delete_params"
2445
2448
  require_relative "telnyx/models/siprec_connector_response"
2446
2449
  require_relative "telnyx/models/siprec_connector_retrieve_params"
2447
2450
  require_relative "telnyx/models/siprec_connector_update_params"
2448
- require_relative "telnyx/models/sip_registration_status_retrieve_params"
2449
- require_relative "telnyx/models/sip_registration_status_retrieve_response"
2450
2451
  require_relative "telnyx/models/sound_modifications"
2451
2452
  require_relative "telnyx/models/speech_to_text_list_providers_params"
2452
2453
  require_relative "telnyx/models/speech_to_text_list_providers_response"
@@ -3031,6 +3032,8 @@ require_relative "telnyx/resources/external_connections/log_messages"
3031
3032
  require_relative "telnyx/resources/external_connections/phone_numbers"
3032
3033
  require_relative "telnyx/resources/external_connections/releases"
3033
3034
  require_relative "telnyx/resources/external_connections/uploads"
3035
+ require_relative "telnyx/resources/external_requirements"
3036
+ require_relative "telnyx/resources/external_requirements/sub_number_orders"
3034
3037
  require_relative "telnyx/resources/fax_applications"
3035
3038
  require_relative "telnyx/resources/faxes"
3036
3039
  require_relative "telnyx/resources/faxes/actions"
@@ -3209,7 +3212,6 @@ require_relative "telnyx/resources/sim_card_orders"
3209
3212
  require_relative "telnyx/resources/sim_cards"
3210
3213
  require_relative "telnyx/resources/sim_cards/actions"
3211
3214
  require_relative "telnyx/resources/siprec_connectors"
3212
- require_relative "telnyx/resources/sip_registration_status"
3213
3215
  require_relative "telnyx/resources/speech_to_text"
3214
3216
  require_relative "telnyx/resources/storage"
3215
3217
  require_relative "telnyx/resources/storage/buckets"
@@ -667,10 +667,6 @@ module Telnyx
667
667
  sig { returns(Telnyx::Resources::VoiceSDKCallReports) }
668
668
  attr_reader :voice_sdk_call_reports
669
669
 
670
- # UAC connection operations
671
- sig { returns(Telnyx::Resources::SipRegistrationStatus) }
672
- attr_reader :sip_registration_status
673
-
674
670
  # Static reference values the API accepts: call reasons, document types, rejection
675
671
  # types.
676
672
  sig { returns(Telnyx::Resources::CallReasons) }
@@ -731,6 +727,9 @@ module Telnyx
731
727
  sig { returns(Telnyx::Resources::MeetingSessions) }
732
728
  attr_reader :meeting_sessions
733
729
 
730
+ sig { returns(Telnyx::Resources::ExternalRequirements) }
731
+ attr_reader :external_requirements
732
+
734
733
  # @api private
735
734
  sig { override.returns(T::Hash[String, String]) }
736
735
  private def auth_headers
@@ -539,6 +539,18 @@ module Telnyx
539
539
  sig { params(description: String).void }
540
540
  attr_writer :description
541
541
 
542
+ # The number the inbound call was received on, forwarded so an unverified
543
+ # non-Telnyx `from` can be used as the caller id -- typically to transfer out as
544
+ # the original caller by pairing `from: "{{telnyx_end_user_target}}"` with
545
+ # `diversion: "{{telnyx_agent_target}}"`. The caller id is only accepted while
546
+ # that number is still on an active inbound call to this `diversion` number, and
547
+ # the `diversion` number must be one you own or have verified.
548
+ sig { returns(T.nilable(String)) }
549
+ attr_reader :diversion
550
+
551
+ sig { params(diversion: String).void }
552
+ attr_writer :diversion
553
+
542
554
  # Configuration for voicemail detection (AMD - Answering Machine Detection) on the
543
555
  # transferred call. Allows the assistant to detect when a voicemail system answers
544
556
  # the transferred call and take appropriate action.
@@ -612,6 +624,7 @@ module Telnyx
612
624
  Telnyx::AI::AssistantTool::Transfer::Transfer::CustomHeader::OrHash
613
625
  ],
614
626
  description: String,
627
+ diversion: String,
615
628
  voicemail_detection:
616
629
  Telnyx::AI::AssistantTool::Transfer::Transfer::VoicemailDetection::OrHash,
617
630
  warm_message_delay_ms: T.nilable(Integer),
@@ -636,6 +649,13 @@ module Telnyx
636
649
  # case the provided value is preserved. Most users should leave this empty and let
637
650
  # Telnyx manage it.
638
651
  description: nil,
652
+ # The number the inbound call was received on, forwarded so an unverified
653
+ # non-Telnyx `from` can be used as the caller id -- typically to transfer out as
654
+ # the original caller by pairing `from: "{{telnyx_end_user_target}}"` with
655
+ # `diversion: "{{telnyx_agent_target}}"`. The caller id is only accepted while
656
+ # that number is still on an active inbound call to this `diversion` number, and
657
+ # the `diversion` number must be one you own or have verified.
658
+ diversion: nil,
639
659
  # Configuration for voicemail detection (AMD - Answering Machine Detection) on the
640
660
  # transferred call. Allows the assistant to detect when a voicemail system answers
641
661
  # the transferred call and take appropriate action.
@@ -674,6 +694,7 @@ module Telnyx
674
694
  Telnyx::AI::AssistantTool::Transfer::Transfer::CustomHeader
675
695
  ],
676
696
  description: String,
697
+ diversion: String,
677
698
  voicemail_detection:
678
699
  Telnyx::AI::AssistantTool::Transfer::Transfer::VoicemailDetection,
679
700
  warm_message_delay_ms: T.nilable(Integer),
@@ -21,17 +21,19 @@ module Telnyx
21
21
  # supported models will automatically detect the language. For `deepgram/flux`,
22
22
  # supported values are: `auto` (Telnyx language detection controls the language
23
23
  # hint), `multi` (no language hint), and language-specific hints `en`, `es`, `fr`,
24
- # `de`, `hi`, `ru`, `pt`, `ja`, `it`, and `nl`. For `soniox/stt-rt-v4`, `auto`
25
- # omits the language hint and lets Soniox auto-detect; ISO 639-1 codes (e.g. `en`,
26
- # `es`) bias detection toward that language. For `humain/realtime`, supported
27
- # values are `ar`, `en`, `codeswitch` (Arabic/English code-switching), and `auto`
28
- # (resolves server-side to code-switching). Unlike other models, `humain/realtime`
29
- # does not fall back to `auto` when `language` is omitted — omitting it applies
30
- # `en` instead. For `reson8/turns`, supported values are `auto` (or unset) for
31
- # automatic language detection, and the language codes `nl`, `en`, `fr`, `fy`,
32
- # `de`, `it`, `pl`, `pt`, `es`, and `sv` to fix the transcription language. For
33
- # `cohere/ar-stt`, supported values are `ar` and `en`; unlike other models, this
34
- # model does not auto-detect and defaults to `ar` when `language` is omitted.
24
+ # `de`, `hi`, `ru`, `pt`, `ja`, `it`, and `nl`. For `soniox/stt-rt-v4` and
25
+ # `soniox/stt-rt-v5`, `auto` omits the language hint and lets Soniox auto-detect;
26
+ # ISO 639-1 codes (e.g. `en`, `es`) bias detection toward that language;
27
+ # `settings.language_hints` can pin multiple languages at once instead. For
28
+ # `humain/realtime`, supported values are `ar`, `en`, `codeswitch` (Arabic/English
29
+ # code-switching), and `auto` (resolves server-side to code-switching). Unlike
30
+ # other models, `humain/realtime` does not fall back to `auto` when `language` is
31
+ # omitted — omitting it applies `en` instead. For `reson8/turns`, supported values
32
+ # are `auto` (or unset) for automatic language detection, and the language codes
33
+ # `nl`, `en`, `fr`, `fy`, `de`, `it`, `pl`, `pt`, `es`, and `sv` to fix the
34
+ # transcription language. For `cohere/ar-stt`, supported values are `ar` and `en`;
35
+ # unlike other models, this model does not auto-detect and defaults to `ar` when
36
+ # `language` is omitted.
35
37
  sig { returns(T.nilable(String)) }
36
38
  attr_reader :language
37
39
 
@@ -48,8 +50,9 @@ module Telnyx
48
50
  # - `assemblyai/universal-streaming` is a multilingual streaming model with
49
51
  # configurable turn detection.
50
52
  # - `xai/grok-stt` is a multilingual Grok STT model.
51
- # - `soniox/stt-rt-v4` is a multilingual streaming model with automatic language
52
- # detection and configurable endpointing.
53
+ # - `soniox/stt-rt-v4` and `soniox/stt-rt-v5` are multilingual streaming models
54
+ # with automatic language detection, configurable endpointing, term biasing
55
+ # (`context`), and `language_hints`.
53
56
  # - `nvidia/parakeet-v3` is a multilingual transcription model with automatic
54
57
  # language detection.
55
58
  # - `humain/realtime` is a streaming model with native Arabic and Arabic/English
@@ -100,17 +103,19 @@ module Telnyx
100
103
  # supported models will automatically detect the language. For `deepgram/flux`,
101
104
  # supported values are: `auto` (Telnyx language detection controls the language
102
105
  # hint), `multi` (no language hint), and language-specific hints `en`, `es`, `fr`,
103
- # `de`, `hi`, `ru`, `pt`, `ja`, `it`, and `nl`. For `soniox/stt-rt-v4`, `auto`
104
- # omits the language hint and lets Soniox auto-detect; ISO 639-1 codes (e.g. `en`,
105
- # `es`) bias detection toward that language. For `humain/realtime`, supported
106
- # values are `ar`, `en`, `codeswitch` (Arabic/English code-switching), and `auto`
107
- # (resolves server-side to code-switching). Unlike other models, `humain/realtime`
108
- # does not fall back to `auto` when `language` is omitted — omitting it applies
109
- # `en` instead. For `reson8/turns`, supported values are `auto` (or unset) for
110
- # automatic language detection, and the language codes `nl`, `en`, `fr`, `fy`,
111
- # `de`, `it`, `pl`, `pt`, `es`, and `sv` to fix the transcription language. For
112
- # `cohere/ar-stt`, supported values are `ar` and `en`; unlike other models, this
113
- # model does not auto-detect and defaults to `ar` when `language` is omitted.
106
+ # `de`, `hi`, `ru`, `pt`, `ja`, `it`, and `nl`. For `soniox/stt-rt-v4` and
107
+ # `soniox/stt-rt-v5`, `auto` omits the language hint and lets Soniox auto-detect;
108
+ # ISO 639-1 codes (e.g. `en`, `es`) bias detection toward that language;
109
+ # `settings.language_hints` can pin multiple languages at once instead. For
110
+ # `humain/realtime`, supported values are `ar`, `en`, `codeswitch` (Arabic/English
111
+ # code-switching), and `auto` (resolves server-side to code-switching). Unlike
112
+ # other models, `humain/realtime` does not fall back to `auto` when `language` is
113
+ # omitted — omitting it applies `en` instead. For `reson8/turns`, supported values
114
+ # are `auto` (or unset) for automatic language detection, and the language codes
115
+ # `nl`, `en`, `fr`, `fy`, `de`, `it`, `pl`, `pt`, `es`, and `sv` to fix the
116
+ # transcription language. For `cohere/ar-stt`, supported values are `ar` and `en`;
117
+ # unlike other models, this model does not auto-detect and defaults to `ar` when
118
+ # `language` is omitted.
114
119
  language: nil,
115
120
  # The speech to text model to be used by the voice assistant. All Deepgram models
116
121
  # are run on-premise.
@@ -122,8 +127,9 @@ module Telnyx
122
127
  # - `assemblyai/universal-streaming` is a multilingual streaming model with
123
128
  # configurable turn detection.
124
129
  # - `xai/grok-stt` is a multilingual Grok STT model.
125
- # - `soniox/stt-rt-v4` is a multilingual streaming model with automatic language
126
- # detection and configurable endpointing.
130
+ # - `soniox/stt-rt-v4` and `soniox/stt-rt-v5` are multilingual streaming models
131
+ # with automatic language detection, configurable endpointing, term biasing
132
+ # (`context`), and `language_hints`.
127
133
  # - `nvidia/parakeet-v3` is a multilingual transcription model with automatic
128
134
  # language detection.
129
135
  # - `humain/realtime` is a streaming model with native Arabic and Arabic/English
@@ -163,8 +169,9 @@ module Telnyx
163
169
  # - `assemblyai/universal-streaming` is a multilingual streaming model with
164
170
  # configurable turn detection.
165
171
  # - `xai/grok-stt` is a multilingual Grok STT model.
166
- # - `soniox/stt-rt-v4` is a multilingual streaming model with automatic language
167
- # detection and configurable endpointing.
172
+ # - `soniox/stt-rt-v4` and `soniox/stt-rt-v5` are multilingual streaming models
173
+ # with automatic language detection, configurable endpointing, term biasing
174
+ # (`context`), and `language_hints`.
168
175
  # - `nvidia/parakeet-v3` is a multilingual transcription model with automatic
169
176
  # language detection.
170
177
  # - `humain/realtime` is a streaming model with native Arabic and Arabic/English
@@ -216,6 +223,11 @@ module Telnyx
216
223
  :"soniox/stt-rt-v4",
217
224
  Telnyx::AI::TranscriptionSettings::Model::TaggedSymbol
218
225
  )
226
+ SONIOX_STT_RT_V5 =
227
+ T.let(
228
+ :"soniox/stt-rt-v5",
229
+ Telnyx::AI::TranscriptionSettings::Model::TaggedSymbol
230
+ )
219
231
  NVIDIA_PARAKEET_V3 =
220
232
  T.let(
221
233
  :"nvidia/parakeet-v3",
@@ -12,6 +12,19 @@ module Telnyx
12
12
  )
13
13
  end
14
14
 
15
+ # Available only for soniox/stt-rt-v4 and soniox/stt-rt-v5. A comma-separated list
16
+ # of terms to boost for recognition during transcription, for staff names,
17
+ # building names, or other domain-specific vocabulary. This field may be templated
18
+ # with
19
+ # [dynamic variables](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables)
20
+ # using mustache syntax (e.g. `Telnyx,{{customer_name}},VoIP`). Variables are
21
+ # resolved at call time before the value is sent to Soniox.
22
+ sig { returns(T.nilable(String)) }
23
+ attr_reader :context
24
+
25
+ sig { params(context: String).void }
26
+ attr_writer :context
27
+
15
28
  # Available only for deepgram/flux. Confidence threshold for eager end of turn
16
29
  # detection. Must be lower than or equal to eot_threshold. Setting this equal to
17
30
  # eot_threshold effectively disables eager end of turn.
@@ -21,8 +34,9 @@ module Telnyx
21
34
  sig { params(eager_eot_threshold: Float).void }
22
35
  attr_writer :eager_eot_threshold
23
36
 
24
- # Available only for soniox/stt-rt-v4. When true, Soniox emits end-of-utterance
25
- # events at the cadence configured by `max_endpoint_delay_ms`.
37
+ # Available only for soniox/stt-rt-v4 and soniox/stt-rt-v5. When true, Soniox
38
+ # emits end-of-utterance events at the cadence configured by
39
+ # `max_endpoint_delay_ms`.
26
40
  sig { returns(T.nilable(T::Boolean)) }
27
41
  attr_reader :enable_endpoint_detection
28
42
 
@@ -54,8 +68,8 @@ module Telnyx
54
68
  sig { params(eot_timeout_ms: Integer).void }
55
69
  attr_writer :eot_timeout_ms
56
70
 
57
- # Available only for soniox/stt-rt-v4. When true, Soniox streams interim
58
- # (non-final) results in addition to finalized transcripts.
71
+ # Available only for soniox/stt-rt-v4 and soniox/stt-rt-v5. When true, Soniox
72
+ # streams interim (non-final) results in addition to finalized transcripts.
59
73
  sig { returns(T.nilable(T::Boolean)) }
60
74
  attr_reader :interim_results
61
75
 
@@ -75,8 +89,17 @@ module Telnyx
75
89
  sig { params(keyterm: String).void }
76
90
  attr_writer :keyterm
77
91
 
78
- # Available only for soniox/stt-rt-v4. Maximum silence (in milliseconds) before
79
- # Soniox emits an end-of-utterance event. Only honored when
92
+ # Available only for soniox/stt-rt-v4 and soniox/stt-rt-v5. A list of ISO 639-1
93
+ # language codes (e.g. `["nl", "fr"]`) to pin recognition to multiple languages at
94
+ # once, overriding the single hint derived from `language`.
95
+ sig { returns(T.nilable(T::Array[String])) }
96
+ attr_reader :language_hints
97
+
98
+ sig { params(language_hints: T::Array[String]).void }
99
+ attr_writer :language_hints
100
+
101
+ # Available only for soniox/stt-rt-v4 and soniox/stt-rt-v5. Maximum silence (in
102
+ # milliseconds) before Soniox emits an end-of-utterance event. Only honored when
80
103
  # `enable_endpoint_detection` is true.
81
104
  sig { returns(T.nilable(Integer)) }
82
105
  attr_reader :max_endpoint_delay_ms
@@ -115,6 +138,7 @@ module Telnyx
115
138
 
116
139
  sig do
117
140
  params(
141
+ context: String,
118
142
  eager_eot_threshold: Float,
119
143
  enable_endpoint_detection: T::Boolean,
120
144
  end_of_turn_confidence_threshold: Float,
@@ -122,6 +146,7 @@ module Telnyx
122
146
  eot_timeout_ms: Integer,
123
147
  interim_results: T::Boolean,
124
148
  keyterm: String,
149
+ language_hints: T::Array[String],
125
150
  max_endpoint_delay_ms: Integer,
126
151
  max_turn_silence: Integer,
127
152
  min_turn_silence: Integer,
@@ -130,12 +155,21 @@ module Telnyx
130
155
  ).returns(T.attached_class)
131
156
  end
132
157
  def self.new(
158
+ # Available only for soniox/stt-rt-v4 and soniox/stt-rt-v5. A comma-separated list
159
+ # of terms to boost for recognition during transcription, for staff names,
160
+ # building names, or other domain-specific vocabulary. This field may be templated
161
+ # with
162
+ # [dynamic variables](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables)
163
+ # using mustache syntax (e.g. `Telnyx,{{customer_name}},VoIP`). Variables are
164
+ # resolved at call time before the value is sent to Soniox.
165
+ context: nil,
133
166
  # Available only for deepgram/flux. Confidence threshold for eager end of turn
134
167
  # detection. Must be lower than or equal to eot_threshold. Setting this equal to
135
168
  # eot_threshold effectively disables eager end of turn.
136
169
  eager_eot_threshold: nil,
137
- # Available only for soniox/stt-rt-v4. When true, Soniox emits end-of-utterance
138
- # events at the cadence configured by `max_endpoint_delay_ms`.
170
+ # Available only for soniox/stt-rt-v4 and soniox/stt-rt-v5. When true, Soniox
171
+ # emits end-of-utterance events at the cadence configured by
172
+ # `max_endpoint_delay_ms`.
139
173
  enable_endpoint_detection: nil,
140
174
  # Available only for assemblyai/universal-streaming. Confidence level required to
141
175
  # trigger an end of turn. Higher values require more certainty before ending a
@@ -147,8 +181,8 @@ module Telnyx
147
181
  # Available only for deepgram/flux. Maximum milliseconds of silence before forcing
148
182
  # an end of turn, regardless of confidence.
149
183
  eot_timeout_ms: nil,
150
- # Available only for soniox/stt-rt-v4. When true, Soniox streams interim
151
- # (non-final) results in addition to finalized transcripts.
184
+ # Available only for soniox/stt-rt-v4 and soniox/stt-rt-v5. When true, Soniox
185
+ # streams interim (non-final) results in addition to finalized transcripts.
152
186
  interim_results: nil,
153
187
  # Available only for deepgram/nova-3 and deepgram/flux. A comma-separated list of
154
188
  # key terms to boost for recognition during transcription. Helps improve accuracy
@@ -158,8 +192,12 @@ module Telnyx
158
192
  # using mustache syntax (e.g. `Telnyx,{{customer_name}},VoIP`). Variables are
159
193
  # resolved at call time before the value is sent to the speech-to-text engine.
160
194
  keyterm: nil,
161
- # Available only for soniox/stt-rt-v4. Maximum silence (in milliseconds) before
162
- # Soniox emits an end-of-utterance event. Only honored when
195
+ # Available only for soniox/stt-rt-v4 and soniox/stt-rt-v5. A list of ISO 639-1
196
+ # language codes (e.g. `["nl", "fr"]`) to pin recognition to multiple languages at
197
+ # once, overriding the single hint derived from `language`.
198
+ language_hints: nil,
199
+ # Available only for soniox/stt-rt-v4 and soniox/stt-rt-v5. Maximum silence (in
200
+ # milliseconds) before Soniox emits an end-of-utterance event. Only honored when
163
201
  # `enable_endpoint_detection` is true.
164
202
  max_endpoint_delay_ms: nil,
165
203
  # Available only for assemblyai/universal-streaming. Maximum duration of silence
@@ -177,6 +215,7 @@ module Telnyx
177
215
  sig do
178
216
  override.returns(
179
217
  {
218
+ context: String,
180
219
  eager_eot_threshold: Float,
181
220
  enable_endpoint_detection: T::Boolean,
182
221
  end_of_turn_confidence_threshold: Float,
@@ -184,6 +223,7 @@ module Telnyx
184
223
  eot_timeout_ms: Integer,
185
224
  interim_results: T::Boolean,
186
225
  keyterm: String,
226
+ language_hints: T::Array[String],
187
227
  max_endpoint_delay_ms: Integer,
188
228
  max_turn_silence: Integer,
189
229
  min_turn_silence: Integer,
@@ -202,6 +202,17 @@ module Telnyx
202
202
  sig { params(dialogflow_config: Telnyx::DialogflowConfig::OrHash).void }
203
203
  attr_writer :dialogflow_config
204
204
 
205
+ # The number the inbound call being transferred was originally received on, in
206
+ # +E164 format. Supplying it lets an unverified non-Telnyx `from` be used as the
207
+ # caller id, provided that number is still on an active inbound call to this
208
+ # `diversion` number for your account. The `diversion` number itself must be one
209
+ # you own or have verified.
210
+ sig { returns(T.nilable(String)) }
211
+ attr_reader :diversion
212
+
213
+ sig { params(diversion: String).void }
214
+ attr_writer :diversion
215
+
205
216
  # Enables Dialogflow for the current call. The default value is false.
206
217
  sig { returns(T.nilable(T::Boolean)) }
207
218
  attr_reader :enable_dialogflow
@@ -713,6 +724,7 @@ module Telnyx
713
724
  custom_headers: T::Array[Telnyx::CustomSipHeader::OrHash],
714
725
  deepfake_detection: Telnyx::CallDialParams::DeepfakeDetection::OrHash,
715
726
  dialogflow_config: Telnyx::DialogflowConfig::OrHash,
727
+ diversion: String,
716
728
  enable_dialogflow: T::Boolean,
717
729
  from_display_name: String,
718
730
  link_to: String,
@@ -857,6 +869,12 @@ module Telnyx
857
869
  # webhook.
858
870
  deepfake_detection: nil,
859
871
  dialogflow_config: nil,
872
+ # The number the inbound call being transferred was originally received on, in
873
+ # +E164 format. Supplying it lets an unverified non-Telnyx `from` be used as the
874
+ # caller id, provided that number is still on an active inbound call to this
875
+ # `diversion` number for your account. The `diversion` number itself must be one
876
+ # you own or have verified.
877
+ diversion: nil,
860
878
  # Enables Dialogflow for the current call. The default value is false.
861
879
  enable_dialogflow: nil,
862
880
  # The `from_display_name` string to be used as the caller id name (SIP From
@@ -1043,6 +1061,7 @@ module Telnyx
1043
1061
  custom_headers: T::Array[Telnyx::CustomSipHeader],
1044
1062
  deepfake_detection: Telnyx::CallDialParams::DeepfakeDetection,
1045
1063
  dialogflow_config: Telnyx::DialogflowConfig,
1064
+ diversion: String,
1046
1065
  enable_dialogflow: T::Boolean,
1047
1066
  from_display_name: String,
1048
1067
  link_to: String,