
    ;i                         d dl mZ d dlmZ d dlZd dlmZ  ej                  e      Z	da
dadZej                  Zd ZdefdZdefdZd	edee   fd
Zy)    )Client)settingsN)Optionalc                  B    t         j                  t         j                  fS )N)r   TWILIO_ACCOUNT_SIDTWILIO_AUTH_TOKEN     C/var/www/html/dp2/backend_v2.1/server/apps/calls/services/twilio.pyget_twilio_credentialsr      s    &&(B(BBBr
   returnc                      t         7t        t        j                  t        j                  t        j
                        a t         S )z;Return a singleton Twilio API client using Django settings.)_twilio_api_clientr   r   TWILIO_API_KEY_SIDTWILIO_API_KEY_SECRETr   r	   r
   r   get_twilio_api_clientr      s8     !#''**''

 r
   c                  j    t         (t        t        j                  t        j                        a t         S )z7Return a singleton Twilio client using Django settings.)_twilio_clientr   r   r   r   r	   r
   r   get_twilio_clientr      s.     ''&&
 r
   phone_numberc                    | r| j                         sy	 t               j                  j                  j	                  |       j                  dg      }t        |dd      r|j                  j                  d      nd}|r2|j                         r"d|j                         vr|j                         S y# t        $ r t        j                  d       Y yw xY w)z
    Retrieve phone number owner name from Twilio

    Args:
        phone_number: The phone number in E.164 format

    Returns:
        A string containing name
    Ncaller_name)fieldsunknownzTwilio lookup failed)stripr   lookupsv2phone_numbersfetchgetattrr   getlower	Exceptionlogger	exception)r   lookup_resultr   s      r   get_caller_name_by_phone_numberr'   '   s     |1131!#WRRl3U=/U* 	 }mT: %%))-8 	 ;,,.9KDUDUDW3W$$&&
   1/01s   BB2 2CC)twilio.restr   django.confr   loggingtypingr   	getLogger__name__r$   r   r   _twilio_sms_clientTWILIO_FROM_NUMBERr   r   r   strr'   r	   r
   r   <module>r1      su        			8	$  // C	v 	6  #  (3-  r
   