
    /j                        S SK Jr  S SKrS SKJrJrJrJrJrJ	r	J
r
Jr  S SKJrJr  SSKJr  SSKJr  Sr  " S	 S
\5      rg)    )annotationsN)DialWhatsAppCallRequestDialWhatsAppCallResponseDisconnectWhatsAppCallRequestDisconnectWhatsAppCallResponseConnectWhatsAppCallRequestConnectWhatsAppCallResponseAcceptWhatsAppCallRequestAcceptWhatsAppCallResponse)ConnectTwilioCallRequestConnectTwilioCallResponse   )Service)VideoGrants	Connectorc                     ^  \ rS rSrSrS
U 4S jjr    SS jr    SS jr    SS jr    SS jr	    SS jr
S	rU =r$ )ConnectorService   zClient for LiveKit Connector Service API

Recommended way to use this service is via `livekit.api.LiveKitAPI`:

```python
from livekit import api
lkapi = api.LiveKitAPI()
connector_service = lkapi.connector
```
c                &   > [         TU ]  XX45        g )N)super__init__)selfsessionurlapi_key
api_secret	__class__s        N/app/agent/.venv/lib/python3.13/site-packages/livekit/api/connector_service.pyr   ConnectorService.__init__&   s    w;    c                   #    U R                   R                  [        SUU R                  [	        SS95      [
        5      I Sh  vN $  N7f)z
Initiate an outbound WhatsApp call

Args:
    request: DialWhatsAppCallRequest containing call parameters

Returns:
    DialWhatsAppCallResponse with the WhatsApp call ID and room name
DialWhatsAppCallTroom_createN)_clientrequestSVC_auth_headerr   r   r   r&   s     r   dial_whatsapp_call#ConnectorService.dial_whatsapp_call)   sG      \\))kd;<$
 
 	
 
   AA
AA
c                   #    U R                   R                  [        SUU R                  [	        SS95      [
        5      I Sh  vN $  N7f)z
Disconnect an active WhatsApp call

Args:
    request: DisconnectWhatsAppCallRequest containing the call ID to disconnect

Returns:
    DisconnectWhatsAppCallResponse (empty response)
DisconnectWhatsAppCallTr#   N)r%   r&   r'   r(   r   r   r)   s     r   disconnect_whatsapp_call)ConnectorService.disconnect_whatsapp_call=   sG      \\))$kd;<*
 
 	
 
r,   c                   #    U R                   R                  [        SUU R                  [	        SS95      [
        5      I Sh  vN $  N7f)z
Connect a WhatsApp call with SDP information

Args:
    request: ConnectWhatsAppCallRequest containing call ID and SDP

Returns:
    ConnectWhatsAppCallResponse (empty response)
ConnectWhatsAppCallTr#   N)r%   r&   r'   r(   r   r	   r)   s     r   connect_whatsapp_call&ConnectorService.connect_whatsapp_callQ   sG      \\))!kd;<'
 
 	
 
r,   c                   #    U R                   R                  [        SUU R                  [	        SS95      [
        5      I Sh  vN $  N7f)z
Accept an inbound WhatsApp call

Args:
    request: AcceptWhatsAppCallRequest containing call parameters and SDP

Returns:
    AcceptWhatsAppCallResponse with the room name
AcceptWhatsAppCallTr#   N)r%   r&   r'   r(   r   r   r)   s     r   accept_whatsapp_call%ConnectorService.accept_whatsapp_calle   sG      \\)) kd;<&
 
 	
 
r,   c                   #    U R                   R                  [        SUU R                  [	        SS95      [
        5      I Sh  vN $  N7f)z
Connect a Twilio call to a LiveKit room

Args:
    request: ConnectTwilioCallRequest containing call parameters

Returns:
    ConnectTwilioCallResponse with the websocket URL for Twilio media stream
ConnectTwilioCallTr#   N)r%   r&   r'   r(   r   r   r)   s     r   connect_twilio_call$ConnectorService.connect_twilio_cally   sG      \\))kd;<%
 
 	
 
r,    )r   zaiohttp.ClientSessionr   strr   r>   r   r>   )r&   r   returnr   )r&   r   r?   r   )r&   r   r?   r	   )r&   r
   r?   r   )r&   r   r?   r   )__name__
__module____qualname____firstlineno____doc__r   r*   r/   r3   r7   r;   __static_attributes____classcell__)r   s   @r   r   r      s{    	<
.
	!
(
4
	'
(
1
	$
(
0
	#
(
/
	"
 
r    r   )
__future__r   aiohttp#livekit.protocol.connector_whatsappr   r   r   r   r   r	   r
   r   !livekit.protocol.connector_twilior   r   _servicer   access_tokenr   r'   r   r=   r    r   <module>rM      s=    " 	 	 	  % q
w q
r    