Class: OpenAI::Resources::Realtime::Calls
- Inherits:
-
Object
- Object
- OpenAI::Resources::Realtime::Calls
- Defined in:
- lib/openai/resources/realtime/calls.rb,
sig/openai/resources/realtime/calls.rbs
Instance Method Summary collapse
-
#accept(call_id, audio: nil, include: nil, instructions: nil, max_output_tokens: nil, model: nil, output_modalities: nil, parallel_tool_calls: nil, prompt: nil, reasoning: nil, tool_choice: nil, tools: nil, tracing: nil, truncation: nil, type: :realtime, request_options: {}) ⇒ nil
Accept an incoming SIP call and configure the realtime session that will handle it.
-
#create(sdp:, session: nil, request_options: {}) ⇒ OpenAI::HTTPClient::Response
Create a new Realtime API call over WebRTC and receive the SDP answer needed to complete the peer connection.
-
#hangup(call_id, request_options: {}) ⇒ nil
End an active Realtime API call, whether it was initiated over SIP or WebRTC.
-
#initialize(client:) ⇒ Calls
constructor
private
A new instance of Calls.
-
#refer(call_id, target_uri:, request_options: {}) ⇒ nil
Transfer an active SIP call to a new destination using the SIP REFER verb.
-
#reject(call_id, status_code: nil, request_options: {}) ⇒ nil
Decline an incoming SIP call by returning a SIP status code to the caller.
Constructor Details
#initialize(client:) ⇒ Calls
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns a new instance of Calls.
265 266 267 |
# File 'lib/openai/resources/realtime/calls.rb', line 265 def initialize(client:) @client = client end |
Instance Method Details
#accept(call_id, audio: nil, include: nil, instructions: nil, max_output_tokens: nil, model: nil, output_modalities: nil, parallel_tool_calls: nil, prompt: nil, reasoning: nil, tool_choice: nil, tools: nil, tracing: nil, truncation: nil, type: :realtime, request_options: {}) ⇒ nil
Accept an incoming SIP call and configure the realtime session that will handle it.
164 165 166 167 168 169 170 171 172 173 174 |
# File 'lib/openai/resources/realtime/calls.rb', line 164 def accept(call_id, params) parsed, = OpenAI::Realtime::CallAcceptParams.dump_request(params) @client.request( method: :post, path: ["realtime/calls/%1$s/accept", call_id], body: parsed, model: NilClass, security: {bearer_auth: true}, options: ) end |
#create(sdp:, session: nil, request_options: {}) ⇒ OpenAI::HTTPClient::Response
Create a new Realtime API call over WebRTC and receive the SDP answer needed to complete the peer connection.
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/openai/resources/realtime/calls.rb', line 23 def create(params) parsed, = OpenAI::Realtime::CallCreateParams.dump_request(params) normalize_keys = lambda do |value| case value when Hash value.to_h { |key, child| [key.to_s, normalize_keys.call(child)] } when Array value.map { |child| normalize_keys.call(child) } else value end end multipart_body = OpenAI::Internal::Util.deep_merge( normalize_keys.call(parsed), normalize_keys.call([:extra_body] || {}) ) = .except(:extra_body) if multipart_body.key?("sdp") multipart_body["sdp"] = OpenAI::FilePart.new(multipart_body["sdp"], content_type: "application/sdp") end if multipart_body.key?("session") multipart_body["session"] = OpenAI::FilePart.new( JSON.generate(multipart_body["session"]), content_type: "application/json" ) end @client.request( method: :post, path: "realtime/calls", headers: {"content-type" => "multipart/form-data", "accept" => "application/sdp"}, body: multipart_body, model: OpenAI::HTTPClient::Response, security: {bearer_auth: true}, options: {**, max_retries: [:max_retries] || 0} ) end |
#hangup(call_id, request_options: {}) ⇒ nil
End an active Realtime API call, whether it was initiated over SIP or WebRTC.
192 193 194 195 196 197 198 199 200 |
# File 'lib/openai/resources/realtime/calls.rb', line 192 def hangup(call_id, params = {}) @client.request( method: :post, path: ["realtime/calls/%1$s/hangup", call_id], model: NilClass, security: {bearer_auth: true}, options: params[:request_options] ) end |
#refer(call_id, target_uri:, request_options: {}) ⇒ nil
Transfer an active SIP call to a new destination using the SIP REFER verb.
220 221 222 223 224 225 226 227 228 229 230 |
# File 'lib/openai/resources/realtime/calls.rb', line 220 def refer(call_id, params) parsed, = OpenAI::Realtime::CallReferParams.dump_request(params) @client.request( method: :post, path: ["realtime/calls/%1$s/refer", call_id], body: parsed, model: NilClass, security: {bearer_auth: true}, options: ) end |
#reject(call_id, status_code: nil, request_options: {}) ⇒ nil
Decline an incoming SIP call by returning a SIP status code to the caller.
250 251 252 253 254 255 256 257 258 259 260 |
# File 'lib/openai/resources/realtime/calls.rb', line 250 def reject(call_id, params = {}) parsed, = OpenAI::Realtime::CallRejectParams.dump_request(params) @client.request( method: :post, path: ["realtime/calls/%1$s/reject", call_id], body: parsed, model: NilClass, security: {bearer_auth: true}, options: ) end |