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   ./modules/voip/views/zadarma.pyget   s    zZadarmaView.getc                 C   s   | j f tjS r   )r   r   Z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)idZfields)NOTIFY_STARTNOTIFY_INTERNAL
NOTIFY_ENDZ	caller_idZ
called_didZ
call_startu'   Не совпадает подпись!ZNOTIFY_ANSWERZdestination)NOTIFY_OUT_STARTNOTIFY_OUT_ENDZinternalZpbx_call_idZcall_id_with_recuA   Не указана Воронка продаж для лидовr   in)call_log_raw	call_flowZ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debugZmodelsZCmfPluginZadarmazadarma_check_signaturer   Zprocess_callZphone_internalvalueZ	voip_callZvoip_call_endZvoip_call_startZvoip_recordZrender_with_params)r
   kwargsr   Zchannel_callZcontactZ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 utf8Z	Signature)joinhmacnewr   ZpluginZ
ext_secretr!   encoder   bytesZ	hexdigestbase64Z	b64encodedecoder   Zheadersr   )r
   r   dataZhmac_hZbtsr   r   r   r    K   s    
"zZadarmaView._check_signature)__name__
__module____qualname__Z__url__r   cmfviewsactionr   r   r   r    r   r   r   r   r      s   

6r   )	r+   r'   Zhashlibr   Zcmf.includer1   r2   ZBaseViewr   r   r   r   r   <module>   s   