U
    Vcj                     @   s<   d dl Z d dlZd dlmZ d dlT G dd dejjZdS )    N)sha1)*c                   @   sD   e Zd ZdZdZejjdd Zejjdd Z	dd Z
d	d
 ZdS )ZadarmaViewz/pub/voip/zadarmaNc                 C   s   | j f tjS N)_processrequestargsself r   (/opt/crm/./modules/voip/views/zadarma.pyget   s    zZadarmaView.getc                 C   s   | j f tjS r   )r   r   formr	   r   r   r   post   s    zZadarmaView.postc                 K   sl  t jdrt jdS |d}td|  tjjt jddddgd| _| jrP|rPt| |d	kr| |d
 |d |d std d S n|dkr| |d
 |d |d std d S nZ|dkr| |d |d |d s(td d S n$| |d |d s(td d S | jj	s@td d S t| |dkr| jj
|dd\}}}|rN|jrNd|jji}td|  |S n|dkr| jj|dd n|dkr| jj|dd n||dkr| jj|ddd n^|dkr
| jj|d nD|d kr&| jj|d!d n(|d"krb|d
 d#krb| jj|d!d ntd$| j  | d%S )&NZzd_echoeventzZadarma request: tokenzplugin.ext_secretparentzplugin.ext_key)idfields)NOTIFY_STARTNOTIFY_INTERNAL
NOTIFY_ENDZ	caller_idZ
called_didZ
call_startu'   Не совпадает подпись!ZNOTIFY_ANSWERdestination)NOTIFY_OUT_STARTNOTIFY_OUT_ENDinternalZpbx_call_idZcall_id_with_recuA   Не указана Воронка продаж для лидовr   in)call_log_raw	call_flowredirectzresult: r   r   ZANSWER)r   r   Zcall_statusZNOTIFY_RECORD)r   r   outr   0zCmfPluginZadarma: zresponse.html)r   r   r   gdebugmodelsCmfPluginZadarmazadarma_check_signaturer   Zprocess_callphone_internalvalueZ	voip_callZvoip_call_endZvoip_call_startZvoip_recordrender_with_params)r
   kwargsr   Zchannel_callcontactpersonresultr   r   r   r      sb    

















zZadarmaView._processc                 G   sT   d |}t| jjjjd|dt}t	|
 d}t| tjdkS )N utf8	Signature)joinhmacnewr&   pluginZ
ext_secretr)   encoder   bytes	hexdigestbase64	b64encodedecoder   headersr   )r
   r   dataZhmac_hZbtsr   r   r   r'   K   s    
"zZadarmaView._check_signature)__name__
__module____qualname____url__r&   cmfviewsactionr   r   r   r'   r   r   r   r   r      s   

6r   )	r9   r3   hashlibr   cmf.includerB   rC   BaseViewr   r   r   r   r   <module>   s   