
    b6i01                        d dl Z d dlmZ ddlmZ ddlmZmZ ddlm	Z	m
Z
 ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ  e j6                  e j8                  d      Z G d d      Z G d d      Zy)    N)JSONDecodeError   )ApiError)AsyncClientWrapperSyncClientWrapper)AsyncHttpResponseHttpResponse)RequestOptions)'convert_and_respect_annotation_metadata)construct_type)UnprocessableEntityError),ConversationInitiationClientDataRequestInput)HttpValidationError)TwilioOutboundCallResponse   )LBodyRegisterATwilioCallAndReturnTwiMlV1ConvaiTwilioRegisterCallPostDirection.c                       e Zd ZdefdZedddedededej                  e	   d	ej                  e
   d
ee   fdZeedddedededej                  e   dej                  e	   d	ej                  e
   d
ed   fdZy)RawTwilioClientclient_wrapperc                    || _         y N_client_wrapperselfr   s     y/root/.openclaw/workspace/visionaryfx/venv/lib/python3.12/site-packages/elevenlabs/conversational_ai/twilio/raw_client.py__init__zRawTwilioClient.__init__   
    -    N#conversation_initiation_client_datarequest_optionsagent_idagent_phone_number_id	to_numberr!   r"   returnc                
   | j                   j                  j                  dd|||t        |t        d      dddi|t
              }	 d	|j                  cxk  rd
k  rGn nDt        j                  t        t        t        |j                                     }t        ||      S |j                  dk(  rUt        t        |j                        t        j                  t         t        t         |j                                           |j                         }t%        |j                  t        |j                        |      # t"        $ r6 t%        |j                  t        |j                        |j&                        w xY w)a  
        Handle an outbound call via Twilio

        Parameters
        ----------
        agent_id : str

        agent_phone_number_id : str

        to_number : str

        conversation_initiation_client_data : typing.Optional[ConversationInitiationClientDataRequestInput]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        HttpResponse[TwilioOutboundCallResponse]
            Successful Response
        v1/convai/twilio/outbound-callPOSTwriteobject_
annotation	directionr#   r$   r%   r!   content-typeapplication/jsonmethodjsonheadersr"   omit   ,  type_r,   responsedata  r5   bodystatus_coder5   r@   )r   httpx_clientrequestr   r   OMITrB   typingcastr   r   r4   r	   r   dictr5   r   r   r   text	r   r#   r$   r%   r!   r"   	_response_data_response_jsons	            r   outbound_callzRawTwilioClient.outbound_call   se   < ((55==,$)>&7^?K%8		  2 ,# > 
	&	ti++1c1."8 ) 0 $YUCC$$+. !2!23+&"5$-NN$4	 	 '^^-N 9#8#8$yGXGXBY`noo  	ty'<'<d9K\K\F]dmdrdrss	ts   AE $A4E ?Fr.   r!   r"   from_numberr.   c                   | j                   j                  j                  dd||||t        |t        d      dddi|t
              }	 d	|j                  cxk  rd
k  rn nt        |d      S |j                  dk(  rUt        t        |j                        t        j                  t        t        t        |j                                           |j                         }t#        |j                  t        |j                        |      # t         $ r6 t#        |j                  t        |j                        |j$                        w xY w)aB  
        Register a Twilio call and return TwiML to connect the call

        Parameters
        ----------
        agent_id : str

        from_number : str

        to_number : str

        direction : typing.Optional[BodyRegisterATwilioCallAndReturnTwiMlV1ConvaiTwilioRegisterCallPostDirection]

        conversation_initiation_client_data : typing.Optional[ConversationInitiationClientDataRequestInput]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        HttpResponse[None]
        v1/convai/twilio/register-callr)   r*   r+   r#   rP   r%   r.   r!   r0   r1   r2   r7   r8   Nr;   r>   r9   r?   rA   )r   rC   rD   r   r   rE   rB   r	   r   rH   r5   rF   rG   r   r   r4   r   r   rI   	r   r#   rP   r%   r.   r!   r"   rK   rM   s	            r   register_callzRawTwilioClient.register_callg   sA   @ ((55==,$*&&7^?K%8
  2 ,% > 
	(	ti++1c1#YTBB$$+. !2!23+&"5$-NN$4	 	 '^^-N 9#8#8$yGXGXBY`noo  	ty'<'<d9K\K\F]dmdrdrss	ts   	$D .A4D ?E)__name__
__module____qualname__r   r   rE   strrF   Optionalr   r
   r	   r   rN   r   rU    r   r   r   r      s   .*; . nr;?Ip Ip  #	Ip
 Ip .4__=i-jIp  8Ip 
0	1Ipb txmq;?Ep Ep 	Ep
 Ep ??#opEp .4__=i-jEp  8Ep 
d	Epr   r   c                       e Zd ZdefdZedddedededej                  e	   d	ej                  e
   d
ee   fdZeedddedededej                  e   dej                  e	   d	ej                  e
   d
ed   fdZy)AsyncRawTwilioClientr   c                    || _         y r   r   r   s     r   r   zAsyncRawTwilioClient.__init__   r   r   Nr    r#   r$   r%   r!   r"   r&   c                (  K   | j                   j                  j                  dd|||t        |t        d      dddi|t
               d	{   }	 d
|j                  cxk  rdk  rGn nDt        j                  t        t        t        |j                                     }t        ||      S |j                  dk(  rUt        t        |j                        t        j                  t         t        t         |j                                           |j                         }t%        |j                  t        |j                        |      7 # t"        $ r6 t%        |j                  t        |j                        |j&                        w xY ww)a  
        Handle an outbound call via Twilio

        Parameters
        ----------
        agent_id : str

        agent_phone_number_id : str

        to_number : str

        conversation_initiation_client_data : typing.Optional[ConversationInitiationClientDataRequestInput]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        AsyncHttpResponse[TwilioOutboundCallResponse]
            Successful Response
        r(   r)   r*   r+   r/   r0   r1   r2   Nr7   r8   r9   r;   r>   r?   rA   )r   rC   rD   r   r   rE   rB   rF   rG   r   r   r4   r   r   rH   r5   r   r   r   rI   rJ   s	            r   rN   z"AsyncRawTwilioClient.outbound_call   su    < ..;;CC,$)>&7^?K%8		  2 ,# D 
 
	&	ti++1c1."8 ) 0 ))%HH$$+. !2!23+&"5$-NN$4	 	 '^^-N 9#8#8$yGXGXBY`nooW
R  	ty'<'<d9K\K\F]dmdrdrss	ts8   A
FEFAE -F.A4E ",F?FFrO   rP   r.   c                  K   | j                   j                  j                  dd||||t        |t        d      dddi|t
               d	{   }	 d
|j                  cxk  rdk  rn nt        |d	      S |j                  dk(  rUt        t        |j                        t        j                  t        t        t        |j                                           |j                         }t#        |j                  t        |j                        |      7 # t         $ r6 t#        |j                  t        |j                        |j$                        w xY ww)aG  
        Register a Twilio call and return TwiML to connect the call

        Parameters
        ----------
        agent_id : str

        from_number : str

        to_number : str

        direction : typing.Optional[BodyRegisterATwilioCallAndReturnTwiMlV1ConvaiTwilioRegisterCallPostDirection]

        conversation_initiation_client_data : typing.Optional[ConversationInitiationClientDataRequestInput]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        AsyncHttpResponse[None]
        rR   r)   r*   r+   rS   r0   r1   r2   Nr7   r8   r;   r>   r9   r?   rA   )r   rC   rD   r   r   rE   rB   r   r   rH   r5   rF   rG   r   r   r4   r   r   rI   rT   s	            r   rU   z"AsyncRawTwilioClient.register_call   sQ    @ ..;;CC,$*&&7^?K%8
  2 ,% D 
 
	(	ti++1c1()$GG$$+. !2!23+&"5$-NN$4	 	 '^^-N 9#8#8$yGXGXBY`nooK
F  	ty'<'<d9K\K\F]dmdrdrss	ts7   AEDE$D 7E8A4D ,,E?EE)rV   rW   rX   r   r   rE   rY   rF   rZ   r   r
   r   r   rN   r   rU   r[   r   r   r]   r]      s   .*< . nr;?Ip Ip  #	Ip
 Ip .4__=i-jIp  8Ip 
5	6Ipb txmq;?Ep Ep 	Ep
 Ep ??#opEp .4__=i-jEp  8Ep 
4	 Epr   r]   ) rF   json.decoderr   core.api_errorr   core.client_wrapperr   r   core.http_responser   r	   core.request_optionsr
   core.serializationr   core.unchecked_base_modelr   !errors.unprocessable_entity_errorr   7types.conversation_initiation_client_data_request_inputr   types.http_validation_errorr   #types.twilio_outbound_call_responser   btypes.body_register_a_twilio_call_and_return_twi_ml_v_1_convai_twilio_register_call_post_directionr   rG   AnyrE   r   r]   r[   r   r   <module>rn      se     ( & H A 2 I 7 I s > M
 v{{6::s#Tp TpnTp Tpr   