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_END	caller_id
called_did
call_startu'   Не совпадает подпись!ZNOTIFY_ANSWERdestination)NOTIFY_OUT_STARTNOTIFY_OUT_ENDinternalpbx_call_idcall_id_with_recuA   Не указана Воронка продаж для лидовr   in)call_log_raw	call_flowredirectzresult: r   r   ANSWER)r"   r#   call_statusZNOTIFY_RECORD)r"   r   outr   0zCmfPluginZadarma: zresponse.html)r   r   r   gdebugmodelsCmfPluginZadarmazadarma_check_signaturer   process_callphone_internalvalue	voip_callvoip_call_endvoip_call_startvoip_recordrender_with_params)r
   kwargsr   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-   plugin
ext_secretr1   encoder   bytes	hexdigestbase64	b64encodedecoder   headersr   )r
   r   datahmac_h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   )	rG   r@   hashlibr   cmf.includerR   rS   BaseViewr   r   r   r   r   <module>   s   