U v`@sdZddlmZddlmZdZdZdZdZd Z d Z d Z d Z d Z dZdZdZdZdZdZdZdZdZdZdZGdddejZGdddejZGdddejZGdd d ejZGd!d"d"ejZGd#d$d$ejZGd%d&d&ejZ Gd'd(d(ejZ!Gd)d*d*ejZ"Gd+d,d,ejZ#Gd-d.d.ejZ$Gd/d0d0ejZ%Gd1d2d2ejZ&Gd3d4d4ejZ'Gd5d6d6ejZ(Gd7d8d8ejZ)Gd9d:d:ejZ*d;d<Z+d=S)>z%Cisco Skinny Client Control Protocol.)absolute_import)dpkt"iiiiiiic@seZdZdZdZdS)ActivateCallPlane<) line_instanceIrN__name__ __module__ __qualname____byte_order____hdr__rra/private/var/folders/0j/yyfkg7712236ncpm167bvylc27vst9/T/pip-unpacked-wheel-y9gppv54/dpkt/sccp.pyrsrc@seZdZdZdZdS)CallInfor) )Zcalling_party_name40s)Z calling_party24sr!)Zcalled_party_namer r!)Z called_partyr"r!rZcall_idrr)Z call_typerr)Zorig_called_party_namer r!)Zorig_called_partyr"r!Nrrrrrr%src@seZdZdZdZdS) CallStater))Z call_stater rrrr#Nrrrrrr$4sr$c@seZdZdZdZdS)ClearPromptStatusr)r&r#Nrrrrrr'=sr'c@seZdZdZdZdS)CloseReceiveChannelrZ conference_idrrZpassthruparty_idrrNrrrrrr(Esr(c@seZdZdZdZdS)DisplayPromptStatusr))Z msg_timeoutrr) display_msgZ32sr!r&r#Nrrrrrr,Msr,c@seZdZdZdZdS) DisplayTextr))r-Z36sr!Nrrrrrr.Wsr.c@seZdZdZdZdS) KeypadButtonr))buttonrrNrrrrrr/^sr/c@seZdZdZdZdS)OpenReceiveChannelr)r*r+Z ms_packetrrZpayload_capabilityr)Zecho_cancel_typerr4Z g723_bitraterrNrrrrrr1esr1c@seZdZdZdZdS)OpenReceiveChannelAckr))Zchannel_statusrr)ipZ4sr!)portrrr+Nrrrrrr6qsr6c@seZdZdZdZdS)SelectStartKeysr))Zline_idrrr#)Z softkey_setr)Z softkey_maprlNrrrrrr9{sr9c@seZdZdZdZdS)SetLampr))Zstimulusr )Zstimulus_instancerr)Z lamp_moderrNrrrrrr;sr;c@seZdZdZdZdS)SetSpeakerModer))ZspeakerrNrrrrrr=sr=c@seZdZdZdZdS)StartMediaTransmissionr) r*r+)Z ipv4_or_ipv6rr)Z remote_ipZ16sr!) remote_portrrr2r3) precedencerr)Zsilence_suppressionrr)Zmax_frames_per_pktrrr5)Zcall_referencerrNrrrrrr?sr?c@seZdZdZdZdS) StartToner))Ztoner$NrrrrrrBsrBc@seZdZdZdZdS)StopMediaTransmissionrr)NrrrrrrDsrDc@s\eZdZdZdZdZeeee e e e e eeeeeeeeeeeeeeeeeee e!iZ"ddZ#dS)SCCPzCisco Skinny Client Control Protocol. TODO: Longer class information.... Attributes: __hdr__: Header fields of SCCP. TODO. r))lenrr)Zrsvdrr)msgidrr)msgZ0sr!c Cstj|||jd}|t|jkr0td|jd||j|d|_|_z*|j|j|j}t ||j j |Wnt tjfk rYnXdS)Nr4znot enough data)rPacketunpackrFdataNeedDatarH_msgswrGsetattr __class__rlowerKeyErrorZ UnpackError)selfbufnprrrrJs  "z SCCP.unpackN)$rrr__doc__rr KEYPAD_BUTTONr/OPEN_RECEIVE_CHANNEL_ACKr6 START_TONErBSET_LAMPr;START_MEDIA_TRANSMITr?STOP_MEDIA_TRANSMITrD CALL_INFOr DISPLAY_TEXTr.OPEN_RECEIVE_CHANNELr1CLOSE_RECEIVE_CHANNELr( CALL_STATEr$DISPLAY_PROMPT_STATUSr,CLEAR_PROMPT_STATUSr'ACTIVATE_CALL_PLANErrMrJrrrrrEsB rEc Csddl}ddlm}|d}t|}|jdks2t|jdks@tt|jt sPt|d}| t j t|W5QRX|d}t|}|jdkst|jdkstdS) Nr) unhexlifyZ(080000000000000003000000abcdef0123456789ss#EgZ 888800000000000000000003abcdef01Z 080000000000000000000003abcdef01r!) pytestbinasciirerErHAssertionErrorrK isinstanceZ keypadbuttonr/ZraisesrrL)rfrerSZsccprrr test_sccps( rjN),rV __future__rrrWZOFF_HOOKZON_HOOKrXrYZ STOP_TONErZZSET_SPEAKER_MODEr[r\r]ZDEFINE_TIME_DATEr^r_r`ZSELECT_SOFTKEYSrarbrcrdrIrrr$r'r(r,r.r/r1r6r9r;r=r?rBrDrErjrrrrsP        /