
    bEf"                     n    d dl Z d dlZd dlZd dlT d dlmZ d dlZd dlmZ d dl	m
Z
  G d de          ZdS )    N)*)fields)CmfCallMixin)
TelphinAPIc                   6    e Zd Zd	dZd Zd Zd Zd
dZd ZdS )CmfPluginTelphinCALLINGc           	         t                               d| d|            |dk    r`t          j                            ||d         |d                             d          d         ||d         || 	          }|j        }|j        }nx|d
k    r`t          j                            ||d         |d         ||d                             d          d         || 	          }|j        }|j        }nt          d|           |	                    dg           |
                    d|j                  |_        |
                    d|j                  |_        |d         |_        |d         |_        |d         |_        |d         |_        |d         |_        t$          j                            t)          |d                   dz  t$          j        j                  |_        |
                    d|j                  |_        |d         |_        |d         |_        |d         |_        |j        r|                    ddg           |||fS )Nz_process_call call_status=z call_flow=inCallIDCalledNumberr      CallerIDNum)call_log_rawcall_idcalled_number	call_flowcaller_numbercall_statuschanneloutuH   Неправильный параметр, call_flow "in" или "out": **	CalledDIDCalledExtensionCallerExtension	CallAPIIDCallerIDName	EventTimei@B )tzCalledExtensionIDCallerExtensionID	SubCallID	EventTypeT)	only_datar   )gdebugmodelsCmfChannelCallprocess_callsplitcallercalled	Exceptionload_fieldsgetcalled_d_idcalled_extensioncaller_extensioncaller_id_numr   call_api_idcaller_id_namedatetimefromtimestampinttimezoneutc
event_timecalled_extension_idcaller_extension_idsub_call_id
event_type
is_changedsave)selfr   r   r   channel_callcontactpersons          +./modules/voip/models/cmf_plugin_telphin.py_process_callzCmfPluginTelphin._process_call   sx   	P[PPYPPQQQ!0==<amnvawLXYgLhLnLnorLsLstuLvHQLXYfLgJU_c	 > e eL
 #)G!(FF%!0==<FRS[F\LXYgLhHQLXYfLgLmLmnqLrLrstLuJU_c > e eL #)G!(FFrgprrsss  $(((#/#3#3KAY#Z#Z (4(8(89JLLi(j(j%(45F(G%%1-%@"%1.%A"#/#< &2>&B#"*"3"A"A#lS^F_B`B`ahBhEMEVEZ #B #\ #\+7+;+;<OQ]Qq+r+r(+78K+L(#/#< ".{";" 	=dV<<<Wf,,    c                     |                      ||          \  }}}|j        j        |d<   |j        j        j        |d<   |j        j        |d<   t          d||g           |S )u  
        Отправляем на фронт событие о звонке
        {'CalledExtension': '03255*100@sipproxy.telphin.ru', 'CalledExtensionID': '548632',
        'CallerExtension': '03255*099@sipproxy.telphin.ru', 'CallerExtensionID': '544289',
        'EventType': 'dial-in', 'CallID': 'e02f53480bd311ecafe057508a2fd486', 'CallerIDNum': '+79221674299',
        'CallerIDName': '+79221674299', 'CalledDID': '78007778500', 'CallStatus': 'CALLING', 'CallFlow': 'in',
        'CalledNumber': '03255*100', 'SubCallID': '548632-e6cf0fc20bd311ecb57e57508a2fd486',
        'CallAPIID': '167903695-e02f5348-0bd3-11ec-afe0-57508a2fd486', 'EventTime': '1630576527983053'}
        	person_id	deal_codecontact_name	voip_callevent_persons)rG   idvalueparentcodenamecmf_emit_event)rB   r   r   kwargsrC   rD   rE   s          rF   rM   zCmfPluginTelphin.voip_call6   sm     )-(:(:<(S(S%gv$*IO[!$0$7$<$B[!'.|'9^${LIIIIrH   c                 @   t                               d           |                     |||          \  }}}|d         |_        |                    d           |j        j        |d<   |j        j        j        |d<   |j	        j        |d<   t          d||g           |S )	at  
        {'CalledExtension': '03255*100@sipproxy.telphin.ru', 'CalledExtensionID': '548632',
        'CallerExtension': '03255*099@sipproxy.telphin.ru', 'CallerExtensionID': '544289',
        'EventType': 'hangup', 'CallID': 'e02f53480bd311ecafe057508a2fd486', 'CallerIDNum': '+79221674299',
        'CallerIDName': '+79221674299', 'CalledDID': '78007778500', 'CallStatus': 'CONGESTION',
        'CallFlow': 'in', 'CalledNumber': '03255*100', 'SubCallID': '548632-e6cf0fc20bd311ecb57e57508a2fd486',
        'Duration': '0', 'CallAPIID': '167903695-e02f5348-0bd3-11ec-afe0-57508a2fd486', 'EventTime': '1630576531883054'}
        voip_call_endDurationT)r$   rJ   rK   rL   rN   )r%   r&   rG   durationrA   rP   rQ   rR   rS   rT   rU   rB   r   r   r   rV   rC   rD   rE   s           rF   rX   zCmfPluginTelphin.voip_call_endI   s     	
   (,(:(:<T_(`(`%gv ,Z 8D)))$*IO[!$0$7$<$B[!'.|'9^$VHMMMMrH   c                     t                               d           |                     |||          \  }}}|j        j        |d<   |j        j        j        |d<   |j        j        |d<   t          d||g           |S )Nvoip_call_startrJ   rK   rL   rN   )	r%   r&   rG   rP   rQ   rR   rS   rT   rU   r[   s           rF   r]   z CmfPluginTelphin.voip_call_start\   s    	!"""(,(:(:<T_(`(`%gv$*IO[!$0$7$<$B[!'.|'9^$(,vhOOOOrH   Nc                 F   t                               d           t          | j        j                                        | j        j                                                  }|                    d|d                             d          d          d|d          i           }|j	        dk    rP|r2|
                    dg           |                    |j                   |S t                               d	           d S t                               d
|j                    d S )Nvoip_record/api/ver1.0/extension/RecID-r   z/record/   r   u    Не найден звонок?!u+   Ошибка загрузки записи )r%   r&   r   pluginext_keydecrypt
ext_secretcallr*   status_coder.   upload_recordcontent)rB   r   rC   argsrV   apiress          rF   r_   zCmfPluginTelphin.voip_recordf   s   	,44668N8V8V8X8XYYhhtW0E0K0KC0P0PQR0Stt]ijq]rttvxyy?c!! <(($000**3;777##:;;;;;GGO#+OOPPPPPrH   c                 T   |                      ddg           t          | j        j                                        | j        j                                                  }|                    di           }t                              |           |	                                }|d         }|                    d| dd|d	d
          }t                              |           |	                                D ]}	|	d         
                    d          d         |k    r|	d         }
t          j                            |          }|g||j        j        d}t                              |           |                    d|
 d|d          }t                              |           |j        dk    rLi }t          j        j        j        |d<   d |d<   |j        j        |d<   t'          d|t          j        g           |	                                c S t)          d           d S )Nzplugin.ext_keyzplugin.ext_secretz/api/ver1.0/user/)methodparams	client_idz/api/ver1.0/client/z/extension/phoneactive)typerT   statusrT   r   r   rP   )src_numdst_numr5   r`   z
/callback/POST)rp   rq   request_type   rJ   rK   rL   rM   rN   u\   Телефонный номер не зарегестрирован на АТС Телфин)r.   r   rd   re   rf   rg   rh   r%   r&   jsonr*   r'   	CmfPersonget_by_phonerT   rQ   ri   current_personrP   rU   	cmf_alert)rB   rs   callbackrl   rV   rm   res_jsonrn   rr   extext_idrD   rq   r   s                 rF   r   zCmfPluginTelphin.callbackt   s   *,?@AAA,44668N8V8V8X8XYY88#78CC	mmoo$	88#O#O#O#OahaickYm Ym8 n n 	
==?? 	' 	'C6{  %%a(H44T *77>>&.ZEU\UaUghh88+VF+V+V+V_etz8{{!!!'3.. $&L010@0C0IL-04L-3:<3EL0";QM]L^____}}&&&! 5" 	pqqqqqrH   )r	   )N)	__name__
__module____qualname__rG   rM   rX   r]   r_   r    rH   rF   r   r      s        %- %- %- %-N  &  &  Q Q Q Qr r r r rrH   r   )timer6   ujsoncmf.includecmfr   requests"modules.voip.models.cmf_call_mixinr   telphin.apir   r   r   rH   rF   <module>r      s                  ; ; ; ; ; ; " " " " " "Dr Dr Dr Dr Dr| Dr Dr Dr Dr DrrH   