revox 0.2.0 → 0.4.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +36 -0
- data/README.md +38 -38
- data/lib/revox/client.rb +8 -0
- data/lib/revox/internal/type/base_model.rb +3 -3
- data/lib/revox/models/assistant_clone_params.rb +20 -0
- data/lib/revox/models/assistant_clone_response.rb +1616 -0
- data/lib/revox/models/assistant_create_params.rb +90 -66
- data/lib/revox/models/assistant_create_response.rb +87 -65
- data/lib/revox/models/assistant_list_response.rb +87 -65
- data/lib/revox/models/assistant_retrieve_response.rb +86 -65
- data/lib/revox/models/assistant_update_params.rb +90 -66
- data/lib/revox/models/assistant_update_response.rb +87 -65
- data/lib/revox/models/auth_status_retrieve_params.rb +14 -0
- data/lib/revox/models/auth_status_retrieve_response.rb +17 -0
- data/lib/revox/models/call_cancel_params.rb +20 -0
- data/lib/revox/models/call_cancel_response.rb +16 -0
- data/lib/revox/models/call_create_params.rb +117 -90
- data/lib/revox/models/call_create_response.rb +680 -90
- data/lib/revox/models/call_export_params.rb +203 -0
- data/lib/revox/models/call_export_response.rb +22 -0
- data/lib/revox/models/call_pause_params.rb +20 -0
- data/lib/revox/models/call_pause_response.rb +16 -0
- data/lib/revox/models/call_phone_history_params.rb +14 -0
- data/lib/revox/models/call_phone_history_response.rb +95 -0
- data/lib/revox/models/call_resume_params.rb +20 -0
- data/lib/revox/models/call_resume_response.rb +16 -0
- data/lib/revox/models/call_retrieve_response.rb +681 -90
- data/lib/revox/models/call_search_params.rb +169 -0
- data/lib/revox/models/call_search_response.rb +3694 -0
- data/lib/revox/models/campaign_create_params.rb +7 -57
- data/lib/revox/models/campaign_create_response.rb +108 -119
- data/lib/revox/models/campaign_get_rows_response.rb +682 -90
- data/lib/revox/models/campaign_list_response.rb +108 -119
- data/lib/revox/models/campaign_pause_params.rb +20 -0
- data/lib/revox/models/campaign_pause_response.rb +16 -0
- data/lib/revox/models/campaign_resume_params.rb +20 -0
- data/lib/revox/models/campaign_resume_response.rb +16 -0
- data/lib/revox/models/campaign_retrieve_response.rb +108 -119
- data/lib/revox/models/campaign_statistics_params.rb +20 -0
- data/lib/revox/models/campaign_statistics_response.rb +514 -0
- data/lib/revox/models/campaign_update_params.rb +165 -0
- data/lib/revox/models/campaign_update_response.rb +2019 -0
- data/lib/revox/models/phone_number_delete_params.rb +20 -0
- data/lib/revox/models/phone_number_delete_response.rb +16 -0
- data/lib/revox/models/phone_number_list_params.rb +14 -0
- data/lib/revox/models/phone_number_list_response.rb +1799 -0
- data/lib/revox/models/phone_number_update_params.rb +32 -0
- data/lib/revox/models/phone_number_update_response.rb +1799 -0
- data/lib/revox/models/user_retrieve_params.rb +14 -0
- data/lib/revox/models/user_retrieve_response.rb +99 -0
- data/lib/revox/models/voice_clone_params.rb +78 -0
- data/lib/revox/models/voice_clone_response.rb +40 -0
- data/lib/revox/models/voice_delete_params.rb +20 -0
- data/lib/revox/models/voice_delete_response.rb +16 -0
- data/lib/revox/models/voice_list_response.rb +1 -0
- data/lib/revox/models/voice_preview_params.rb +1 -0
- data/lib/revox/models/voice_retrieve_params.rb +1 -0
- data/lib/revox/models.rb +35 -1
- data/lib/revox/resources/assistants.rb +31 -10
- data/lib/revox/resources/auth_status.rb +32 -0
- data/lib/revox/resources/call.rb +149 -4
- data/lib/revox/resources/campaigns.rb +110 -11
- data/lib/revox/resources/phone_numbers.rb +74 -0
- data/lib/revox/resources/users.rb +17 -3
- data/lib/revox/resources/voices.rb +50 -0
- data/lib/revox/version.rb +1 -1
- data/lib/revox.rb +38 -5
- data/rbi/revox/client.rbi +6 -0
- data/rbi/revox/models/assistant_clone_params.rbi +33 -0
- data/rbi/revox/models/assistant_clone_response.rbi +3351 -0
- data/rbi/revox/models/assistant_create_params.rbi +148 -162
- data/rbi/revox/models/assistant_create_response.rbi +157 -147
- data/rbi/revox/models/assistant_list_response.rbi +157 -147
- data/rbi/revox/models/assistant_retrieve_response.rbi +153 -147
- data/rbi/revox/models/assistant_update_params.rbi +148 -162
- data/rbi/revox/models/assistant_update_response.rbi +157 -147
- data/rbi/revox/models/auth_status_retrieve_params.rbi +27 -0
- data/rbi/revox/models/auth_status_retrieve_response.rbi +30 -0
- data/rbi/revox/models/call_cancel_params.rbi +33 -0
- data/rbi/revox/models/call_cancel_response.rbi +23 -0
- data/rbi/revox/models/call_create_params.rbi +190 -187
- data/rbi/revox/models/call_create_response.rbi +1150 -227
- data/rbi/revox/models/call_export_params.rbi +446 -0
- data/rbi/revox/models/call_export_response.rbi +26 -0
- data/rbi/revox/models/call_pause_params.rbi +31 -0
- data/rbi/revox/models/call_pause_response.rbi +23 -0
- data/rbi/revox/models/call_phone_history_params.rbi +27 -0
- data/rbi/revox/models/call_phone_history_response.rbi +209 -0
- data/rbi/revox/models/call_resume_params.rbi +33 -0
- data/rbi/revox/models/call_resume_response.rbi +23 -0
- data/rbi/revox/models/call_retrieve_response.rbi +1150 -227
- data/rbi/revox/models/call_search_params.rbi +281 -0
- data/rbi/revox/models/call_search_response.rbi +7504 -0
- data/rbi/revox/models/campaign_create_params.rbi +9 -87
- data/rbi/revox/models/campaign_create_response.rbi +188 -266
- data/rbi/revox/models/campaign_get_rows_response.rbi +1150 -225
- data/rbi/revox/models/campaign_list_response.rbi +188 -262
- data/rbi/revox/models/campaign_pause_params.rbi +33 -0
- data/rbi/revox/models/campaign_pause_response.rbi +23 -0
- data/rbi/revox/models/campaign_resume_params.rbi +33 -0
- data/rbi/revox/models/campaign_resume_response.rbi +23 -0
- data/rbi/revox/models/campaign_retrieve_response.rbi +188 -266
- data/rbi/revox/models/campaign_statistics_params.rbi +33 -0
- data/rbi/revox/models/campaign_statistics_response.rbi +1069 -0
- data/rbi/revox/models/campaign_update_params.rbi +313 -0
- data/rbi/revox/models/campaign_update_response.rbi +4092 -0
- data/rbi/revox/models/phone_number_delete_params.rbi +33 -0
- data/rbi/revox/models/phone_number_delete_response.rbi +26 -0
- data/rbi/revox/models/phone_number_list_params.rbi +27 -0
- data/rbi/revox/models/phone_number_list_response.rbi +3690 -0
- data/rbi/revox/models/phone_number_update_params.rbi +53 -0
- data/rbi/revox/models/phone_number_update_response.rbi +3693 -0
- data/rbi/revox/models/user_retrieve_params.rbi +27 -0
- data/rbi/revox/models/user_retrieve_response.rbi +140 -0
- data/rbi/revox/models/voice_clone_params.rbi +141 -0
- data/rbi/revox/models/voice_clone_response.rbi +53 -0
- data/rbi/revox/models/voice_delete_params.rbi +33 -0
- data/rbi/revox/models/voice_delete_response.rbi +23 -0
- data/rbi/revox/models/voice_list_response.rbi +5 -0
- data/rbi/revox/models/voice_preview_params.rbi +2 -0
- data/rbi/revox/models/voice_retrieve_params.rbi +2 -0
- data/rbi/revox/models.rbi +35 -1
- data/rbi/revox/resources/assistants.rbi +52 -22
- data/rbi/revox/resources/auth_status.rbi +21 -0
- data/rbi/revox/resources/call.rbi +114 -4
- data/rbi/revox/resources/campaigns.rbi +77 -15
- data/rbi/revox/resources/phone_numbers.rbi +43 -0
- data/rbi/revox/resources/users.rbi +8 -2
- data/rbi/revox/resources/voices.rbi +39 -0
- data/sig/revox/client.rbs +4 -0
- data/sig/revox/models/assistant_clone_params.rbs +20 -0
- data/sig/revox/models/assistant_clone_response.rbs +1310 -0
- data/sig/revox/models/assistant_create_params.rbs +39 -58
- data/sig/revox/models/assistant_create_response.rbs +46 -54
- data/sig/revox/models/assistant_list_response.rbs +46 -54
- data/sig/revox/models/assistant_retrieve_response.rbs +46 -54
- data/sig/revox/models/assistant_update_params.rbs +39 -58
- data/sig/revox/models/assistant_update_response.rbs +46 -54
- data/sig/revox/models/auth_status_retrieve_params.rbs +15 -0
- data/sig/revox/models/auth_status_retrieve_response.rbs +13 -0
- data/sig/revox/models/call_cancel_params.rbs +20 -0
- data/sig/revox/models/call_cancel_response.rbs +13 -0
- data/sig/revox/models/call_create_params.rbs +50 -71
- data/sig/revox/models/call_create_response.rbs +473 -77
- data/sig/revox/models/call_export_params.rbs +230 -0
- data/sig/revox/models/call_export_response.rbs +15 -0
- data/sig/revox/models/call_pause_params.rbs +20 -0
- data/sig/revox/models/call_pause_response.rbs +13 -0
- data/sig/revox/models/call_phone_history_params.rbs +15 -0
- data/sig/revox/models/call_phone_history_response.rbs +93 -0
- data/sig/revox/models/call_resume_params.rbs +20 -0
- data/sig/revox/models/call_resume_response.rbs +13 -0
- data/sig/revox/models/call_retrieve_response.rbs +473 -77
- data/sig/revox/models/call_search_params.rbs +194 -0
- data/sig/revox/models/call_search_response.rbs +3045 -0
- data/sig/revox/models/campaign_create_params.rbs +5 -50
- data/sig/revox/models/campaign_create_response.rbs +62 -98
- data/sig/revox/models/campaign_get_rows_response.rbs +472 -73
- data/sig/revox/models/campaign_list_response.rbs +62 -98
- data/sig/revox/models/campaign_pause_params.rbs +20 -0
- data/sig/revox/models/campaign_pause_response.rbs +13 -0
- data/sig/revox/models/campaign_resume_params.rbs +20 -0
- data/sig/revox/models/campaign_resume_response.rbs +13 -0
- data/sig/revox/models/campaign_retrieve_response.rbs +62 -98
- data/sig/revox/models/campaign_statistics_params.rbs +20 -0
- data/sig/revox/models/campaign_statistics_response.rbs +489 -0
- data/sig/revox/models/campaign_update_params.rbs +135 -0
- data/sig/revox/models/campaign_update_response.rbs +1658 -0
- data/sig/revox/models/phone_number_delete_params.rbs +20 -0
- data/sig/revox/models/phone_number_delete_response.rbs +13 -0
- data/sig/revox/models/phone_number_list_params.rbs +15 -0
- data/sig/revox/models/phone_number_list_response.rbs +1454 -0
- data/sig/revox/models/phone_number_update_params.rbs +32 -0
- data/sig/revox/models/phone_number_update_response.rbs +1452 -0
- data/sig/revox/models/user_retrieve_params.rbs +14 -0
- data/sig/revox/models/user_retrieve_response.rbs +71 -0
- data/sig/revox/models/voice_clone_params.rbs +79 -0
- data/sig/revox/models/voice_clone_response.rbs +40 -0
- data/sig/revox/models/voice_delete_params.rbs +20 -0
- data/sig/revox/models/voice_delete_response.rbs +13 -0
- data/sig/revox/models/voice_list_response.rbs +2 -1
- data/sig/revox/models/voice_preview_params.rbs +2 -1
- data/sig/revox/models/voice_retrieve_params.rbs +2 -1
- data/sig/revox/models.rbs +35 -1
- data/sig/revox/resources/assistants.rbs +9 -4
- data/sig/revox/resources/auth_status.rbs +11 -0
- data/sig/revox/resources/call.rbs +46 -1
- data/sig/revox/resources/campaigns.rbs +24 -3
- data/sig/revox/resources/phone_numbers.rbs +23 -0
- data/sig/revox/resources/users.rbs +3 -1
- data/sig/revox/resources/voices.rbs +13 -0
- metadata +116 -17
- data/lib/revox/models/users/me_retrieve_params.rb +0 -16
- data/lib/revox/models/users/me_retrieve_response.rb +0 -101
- data/lib/revox/models/users/me_update_params.rb +0 -22
- data/lib/revox/models/users/me_update_response.rb +0 -101
- data/lib/revox/resources/users/me.rb +0 -55
- data/rbi/revox/models/users/me_retrieve_params.rbi +0 -29
- data/rbi/revox/models/users/me_retrieve_response.rbi +0 -149
- data/rbi/revox/models/users/me_update_params.rbi +0 -43
- data/rbi/revox/models/users/me_update_response.rbi +0 -149
- data/rbi/revox/resources/users/me.rbi +0 -33
- data/sig/revox/models/users/me_retrieve_params.rbs +0 -16
- data/sig/revox/models/users/me_retrieve_response.rbs +0 -75
- data/sig/revox/models/users/me_update_params.rbs +0 -28
- data/sig/revox/models/users/me_update_response.rbs +0 -75
- data/sig/revox/resources/users/me.rbs +0 -18
|
@@ -30,7 +30,9 @@ module Revox
|
|
|
30
30
|
sig { params(assistant_id: String).void }
|
|
31
31
|
attr_writer :assistant_id
|
|
32
32
|
|
|
33
|
-
# Limit the number of concurrent calls for a given concurrency key.
|
|
33
|
+
# Limit the number of concurrent calls for a given concurrency key. The limit
|
|
34
|
+
# itself is set server-side; omit this to leave the call ungrouped (bounded only
|
|
35
|
+
# by your organization's limit).
|
|
34
36
|
sig { returns(T.nilable(Revox::CallCreateParams::Concurrency)) }
|
|
35
37
|
attr_reader :concurrency
|
|
36
38
|
|
|
@@ -39,13 +41,6 @@ module Revox
|
|
|
39
41
|
end
|
|
40
42
|
attr_writer :concurrency
|
|
41
43
|
|
|
42
|
-
# The prompt to use for the call. This will be given to the LLM (gpt-4.1)
|
|
43
|
-
sig { returns(T.nilable(T::Boolean)) }
|
|
44
|
-
attr_reader :force_now
|
|
45
|
-
|
|
46
|
-
sig { params(force_now: T::Boolean).void }
|
|
47
|
-
attr_writer :force_now
|
|
48
|
-
|
|
49
44
|
# The phone number to use for making the call (e.g., +1234567890). If not
|
|
50
45
|
# provided, uses the default trunk.
|
|
51
46
|
sig { returns(T.nilable(String)) }
|
|
@@ -82,17 +77,25 @@ module Revox
|
|
|
82
77
|
end
|
|
83
78
|
attr_writer :scheduled_at
|
|
84
79
|
|
|
80
|
+
# Bypass the calling-window check for this call so it dials even outside the
|
|
81
|
+
# assistant's configured window. Use for immediate 'call now' dials.
|
|
82
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
83
|
+
attr_reader :skip_calling_window
|
|
84
|
+
|
|
85
|
+
sig { params(skip_calling_window: T::Boolean).void }
|
|
86
|
+
attr_writer :skip_calling_window
|
|
87
|
+
|
|
85
88
|
sig do
|
|
86
89
|
params(
|
|
87
90
|
phone_number: String,
|
|
88
91
|
assistant: Revox::CallCreateParams::Assistant::OrHash,
|
|
89
92
|
assistant_id: String,
|
|
90
93
|
concurrency: Revox::CallCreateParams::Concurrency::OrHash,
|
|
91
|
-
force_now: T::Boolean,
|
|
92
94
|
from_phone_number: String,
|
|
93
95
|
metadata: T::Hash[Symbol, String],
|
|
94
96
|
prompt_variables: T::Hash[Symbol, String],
|
|
95
97
|
scheduled_at: Revox::CallCreateParams::ScheduledAt::Variants,
|
|
98
|
+
skip_calling_window: T::Boolean,
|
|
96
99
|
request_options: Revox::RequestOptions::OrHash
|
|
97
100
|
).returns(T.attached_class)
|
|
98
101
|
end
|
|
@@ -104,10 +107,10 @@ module Revox
|
|
|
104
107
|
assistant: nil,
|
|
105
108
|
# The ID of the assistant to use for this call.
|
|
106
109
|
assistant_id: nil,
|
|
107
|
-
# Limit the number of concurrent calls for a given concurrency key.
|
|
110
|
+
# Limit the number of concurrent calls for a given concurrency key. The limit
|
|
111
|
+
# itself is set server-side; omit this to leave the call ungrouped (bounded only
|
|
112
|
+
# by your organization's limit).
|
|
108
113
|
concurrency: nil,
|
|
109
|
-
# The prompt to use for the call. This will be given to the LLM (gpt-4.1)
|
|
110
|
-
force_now: nil,
|
|
111
114
|
# The phone number to use for making the call (e.g., +1234567890). If not
|
|
112
115
|
# provided, uses the default trunk.
|
|
113
116
|
from_phone_number: nil,
|
|
@@ -120,6 +123,9 @@ module Revox
|
|
|
120
123
|
# Schedule the call to start at a specific date and time (ISO 8601 format). If not
|
|
121
124
|
# provided, the call will start immediately.
|
|
122
125
|
scheduled_at: nil,
|
|
126
|
+
# Bypass the calling-window check for this call so it dials even outside the
|
|
127
|
+
# assistant's configured window. Use for immediate 'call now' dials.
|
|
128
|
+
skip_calling_window: nil,
|
|
123
129
|
request_options: {}
|
|
124
130
|
)
|
|
125
131
|
end
|
|
@@ -131,11 +137,11 @@ module Revox
|
|
|
131
137
|
assistant: Revox::CallCreateParams::Assistant,
|
|
132
138
|
assistant_id: String,
|
|
133
139
|
concurrency: Revox::CallCreateParams::Concurrency,
|
|
134
|
-
force_now: T::Boolean,
|
|
135
140
|
from_phone_number: String,
|
|
136
141
|
metadata: T::Hash[Symbol, String],
|
|
137
142
|
prompt_variables: T::Hash[Symbol, String],
|
|
138
143
|
scheduled_at: Revox::CallCreateParams::ScheduledAt::Variants,
|
|
144
|
+
skip_calling_window: T::Boolean,
|
|
139
145
|
request_options: Revox::RequestOptions
|
|
140
146
|
}
|
|
141
147
|
)
|
|
@@ -237,25 +243,6 @@ module Revox
|
|
|
237
243
|
sig { returns(T.nilable(String)) }
|
|
238
244
|
attr_accessor :email_notification_address
|
|
239
245
|
|
|
240
|
-
# The language used for the notification email content. One of "en" or "fr".
|
|
241
|
-
# Defaults to "en".
|
|
242
|
-
sig do
|
|
243
|
-
returns(
|
|
244
|
-
T.nilable(
|
|
245
|
-
Revox::CallCreateParams::Assistant::EmailNotificationLanguage::OrSymbol
|
|
246
|
-
)
|
|
247
|
-
)
|
|
248
|
-
end
|
|
249
|
-
attr_reader :email_notification_language
|
|
250
|
-
|
|
251
|
-
sig do
|
|
252
|
-
params(
|
|
253
|
-
email_notification_language:
|
|
254
|
-
Revox::CallCreateParams::Assistant::EmailNotificationLanguage::OrSymbol
|
|
255
|
-
).void
|
|
256
|
-
end
|
|
257
|
-
attr_writer :email_notification_language
|
|
258
|
-
|
|
259
246
|
# Which call outcomes trigger an email notification. E.g. ["interested",
|
|
260
247
|
# "completed", "none"]. Use "none" when outcome is null.
|
|
261
248
|
sig do
|
|
@@ -334,8 +321,8 @@ module Revox
|
|
|
334
321
|
sig { returns(T.nilable(String)) }
|
|
335
322
|
attr_accessor :from_phone_number
|
|
336
323
|
|
|
337
|
-
# When
|
|
338
|
-
# trunk must allow REFER/PSTN). Omit or null when transfer is disabled.
|
|
324
|
+
# When transfer_destinations is non-empty: "warm" (AI bridges) or "cold" (SIP
|
|
325
|
+
# REFER; trunk must allow REFER/PSTN). Omit or null when transfer is disabled.
|
|
339
326
|
sig do
|
|
340
327
|
returns(
|
|
341
328
|
T.nilable(
|
|
@@ -411,6 +398,14 @@ module Revox
|
|
|
411
398
|
end
|
|
412
399
|
attr_writer :position
|
|
413
400
|
|
|
401
|
+
# Inbound calls only. URL fetched over HTTP GET right before the call is answered,
|
|
402
|
+
# with `{{phone}}` replaced by the caller's number in E.164 format (URL-encoded).
|
|
403
|
+
# It must return `{"prompt_variables": {...}}` covering every `{{variable}}` the
|
|
404
|
+
# assistant declares, otherwise the call is errored. Must be an http(s) URL
|
|
405
|
+
# containing `{{phone}}`. When null, no lookup is performed.
|
|
406
|
+
sig { returns(T.nilable(String)) }
|
|
407
|
+
attr_accessor :precall_lookup_url
|
|
408
|
+
|
|
414
409
|
# Visual prompt constructor data (nodes, edges, positions). Used by the UI to
|
|
415
410
|
# re-open the visual editor. Does not affect call behavior — the flattened prompt
|
|
416
411
|
# field is what the LLM receives.
|
|
@@ -540,10 +535,18 @@ module Revox
|
|
|
540
535
|
sig { params(thinking_sound_volume: Float).void }
|
|
541
536
|
attr_writer :thinking_sound_volume
|
|
542
537
|
|
|
543
|
-
#
|
|
544
|
-
#
|
|
545
|
-
|
|
546
|
-
|
|
538
|
+
# Where calls can be transferred to when users ask to speak to a human. With a
|
|
539
|
+
# single entry the assistant always transfers there; with several, it picks one at
|
|
540
|
+
# transfer time by applying the routing rules written in the assistant's own
|
|
541
|
+
# prompt (which refer to the destination labels). Empty or null disables transfer.
|
|
542
|
+
sig do
|
|
543
|
+
returns(
|
|
544
|
+
T.nilable(
|
|
545
|
+
T::Array[Revox::CallCreateParams::Assistant::TransferDestination]
|
|
546
|
+
)
|
|
547
|
+
)
|
|
548
|
+
end
|
|
549
|
+
attr_accessor :transfer_destinations
|
|
547
550
|
|
|
548
551
|
# Assistant kind. 'standalone' (default) is a normal assistant, 'multi-step'
|
|
549
552
|
# orchestrates a flow of sub-assistants, 'sub-assistant' is a step inside a
|
|
@@ -632,8 +635,6 @@ module Revox
|
|
|
632
635
|
T::Array[Revox::CallCreateParams::Assistant::CustomTool::OrHash]
|
|
633
636
|
),
|
|
634
637
|
email_notification_address: T.nilable(String),
|
|
635
|
-
email_notification_language:
|
|
636
|
-
Revox::CallCreateParams::Assistant::EmailNotificationLanguage::OrSymbol,
|
|
637
638
|
email_notification_outcomes:
|
|
638
639
|
T.nilable(
|
|
639
640
|
T::Array[
|
|
@@ -665,6 +666,7 @@ module Revox
|
|
|
665
666
|
max_duration_end_message: T.nilable(String),
|
|
666
667
|
position:
|
|
667
668
|
T.nilable(Revox::CallCreateParams::Assistant::Position::OrHash),
|
|
669
|
+
precall_lookup_url: T.nilable(String),
|
|
668
670
|
prompt_flow:
|
|
669
671
|
T.nilable(Revox::CallCreateParams::Assistant::PromptFlow::OrHash),
|
|
670
672
|
slack: T.nilable(Revox::CallCreateParams::Assistant::Slack::OrHash),
|
|
@@ -684,7 +686,12 @@ module Revox
|
|
|
684
686
|
),
|
|
685
687
|
thinking_sound_probability: Float,
|
|
686
688
|
thinking_sound_volume: Float,
|
|
687
|
-
|
|
689
|
+
transfer_destinations:
|
|
690
|
+
T.nilable(
|
|
691
|
+
T::Array[
|
|
692
|
+
Revox::CallCreateParams::Assistant::TransferDestination::OrHash
|
|
693
|
+
]
|
|
694
|
+
),
|
|
688
695
|
type: Revox::CallCreateParams::Assistant::Type::OrSymbol,
|
|
689
696
|
voice: Revox::CallCreateParams::Assistant::Voice::OrHash,
|
|
690
697
|
voicemail_message: T.nilable(String),
|
|
@@ -722,9 +729,6 @@ module Revox
|
|
|
722
729
|
# outcome. Accepts a single email or a comma-separated list (e.g. "alice@x.com,
|
|
723
730
|
# bob@y.com").
|
|
724
731
|
email_notification_address: nil,
|
|
725
|
-
# The language used for the notification email content. One of "en" or "fr".
|
|
726
|
-
# Defaults to "en".
|
|
727
|
-
email_notification_language: nil,
|
|
728
732
|
# Which call outcomes trigger an email notification. E.g. ["interested",
|
|
729
733
|
# "completed", "none"]. Use "none" when outcome is null.
|
|
730
734
|
email_notification_outcomes: nil,
|
|
@@ -746,8 +750,8 @@ module Revox
|
|
|
746
750
|
# Must be a phone number owned by the organization in E.164 format (e.g.
|
|
747
751
|
# +1234567890). When null, the organization's default phone number is used.
|
|
748
752
|
from_phone_number: nil,
|
|
749
|
-
# When
|
|
750
|
-
# trunk must allow REFER/PSTN). Omit or null when transfer is disabled.
|
|
753
|
+
# When transfer_destinations is non-empty: "warm" (AI bridges) or "cold" (SIP
|
|
754
|
+
# REFER; trunk must allow REFER/PSTN). Omit or null when transfer is disabled.
|
|
751
755
|
human_transfer_mode: nil,
|
|
752
756
|
# Enable IVR navigation tools. When enabled, the assistant can send DTMF tones and
|
|
753
757
|
# skip turns to navigate phone menus.
|
|
@@ -765,6 +769,12 @@ module Revox
|
|
|
765
769
|
max_duration_end_message: nil,
|
|
766
770
|
# Canvas position of this assistant's node in its multi-step flow editor.
|
|
767
771
|
position: nil,
|
|
772
|
+
# Inbound calls only. URL fetched over HTTP GET right before the call is answered,
|
|
773
|
+
# with `{{phone}}` replaced by the caller's number in E.164 format (URL-encoded).
|
|
774
|
+
# It must return `{"prompt_variables": {...}}` covering every `{{variable}}` the
|
|
775
|
+
# assistant declares, otherwise the call is errored. Must be an http(s) URL
|
|
776
|
+
# containing `{{phone}}`. When null, no lookup is performed.
|
|
777
|
+
precall_lookup_url: nil,
|
|
768
778
|
# Visual prompt constructor data (nodes, edges, positions). Used by the UI to
|
|
769
779
|
# re-open the visual editor. Does not affect call behavior — the flattened prompt
|
|
770
780
|
# field is what the LLM receives.
|
|
@@ -801,9 +811,11 @@ module Revox
|
|
|
801
811
|
thinking_sound_probability: nil,
|
|
802
812
|
# Volume of the thinking sound (0 = silent, 1 = max).
|
|
803
813
|
thinking_sound_volume: nil,
|
|
804
|
-
#
|
|
805
|
-
#
|
|
806
|
-
|
|
814
|
+
# Where calls can be transferred to when users ask to speak to a human. With a
|
|
815
|
+
# single entry the assistant always transfers there; with several, it picks one at
|
|
816
|
+
# transfer time by applying the routing rules written in the assistant's own
|
|
817
|
+
# prompt (which refer to the destination labels). Empty or null disables transfer.
|
|
818
|
+
transfer_destinations: nil,
|
|
807
819
|
# Assistant kind. 'standalone' (default) is a normal assistant, 'multi-step'
|
|
808
820
|
# orchestrates a flow of sub-assistants, 'sub-assistant' is a step inside a
|
|
809
821
|
# multi-step flow (hidden from the assistants list). Flow transitions are managed
|
|
@@ -856,8 +868,6 @@ module Revox
|
|
|
856
868
|
T::Array[Revox::CallCreateParams::Assistant::CustomTool]
|
|
857
869
|
),
|
|
858
870
|
email_notification_address: T.nilable(String),
|
|
859
|
-
email_notification_language:
|
|
860
|
-
Revox::CallCreateParams::Assistant::EmailNotificationLanguage::OrSymbol,
|
|
861
871
|
email_notification_outcomes:
|
|
862
872
|
T.nilable(
|
|
863
873
|
T::Array[
|
|
@@ -887,6 +897,7 @@ module Revox
|
|
|
887
897
|
max_call_duration_secs: Float,
|
|
888
898
|
max_duration_end_message: T.nilable(String),
|
|
889
899
|
position: T.nilable(Revox::CallCreateParams::Assistant::Position),
|
|
900
|
+
precall_lookup_url: T.nilable(String),
|
|
890
901
|
prompt_flow:
|
|
891
902
|
T.nilable(Revox::CallCreateParams::Assistant::PromptFlow),
|
|
892
903
|
slack: T.nilable(Revox::CallCreateParams::Assistant::Slack),
|
|
@@ -906,7 +917,12 @@ module Revox
|
|
|
906
917
|
),
|
|
907
918
|
thinking_sound_probability: Float,
|
|
908
919
|
thinking_sound_volume: Float,
|
|
909
|
-
|
|
920
|
+
transfer_destinations:
|
|
921
|
+
T.nilable(
|
|
922
|
+
T::Array[
|
|
923
|
+
Revox::CallCreateParams::Assistant::TransferDestination
|
|
924
|
+
]
|
|
925
|
+
),
|
|
910
926
|
type: Revox::CallCreateParams::Assistant::Type::OrSymbol,
|
|
911
927
|
voice: Revox::CallCreateParams::Assistant::Voice,
|
|
912
928
|
voicemail_message: T.nilable(String),
|
|
@@ -952,21 +968,6 @@ module Revox
|
|
|
952
968
|
:requested_callback_later,
|
|
953
969
|
Revox::CallCreateParams::Assistant::AfterCallSMSOutcome::TaggedSymbol
|
|
954
970
|
)
|
|
955
|
-
REQUESTED_CALLBACK_NEW_NUMBER =
|
|
956
|
-
T.let(
|
|
957
|
-
:requested_callback_new_number,
|
|
958
|
-
Revox::CallCreateParams::Assistant::AfterCallSMSOutcome::TaggedSymbol
|
|
959
|
-
)
|
|
960
|
-
DO_NOT_CONTACT =
|
|
961
|
-
T.let(
|
|
962
|
-
:do_not_contact,
|
|
963
|
-
Revox::CallCreateParams::Assistant::AfterCallSMSOutcome::TaggedSymbol
|
|
964
|
-
)
|
|
965
|
-
AI_AVERSE =
|
|
966
|
-
T.let(
|
|
967
|
-
:ai_averse,
|
|
968
|
-
Revox::CallCreateParams::Assistant::AfterCallSMSOutcome::TaggedSymbol
|
|
969
|
-
)
|
|
970
971
|
NONE =
|
|
971
972
|
T.let(
|
|
972
973
|
:none,
|
|
@@ -1232,7 +1233,8 @@ module Revox
|
|
|
1232
1233
|
sig { returns(String) }
|
|
1233
1234
|
attr_accessor :calling_window_start_time
|
|
1234
1235
|
|
|
1235
|
-
# Delay between retry attempts in seconds.
|
|
1236
|
+
# Delay between retry attempts in seconds. 0 retries as soon as the calling window
|
|
1237
|
+
# allows. Default: 7200 (2 hours).
|
|
1236
1238
|
sig { returns(Integer) }
|
|
1237
1239
|
attr_accessor :retry_delay_seconds
|
|
1238
1240
|
|
|
@@ -1252,7 +1254,8 @@ module Revox
|
|
|
1252
1254
|
# timezone_override if provided). Format: 'HH:mm' (24-hour) or 'H:mma' (12-hour).
|
|
1253
1255
|
# Examples: '09:00', '10am'. Default: '10:00'.
|
|
1254
1256
|
calling_window_start_time:,
|
|
1255
|
-
# Delay between retry attempts in seconds.
|
|
1257
|
+
# Delay between retry attempts in seconds. 0 retries as soon as the calling window
|
|
1258
|
+
# allows. Default: 7200 (2 hours).
|
|
1256
1259
|
retry_delay_seconds:
|
|
1257
1260
|
)
|
|
1258
1261
|
end
|
|
@@ -1633,42 +1636,6 @@ module Revox
|
|
|
1633
1636
|
end
|
|
1634
1637
|
end
|
|
1635
1638
|
|
|
1636
|
-
# The language used for the notification email content. One of "en" or "fr".
|
|
1637
|
-
# Defaults to "en".
|
|
1638
|
-
module EmailNotificationLanguage
|
|
1639
|
-
extend Revox::Internal::Type::Enum
|
|
1640
|
-
|
|
1641
|
-
TaggedSymbol =
|
|
1642
|
-
T.type_alias do
|
|
1643
|
-
T.all(
|
|
1644
|
-
Symbol,
|
|
1645
|
-
Revox::CallCreateParams::Assistant::EmailNotificationLanguage
|
|
1646
|
-
)
|
|
1647
|
-
end
|
|
1648
|
-
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
1649
|
-
|
|
1650
|
-
EN =
|
|
1651
|
-
T.let(
|
|
1652
|
-
:en,
|
|
1653
|
-
Revox::CallCreateParams::Assistant::EmailNotificationLanguage::TaggedSymbol
|
|
1654
|
-
)
|
|
1655
|
-
FR =
|
|
1656
|
-
T.let(
|
|
1657
|
-
:fr,
|
|
1658
|
-
Revox::CallCreateParams::Assistant::EmailNotificationLanguage::TaggedSymbol
|
|
1659
|
-
)
|
|
1660
|
-
|
|
1661
|
-
sig do
|
|
1662
|
-
override.returns(
|
|
1663
|
-
T::Array[
|
|
1664
|
-
Revox::CallCreateParams::Assistant::EmailNotificationLanguage::TaggedSymbol
|
|
1665
|
-
]
|
|
1666
|
-
)
|
|
1667
|
-
end
|
|
1668
|
-
def self.values
|
|
1669
|
-
end
|
|
1670
|
-
end
|
|
1671
|
-
|
|
1672
1639
|
module EmailNotificationOutcome
|
|
1673
1640
|
extend Revox::Internal::Type::Enum
|
|
1674
1641
|
|
|
@@ -1701,21 +1668,6 @@ module Revox
|
|
|
1701
1668
|
:requested_callback_later,
|
|
1702
1669
|
Revox::CallCreateParams::Assistant::EmailNotificationOutcome::TaggedSymbol
|
|
1703
1670
|
)
|
|
1704
|
-
REQUESTED_CALLBACK_NEW_NUMBER =
|
|
1705
|
-
T.let(
|
|
1706
|
-
:requested_callback_new_number,
|
|
1707
|
-
Revox::CallCreateParams::Assistant::EmailNotificationOutcome::TaggedSymbol
|
|
1708
|
-
)
|
|
1709
|
-
DO_NOT_CONTACT =
|
|
1710
|
-
T.let(
|
|
1711
|
-
:do_not_contact,
|
|
1712
|
-
Revox::CallCreateParams::Assistant::EmailNotificationOutcome::TaggedSymbol
|
|
1713
|
-
)
|
|
1714
|
-
AI_AVERSE =
|
|
1715
|
-
T.let(
|
|
1716
|
-
:ai_averse,
|
|
1717
|
-
Revox::CallCreateParams::Assistant::EmailNotificationOutcome::TaggedSymbol
|
|
1718
|
-
)
|
|
1719
1671
|
NONE =
|
|
1720
1672
|
T.let(
|
|
1721
1673
|
:none,
|
|
@@ -1802,8 +1754,8 @@ module Revox
|
|
|
1802
1754
|
end
|
|
1803
1755
|
end
|
|
1804
1756
|
|
|
1805
|
-
# When
|
|
1806
|
-
# trunk must allow REFER/PSTN). Omit or null when transfer is disabled.
|
|
1757
|
+
# When transfer_destinations is non-empty: "warm" (AI bridges) or "cold" (SIP
|
|
1758
|
+
# REFER; trunk must allow REFER/PSTN). Omit or null when transfer is disabled.
|
|
1807
1759
|
module HumanTransferMode
|
|
1808
1760
|
extend Revox::Internal::Type::Enum
|
|
1809
1761
|
|
|
@@ -2397,9 +2349,15 @@ module Revox
|
|
|
2397
2349
|
)
|
|
2398
2350
|
end
|
|
2399
2351
|
|
|
2400
|
-
# The Slack
|
|
2401
|
-
|
|
2402
|
-
|
|
2352
|
+
# The Slack channels eligible to receive the notification. When more than one is
|
|
2353
|
+
# configured, the agent prompt may define routing rules to narrow it down per
|
|
2354
|
+
# call; with no such rules every channel here is notified.
|
|
2355
|
+
sig do
|
|
2356
|
+
returns(
|
|
2357
|
+
T::Array[Revox::CallCreateParams::Assistant::Slack::Channel]
|
|
2358
|
+
)
|
|
2359
|
+
end
|
|
2360
|
+
attr_accessor :channels
|
|
2403
2361
|
|
|
2404
2362
|
# The Nango connection ID linking the org's Slack workspace to Revox.
|
|
2405
2363
|
sig { returns(String) }
|
|
@@ -2416,15 +2374,11 @@ module Revox
|
|
|
2416
2374
|
end
|
|
2417
2375
|
attr_accessor :outcomes
|
|
2418
2376
|
|
|
2419
|
-
# Human-readable Slack channel name, cached for display in the UI.
|
|
2420
|
-
sig { returns(T.nilable(String)) }
|
|
2421
|
-
attr_accessor :channel_name
|
|
2422
|
-
|
|
2423
2377
|
# Optional message template. Supports {{summary}}, {{outcome}}, {{phone}},
|
|
2424
2378
|
# {{call_url}}, {{assistant_name}}, {{campaign_name}}, {{first_name}},
|
|
2425
|
-
# {{last_name}}, {{email}}, {{company}}, {{
|
|
2426
|
-
# prompt_variables and structured_output keys. When
|
|
2427
|
-
# is used.
|
|
2379
|
+
# {{last_name}}, {{email}}, {{company}}, {{job_title}}, {{contact_name}},
|
|
2380
|
+
# {{contact_line}}, plus prompt_variables and structured_output keys. When
|
|
2381
|
+
# null/empty a default template is used.
|
|
2428
2382
|
sig { returns(T.nilable(String)) }
|
|
2429
2383
|
attr_accessor :template
|
|
2430
2384
|
|
|
@@ -2432,31 +2386,33 @@ module Revox
|
|
|
2432
2386
|
# a call ends with one of the configured outcomes.
|
|
2433
2387
|
sig do
|
|
2434
2388
|
params(
|
|
2435
|
-
|
|
2389
|
+
channels:
|
|
2390
|
+
T::Array[
|
|
2391
|
+
Revox::CallCreateParams::Assistant::Slack::Channel::OrHash
|
|
2392
|
+
],
|
|
2436
2393
|
connection_id: String,
|
|
2437
2394
|
outcomes:
|
|
2438
2395
|
T::Array[
|
|
2439
2396
|
Revox::CallCreateParams::Assistant::Slack::Outcome::OrSymbol
|
|
2440
2397
|
],
|
|
2441
|
-
channel_name: T.nilable(String),
|
|
2442
2398
|
template: T.nilable(String)
|
|
2443
2399
|
).returns(T.attached_class)
|
|
2444
2400
|
end
|
|
2445
2401
|
def self.new(
|
|
2446
|
-
# The Slack
|
|
2447
|
-
|
|
2402
|
+
# The Slack channels eligible to receive the notification. When more than one is
|
|
2403
|
+
# configured, the agent prompt may define routing rules to narrow it down per
|
|
2404
|
+
# call; with no such rules every channel here is notified.
|
|
2405
|
+
channels:,
|
|
2448
2406
|
# The Nango connection ID linking the org's Slack workspace to Revox.
|
|
2449
2407
|
connection_id:,
|
|
2450
2408
|
# Which call outcomes trigger a Slack notification (e.g. ['interested', 'none']).
|
|
2451
2409
|
# Use 'none' to notify when outcome is null.
|
|
2452
2410
|
outcomes:,
|
|
2453
|
-
# Human-readable Slack channel name, cached for display in the UI.
|
|
2454
|
-
channel_name: nil,
|
|
2455
2411
|
# Optional message template. Supports {{summary}}, {{outcome}}, {{phone}},
|
|
2456
2412
|
# {{call_url}}, {{assistant_name}}, {{campaign_name}}, {{first_name}},
|
|
2457
|
-
# {{last_name}}, {{email}}, {{company}}, {{
|
|
2458
|
-
# prompt_variables and structured_output keys. When
|
|
2459
|
-
# is used.
|
|
2413
|
+
# {{last_name}}, {{email}}, {{company}}, {{job_title}}, {{contact_name}},
|
|
2414
|
+
# {{contact_line}}, plus prompt_variables and structured_output keys. When
|
|
2415
|
+
# null/empty a default template is used.
|
|
2460
2416
|
template: nil
|
|
2461
2417
|
)
|
|
2462
2418
|
end
|
|
@@ -2464,13 +2420,13 @@ module Revox
|
|
|
2464
2420
|
sig do
|
|
2465
2421
|
override.returns(
|
|
2466
2422
|
{
|
|
2467
|
-
|
|
2423
|
+
channels:
|
|
2424
|
+
T::Array[Revox::CallCreateParams::Assistant::Slack::Channel],
|
|
2468
2425
|
connection_id: String,
|
|
2469
2426
|
outcomes:
|
|
2470
2427
|
T::Array[
|
|
2471
2428
|
Revox::CallCreateParams::Assistant::Slack::Outcome::OrSymbol
|
|
2472
2429
|
],
|
|
2473
|
-
channel_name: T.nilable(String),
|
|
2474
2430
|
template: T.nilable(String)
|
|
2475
2431
|
}
|
|
2476
2432
|
)
|
|
@@ -2478,6 +2434,43 @@ module Revox
|
|
|
2478
2434
|
def to_hash
|
|
2479
2435
|
end
|
|
2480
2436
|
|
|
2437
|
+
class Channel < Revox::Internal::Type::BaseModel
|
|
2438
|
+
OrHash =
|
|
2439
|
+
T.type_alias do
|
|
2440
|
+
T.any(
|
|
2441
|
+
Revox::CallCreateParams::Assistant::Slack::Channel,
|
|
2442
|
+
Revox::Internal::AnyHash
|
|
2443
|
+
)
|
|
2444
|
+
end
|
|
2445
|
+
|
|
2446
|
+
# The Slack channel ID (e.g. 'C01234567').
|
|
2447
|
+
sig { returns(String) }
|
|
2448
|
+
attr_accessor :id
|
|
2449
|
+
|
|
2450
|
+
# Human-readable Slack channel name, cached for display in the UI and given to the
|
|
2451
|
+
# LLM when the agent prompt routes by channel name.
|
|
2452
|
+
sig { returns(T.nilable(String)) }
|
|
2453
|
+
attr_accessor :name
|
|
2454
|
+
|
|
2455
|
+
sig do
|
|
2456
|
+
params(id: String, name: T.nilable(String)).returns(
|
|
2457
|
+
T.attached_class
|
|
2458
|
+
)
|
|
2459
|
+
end
|
|
2460
|
+
def self.new(
|
|
2461
|
+
# The Slack channel ID (e.g. 'C01234567').
|
|
2462
|
+
id:,
|
|
2463
|
+
# Human-readable Slack channel name, cached for display in the UI and given to the
|
|
2464
|
+
# LLM when the agent prompt routes by channel name.
|
|
2465
|
+
name: nil
|
|
2466
|
+
)
|
|
2467
|
+
end
|
|
2468
|
+
|
|
2469
|
+
sig { override.returns({ id: String, name: T.nilable(String) }) }
|
|
2470
|
+
def to_hash
|
|
2471
|
+
end
|
|
2472
|
+
end
|
|
2473
|
+
|
|
2481
2474
|
module Outcome
|
|
2482
2475
|
extend Revox::Internal::Type::Enum
|
|
2483
2476
|
|
|
@@ -2510,21 +2503,6 @@ module Revox
|
|
|
2510
2503
|
:requested_callback_later,
|
|
2511
2504
|
Revox::CallCreateParams::Assistant::Slack::Outcome::TaggedSymbol
|
|
2512
2505
|
)
|
|
2513
|
-
REQUESTED_CALLBACK_NEW_NUMBER =
|
|
2514
|
-
T.let(
|
|
2515
|
-
:requested_callback_new_number,
|
|
2516
|
-
Revox::CallCreateParams::Assistant::Slack::Outcome::TaggedSymbol
|
|
2517
|
-
)
|
|
2518
|
-
DO_NOT_CONTACT =
|
|
2519
|
-
T.let(
|
|
2520
|
-
:do_not_contact,
|
|
2521
|
-
Revox::CallCreateParams::Assistant::Slack::Outcome::TaggedSymbol
|
|
2522
|
-
)
|
|
2523
|
-
AI_AVERSE =
|
|
2524
|
-
T.let(
|
|
2525
|
-
:ai_averse,
|
|
2526
|
-
Revox::CallCreateParams::Assistant::Slack::Outcome::TaggedSymbol
|
|
2527
|
-
)
|
|
2528
2506
|
NONE =
|
|
2529
2507
|
T.let(
|
|
2530
2508
|
:none,
|
|
@@ -2830,6 +2808,43 @@ module Revox
|
|
|
2830
2808
|
end
|
|
2831
2809
|
end
|
|
2832
2810
|
|
|
2811
|
+
class TransferDestination < Revox::Internal::Type::BaseModel
|
|
2812
|
+
OrHash =
|
|
2813
|
+
T.type_alias do
|
|
2814
|
+
T.any(
|
|
2815
|
+
Revox::CallCreateParams::Assistant::TransferDestination,
|
|
2816
|
+
Revox::Internal::AnyHash
|
|
2817
|
+
)
|
|
2818
|
+
end
|
|
2819
|
+
|
|
2820
|
+
# Human-meaningful name for this destination (e.g. "Sales"). The assistant's
|
|
2821
|
+
# prompt refers to these labels when describing who to transfer to.
|
|
2822
|
+
sig { returns(String) }
|
|
2823
|
+
attr_accessor :label
|
|
2824
|
+
|
|
2825
|
+
# Destination phone number in E.164 format (e.g. +1234567890).
|
|
2826
|
+
sig { returns(String) }
|
|
2827
|
+
attr_accessor :phone_number
|
|
2828
|
+
|
|
2829
|
+
sig do
|
|
2830
|
+
params(label: String, phone_number: String).returns(
|
|
2831
|
+
T.attached_class
|
|
2832
|
+
)
|
|
2833
|
+
end
|
|
2834
|
+
def self.new(
|
|
2835
|
+
# Human-meaningful name for this destination (e.g. "Sales"). The assistant's
|
|
2836
|
+
# prompt refers to these labels when describing who to transfer to.
|
|
2837
|
+
label:,
|
|
2838
|
+
# Destination phone number in E.164 format (e.g. +1234567890).
|
|
2839
|
+
phone_number:
|
|
2840
|
+
)
|
|
2841
|
+
end
|
|
2842
|
+
|
|
2843
|
+
sig { override.returns({ label: String, phone_number: String }) }
|
|
2844
|
+
def to_hash
|
|
2845
|
+
end
|
|
2846
|
+
end
|
|
2847
|
+
|
|
2833
2848
|
# Assistant kind. 'standalone' (default) is a normal assistant, 'multi-step'
|
|
2834
2849
|
# orchestrates a flow of sub-assistants, 'sub-assistant' is a step inside a
|
|
2835
2850
|
# multi-step flow (hidden from the assistants list). Flow transitions are managed
|
|
@@ -2908,7 +2923,7 @@ module Revox
|
|
|
2908
2923
|
attr_writer :model
|
|
2909
2924
|
|
|
2910
2925
|
# The speed of the voice. Range depends on provider: Cartesia 0.6–1.5, ElevenLabs
|
|
2911
|
-
# 0.7–1.2. Default is 1.0.
|
|
2926
|
+
# 0.7–1.2, Gradium 0.6–1.5. Default is 1.0.
|
|
2912
2927
|
sig { returns(T.nilable(Float)) }
|
|
2913
2928
|
attr_reader :speed
|
|
2914
2929
|
|
|
@@ -2944,7 +2959,7 @@ module Revox
|
|
|
2944
2959
|
# for other providers.
|
|
2945
2960
|
model: nil,
|
|
2946
2961
|
# The speed of the voice. Range depends on provider: Cartesia 0.6–1.5, ElevenLabs
|
|
2947
|
-
# 0.7–1.2. Default is 1.0.
|
|
2962
|
+
# 0.7–1.2, Gradium 0.6–1.5. Default is 1.0.
|
|
2948
2963
|
speed: nil,
|
|
2949
2964
|
# Volume of the voice (Cartesia only). 0.5–2.0, default 1.0. Ignored for other
|
|
2950
2965
|
# providers.
|
|
@@ -2991,6 +3006,11 @@ module Revox
|
|
|
2991
3006
|
:elevenlabs,
|
|
2992
3007
|
Revox::CallCreateParams::Assistant::Voice::Provider::TaggedSymbol
|
|
2993
3008
|
)
|
|
3009
|
+
GRADIUM =
|
|
3010
|
+
T.let(
|
|
3011
|
+
:gradium,
|
|
3012
|
+
Revox::CallCreateParams::Assistant::Voice::Provider::TaggedSymbol
|
|
3013
|
+
)
|
|
2994
3014
|
|
|
2995
3015
|
sig do
|
|
2996
3016
|
override.returns(
|
|
@@ -3216,21 +3236,6 @@ module Revox
|
|
|
3216
3236
|
:requested_callback_later,
|
|
3217
3237
|
Revox::CallCreateParams::Assistant::Zoho::Outcome::TaggedSymbol
|
|
3218
3238
|
)
|
|
3219
|
-
REQUESTED_CALLBACK_NEW_NUMBER =
|
|
3220
|
-
T.let(
|
|
3221
|
-
:requested_callback_new_number,
|
|
3222
|
-
Revox::CallCreateParams::Assistant::Zoho::Outcome::TaggedSymbol
|
|
3223
|
-
)
|
|
3224
|
-
DO_NOT_CONTACT =
|
|
3225
|
-
T.let(
|
|
3226
|
-
:do_not_contact,
|
|
3227
|
-
Revox::CallCreateParams::Assistant::Zoho::Outcome::TaggedSymbol
|
|
3228
|
-
)
|
|
3229
|
-
AI_AVERSE =
|
|
3230
|
-
T.let(
|
|
3231
|
-
:ai_averse,
|
|
3232
|
-
Revox::CallCreateParams::Assistant::Zoho::Outcome::TaggedSymbol
|
|
3233
|
-
)
|
|
3234
3239
|
NONE =
|
|
3235
3240
|
T.let(
|
|
3236
3241
|
:none,
|
|
@@ -3259,25 +3264,23 @@ module Revox
|
|
|
3259
3264
|
)
|
|
3260
3265
|
end
|
|
3261
3266
|
|
|
3262
|
-
#
|
|
3267
|
+
# Groups this call with every other call sharing the same key, for concurrency
|
|
3268
|
+
# purposes.
|
|
3263
3269
|
sig { returns(String) }
|
|
3264
3270
|
attr_accessor :key
|
|
3265
3271
|
|
|
3266
|
-
#
|
|
3267
|
-
|
|
3268
|
-
|
|
3269
|
-
|
|
3270
|
-
# Limit the number of concurrent calls for a given concurrency key.
|
|
3271
|
-
sig { params(key: String, max: Float).returns(T.attached_class) }
|
|
3272
|
+
# Limit the number of concurrent calls for a given concurrency key. The limit
|
|
3273
|
+
# itself is set server-side; omit this to leave the call ungrouped (bounded only
|
|
3274
|
+
# by your organization's limit).
|
|
3275
|
+
sig { params(key: String).returns(T.attached_class) }
|
|
3272
3276
|
def self.new(
|
|
3273
|
-
#
|
|
3274
|
-
|
|
3275
|
-
|
|
3276
|
-
max:
|
|
3277
|
+
# Groups this call with every other call sharing the same key, for concurrency
|
|
3278
|
+
# purposes.
|
|
3279
|
+
key:
|
|
3277
3280
|
)
|
|
3278
3281
|
end
|
|
3279
3282
|
|
|
3280
|
-
sig { override.returns({ key: String
|
|
3283
|
+
sig { override.returns({ key: String }) }
|
|
3281
3284
|
def to_hash
|
|
3282
3285
|
end
|
|
3283
3286
|
end
|