
    bEf?                     ^    d dl Z d dlT d dlmZ d dlmZ d dlmZ d dlZ G d de          Z	dS )    N)*)fields)CmfCallMixin)
ZadarmaAPIc                   H     e Zd Z fdZd
dZd
dZddZd Zd Zd	 Z	 xZ
S )CmfPluginZadarmac                 >     t                      j        |ddi| dS )u3   
        Дает доступ из вне
        ext_ipz185.45.152.42N)super_init_secret)selfargskwargs	__class__s      +./modules/voip/models/cmf_plugin_zadarma.pyr   zCmfPluginZadarma._init_secret   s,     	dE?EfEEEEE    CALLINGc           	      "   t                               d           t                               |           |dk    rt          j                            ||d         |                    d          ||d         ||           }|j        }|j        }|j        r'|j	        r |j	        j
        }|                                 n|dk    r`|d         dk    rTt          j                            ||d         |                    d          ||d	         ||           }|j        }|j        }nl|dk    rTt          j                            ||d         |                    d	          ||d         ||           }|j        }|j        }nt          d
|           |                    dg           |                    d|j                  |_        |d         |_        |                    d|j                  |_        |d         |_        |d         |_        |||fS )u^   
        Ищем клиента и сделку, если нет то создаем
        u%   Обрабатываем звонокinpbx_call_idinternal	caller_id)call_log_rawcall_idcalled_number	call_flowcaller_numbercall_statuschannelout0dst_e164uH   Неправильный параметр, call_flow "in" или "out": z**
called_did
call_startevent)gdebugmodelsCmfChannelCallprocess_callgetcallercalledis_nullparentresponsibleload	Exceptionload_fieldscalled_d_idcaller_id_numr   
event_time
event_type)r   r   r   r   channel_callcontactpersons          r   r*   zCmfPluginZadarma.process_call   sH    	
7888	!0==<amn{a|LXL\L\]gLhLhHQLXYdLeJU_c	 > e eL
 #)G!(F~ ,"5 %,8%L$=$D$D!0==<FRS`FaLXL\L\]gLhLhHQLXYcLdJU_c > e eL #)G!(FF%!0==<FRS`FaLXL\L\]gLhLhHQLXYcLdJU_c > e eL #)G!(FFrgprrsss  $(((#/#3#3L,BZ#[#[  &2+%>"%1%5%5j,B\%]%]" #/|"< #/w"7Wf,,r   c                     |                      |||          \  }}}|j        j        |d<   |j        j        j        |d<   |j        j        |d<   t          d||g           |S )uU   
        Отправляем на фронт событие о звонке
        r   r   	person_id	deal_codecontact_name	voip_callevent_personsr*   idvaluer/   codenamecmf_emit_eventr   r   r   r   r   r8   r9   r:   s           r   r@   zCmfPluginZadarma.voip_callG   st     )-(9(9,R[it(9(u(u%gv$*IO[!$0$7$<$B[!'.|'9^${LIIIIr   
CONGESTIONc                 *   |d         dk    rd}|                      |||          \  }}}|d         |_        |                    d           |j        j        |d<   |j        j        j        |d	<   |j        j        |d
<   t          d||g           |S )NdispositionansweredANSWERr<   durationT)	only_datar=   r>   r?   voip_call_endrA   )	r*   rO   saverD   rE   r/   rF   rG   rH   rI   s           r   rQ   zCmfPluginZadarma.voip_call_endS   s    &*44"K(,(9(9,R[it(9(u(u%gv ,Z 8D)))$*IO[!$0$7$<$B[!'.|'9^$VHMMMMr   c                     |                      |||          \  }}}|j        j        |d<   |j        j        j        |d<   |j        j        |d<   t          d||g           |S )Nr<   r=   r>   r?   voip_call_startrA   rC   rI   s           r   rT   z CmfPluginZadarma.voip_call_start_   ss    (,(9(9,R[it(9(u(u%gv$*IO[!$0$7$<$B[!'.|'9^$(,vhOOOOr   c                    t          | j        j                                        | j        j                                                  }|                    dd|d         i          }t          j        |          }t          	                    d|            |d         }t          	                    d|            t          j        |          }|j        dk    rt          d|j                   t          j                            |d	         d
g          }|r|                    |j                   |S t          	                    d           d S )Nz/v1/pbx/record/request/r   call_id_with_reczapi call res: linkzdownload from    u0   Не удалось скачать запись r   z-id)r   order_byuC   Не найден звонок для вложения записи)r   pluginext_keydecrypt
ext_secretcallujsonloadsr&   r'   requestsr+   status_coder2   contentr(   r)   upload_record)	r   r   r   apires_jsonresurlrr8   s	            r   voip_recordzCmfPluginZadarma.voip_recordh   s7   ,44668N8V8V8X8XYY885	<PbCc7deek(##	&&&'''&k	&&&'''L=CZqyZZ[[[!044\-=Xdicj4kkL _**19555##]^^^^^r   c                 4   t          | j        j                                        | j        j                                                  }||d}t
                              |           |                    d|          }t
                              |           |S )N)fromtoz/v1/request/callback/)r   rZ   r[   r\   r]   r&   r'   r^   )r   phonecallbackr   r   re   paramsrf   s           r   ro   zCmfPluginZadarma.callbackz   sz    ,44668N8V8V8X8XYY"%00	883V<<	r   )r   )rJ   )__name__
__module____qualname__r   r*   r@   rQ   rT   rj   ro   __classcell__)r   s   @r   r   r   
   s        F F F F F4- 4- 4- 4-l
 
 
 

 
 
 
  _ _ _$      r   r   )
r_   cmf.includecmfr   "modules.voip.models.cmf_call_mixinr   zadarma.apir   ra   r    r   r   <module>rz      s               ; ; ; ; ; ; " " " " " " v v v v v| v v v v vr   