Class: LiveKit::ConnectorServiceClient
- Inherits:
-
Twirp::Client
- Object
- Twirp::Client
- LiveKit::ConnectorServiceClient
- Includes:
- AuthMixin
- Defined in:
- lib/livekit/connector_service_client.rb
Overview
Client for LiveKit's Connector service, bridging WhatsApp and Twilio calls into LiveKit rooms.
The request types carry many fields, so each method takes a fully-built protobuf request and returns the protobuf response.
Instance Attribute Summary collapse
-
#api_key ⇒ Object
Returns the value of attribute api_key.
-
#api_secret ⇒ Object
Returns the value of attribute api_secret.
Instance Method Summary collapse
-
#accept_whatsapp_call(request, timeout: nil) ⇒ Proto::AcceptWhatsAppCallResponse
Accepts an inbound WhatsApp call.
-
#connect_twilio_call(request) ⇒ Proto::ConnectTwilioCallResponse
Connects a Twilio call to a LiveKit room.
-
#connect_whatsapp_call(request) ⇒ Proto::ConnectWhatsAppCallResponse
Connects an established WhatsApp call (used for business-initiated calls).
-
#dial_whatsapp_call(request) ⇒ Proto::DialWhatsAppCallResponse
Initiates an outbound WhatsApp call.
-
#disconnect_whatsapp_call(request) ⇒ Proto::DisconnectWhatsAppCallResponse
Disconnects an active WhatsApp call.
-
#initialize(base_url, api_key: nil, api_secret: nil, token: nil, failover: true, connection: nil) ⇒ ConnectorServiceClient
constructor
A new instance of ConnectorServiceClient.
Methods included from AuthMixin
Constructor Details
#initialize(base_url, api_key: nil, api_secret: nil, token: nil, failover: true, connection: nil) ⇒ ConnectorServiceClient
Returns a new instance of ConnectorServiceClient.
18 19 20 21 22 23 |
# File 'lib/livekit/connector_service_client.rb', line 18 def initialize(base_url, api_key: nil, api_secret: nil, token: nil, failover: true, connection: nil) super(connection || LiveKit::Failover.connection(base_url, failover)) @api_key = api_key @api_secret = api_secret @token = token end |
Instance Attribute Details
#api_key ⇒ Object
Returns the value of attribute api_key.
16 17 18 |
# File 'lib/livekit/connector_service_client.rb', line 16 def api_key @api_key end |
#api_secret ⇒ Object
Returns the value of attribute api_secret.
16 17 18 |
# File 'lib/livekit/connector_service_client.rb', line 16 def api_secret @api_secret end |
Instance Method Details
#accept_whatsapp_call(request, timeout: nil) ⇒ Proto::AcceptWhatsAppCallResponse
Accepts an inbound WhatsApp call.
42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/livekit/connector_service_client.rb', line 42 def accept_whatsapp_call(request, timeout: nil) headers = auth_header(video_grant: VideoGrant.new(roomCreate: true)) # Waiting for the inbound party to join can block, so default the request # timeout to the standard ring window; otherwise honor any user timeout. if request.wait_until_answered headers[Failover::TIMEOUT_HEADER] = (timeout || DialTimeout::DEFAULT_RINGING_TIMEOUT).to_s elsif timeout headers[Failover::TIMEOUT_HEADER] = timeout.to_s end rpc!(:AcceptWhatsAppCall, request, headers: headers) end |
#connect_twilio_call(request) ⇒ Proto::ConnectTwilioCallResponse
Connects a Twilio call to a LiveKit room.
79 80 81 82 83 84 85 |
# File 'lib/livekit/connector_service_client.rb', line 79 def connect_twilio_call(request) rpc!( :ConnectTwilioCall, request, headers: auth_header(video_grant: VideoGrant.new(roomCreate: true)), ) end |
#connect_whatsapp_call(request) ⇒ Proto::ConnectWhatsAppCallResponse
Connects an established WhatsApp call (used for business-initiated calls).
57 58 59 60 61 62 63 |
# File 'lib/livekit/connector_service_client.rb', line 57 def connect_whatsapp_call(request) rpc!( :ConnectWhatsAppCall, request, headers: auth_header(video_grant: VideoGrant.new(roomCreate: true)), ) end |
#dial_whatsapp_call(request) ⇒ Proto::DialWhatsAppCallResponse
Initiates an outbound WhatsApp call.
28 29 30 31 32 33 34 |
# File 'lib/livekit/connector_service_client.rb', line 28 def dial_whatsapp_call(request) rpc!( :DialWhatsAppCall, request, headers: auth_header(video_grant: VideoGrant.new(roomCreate: true)), ) end |
#disconnect_whatsapp_call(request) ⇒ Proto::DisconnectWhatsAppCallResponse
Disconnects an active WhatsApp call.
68 69 70 71 72 73 74 |
# File 'lib/livekit/connector_service_client.rb', line 68 def disconnect_whatsapp_call(request) rpc!( :DisconnectWhatsAppCall, request, headers: auth_header(video_grant: VideoGrant.new(roomCreate: true)), ) end |