o
    eTZ                     @   s,   d dl T d dlmZmZ G dd deZdS )    )*)PlivoXMLElementmap_typec                       s  e Zd ZdZg Zedd Zejee	e
eedd dgddd Zd	d
 Zedd Zejee	e
eedd dgddd Zdd Zedd Zejee	e
eedd dgddd Zdd Zedd Zejee	e
ee gddd Zdd  Zed!d" Zejee	e
eed#d$d%gd&d'd" Zd(d) Zed*d+ Zejee	e
ee gd,d-d+ Zd.d/ Zed0d1 Zejee	e
eed#d$d%gd2d3d1 Zd4d5 Zed6d7 Zejee	e
ee gd8d9d7 Zd:d; Zed<d= Zejee	e
eed#d$d%gd>d?d= Zd@dA Z edBdC Z!e!jee	e
e"gdDdEdC Z!dFdG Z#edHdI Z$e$jee	e
e"gdJdKdI Z$dLdM Z%edNdO Z&e&jee	e
eedPd$dQdRgdSdTdO Z&dUdV Z'edWdX Z(e(jee	e
ee gdYdZdX Z(d[d\ Z)ed]d^ Z*e*jee	e
eed#d$d%gd_d`d^ Z*dadb Z+edcdd Z,e,jee	e
ee-ded$dfdggdhdidd Z,djdk Z.edldm Z/e/jee	e
ee gdndodm Z/dpdq Z0edrds Z1e1jee	e
ee gdtduds Z1dvdw Z2edxdy Z3e3jee	e
eed#d$d%gdzd{dy Z3d|d} Z4ed~d Z5e5jee	e
ee gddd Z5dd Z6edd Z7e7jee	e
eed#d$d%gddd Z7dd Z8edd Z9e9jee	e
eed#d$d%gddd Z9dd Z:edd Z;e;jee	e
e"gddd Z;dd Z<edd Z=e=jee
eedd$dQdRgddd Z=dd Z>edd Z?e?jee	e
e"gddd Z?dd Z@edd ZAeAjee	e
e"gddd ZAdd ZBedd ZCeCjee	e
e"gddd ZCdd ZDedd ZEeEjee	e
e"gddd ZEdd ZFedd ZGeGjee	e
e"gddd ZGdd ZHedd ZIeIjee	eJe
eeKe edd$dQdRgddd ZIdd ZLeddÄ ZMeMjee	e
eed#d$d%gdčddÄ ZMddǄ ZNeddɄ ZOeOjee	eJe
eeKe edd$dQdRgdʍddɄ ZOdd̈́ ZPeddτ ZQeQjee	e
eed#d$d%gdЍddτ ZQddӄ ZReddՄ ZSeSjee	e
ee gd֍ddՄ ZSddل ZTeddۄ ZUeUjee	e
eed#d$d%gd܍ddۄ ZUdd߄ ZVedd ZWeWjee	e
e"gddd ZWdd ZX										$	$							$	f	$	$	f	$							$				d fdd	ZYdd ZZ  Z[S )MultiPartyCallElementMultiPartyCallc                 C      | j S N$_MultiPartyCallElement__max_durationself r   R/var/www/html/venv/lib/python3.10/site-packages/plivo/xml/MultiPartyCallElement.pymax_duration	      z"MultiPartyCallElement.max_durationc                 C      d|   ko	dkS   S )Ni,  ip  r   r   r   r   r   <lambda>       zMultiPartyCallElement.<lambda>z300 <= max_duration <= 28800r   c                 C   
   || _ d S r   r	   r   r   r   r   r   r      s   
	c                 C   
   || _ | S r   r   r   r   r   r   set_max_duration      z&MultiPartyCallElement.set_max_durationc                 C   r   r   (_MultiPartyCallElement__max_participantsr   r   r   r   max_participants   r   z&MultiPartyCallElement.max_participantsc                 C   r   )N   
   r   r   r   r   r   r   %   r   z2 <= max_participants <= 10r   c                 C   r   r   r   r   r   r   r   r   r          

c                 C   r   r   r   r    r   r   r   set_max_participants,   r   z*MultiPartyCallElement.set_max_participantsc                 C   r   r   /_MultiPartyCallElement__record_min_member_countr   r   r   r   record_min_member_count0   r   z-MultiPartyCallElement.record_min_member_countc                 C   r   )N   r   r   r%   r   r   r   r   9   r   z!1 <= record_min_member_count <= 2r'   c                 C   r   r   r#   r   r%   r   r   r   r%   4   r!   c                 C   r   r   r'   r(   r   r   r   set_record_min_member_count@   r   z1MultiPartyCallElement.set_record_min_member_countc                 C   r   r   &_MultiPartyCallElement__wait_music_urlr   r   r   r   wait_music_urlD   r   z$MultiPartyCallElement.wait_music_urlr,   c                 C   r   r   r*   r   r,   r   r   r   r,   H      
c                 C   r   r   r-   r.   r   r   r   set_wait_music_urlM   r   z(MultiPartyCallElement.set_wait_music_urlc                 C   r   r   )_MultiPartyCallElement__wait_music_methodr   r   r   r   wait_music_methodQ   r   z'MultiPartyCallElement.wait_music_method)GETPOSTF)case_sensitiver3   c                 C   r   r   r1   r   r3   r   r   r   r3   U      
c                 C   r   r   r7   r8   r   r   r   set_wait_music_method[   r   z+MultiPartyCallElement.set_wait_music_methodc                 C   r   r   ,_MultiPartyCallElement__agent_hold_music_urlr   r   r   r   agent_hold_music_url_   r   z*MultiPartyCallElement.agent_hold_music_urlr=   c                 C   r   r   r;   r   r=   r   r   r   r=   c   r/   c                 C   r   r   r>   r?   r   r   r   set_agent_hold_music_urlh   r   z.MultiPartyCallElement.set_agent_hold_music_urlc                 C   r   r   /_MultiPartyCallElement__agent_hold_music_methodr   r   r   r   agent_hold_music_methodl   r   z-MultiPartyCallElement.agent_hold_music_methodrC   c                 C   r   r   rA   r   rC   r   r   r   rC   p   r9   c                 C   r   r   rD   rE   r   r   r   set_agent_hold_music_methodv   r   z1MultiPartyCallElement.set_agent_hold_music_methodc                 C   r   r   /_MultiPartyCallElement__customer_hold_music_urlr   r   r   r   customer_hold_music_urlz   r   z-MultiPartyCallElement.customer_hold_music_urlrI   c                 C   r   r   rG   r   rI   r   r   r   rI   ~   r/   c                 C   r   r   rJ   rK   r   r   r   set_customer_hold_music_url   r   z1MultiPartyCallElement.set_customer_hold_music_urlc                 C   r   r   2_MultiPartyCallElement__customer_hold_music_methodr   r   r   r   customer_hold_music_method   r   z0MultiPartyCallElement.customer_hold_music_methodrO   c                 C   r   r   rM   r   rO   r   r   r   rO      r9   c                 C   r   r   rP   rQ   r   r   r   set_customer_hold_music_method   r   z4MultiPartyCallElement.set_customer_hold_music_methodc                 C   r   r   _MultiPartyCallElement__recordr   r   r   r   record   r   zMultiPartyCallElement.recordrU   c                 C   r   r   rS   r   rU   r   r   r   rU      r/   c                 C   r   r   rV   rW   r   r   r   
set_record   r   z MultiPartyCallElement.set_recordc                 C   r   r   0_MultiPartyCallElement__record_participant_trackr   r   r   r   record_participant_track   r   z.MultiPartyCallElement.record_participant_trackr[   c                 C   r   r   rY   r   r[   r   r   r   r[      r/   c                 C   r   r   r\   r]   r   r   r   set_record_participant_track   r   z2MultiPartyCallElement.set_record_participant_trackc                 C   r   r   *_MultiPartyCallElement__record_file_formatr   r   r   r   record_file_format   r   z(MultiPartyCallElement.record_file_format)mp3wavlower)r6   	case_typera   c                 C   r   r   r_   r   ra   r   r   r   ra      r!   c                 C   r   r   rf   rg   r   r   r   set_record_file_format   r   z,MultiPartyCallElement.set_record_file_formatc                 C   r   r   ._MultiPartyCallElement__recording_callback_urlr   r   r   r   recording_callback_url   r   z,MultiPartyCallElement.recording_callback_urlrk   c                 C   r   r   ri   r   rk   r   r   r   rk      r/   c                 C   r   r   rl   rm   r   r   r   set_recording_callback_url   r   z0MultiPartyCallElement.set_recording_callback_urlc                 C   r   r   1_MultiPartyCallElement__recording_callback_methodr   r   r   r   recording_callback_method   r   z/MultiPartyCallElement.recording_callback_methodrq   c                 C   r   r   ro   r   rq   r   r   r   rq      r9   c                 C   r   r   rr   rs   r   r   r   set_recording_callback_method   r   z3MultiPartyCallElement.set_recording_callback_methodc                 C   r   r   ._MultiPartyCallElement__status_callback_eventsr   r   r   r   status_callback_events   r   z,MultiPartyCallElement.status_callback_events)zmpc-state-changeszparticipant-state-changeszparticipant-speak-eventszparticipant-digit-input-eventszadd-participant-api-eventsT)r6   make_lower_caserw   c                 C   r   r   ru   r   rw   r   r   r   rw      s   
c                 C   r   r   ry   rz   r   r   r   set_status_callback_events   r   z0MultiPartyCallElement.set_status_callback_eventsc                 C   r   r   +_MultiPartyCallElement__status_callback_urlr   r   r   r   status_callback_url   r   z)MultiPartyCallElement.status_callback_urlr~   c                 C   r   r   r|   r   r~   r   r   r   r~      r/   c                 C   r   r   r   r   r   r   r   set_status_callback_url  r   z-MultiPartyCallElement.set_status_callback_urlc                 C   r   r   -_MultiPartyCallElement__start_recording_audior   r   r   r   start_recording_audio  r   z+MultiPartyCallElement.start_recording_audior   c                 C   r   r   r   r   r   r   r   r   r   	  r/   c                 C   r   r   r   r   r   r   r   set_start_recording_audio  r   z/MultiPartyCallElement.set_start_recording_audioc                 C   r   r   4_MultiPartyCallElement__start_recording_audio_methodr   r   r   r   start_recording_audio_method  r   z2MultiPartyCallElement.start_recording_audio_methodr   c                 C   r   r   r   r   r   r   r   r   r     r9   c                 C   r   r   r   r   r   r   r    set_start_recording_audio_method  r   z6MultiPartyCallElement.set_start_recording_audio_methodc                 C   r   r   ,_MultiPartyCallElement__stop_recording_audior   r   r   r   stop_recording_audio   r   z*MultiPartyCallElement.stop_recording_audior   c                 C   r   r   r   r   r   r   r   r   r   $  r/   c                 C   r   r   r   r   r   r   r   set_stop_recording_audio)  r   z.MultiPartyCallElement.set_stop_recording_audioc                 C   r   r   3_MultiPartyCallElement__stop_recording_audio_methodr   r   r   r   stop_recording_audio_method-  r   z1MultiPartyCallElement.stop_recording_audio_methodr   c                 C   r   r   r   r   r   r   r   r   r   1  r9   c                 C   r   r   r   r   r   r   r   set_stop_recording_audio_method7  r   z5MultiPartyCallElement.set_stop_recording_audio_methodc                 C   r   r   ._MultiPartyCallElement__status_callback_methodr   r   r   r   status_callback_method;  r   z,MultiPartyCallElement.status_callback_methodr   c                 C   r   r   r   r   r   r   r   r   r   ?  r9   c                 C   r   r   r   r   r   r   r   set_status_callback_methodE  r   z0MultiPartyCallElement.set_status_callback_methodc                 C   r   r   "_MultiPartyCallElement__stay_aloner   r   r   r   
stay_aloneI  r   z MultiPartyCallElement.stay_aloner   c                 C   r   r   r   r   r   r   r   r   r   M  r/   c                 C   r   r   r   r   r   r   r   set_stay_aloneR  r   z$MultiPartyCallElement.set_stay_alonec                 C   r   r   _MultiPartyCallElement__roler   r   r   r   roleV  r   zMultiPartyCallElement.role)agent
supervisorcustomerr   c                 C   r   r   r   r   r   r   r   r   r   Z  s   
c                 C   r   r   r   r   r   r   r   set_roled  r   zMultiPartyCallElement.set_rolec                 C   r   r   "_MultiPartyCallElement__coach_moder   r   r   r   
coach_modeh  r   z MultiPartyCallElement.coach_moder   c                 C   r   r   r   r   r   r   r   r   r   l  r/   c                 C   r   r   r   r   r   r   r   set_coach_modeq  r   z$MultiPartyCallElement.set_coach_modec                 C   r   r   _MultiPartyCallElement__muter   r   r   r   muteu  r   zMultiPartyCallElement.muter   c                 C   r   r   r   r   r   r   r   r   r   y  r/   c                 C   r   r   r   r   r   r   r   set_mute~  r   zMultiPartyCallElement.set_mutec                 C   r   r   _MultiPartyCallElement__holdr   r   r   r   hold  r   zMultiPartyCallElement.holdr   c                 C   r   r   r   r   r   r   r   r   r     r/   c                 C   r   r   r   r   r   r   r   set_hold  r   zMultiPartyCallElement.set_holdc                 C   r   r   *_MultiPartyCallElement__start_mpc_on_enterr   r   r   r   start_mpc_on_enter  r   z(MultiPartyCallElement.start_mpc_on_enterr   c                 C   r   r   r   r   r   r   r   r   r     r/   c                 C   r   r   r   r   r   r   r   set_start_mpc_on_enter  r   z,MultiPartyCallElement.set_start_mpc_on_enterc                 C   r   r   '_MultiPartyCallElement__end_mpc_on_exitr   r   r   r   end_mpc_on_exit  r   z%MultiPartyCallElement.end_mpc_on_exitr   c                 C   r   r   r   r   r   r   r   r   r     r/   c                 C   r   r   r   r   r   r   r   set_end_mpc_on_exit  r   z)MultiPartyCallElement.set_end_mpc_on_exitc                 C   r   r   #_MultiPartyCallElement__enter_soundr   r   r   r   enter_sound  r   z!MultiPartyCallElement.enter_sound)beep:1beep:2noner   c                 C   r   r   r   r   r   r   r   r   r        
c                 C   r   r   r   r   r   r   r   set_enter_sound  r   z%MultiPartyCallElement.set_enter_soundc                 C   r   r   *_MultiPartyCallElement__enter_sound_methodr   r   r   r   enter_sound_method  r   z(MultiPartyCallElement.enter_sound_methodr   c                 C   r   r   r   r   r   r   r   r   r     r9   c                 C   r   r   r   r   r   r   r   set_enter_sound_method  r   z,MultiPartyCallElement.set_enter_sound_methodc                 C   r   r   "_MultiPartyCallElement__exit_soundr   r   r   r   
exit_sound  r   z MultiPartyCallElement.exit_soundr   c                 C   r   r   r   r   r   r   r   r   r     r   c                 C   r   r   r   r   r   r   r   set_exit_sound  r   z$MultiPartyCallElement.set_exit_soundc                 C   r   r   )_MultiPartyCallElement__exit_sound_methodr   r   r   r   exit_sound_method  r   z'MultiPartyCallElement.exit_sound_methodr   c                 C   r   r   r   r   r   r   r   r   r     r9   c                 C   r   r   r   r   r   r   r   set_exit_sound_method  r   z+MultiPartyCallElement.set_exit_sound_methodc                 C   r   r   *_MultiPartyCallElement__on_exit_action_urlr   r   r   r   on_exit_action_url  r   z(MultiPartyCallElement.on_exit_action_urlr   c                 C   r   r   r   r   r   r   r   r   r     r/   c                 C   r   r   r   r   r   r   r   set_on_exit_action_url  r   z,MultiPartyCallElement.set_on_exit_action_urlc                 C   r   r   -_MultiPartyCallElement__on_exit_action_methodr   r   r   r   on_exit_action_method  r   z+MultiPartyCallElement.on_exit_action_methodr   c                 C   r   r   r   r   r   r   r   r   r     r9   c                 C   r   r   r   r   r   r   r   set_on_exit_action_method  r   z/MultiPartyCallElement.set_on_exit_action_methodc                 C   r   r   )_MultiPartyCallElement__relay_dtmf_inputsr   r   r   r   relay_dtmf_inputs  r   z'MultiPartyCallElement.relay_dtmf_inputsr   c                 C   r   r   r   r   r   r   r   r   r     r/   c                 C   r   r   r   r   r   r   r   set_relay_dtmf_inputs  r   z+MultiPartyCallElement.set_relay_dtmf_inputs@8  r   r&   Nr4   rb   r5   +mpc-state-changes,participant-state-changesr   r   c%           %         s   t t|   |$| _|#| _|"| _|!| _|| _|| _|| _	|| _
|| _|| _|| _|| _|	| _|
| _|| _|| _|| _|| _|| _|| _|| _|| _|| _|| _|| _|| _|| _|| _|| _|| _ || _!|| _"|| _#|| _$|| _%| | _&d S r   )'superr   __init__r   r   r   r   contentr   r   r   r%   r,   r3   r=   rC   rI   rO   rU   r[   ra   rk   rq   rw   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )%r   r   r   r   r   r%   r,   r3   r=   rC   rI   rO   rU   r[   ra   rk   rq   rw   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   	__class__r   r   r     sJ   '
zMultiPartyCallElement.__init__c                 C   s4  i d| j d| jd| jd| jd| jd| jd| jd| jd	| jd
| j	d| j
d| jd| jd| jd| jd| jd| ji d| jd| jd| jd| jd| jd| jd| jd| jd| jd| jd| jd| jd| jd| jd | jd!| j d"| j!d#| j"i}d$d% |# D S )&Nr   maxDurationmaxParticipantsrecordMinMemberCountwaitMusicUrlwaitMusicMethodagentHoldMusicUrlagentHoldMusicMethodcustomerHoldMusicUrlcustomerHoldMusicMethodrU   recordParticipantTrackrecordFileFormatrecordingCallbackUrlrecordingCallbackMethodstatusCallbackEventsstatusCallbackUrlstatusCallbackMethod	stayAlone	coachModer   r   startMpcOnEnterendMpcOnExit
enterSoundenterSoundMethod	exitSoundexitSoundMethodonExitActionUrlonExitActionMethodrelayDTMFInputsstartRecordingAudiostartRecordingAudioMethodstopRecordingAudiostopRecordingAudioMethodc                 S   s(   i | ]\}}|d ur|t t|qS r   )six	text_typer   ).0kvr   r   r   
<dictcomp>  s    z1MultiPartyCallElement.to_dict.<locals>.<dictcomp>)$r   r   r   r%   r,   r3   r=   rC   rI   rO   rU   r[   ra   rk   rq   rw   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   items)r   dr   r   r   to_dictf  s   	
 !"#%zMultiPartyCallElement.to_dict)"r   r   r&   Nr4   Nr4   Nr4   FFrb   Nr5   r   Nr5   FTFFTFr   r4   r   r4   Nr5   FNr4   Nr4   )\__name__
__module____qualname___name	_nestablepropertyr   settervalidate_argsoptionalof_type_exactintcheckr   r   r"   r%   r)   r,   stris_urlr0   r3   is_inr:   r=   r@   rC   rF   rI   rL   rO   rR   rU   boolrX   r[   r^   ra   rh   rk   rn   rq   rt   rw   multi_is_inr{   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   all_ofone_ofr   r   r   r   r   r   r   r   r   r   r   r   r   r   r)  __classcell__r   r   r   r   r      s   




















































Mr   N)plivo.utils.validators	plivo.xmlr   r   r   r   r   r   r   <module>   s    