From 9a8f503f9ab85c309de8fc348186ac3b6c58b1d1 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Tue, 25 Jul 2017 08:23:52 +0200 Subject: [PATCH] import Ericsson NS, ISUP, ROHC and SNDCP modules for TITAN --- .../ISUP_Q.762_CNL113365.tpd | 48 + .../demo/ISUP_Mapping.ttcn | 128 + ISUP_Q.762_CNL113365_LATEST/doc/ISUP_FS.pdf | Bin 0 -> 27289 bytes .../doc/ISUP_Q_PRI.doc | Bin 0 -> 69120 bytes ISUP_Q.762_CNL113365_LATEST/doc/ISUP_Q_UG.doc | Bin 0 -> 75776 bytes .../src/ISUP_EncDec.cc | 465 ++ .../src/ISUP_Q.762_CNL113365.grp | 26 + .../src/ISUP_Types.ttcn | 4092 ++++++++++ .../doc/NS_v7.3.0_CNL113578_FS.pdf | Bin 0 -> 34766 bytes .../doc/NS_v7.3.0_CNL113578_PRI.pdf | Bin 0 -> 29258 bytes .../doc/NS_v7.3.0_CNL113578_UG.pdf | Bin 0 -> 31510 bytes NS_v7.3.0_CNL113578_LATEST/src/NS_Types.ttcn | 465 ++ .../doc/ROHC_CNL113426_FS.pdf | Bin 0 -> 43463 bytes .../doc/ROHC_CNL113426_PRI.pdf | Bin 0 -> 32494 bytes .../doc/ROHC_CNL113426_UG.pdf | Bin 0 -> 65109 bytes ROHC_CNL113426_LATEST/src/ROHC_EncDec.cc | 6767 +++++++++++++++++ ROHC_CNL113426_LATEST/src/ROHC_Types.ttcn | 1079 +++ .../doc/SNDCP_v7.0.0_CNL113576_FS.pdf | Bin 0 -> 31719 bytes .../doc/SNDCP_v7.0.0_CNL113576_PRI.pdf | Bin 0 -> 26963 bytes .../doc/SNDCP_v7.0.0_CNL113576_UG.pdf | Bin 0 -> 32231 bytes .../src/SNDCP_Types.ttcn | 96 + 21 files changed, 13166 insertions(+) create mode 100644 ISUP_Q.762_CNL113365_LATEST/ISUP_Q.762_CNL113365.tpd create mode 100644 ISUP_Q.762_CNL113365_LATEST/demo/ISUP_Mapping.ttcn create mode 100644 ISUP_Q.762_CNL113365_LATEST/doc/ISUP_FS.pdf create mode 100644 ISUP_Q.762_CNL113365_LATEST/doc/ISUP_Q_PRI.doc create mode 100644 ISUP_Q.762_CNL113365_LATEST/doc/ISUP_Q_UG.doc create mode 100644 ISUP_Q.762_CNL113365_LATEST/src/ISUP_EncDec.cc create mode 100644 ISUP_Q.762_CNL113365_LATEST/src/ISUP_Q.762_CNL113365.grp create mode 100644 ISUP_Q.762_CNL113365_LATEST/src/ISUP_Types.ttcn create mode 100644 NS_v7.3.0_CNL113578_LATEST/doc/NS_v7.3.0_CNL113578_FS.pdf create mode 100644 NS_v7.3.0_CNL113578_LATEST/doc/NS_v7.3.0_CNL113578_PRI.pdf create mode 100644 NS_v7.3.0_CNL113578_LATEST/doc/NS_v7.3.0_CNL113578_UG.pdf create mode 100644 NS_v7.3.0_CNL113578_LATEST/src/NS_Types.ttcn create mode 100644 ROHC_CNL113426_LATEST/doc/ROHC_CNL113426_FS.pdf create mode 100644 ROHC_CNL113426_LATEST/doc/ROHC_CNL113426_PRI.pdf create mode 100644 ROHC_CNL113426_LATEST/doc/ROHC_CNL113426_UG.pdf create mode 100644 ROHC_CNL113426_LATEST/src/ROHC_EncDec.cc create mode 100644 ROHC_CNL113426_LATEST/src/ROHC_Types.ttcn create mode 100644 SNDCP_v7.0.0_CNL113576_LATEST/doc/SNDCP_v7.0.0_CNL113576_FS.pdf create mode 100644 SNDCP_v7.0.0_CNL113576_LATEST/doc/SNDCP_v7.0.0_CNL113576_PRI.pdf create mode 100644 SNDCP_v7.0.0_CNL113576_LATEST/doc/SNDCP_v7.0.0_CNL113576_UG.pdf create mode 100644 SNDCP_v7.0.0_CNL113576_LATEST/src/SNDCP_Types.ttcn diff --git a/ISUP_Q.762_CNL113365_LATEST/ISUP_Q.762_CNL113365.tpd b/ISUP_Q.762_CNL113365_LATEST/ISUP_Q.762_CNL113365.tpd new file mode 100644 index 000000000..7b64c3d0d --- /dev/null +++ b/ISUP_Q.762_CNL113365_LATEST/ISUP_Q.762_CNL113365.tpd @@ -0,0 +1,48 @@ + + + + ISUP_Q.762_CNL113365 + + + + + + + + + + + Default + + + + + true + true + true + bin/ISUP_Q.762_CNL113365 + + + bin + + + tsp.* + + + + + diff --git a/ISUP_Q.762_CNL113365_LATEST/demo/ISUP_Mapping.ttcn b/ISUP_Q.762_CNL113365_LATEST/demo/ISUP_Mapping.ttcn new file mode 100644 index 000000000..a29603edb --- /dev/null +++ b/ISUP_Q.762_CNL113365_LATEST/demo/ISUP_Mapping.ttcn @@ -0,0 +1,128 @@ +/////////////////////////////////////////////////////////////////////////////// +// +// Copyright Test Competence Center (TCC) ETH 2006 +// // +// The copyright to the computer program(s) herein is the property of TCC. // +// The program(s) may be used and/or copied only with the written permission // +// of TCC or in accordance with the terms and conditions stipulated in the // +// agreement/contract under which the program(s) have been supplied // +/////////////////////////////////////////////////////////////////////////////// +// +// File: ISUP_Mapping.ttcn +// Rev: R7D +// Prodnr: CNL 113 365 +// Updated: 2006-05-10 +// Contact: http://ttcn.ericsson.se +/////////////////////////////////////////////////////////////////////////////// +module ISUP_Mapping +{ + import from MTP3asp_PortType all; + import from MTP3asp_Types all; + import from ISUP_Types all; + +group Types +{ + type record MSC_ISUP_MTP3_parameters + { + MTP3_Field_sio sio, + integer opc, + integer dpc, + integer sls + } + +group PortTypes +{ + //************************************************************************* + //* ISUP port types * + //************************************************************************* + type port MTP3asp_ISUP_PT message + { + inout PDU_ISUP; + } with {extension "internal"} + + type port MTC_ISUP_PT message // Coordination message + { + inout charstring; + inout octetstring; + } with {extension "internal"} +}//end group PortTypes + + +group ComponentTypes +{ + //************************************************************************* + //* ISUP Component types * + //************************************************************************* + type component ISUP_CT + { + //========================Component constants=========================== + + //========================Component variables=========================== + var PDU_ISUP v_PDU_ISUP; + + //========================Component Timers-============================= + + //========================Component Port Declarations==================== + port MTC_ISUP_PT MTC_ISUP_PORT; //up + port MTP3asp_ISUP_PT MTP3_ISUP_PORT; //down + } // end component type definition + + //************************************************************************* + //* ISUP EncDec component * + //************************************************************************* + type component ISUP_EncDec_CT + { + //========================Component Port Declarations==================== + port MTP3asp_ISUP_PT MTP3_ISUP_PORT; //<= SP_PT=_PT + port MTP3asp_PT MTP3_PORT; + } // end component type definition +}//end group ComponentTypes + +}//end group Types + + +//************************************************************************* +//* ISUP EncDec component behaviour * +//************************************************************************* +function f_ISUP_EncDecComp_Behaviour + ( MSC_ISUP_MTP3_parameters pl_address_ISUP ) runs on ISUP_EncDec_CT + { + var ASP_MTP3_TRANSFERind vl_ASP_MTP3_TRANSFERind; + var PDU_ISUP vl_PDU_ISUP; + pl_address_ISUP.sio.si := '0101'B; + + while (true) + { + alt + { + [] MTP3_ISUP_PORT.receive ( PDU_ISUP : ?) -> value vl_PDU_ISUP + { + MTP3_PORT.send (t_ASP_MTP3_TRANSFERreq + (pl_address_ISUP.sio, + pl_address_ISUP.opc, + pl_address_ISUP.dpc, + pl_address_ISUP.sls, + enc_PDU_ISUP(vl_PDU_ISUP))); + repeat; + } + + // receive message from below (to be decoded) + [] MTP3_PORT.receive (tr_ASP_MTP3_TRANSFERind_sio + (pl_address_ISUP.sio.ni, + ?, //priority: no filtering + pl_address_ISUP.sio.si, + ?, + ?, + ?, + ? )) -> value vl_ASP_MTP3_TRANSFERind + { + MTP3_ISUP_PORT.send (dec_PDU_ISUP(vl_ASP_MTP3_TRANSFERind.data)); + repeat; + } + + [] MTP3_PORT.receive (t_ASP_MTP3_TRANSFERind( ?, ?, ?, ?, ? )) + { log("Invalid SIO: MESSAGE dropped!!!"); } + } //end of alt + } // end while + } // end of f_ISUP_EncDecComp_Behaviour +} diff --git a/ISUP_Q.762_CNL113365_LATEST/doc/ISUP_FS.pdf b/ISUP_Q.762_CNL113365_LATEST/doc/ISUP_FS.pdf new file mode 100644 index 0000000000000000000000000000000000000000..adae94243e14bf94b36a6e54d925678aa038d205 GIT binary patch literal 27289 zcmeFZWn7%evN%j|4FtEq;0}Ys;2PZBZGZ`bJAn`!f;)uZ7Bsj+a00;z7A!cyEkKC9 zLu|8qcF#Tc_n!Z^%LnF}?&|99s_HI%hE7ddmW`907mIFfeQXK~os$a)00JB>?qdlH zbI3xVZeSM2UXa$BfxwyIkxH&nLzz#NUwg4_}9u5@%FNc=56PQEQ;=ZPv zy{M?Gn+w?79t+)exmWGg{T^}5PXvAv^{PUlX0}tbVH&`b*vjG}Y5_2AX*}Y>EkHI-F}hWzp!fX5o7@l63{jQBX?;M>vfHI=1juRi z81Xj#Cwq|k+xi3YOM7x^=MG1t@=0mq^%%6Kji+$6tbz<(TS^k?15XCC4Iba+doJY0 zGmsVOAb<>=@H2_P_E$6Jp6XxGd(_qVO3*FxnH3oAS_q%%{7Pl})$!UkySqI&J1H<( z{c|RVRX0>!H@4x5!Sch&n=ig?>|eB}jl;a7VpdGQ;+nzn5cRNQp@SW)ery}|bVEN* zF3$gelAQcMDap+v0HY-LKT&d6!&J2!i1U^C5=rU#K|@S%+@qmHQUpaWpr}%V9NyeZ zK8sHm7Y4)&h?x(#M(RChS3X0Iwr>SuKUP%hY>op`)an}*oe7uC)s3HAa9Ui>gH+uv zMs+|L)`gV^&Fn+F9(Y6mr2M$nIwK+<(@i8)o)V&cDpBfSqN>f+itEKoF9#orPoAJ`I}Yle~1(SUNP^`F!yOKdh20iFU{!)>k56){O|&FD-hevb^V19Ykyf=JATD}-9wAYp3kH6doPs3x8#=+ z9$MEwkRgt_FNPM#lVy$gZuh)@)QY-Y@m2A;W&F|FzPF&4u*m~qfaLNIK6gOJ1( zv7Pbze?_B{^SzU7E5mkS!4hK;DFJ-hhw~

-vTCsA_}3UJTOt)^!sc}2 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 literal 0 HcmV?d00001 diff --git a/ISUP_Q.762_CNL113365_LATEST/doc/ISUP_Q_PRI.doc b/ISUP_Q.762_CNL113365_LATEST/doc/ISUP_Q_PRI.doc new file mode 100644 index 0000000000000000000000000000000000000000..3906228e18ed58554f43a845af9b89ab2f9e0935 GIT binary patch literal 69120 zcmeI52S60Z+yD3OsKN>MZgAo9SU$*}xCGcqZex~aUV?Bm>Q{iXS z9X8Y~HY0`^UX@|WGkyB?>DT>e_oJMz+J~{84dWcfFin=0>p`sILo(+{QM7CY1!gK= zUHifX+qs?cmHA_Gzj5IAi*v1n;Bct|=y0AgoY-v)|1yhp**B?(I&XUb%INB#hV~caE1H|*U+&W^0y|E zVQk=O+k`)(>5}|7q+3&t<}sCzcoXD^{YtYh9CVqirXyy96n>;`n1Oyz&^0 zjuGPL&wl==5RV{9s4t4=2t0*y7F?megk!-K!s~K{>oi?K9|c!ec)`ECC(4Z)SP7eE zJi@V1&cd-SR}e4Mqo!NZdClwptz)6SbfsIDzmVQfb#=+3zPY6-`o7u>(-iut&s4xC zjVNEX|Nl!sj?I$w3-t{P4-NAVkLb$UM#QHlC~VmtU$Mdd;jR4xLc@c-BUr1T4jseT z_Kuz&E^Jt8a(Z%fasnHi9FvitNMmD@Q`v|J-;jo`Y(#Q$LYg9-9T=Y;$3_H2c!xBg z>tiya)7fxEW_((FauOSqgb;~Q>DafH%YBoR(iKVRX-G&!s4v?inYDFp=!z7?u{{Q} zR+emFS0t@nP)J+0M*?fxJ0dyS&C{)ki?g$vi!Cd$ayHhCz}S)v^KR`Q?jOLaT}>h- zRxZ}oh)TCmL=B;iDzQ4Gxt30v8!yepI4CJPAtOc+!-hqrrl;u;>Q*|T?n6lqFsyEC3hzh?P46Rh)RRr zQ#%nFf%YW3JC#nZGbb0-AFddX5ud7{l3+WeD5B$I$oDi=&INZ(LMT zUj3WJEM=o}E56ZraE;CtY8LM9 zqbpq=%7#{wEUuxsLbJj>bf(Kg*{DjA#WgBdM|b0JPu;SVO{pYVTvKv&^nfhgc~rKZ zl4NnM$JNmjvV67IqKC4@lq893F|Lk{A<0jNBxSoGN!D^x&5>KK^pJ-pV4zgm4M`b^ zeH5upjeSGfvCht}i(EaZ2z})tih(6u<0n@ib>*VbQcf04?})4vMVe!JdUO(h?4K0v zr-*ipj+P69An(svKE06wBmnU{rl-Wn3r98W*Yr(Ik*f_;@{VbWRJL_Se2hYMf(?mE zRB++hpooqQBRb_&a_F&o~*+t}DQG&ndkM6;?)S}T$i zsZj}HrP4C;%XN;~@{r^t#HK#v%6-GxAU|VcKSf$}YCJb;%8QPld{B*{NiH0x^1~q; z6&aU%qEeW*|2d@&?$u?iOt|r5yPe@C-?+F) zMNu}_K87J|SVGN~QhN0L> zEiP06r7kOCa3R?Oa&I;^DlMJGGy!w3R5mIphK)iG6x}~P6(4Mjg7+6n9Fj5>yf#I} z&^$0IHXXry!+S@BJ2^QyH}-UH4AEp7pvfye(FB|elMr8Mg*vK6J{qTZflyAN^_cia zC&Z^fy`V(>s0AV@wJJ&^X>WW2wINP<`Cf%$rrdjTN$abcuaU-+cBG|7H=-UDIi*W| z<$j99WHuT~M~#EL{N&!L>G82q(di9T$xt?89Xa3zU@Ze{;pNI^=O~xS<$7}Er(ABR zv1B1yPq1Y*S1zm#4GkrlAv!3cGg9NzvwRbx($b19cKD~pN2k$@EeJ~!sYy`@v|^yP zN`i5n2JWIkv5?}|(Kmt(_wVG$289HKS{uqOd(d(OnqX8PtUj=HEqjD?3?{D*td*N} zJwwAVbkJy^F>KwagfyzfK3t`xD$-JtlhU}3CO(!;Mn$C7GYm;~G}O$GAfRY^{3C+> zgG2q;i1RBZ1%1Dcf@s9{>?cJeUkpPssqF0NCJk8P(tf-=a{E7%y<+$j@NK9K76c;VI z30v7O5E?Oz9?%E%z*k@d7zrkVNnid+hMGHC5ugJ)M z)n_DaQONo>qJ8VaeMxmxXm!SFSw3TI#gubkOad6jEa#1JFThCfO}qqO+*GEvMD^Pm z1cDf#0I{Gi=m+|PEHD@h0W-lYFdNJPbHO}7IOW?HncxSo8EgSt!A`IX90o_gQE(gNfji(XxCj0O)CWBP55eQS>*uZ?Id}cs z?#H|Hw&$(foyYmiQ~8Wj`V3S0C`W{@23-BB)gP}jSM-ao`QH3_Eg^5=yHD*pBlO0) z`)gjS6ubmA*~M#BQOzh-{X0|H8KVC-0>+>mkc0BT7T5uM&=Rx)Ucejp0AE03fIkQT zeLysb0SXWc`hvk=2p9@xf!SaVm<#5C`GCfe@4!N^3+x7az+SKq><5>?WpD+&0`H&S zKL7l{^PjfrDxbkhAEEPvo^vDqZy4FM*Aia`!Tfo(I^aW| zGAur12mZWT$l`0SRCQI%D9@+sJg>`I`j4X8q0~f2D#zF04R{OQfxp3f@Bw@TRWPns z1=T=xz=B%92{;26&<+HH5D*H&Kzl%TK?e{4QosO^3erF(7zoCKabP@H4pxAbU=>&m z)&R0C)`9ilDEJLLzn^zM_h9bs?Ymdz?moCX?|$AqmCrb(&oGrwVg2)ad@VOa{-6bF zb;XzFPiPs%=?C?M+Cv`1xTQU$(Ef|o$LDH5q1~xX)A+p77_X6HM=Hl-;5ax5PJ!#- z2Dl0S2JgWK@DUUM24)A@c~T$)H31810b5W9)CIo45BP)LAQD7@J|G&z0J0ThL0>Qm z&5-s_pjN$fBUUpZ(Uq*ahB3&tjZ@#>7!ZeLhC1a z+Utlft492JEqbvTC7?Z|P`kVYcm6sx3EJwWu;xmq14VU5_h`av@(y0dwe$;211irW z;3)VF90SJz+3&xDli(qE1RjGY;4hF53IJ{pWh9^~s0ONo8lWa%0nGtyfgNZCynr|G z0sbHWv<2-zFz5^7Ks@LN`hx^O^N1vn490^A;NNKf)p5_NMw?KM4~t+TYp-X%e(m`4 zYW2&P_X?yK2>RxwE7iy6<9ph76k5894#g0^t6Tu`f6-)!O!5lCbYyn%r zk6;_v4t4;V)9nJgK`yueE`m$oD!2x2gFJ8t6aa=M9Y6|XKo95x17HZKMD0Os-~j4@ zuRtT<1e`%z@NcyLNfmU}5nomo{CRO%DfME8g|3i7?eY>T^4F$bAcz9VU@#a1 zeg|*G9q?x#ycSD)DL!~EKDaMF$P*u^U3N=+=7!FL%R0}T7oRyTK2Q^VQhesP_~3^4 zKy4rG!@yp`NH7sVGwB;MJQ+#Xld0`ZXorg6X7ZT6a#yk4FvJ_1VHLnoVs0imSRU7N zeiBSmC751Hpw{9QgNoFi+JRsY0zyF;Abki29Y8Wj0RuoP$N-sO2p9^6f!SaVm<#5C z`CtJcomvRK2fM)@uowIU_Jd!*VQ>T-1-C&SxC8Ejd*Dw%diel61cu1A5%@Ry{{q~4 zt-b#r$)C~EYWVi8uQTKr%aVGCqHVZzZC`gwFYHCM^)Y;kP55+)dn89HM`KV9$U%8v z0V)7X&=5F+M!*R;0~bJjgd1=N?Lj!`03twV&;@h{JwQ(|5DWrYU@#a0h63tmz6R9S zWCQAJwt^qQ4p35GKV;y5gn@A}4Eo+Wz3-viZQ^?9qu(*+*Eg}6T8`iA)rMAT_YwkK;rxWqr0{8s_uA_B+(tJ(| zTyZ;TLiIy+!l1mVPHF?HlPO>|SOb0rR2NkKQ6K|QxeH}3lr@#}bzqC0@x6F7qc2xf z+Z)v$c648+cILS_jGDBkI?t$Gc2j)Wb@73k0JRl*wKKbQhS{d`jG8pMiW{S;_-mp- z?IrSGt1w2__1+kpn?+iARqj$F#qJs&I^#E5s<*`Ay{A3X*q#ZrXK3ACIhq%a^%&F5 zX}H&uU{T*JC#$kW&hY$Ra3kUNjp4dN8vD5r#!)bt$fAJFptLWng*y9)dMg0ds5=|L zf?A*@@CE*$1Bd|Az!LBi_!(RWdEhR10bT-q^f`vW1Z06B;5Mj&-m@yG25iAqU{Vod z5AXmZ!DKKM>;~^&J-Yko@}u|X&zwJT^uW*CX=nTUGw(N@S$*casS`&}9CCDE%D@Dn z)Ksp}KG163N<7ep=#yFj=T_ibUuYYBd@HAqmW;LB^1PqWs_9y;h1&2fNPI1|dItVf zl|}p!qkfhYI7^9wbO%(S7LYqZfCz%Lm&3~&W z{x%Uqmr@FsI!j@MBe@-oB;=_a3Ayu-N&P|{YO7SoLcI$0Dbyj=AJttR5b7*PS#MNl zmVoL_?fbnas%pT_1)T?KVUCI~J1jmpBtF-=hREpCooDI-HfyR$%2oxlA!p_a$e#)yO(JDoT^wWPn$~L7)M%3 zzbQvGWR_!MZIScfMK8FKaQU?9mc*&11hWPUs=MZZ+S_bkQVE{G12hFeAQ-FyYrtBt z9&7-czz<*x*b06G+rV~k2dMSHFNH!RH(z}4P<())s&G>~qt=CADZB{l58?y0c+QE> z{09&I&>4@KS|1Q!Cf+x|C~q$bip30#EOGA3-9JtCsr(oTOfEXf=^dvBoZdXO_)Y0o zxW~^FY0k(Q2wVt$kNmjqkMra9Y^aYdhq|JAcL!AOfq?40GZ+enftg?ySP4iMRs+(7 zb%1nXBOqPa3^a9N2mEe>Ja7;E3GRajzy@DJR|IuIJ@6HHa_{!_%V$shc3{tMr+!?& zn*UqAc=osv<3?mA<1=>L2yy8N`>>4ZrVhSu^lgJ)4ZSb#!`VRAvVJ#^U9lf}MpY=f zh6|;#rwhZ9Kd!}hw}pPqjYg0+deTWHryx0$yGR9u4>^5HsZ&=t%Nvi`Ln)lDq@r}z({9+5yk*E zYen3H!rO=T)K2dLsu!vgDt`rt1>bW9_U58d#^pro9vH52s;AL71-F{Jvg588up5Dj90 zpaXreKLDhHG>{H5!9Xwqj0B@V4j_Hm0d|62;3l{QUV>NPHFyK+V$7@uynzq!192c8 z^aInu4DbWk47Px+;1akDZh_k%58MGpRbedwOJD`8femN@T7swdo?d-=@9g2ThxY^S zbJq`WS8+%9q@(%V(Ik~0&S~@m)Z&!=fW{f>6O?CEy@}w*sC@YT1=WbQT-b|{Ri?UD zL$1&xY3-#{eG!Fj#`i@kKMJYztHxV`;y9IOAht2p*|%UT5bBQVX^B`77w9|)6`yG? zJ}7A)3rzA~D@bpc@2jO3Z0ual(uBT>MkOw*TR0X5Qww8iX|^!5E;otcj7|kc=baeL zZmL^RGpk}{fYw6L#<>OuErny=7YZV3Quv0SZ&Fq1)!d+z(3gDYiteeE3 zYGEpSQYt5~nyGBf7|ysM`Tx2vVDzc3ebI)f4F-dbpd07~s7<~W%8lGL;)7+Mdms+~ zzkXk=51iJH(WSL#KdNbMb#8DFv{cYqp*#eCL2HdL5U5o3)3p|>y=v`?F%SL)t zrM}Y}q=GCV732>1+yim=|H*yLJby#2wT7)`YZdh=sd$G4^P+rpE0ZcGt5eVNqCC}u zP#1h1)zKG@DKos^BZMp5c)x=%1T;1SOWZnAD3A7q`lW%M6hbx73;R{Idsox$U0u6( zkzR~3pz*O4@B&otKA<1y4^qGYK)R3yGC(F62nK;HFc=I0L%}fcHK6xKy?$^LfB3w3 z?(_-%@8~a-(=S_*5`aA*ni;^B=jIP^HRlyHs?$1^U>EoYzAwvxDa2Wp*!+QC5aWf|fF-DlJUlroIkW#VWw_Q^1iSOCnWM^Pv6s7NQ!nl~({ zi&pCd9&?=l$)iTCYWM~YT!W`K`l$R3o~Sy3!s`k(^t2YzDBs0;B8{-L@FfNQU{@mcgU;zL3B6lszoR?|jZe^MCGL785EOTC_ zk$aS7&dW4%&$7&UnMU5YEOTC_kvA#JoR?wb?u=8}<-Cj|cP`7Emuci>Xv4Xer2*;A zl%W|_#*vqy8Rd>?Lzzt)+?g^oqsln)GBl&ynKF&M49zHaOqk11+sn|5a%ajk@-j7} z$}n<|vb5pKIPx+yqdc%2R%Y$oqb$v+GLF0qZ8(pzG$1|7(u^wO$ji`%^WY4~B(<9b zCAe9zRwg5hlh|c4lIm7=nG$JdGrLTwEJ?3vCliKlCgi>qtoRCj1a~8#`+229U*MjEk9el=E$$b@ z*PwOBSupt-GUg{-&wL!TVEOE+rboxqyeuf)0;OJk#!St9PwqXZZIp&#iJed&!t`tGg{(&hCgjJa5V_)-iwK z>s}L2-hbZnRJXoOr&s=I?)5#dub#|0ne}AI&upFF2Ke-`tybr_MV)*TyOVkw_x(0& z-yd7{Z%Avg^~c1yE&Gi>`*87sTSG0YNwe=1e@(gfUHfa{)gL$fV?d1b`;~)|AGrM`|L*4A4X%5e zG(C3AzH&^JAiL=oTlR9@>pbtt#ItV6J3bz%`fJvKbeFk#@^h)4ZH`?rYVqis{>~Re zUv2*BkBMic+eal0Xx49G)%8u1*2V5VI`84DsLSJb9jLzS?<=*s<*n$qZ$s-EdV2=v zd9UhyE&jRvjeFalzux-SU$!fczBm)x=cwnwslBQMEV1`*HZ?BjeA2XKKTKQoblRe^ z6;>KoSl1$OLQcQV#((@?VZ+J5oNwALGYGQE9eZnV`@xg1xJ+1PoV(Vc%fl1CXDfS8 zjQ^$8@!6|9?zQj#lh@vQhpp30d(RE;;aNM*#qe~(xSMlrvvb;5ED5aBWQ=2~(beU8 zKcrS_k!N%(XylBR`z>C)xOnhh^Mg}sOgq+O=bv9S85FYl^i;p8<`>6&8*A5KXWOKC z32syBJ5;O~T;un-LnG#{U*)FXIKEu_sLWeA7bix?HkveV*qaHjJ|0@IKPgRr$cdhh zJokCO8+ygB|MIctzOvkSuU+WgxC$@7cbMCE$`X0=+x?eKz0z;#>WQ!XBi@hMFyOB9 zV3VU2HZOQTp?weUPE*|{+})iwEFitQ-L8d0>$Z5geL`N-fM+cN1~gpyru@=3CifS$ zs&fq2k7>X@KT_@0$-E2gexK`DYhJBMD~|cb92s`peEj!gyk~8V+;HW9bm#a(sa20H zGfqC%aNU%Eb<^f|vGW}I^-I0Kesg~xP-RoE4Yz!EPMCa0`mt``r*&5Et6Ayo1DfC(YH_XX~wUYdNrNeuC{B! zxZk%OZF=3|epQe5voGllyZr0@a#h#XPxS1Wxckp;m%HY6zw!E&LCekVZ}!zV^!GNS z{*QaD+d6vCv84Sj^CutjFf&PXynC@)%%zEeTdF!OoRIgttw+@l7jwV8J?*iF{Y9z$ zrN@Cc-VfS++j&6Z(8IIXGYkE568CL+)$-x~Dv5SK&VRgYz}9+Gx4m34aadgcR+pNO z*|ze`WQ!MdZuI^;WX-i!tG6#`vv7#@>e{m_jjz9K#DJaNAFeF^+Vu9>cJixs16Pf8 zICG@SwM79N+K0;X+V;Ea@?(eAYmQv+((34|a+8|!aWDB zn(t6A?}GIAixZBWJ<#OA(rHcW)v2A=;k?P}*@=%X`#cLO|8iRE?-G`Wlv_Qu#qkdx z&U#tYTU_I}z$Q(CzB<}!O}sh82-HlwlMxYZMF zAADdg+P%CG(#qqH?|VG3>pt&?sejFy*nDZVg%=(A#Z-0Q++o+lmSb~me_cGoc{Mwt z%a4s7412$-b+h{2!(WUH&H4IPTGbz0-pe0*GO9=Z(c9bGWrt5&w|-gk6~oRSf3`kr zfBelhQG2|bP6=6NGPc%J`_au$R$bAka$qlypm*gepP1iwTF|L<%cWiKHu>(@<@lcl zq%ZtoPGXYXA3a)s^R`Ndtg4~Tot;N`cHOl)U{;e6Z};4^d2UlJxR>+pDZh2k+O&F~ z$=wD&C9j#%?pDx*x6O|Fwr!hjpBTUW@YSJ{mo7N>qTi^K4(slgAMx&wt;s8|eGK{T zyJ|l*46*oOX55|ebplU6Ny=`1C2#)vv)5{$9ThsxAntqX=%Mv1eAjueU-eLjscswV z{9Nbu+nyJDZrStKgM>!&($6>P)w)8EPuGDLUNdtS9!ftMIWKplnUilZ7az}x zn%{lW(AQR}S6z=}_CHd)W$&o&vcES(eLKW*#IT>&8-{*8*>^p_;pe=e2t5sc=wtngOb^9w^W7|GbT(j!fB_{NCM)yfO_XNj2OZ+}+ zd{*?(Z;W3tzizIUWEM51;Q_C|JMTF%f6@2r>*RLz95nZ#{PsJ$9l3R@F5Z}W{ppng zcbBPpkK(`YyZWcTEf!R=Ts**j>jji%T5FuwBR?+y>zSbqARZtY(7oARWibK9?`-WfKj zYp;68Y|p>8J8*ftTXLPl*0*NtHn4uuuUgvm{T2hQ%TJR%Y4gZ#$eTT*9*=%>{mB*s zef#Sl+_&79#hyFdpy2pBgV>HWGI!2@x_Y;KXpKKe^ z4c4D$AAO?{X8_q_Qn5XD$db3jR5yrfjj)Q+AUkN;=)4IdpBZfB&tE;Dj?!*w%!O(kNRYwvjnPw%V>bSO4>GP%YqC8ov_4LVF zeS%M!-a(mNrk=iKxzd!^i}JhyTSuQaU>}hy(~}*P!PV23S(ejMj(E9=D*aM=TdnFy zPhXW&-DP}RBR8DwT|#bZD08E_GqAAKkx*FTLPi{v8F`|Sk?MR#RLSGAr7C((J*0G3 zA8p(b_nZ&i5{M%`eFIS@rFyDxnwb>c(uV+_uzl2Tfk*!(Od6gECli|A^f>FC3Rn!? z&ZCJkK(S5=GA~f;VViU@gKl<`XCE$Xxq3Pc~%tlXv8z7%% zrcilvzyc@W1;RiiNCDYk3eXjfKkLdY(@ep&zNkH z6k{fkQ9wcr6VD_ueHoTp=XSzagBP1|?<1Gs3BY3BfI@FS@p5477+bq>zrKEZ;Vj5K87%tHjW>U~CFyF6SUM36LQ) zOeiXq=8T?~bBUqpyK7TM520ly0eT26lTps#D{Ov@cjU8z#Z(t)W&CD?BLx$Sa?C(o zq@xtWu%8P0a-S(o9Q*=MUr9JiTPG&o>v_QzxTdNn5lnFtZWPl85)`;vy>?lK?6r!o z&?tGULf9!MOQ6Rcss72Ft;_UhUli4=G2T>$ zS4@`n#X9shj^eet3saNYhNKH>P1p=nTCG4T=vBD%9IFw-J;;hTc-U!aC#s)&;Mz(C z-Z9pNVIjGKhGeS6WG?r-WQ!t_O*I-oQOR-4$Ksri4l^ zoml2$qo)Nfl2}pcl!vy`&E6U4I~1HoQccGrPo#OYXl#jhmGHko;6N|3DcY$N$27Kb`AP3Jis}CehCxwEQ)Ka*y{A@y@^W84(LX1ynvYg`P=Qw}=*J ziL~2F`ly;rij>kGinVjTKdizif3x9QopNS5ZRHj@>)-c+8ws~`y5zuEd9|0=N*uJt zK|P+7vB9SUV_nR3)VE2QirjTJ!gUfHa$8}VsTY%SmRb)^)22y!i0Z!_@+R~%9Z>68 zs(P=CdhdvLSamFA3u(tRVxJZ)k+f6OOE5zHOx;t_nFwp;@-<4JKKqqdCO2V9uNl4lYpQCS$M#s-%Asu>R&@%3g&#nq2-MlDOF z{X`*5L?J@Bo}>@zg?hy5Xfs?p*GI(hCKfr9KT_TI!hR(7OR!PgklX!eCvKv+OwnKQ zBUdWiK8P(HE|oE9c`bbQVwxg_w$fgrP;wn9@P#q za}@NlFfA3JjeOTO2*2pkoU3I!7(`Yjjt9_u^wK`kE~50C!iGpiE_n+gkx_4{_FPOt z|8I^Mj9~K_6|wmuImzMDNRj078YyRCEp$eS#-Il4p)@NnwIRKdz9lr3&qpQwN*Z}E zR#}x8%aHayQt?=3B`SOBX`-PMX^4R=Oy0UF)KFved7QrByUOB6`k`D*snVgMyl9Il z2BnsPST$p+&eY*!l8ZF+N@+FoYcBSY(yv9aR}|$lNz@8-=e9D+n#--BDh;J<86&y) zr%6YaDt_H%P>+w_Tou3NvQn2pCYOdK(o9hrs*1{>__`)N8z|B1H)8t|5w7z3jE;y=d(9`PlJ=IG&8>a`uawZt0FeyDk@vp#dKQmXeC( zkLG!*{0-(}KO-GnLb;YMXL6rBX{Xl<(Djvzxt{KdEr)w)%yR1L_X2c%m13@^dr8aT zE@HDBJ%e6=uCH3m^>hbjIox||mU9Ew-@x@AOh?SiN60)>HREJJYYSPN?I_qpWH*|U z9pv+sG$jsG1e9hc_F2JHS%4}W-mS=$F=>4=dMpJ-#$x1{ro?44*_bVUY=m_InRpB@ zuVG`-Y=Xt;8wbmQY$aMX!R)GpRg*wwE=ppvERb6(;NB05wE92>pF*;P)ODa4=32gO z$SN>~RbY%4${FK@a^}oIE{*$T2NB+k;a*CI6bkeALK%f=ENUC(c` zgT~GaUq0k+O5b*yTTGggT64;>Gw&KpkGW?$WPivme+6=j|N(TT`~~YUL5Ku8ptJs4e@Zoqe?GZNO0*AIINz)_Li;tp3==C%XO;@wW1& zKYJuMaInrm&s&1q%@voRM# z_k?foi8+1L{7f7F%Wi$_hp(JEpm%P~ISVV_@M!nPOPlaq&&UmvR~;?ba=_{M!qEN0 zH#WHAub1RGqg{MnpT(;h-R`h=$|}X0vo%irxZ~~l56DW*lb<1E*Z{jNV<>zt84l8+N~9d>2&lKD_A6_m^|; z+#com`*o{x^V`b1HdtUNAE!9sIA(kP&;~23uDTRh?NEb+n}@CM-XB!y=+=pr*Mp9v zwI618Zp!HOKVD_e|5*QAt-l&v?X}asUyJdrJOBB|>w35RAJ%s$CvB`f@oU0sU;h=o z+IYO}iPi-~$>y`*Ov!%KwdeTD0an8ry=Y~$x7o*O?|(R0HR0m#+b#zCJX)4FAYtt4P4ad{>FGT)t9zI%82wZ$n_OdJiral0Rsdtp=9h0{^( zZQm>~bQ>_qJaLE9$uZSmKOJ_nsnq~U#VSeOA9lXIdMs<}7N;eB#;=df?Ks?I_vrn9 zZd!J?ox`Yv@RQH?wsC#Fk%>sS)%0A*@(xGe*JG-bk6K=@;?RRs_?eczhtI+DJ$1JKo!L9#M zlR5blYaKm&^FU5J{{tT??b%f&@5Hg1*Y^y4vY`3k0nh%NJ^k?H&>9~WG<8|`Dy;eG z^}U7{9J(IbD&ynek5?bo>3#8OkHZBY|LFVkhj+`X8`bYQ`o_83lOG2?eRR(A`+~Oz zEKT;zT{NQnU(=1!?loB^%?h7Lm&2p-9yfSb%XXK)>%tT(yC&lg4R4)e@a|o; z_A&c^+*EmgGvmMs@}5dUlv?WNV4D5tKt1zuU?PhTP=Ei z#Lr=5wM#>v*!`LwGrzh)t#KSg{ypg#6Wu8?&%j@a+^y{@Q z1irrCFQw{?jw`o*WuB#&)g?8{+I8vIL(-ZCbP19h{k-^|#n@2m*X~_k7j*AxSZmnJ z#~qHXaa^;=)3VRrrLWG%46T~fbB}D+gd>M?pLonWB+GhoMUHVCGoai#$@1oC=UDalI zhnw9scQY~mar3}mmLx^BpZ;X_>PwN5vzyoLJAZV9yz_yVEu18FgO>PMO^#W3CZf@n zwbR}@y6$Z_CqRE+%RXHtYun}4&Ru_O`r5W_ADhng2#mWEJ1uN#`xX2`Y6`HvG1Wu?h8A71i`?pZJHQ8mviZ7zO0t@4ui1Jw^i zx2hJKT7cn!r|haOuk%>Kx(e>&(KYb&i&zIOWqGmo7-;}yNU z*0}CJ=#5N?I(p8#lVg=8fxG6$G_P@c@u@#HOgs{}a^<4@)t$O*{ObAhQOj%3_ue(+ z=ARcTpX!=w;yw25xh1AI#-t4TyFFa|1T_+h>KiqVfA{AJluzWnx>5Z|qT z*4;H{WlHTkm8)mWI^@-?`?|`~HKSur8yQ+&jC{GM%2l_ARqB1azUS+7yUI<1-8#4U zBh31u`{S=-k8etl_5Y!H@9DW+8v2^fTQTrW#ID@h+kZN{>&Ia}=WDY!y1sAF^R=nm zd+D}$#}_$NPX2Av*++*~U2HbXr1|JeUFYSjcsFzTgajbk7g-0PFef*MCyk7f8XhIxRK4J^=EwJ8rV)4_w~CI%S|>e`E%&g zJN^@shYlM%EBUgcyz7j<4<5GZWzo5J?{Ui?_wHRyy5#wy@CWCQz3f!Gb0g2)O*UR# zbLWBg@|pcRkLvs zcDR4b9tqKrcUBK=&_{B!R=P+20+tjCQ%^ z9Ji*5QPcY~2h7`_xZ}|zuW*}?u@{@gY>FH?DcSR}b>FFN>jpd6hu3vPMhfq zPK}Fro4uj&(#f6jY?rR^KC=5%;OmTGi=NJx3_WDOw~zUdb4=w~Ve<;Md}v%{Y~MyT zZF+ue@11sWw0_+szaGC~H-Ak#z2Ca;+I8?cGR9|JB5ep`U6(P7%S4+N(>AQFx&Te< zt}wI{%2Qb zu(sTdS@_09pXrI*ALAaZXx<8j6Pu|>O^Z)XYGLc_=w!<(lA@Di;*vqnOmFfe@US(8$Hf$)izXRD6;x+o!K{3)_TrXInOX5cXpF zW3NwN7xHrTwIwrp&2LLl!U?AbPINtG}hQ>@Ckxrg@YW;k-OcmM_FLG5t!X!@Ro?m|0( zDnAKMgFnDIZ~@Tdjegafe%YFS-I!i0OuuqUzjR5zc1XW?M!$MRzkEc$enM}+r?+6! zn=t9kl_Z;%;%V`&0-%|n6|e?mFVkI0xEyN^yzyTXZY@w7P~7y3di1M0wg^POu0U^C zr?)KAn|A4KtMtZ2;jMf05^(y?4PID}!7pb57T5wiU=JJs^;TFI;nvVcz?}$|fTiF7 z$OX^AOYjQ30hOSawE;bx;|u&i0Eh*H!7MNb%mwqoZty#J03LzI;4ff?GOY=kffk@8 z@B)z_6-)wCz*I0DYyn3=9=Hqcf&0K1m1zfB0dL>~{6GvC0%n7`U>;Zi_JGUaHFyi& zf%l*q3c?u#gHS+sgN1`sFb=E$tH5fo790aNz*8 zjrPF;YJ-*?&lb$gwv^8(uh`0$oA# zV-Nuc5~#NC#ngC8{U+aY7ckk`+4S~sbKF=g%@4#0mNDWVAH+U&l=u;u7jgeyROWmR-fEkG1l z0~0g8=P!ru^mqKGcCjm zHZ&A=>RjxuZl@C#9@vZV5(^iBl7fCHc+3YhGC z1t7bA7a%*nycDAv=nW#lW?Su_AE!78u@tOe`A2CxbI0JZ@71>x-=58Ma!FdzF0 z#DG|k4l+Rw*a=>N*T4sg77sRqE#NlD16I&yYv2XE!2mD}ke(YtvkjG>wD+IF5E`xy z#VYtov9F0ZC3I~`sf2=HL$#~)jOt0KhtDndty;?34`tg8l(x*%MCC3+N(<4rB0N#5MJA?aNT3GSn%_ z6Fv*uNNHn{VjXA{R-?YLWc?gD{Sbdhn6Wt5@&=pTNbJq+OPIfL&SuJSJpL=?G_}A? z_`@h!qn_09O1Eou8Np9*%^8cKSEUW~-wdv!<=o01(fU<-Z0IhW;J-eJ+D#vg2poI_6<@8j@h)`QAbikvfN;=9K-Z+G^Ryn&W; zA2J;LcU8FXZ9^^RJceBeu#w%J=cMIanA^fmbsM*wUr)=q?;3vSJtwG5E4Iiv^zKQC zX+FI#`+WRcUZfK&SvBZN#bio~%LI>3kIR;tt@ z!~qwlSE06hQF6UFZKv*!52-t~=H*qXH7}2l=H>a+>Xn$<8|JFi-Y`eV8|Hj!^-E0c zCQDVEn=BD>lO-RgL5Zo&wo!%5wn4~j8$P6AiKz|4PqZt`Hmov2hT*5$scemeIKQaE z7gbO;7A>k^#x=9C2K4X?*FeV_K#9g0&;u~yhv~lb5Pbi{71w`P51}0Ux%|=iOB+8} zXjh9bs=$}gf1xVSI+*6hTdvwwL7U~8ttkM@GF(w|deel7W<4~MQ5wy>Fm5g*q)mqY+bk#l zxxQRB_jy7yK9jX`HmAj z_8tV=-HpUC1Y@PI1i^w8%zw2kq?dPj?Yn4dkyDe`fs3XPe$g}%#}F=Ky5qW@T&DH1 zbxm!wcWPfIMO+bc-M;pIN{U%>NmDrO-4m_E@*#CkI7^xo392ksh*EY&UsU10%lcI= z42d;?`7$Y@70Un9%O+neVbNlAwp#1p4tSIPizQ5j!I#CqUXt zG=5Ta*4}r0`8GjaCFtnCOfBfvO1eo!oY7A`rkgUv;pt`)@iE=#B0i>@M#RT- zLyP#BZq^VV(+xJ_W4d`nd`vgXh>z)J9q}>U_#!^08%)HSafk}cl-bhg zlCNsl%k){vS7ioomC2AEeSqgX^tA2M?Y-+R{+?R0w2`mA?pE?u;}$wBF8Qh@J#R#5 zON}^{6_`0=TCOQc7NviI_mT4@T~~o|NQ^0kv<9eDx(O3Yxy&8Df|>eoYbG-c+s&AJ zxlYPJbEb#B1(Ro2ooU?|FaNQ(Wg-XHW&GMUU~YD3#60NZ!n~DuFt22u%)~@5=5#N- zW=PVOaZL|lg8H{-Dz}MXo>hoso^?%R4n!p}le%UyE@4BM;ilg(t-DQTns%JS6ns60 zdDVX&Gt7NHGdF2I(;#yJ(>-H7c(0ky^FFx z_lBy0_#|H{C}HETqN`~MnePh3`?RFqy2ccUl1dF^_@xP{Ot0W8=7#qmW}k3h5*HD! zqc_*mdu-DfdS|i%?`vY2aJ;vP-iw`t^X`x%W%ThoY!X8Qsj#NcEuRa?$)=qScvDm& z-Wr&UXLIl@o+B5#iGiM!HZFEwEwOv!Jx=l5o0u5JlMiF2PXS~IBV}$DtYf@{6n{@e zgUy$_p5A0hVR1is`6-fb45j!kKqjG$pMgxSOV6>=CgBu~Qb;-NfcLRczQ%X&5Q?YL zSfo?bHEPaYlu_bcwgD)eHcSwxk7wWtQ!U>2C269H(j~1hOfbryo~bL8=laR@hG(=| zaHVZ1GnPvA@dFxE*V;;(-mIFz#YOKL73v#xtg0<2iylhek-6DDlG#^}iVs_Xgf9nr z?`@n?H~4agX7HC3ehO+$KH2m^@5ZDzR|@Y)r;)~+&n12XMPJW=uj?BH_IQ<+aue4z zX%$~SEE9|rq$3UV#DgB5`kYXS$v-8{(~IL0xcIVXo!r6UeMkNwt5c5qvTHGhO+(Cm z^th*paWA#`T7*^iB_G;q$r!DV=J990d=_5<%MJD!Ze_Nj$}703U#Sm`AZXj!$*mQ? z_i3Mn){l|Pr~y<@Mpp{x)lb?tqrfmaVVqxJCNYvA#ylEpu)&HMF1WNWz;)%g#)Z2| z^P`qBwAkMqkK%A&b8?=8@JR^UB4x7>uDF5|l-fdrrZf7I4(R8@7?x>|sktYf>7(}@ z@^7t8M=Oiw`cl$)dY?SKMUwBOV{uHaHv)gY=#?7cIV(D%_o^qLALrjRNpA|JmO^KO zfH$tBcggeeNnSM0Q(v#ZyXoou!2CObSzMijckv6qjUc?A_kUY@Ly+gf@}Zmy$C)TE z@iBj-S?-@xR(#lSlw<={Et4PBLr2sX_4$^JKipt^24i&bzsONBh;8T zj#>1hfsnu{wxDJzmwXKXZ&sT^*XS1@=yx3G*BDIEOPk`nDf&cHNHoPWX{PuV-xL~b z%KgdlSss`HbMW7_eT1E404qjwlfdJ~=*V%H>34V)kDNQ`+{2V|b z7XfZOhbMIhk#MPz4~0u5e-VpM3#%aQkD~3x^E&3F7*mM;8Hoq!6gGE z9WE`>Wy7TvxG`|e;ZA`I1Cf~n7yn#OM$c<^0YM!)hOzA(Jw065u+-%Ac>XJCn};S<%(1;ZqjBx?G3m*WV-S$93h{@=KyEJgBnor zG+=`wIyOXuqcUTGvr`k+#krwxNITZq*_CzmaBt|zc2p$EQ4*{le;w6J2)%_S!7(N| zJ&_Abeqr9hZ0EorN*?D&df*I&A=#BcaC~%Xa$0h1IvW}r8y~G;J13{cz~2in4?4Xg z$BRC!<}3~~IU(Wp%SY``IdY2Mzx4HxjBn3y7A(moeIr|iT(V-w{jz;2fiETSr3Ai| zz?TyEQUYH};7bX7DSz;fRis3vDq^^7Qda4L zWG=IGT3EH=a!uiV;}p^TaXFnVEM+PKB3u!xNX1Kf6Y0XH)n|C9!QWRWy zQmWcTCH2j~??rG0OCAC735u|&^f<1BDV2eWsF)7vSf6NxfX5oa9bc9>d{|DUzCiS5$tV zs<1Z}ZfSX5^EGMi%5Z|bvC3mO|45#jhP+XqDbH0y-muSct; zR{GpT?Sq$B?=$5UwhvyO-Dk=xY#+QldXeHkuU|KOVJq|pygV`mK1ZHVpRRb}9m%0_ z?Q`T6whvw&4Tqm2udsda@~Az0jyxJa$SkDcUNCR*Jyg0PH7P1VbS^AB)UTs&1RL(( z$&n2T2?!OP)Abb+zMa?kRS!;a@sdgDr`#ty$Uh>mwReYZ+`0dxNlbaB_z+oJp$y2} zadC3?Z0O|D&>4zA*Mx!p)Yo7>A^u@O{ysiF-o8F;_cj>`@li=hQEd40!D&%F5iiAW z4g$RWSo+G$$;s8Dk+X}c+`^r`xqYg;4&1Ljq{f6Lr>3Vy#izrIJ4bo)PwJZxpBC4# zta3{I zQ^!TKB$_*t($I8-W+2o-l9JIRh75gSqC*`q%?B+3DZDkH`5$%oH1DJNEB#W&KYc^* zN8E<=6~fmC4M0QS2xvg2L7Ex>brjSAy8#*~Xz-x{jRr|FOq&9d(;RLK&=Rx)UVsc4 zAK(k9!}A9LfDEQU5Cqx)YNYJ|8D=4XI$G+4+JkV=0Yrd~pcCi}sG}r9vm2my6Z8Po zf%F1o&_;qN&<8|=7(k6b7W4&iARhDs{Xqgq1W6znP@V?BO$BLydY2542?hc>p9Oa? z7y^cZVc=^p9MJg>N=7M<$&dK5{og17x}TYT>z9S*C&5j{y~>}m*)aMNp`>I8Xh1(& zfo&i6$u%W@51;J1J5%T$j?vi9R{HvJcdb$@_-9)=MyiUR(oq^IWPG2tl-UV)0DqJV(x zvbo^)*q#fbf*>IJT%HJm2ndKfRzNm^{@WX8t$^Zte{cI`?#$ddbLPyMGs~TO z?b=@z>1h=)t_$)k=TnqX<{y{0Z3~#Mm61tAMMOm6a4c3wRuWxAyoik-$&S zY-6oP`D+-v5b_RHB4bhf7Ztx|2xIlw=&_^64v!oj$wM7}{5ADi{0PQ+B&j%h)fdrw zNl_Gs7tRTlm4UWUcjxj2Yxqg8aN#Fcc}}6XS#wjmVd8TB+rt{47b60dZWjbCM|d{e z({LYyD_{Rg5o2FKtsjYHY#mC{tutevAiholeq6YdLF^KWXX(yZ2c%nZ2V)CyT{!5F zAR54>qb6=^TsOnWSUwV-8qe4Zpm#gccjOctf8=s^>EReI`%K^q)ygJVUHLlMCA!MP zS-x_4fGM!hQ{3IXcA=6QY)#O|*k2`uq_Y(N_ z8pGHYxbwhAOAz)$A;`Vf&?t$UEkdruMy$ib&x`Ci~@}axd zIC3t6PE*wP6v%^`9_b$)-{ZPNpt8^`{F{*eoYhZyE9Wm_um4xhN2Vm}7v&R&Kv~YR zE7zComt8r%J6FEW*_HKCcHO0y!(T{btimQ`Ikc+loR9360=Yh0*|HZb_lu zEae$ZQg(Ll^p3Gow$WH<)?1{B1(tj%J1sjgy@NE^tT#z1B?Yw@}=RErLa&bbto9=pO)TF8eS;19GPv*iS8WLIXbp;*Dft3Ramrt zn!#d1#yOS(qrpE^%1BJV|CBnvhM1iV|dF{1ZnTODvKFM5QESPDv5U?UFK*)Qobpl`>dPHBOW)Mk!OT%dJrk z(KX8P@g+S?}qu9nvq5&qxvFaB4Z)%JiSS8$kChKkc_Pv z$vBy09ArJ(gj&>*R=A@YS2L>dGSzthY`v+dz+fyij&ZFM2~qKaW~@h5ONi<$XvX?y zm6|R3BGlXXk^+;SRKgv%oohxpfhbdLIW|f+f=#FyQQp*Ipk@On=uHy}^b_5X>ryjv zyrIQJ#-Qz*ExN)&UQ2FBS{qq40*&U4jC2VGC9hyiiOB=aXlwJTjwWwjF_CfpS$acm zfnkhfH08o{8S|uKok>@ux9Cl7Dl6LByy85oK{Rh(vHpD~>57VBIbDk&+S;IqShzMo zY45bomP)Hl(pmJr2=?ur4<>WKBWzefj@cLO7i{ZueSKr1qT)J6M|F&f_RUC)_DwD@ znJrSTNtb7lP`zaMeEVdl_UV`DaA~6N;Nn~m&y{c?#86-`7wfszRbCwrsvTpZd^37Q z69>g~B}6Fca&wWjf~>f(i*GOA#NuL;aRTTnGEeE1$}>+Oau&`RUmQkBcmKgt*e7&Mm;@uYoDY`f?D7v^J-o-^q*&gGGXs&*OzR*~V zViCVY&uy1TR1^oCrWDc8zYw3RJBK9I8Y(8fNK z^f@KydZl48_mVXAW;0AqPt1GjV8U+-&zbU zc=3VllD+PSLAm9H$E78T+j9o1EeiSF1t zT@Z}z9N#gHlT@f5RpuWVVR_OKEo#{xWsss1I!cOMuQyNEI;GV*bi`V#7|@Z{xHh!f zYo&7Tx$=6fnJWWs2EIgb=LF7LM5^m#m*J@ zCZ(rFX)SFP#wae&SXgMBNLN}jcHpU~1cihQ%usA|UV%Qho7UP?t%H1}Qo|@GN^PSf z6C#TXquPOC45G)7^+JC^eLd<(N=B&FE85B!nhk(M2UAf1D=~6#iq%NO+#8N|S*X{+ z5KK2m`prdmOVt&`efgjr0Po7<5NU5ACvF`7*1 z^9xHQXt|NbM4fW=;zY8Qd}6-dAPJr1x~FI&c5TG860%n6tKKl7z+^OVNy5@9>Oht> zwOT=er=Dw;G86B%aU$s~7E{6K5^9R}evn`3phdjNfJL-*ZZvc@t>A*;d~w-XtaDf1 zuC>acDn<_O+mq5@K-$)E07*hwTC2?v#nBl`QC*WPl0LTpogR#cwZ)^M7wN`P*9*lp zn#M^*)FJ8fVEqb63``p7Ynl7X`5AWhO2>2l2N zBBiVX5(Lp#^fz`D6;_oDpU!6babARZ;eyK5TXY45WSMyh9ZZhh@H=uz zMu@~g#$kdEGB%4rE@k9Nts-eD!#?vsM`h5XH*!C7&?cLVnE1scM#b<9?Q;s=JwbJz zgvp-A!sCd)V-Bx!PLYLqpsB!8+PhF^HdkGS?t^A+HX98SY5a(l z5xoftL#w<=$~A0E%+k@yt0o_u)hAO*8Jw2XC)`&XI-J&y(ZqG5!{WlFwxPq*2M?g2 zED8R0zP1$A567KRi4EW> zQ}CM%I+^e%f{w((kat(s1!vL7wlGi-$Xymw|ZlMap9QnUKc>gytfo zH_OLa4oW5bN#MhRb6@17$5q13!?_7C;7W?Cu6)k<^kStoDv_i7dxQJ7;MoM8b>LQF zS!^=S#sN8~iFP%Rv}5_IlPYcS(fBdu4YUJp1B^g1U;^#~?gwTAbAY+PlfXZLb-;RH z1F#X;1Z)Mi0q+8bfUkhVz!Bgm@HKD@I1Zcu819^^05#wR_yE2@1E3+$2#5vZfOw!Y zaQW=zvlVAA{{ZK!y%l@6ezo_7z0WLpX7-Y2mVEUBh1_oq8NcKi?88v|P4yZ(Q3cw5 zs`~l)eozoURU0092@D`KJb!uE5GLY!+@|Vvn;KUX=VQl;HT47HI$P=xFMjhs*l%im zo)nief1B?%5!kzLLpHE4V;OzD*dVw%_={4R#sHX8{WX?U2ww03^40JW6rR67d@pz; zPNVu_Pe&ucgL61osZ&3nWi@6a`eIjsk4V7+#nmDP*C3p(=|J_bLOrMfFMxDmJRsLS z)m2x>{7K+9AfpartAUHafVzx52V4gFVe7+k;53k}Wo#v|8dwipq2kHM@A3(`?mefK zmz`32zEOIPC_M+X&s9)e?*>e})0?UKL7d+8 z73bl$bN^;I^<(OO+U*gnPS~0XRA@6su74P-6T#{xGZt8W!G8q6RM?57YJ?_6_1~*G zW6OqMcM7l?xPrq4AGJaMQxec4loxWTQLuq53C0^02_f#z#G73;4@$^@Hy}cPyzf3oCeMSX92P|=YaD- zDC|ubaPIrhzTdNR&xY@x|LpnI=T;1Ns94fOKFWK>ffVAQLbEMxYoN4@>|i0#ku$z;s|4upD?ASOKgARsqzPtO1?@ zwgK+~+kqXx`@kMxKkx-`0Qm9n=kI*JdEMq`)@@#Q_?^R_ul#(LHDsDC#2`Yfed{6b zn$_t@ahf$2SBT0gZuM010RhbO1U6DL^Wa2J{8`0sR3QC!_-dfpI_~ zPy`r&@qh_<5SRfx1gr#B0jq&Ez%#(J0F5=C2i5}b0hfOH=F&G`y!*u)|9WHP7jL}# z#-(pAEwF`5vxZERL&zM6IvRj6P1UjBC%)Cyv`C#LuCvv!ko7+Fqczi$s`dD%wQg&9 zhYH?o9NVoGizGSj1a<+tf%kzuz(L?k;1F;QI1gL^E&`W;-vJu;T>-8FjWOO0rc;20z#?EVumo5NECXmv|1_`y*aEx-ybZhqybEjxJ^?-j z{sa63{0y7|egP_gUjdpIoB_@PK^Vja10g^tP#jY(KF1)y=C8Y~H^4*K@x9{ z)DOZ~6Bq)R0jKu8eDVB8@b}>S#mg5@UOr*@;^MqwH{&|!lG7ZQCcv)d!a`2N@vsQj z0h$M6M(kfd|73D8!+0%B%#CqYl9vDhrl7=8^B=_=rB!nn4QNo+-H#mu4^Fkqh3(Ry!SQKfHzn0+c%tPF8EIk9348i<>5BWXC?;fPKVFe z80tD5K4*}R)8Qhm|30jlh`*41ZE=0&#*G_AG7o2=`=aPl;+19WSibpYzJCQ(W_6FpX@lgCVS@Kyx4g=mDIivdPDA z`GnlNuEC>Ba&6}h`t=m4(jMwT{x+)gcUB75?UDIVJ>LoR1=4|0z!-wEigefDQ6~9Q z&#P+1EVQgzt$<;v)>JTWs_T5f43q#ffLXwQbNy!o*VaGpSZYxJRM#|CUj!@zHUOJ} z8rDDV7T6C5Ghq+Dp=TJ&*v1%Ra%mV|wf%?Usm$8;U$gd4b^Ru=1$Ya18+Zq(Vf{N) zxr671*19KRRqKCWZT*XZWewUt)wMiNKZSEI>N|loz(0ZJu%!;VpjXyKj?&{${WXlq zR1$D|UM~=H318I(e^sXd+{5e?5M2KLl@V}9!4-2EjHp$Z&+t*^UlH74!-o-iPsLk!%tVz>1ziUkaPIp;qMO5 zrU~0Q?c$eE2>K20(I1C{~%=)4*B zcL9mbMSDtu+XqMiQh~leKVSfm4h#e`fI+}NfHJ^g{m{YVu$br&bKRbcO1b`tp7U<= z`B@qBty_;W;zphO1ldQ&d;t#C{$1Uzwh=Q^!L+N88|^8gJwWxzR`v#{Zj%A3+cbdc zwm;xpx0wig0GI+y1*QShfpTCSupZb6>;iTJ?*qR86~HCnci=K`1-J_M-2$5e)B)-O zTA&`#5NHH62ATlPfabtJAOjc#OahpMdj@C3-!EsrJGA%E-Vb-;_w7S_*FCpx`MT#2 zKpyeCaNgt7CQqv;>}T)3VXRN;n<^4% zD1@dYijc-i+KOK zjHTncSUQG6+Lw--IC`5pdYd_VtxLrzv{ak|#gN-oKh(F}w)#rw_m!D1b?X_ZjOniQ zRCgXi_Xk4w{Q=DY|L8iQb!nRcZsM(JYqwzoNUAMcI7<~0jZ^u~yQ|U<%kUWWHwz=t zHV*TFRU^>BU7sDHvR{N^6B#YTTg8aGdP0m%a1+3K+SGp9%zkPWTe1*aUYyFOiJi-P ziOU6&GnXmMcivIe-@E?38Q4w+QUR*>{=iGXE5JeE5O5S|+XDMIfDXVEpbS_CYydU^ zuL9WcjvKk?SO7KP1!#aaKwBUNhy~(+cwjhiFE9ca35)`Cz)au~;0a(hFc+8y%m)?# zPXP;oMZjWU2|)W->3xM4ema3a{2o0h+)wuG-t&nyOoUkDcWixQ>kj-K1=D}!fw8{W zZSG*1WlQa)>~~-*9LDq1Qz+vV{gOlf;Gs`*=yNVt#!{Uh295%!0X6C|00;x9&K-t1 zFEGX7&^ugaS3ZIjyJ9H3O@g52@f>rtlvE6<(FJcF$DD3~gjwL^W1iQx|O z*?P^w>Nftk8TBk@>rp+(bs_4gjkoNl!icb+9PUhuupQ|9oem$`%xtGe=W_j0=S~Vy z>5L|>gPXbzZst0;N-su>=e5WGX9-B*&W|k8>!hkau87y(Sl`T4C4u~2qN<5{ySUc+ zDxazsrzB?ei@_72^hQF*@IK;T8=5U#vuJue4%*N#Mp%zRyQ(>8t)T@~pG(gXPtprv9^c)zCr>}cG&Vhi#x}UXzYMq-P0b2W`_TU@Ke4+T^>6u60%#z>K%wuk5$!}`ru{X2iH#PIPn_2RkntA-q zEcs2%yz|X0`Ay9{;bxZnre@ydW|sV>W`0wLQ8zL3=$ko)yUCf~#9;^`c&IB zl(x1AZZ);G7Cg6f$7WNjNPh=KdI(nRPg~v#1#x;oXC77HT%<~p;bsDn-y3yABk6?rqoK{<_dp? zQ@@; z2-r-ab-Rc4cHc`_kx$~92m*}Xe54b8g!t-J-+9sd!aN^=OjAL-JU3|SRL}yyN`oJe z>dop_G{mVUk!~tYRR!ZEFz?_rh*jd3t_-T6OL0t#VZIej5#*&=u8G;v>K`u*NI$0? z+3TZigDcquUvXP1l8CWg-lJMHsi;7h^OcdfvtT)kO-Wa=gYY8W8igC8Z666{6(wHm zZCuZ;PFniRQ>7VqeH*^B)9nlMwf6+8hHjb_`|0bSYvS*DD*wN)p#Lrzm zPyTUD+OC;J|LOnbotIMb=JgpKw7>DLvQ-b)S$of_XQbCh?OHs0vlLme{QQVnAAf)5 z-cRls)9uMdZ!bEs<@{G4mwsG&>b`fRHhaeR8r`yKn-7EARMc(tvF4v!_bk}@*~V?J znD5y1ucAdg#y-0D$CXQu-5=WY#HOpg((b&g<%l54Ex8zBhS51 zbY)xmk7FxuZ@;6{_O7=t)BiI2+hv0eXEyt}<7eY@)lWY+$@oLuFWO~azx7J&TV1<- z@ImWFxsB6WJ$azVh}gHH7oVE7H_rI_)!j{YmTtGiEIOh6+?3GwgF}9I{4`@+^nror zHoX1Wti9^jrW?lJK6ZJNm%AEX%6s$u#Xp|Yefj9-?akKweyGJgC!QU<^_7(7nk|!0 zBtAd#aKV|@N56gT%=t~f{L=Ed_s{+(Z}j^KJLZgNoV==apWEl;r|mP$U9*1f^S{nr zF*D>j|B#pNNPVn)?A`vKeH8M_$EoEr`mOOv3)?^Q*yKTzpEwlr*c$)+FGdXc@!!4o zHcFgT@a~--KJ|R(ZwHNgyXRZ&c7>Y*MlQ-6o^We^jPIv~k9@tTWm$RO;8m$@x;`9f z^84x;&3aSAJ5Kl=OPe;Y$F|_JXAkW7w)>7b&F6m5^^Nat>pCfY!>4nS<^&yh_@TU3 z9p30?SX>x4yM0811_PRZwCMiqMK3=e=iQ~C&LG`{W90{C<>YmGeDMPp9y@pSy`|d> zX7Bs{eeX{RTN5wce<*3(Gc!NGE%cw?_8<6Ge#mc6M=TmMdzH5P@o{VB92&cN?W}Ws zvM)dU%J`Gflk2`8vSI1v#|8~gylYPUV<+D{@j$YrS*y*I-$hUvX!f4{-g%9i%h6o1Xjl#25WPS`^u0af`>F{h)X5?gu^$di3ds6Ble6 z^~#~`>Ng&J&(!3DHU7pAI=(bJ`K7r_hO|n!f68x~U-rabPHwzz#4E>ozwy`;->9#) z9rJ6OwOem#c=3tcTc)(R?~8Zp{+R2#%dqRd%&n!v*5CDN@mv2MerMnZjlO^Iv5F3J z6C*bESkNeH=>uy|+?uy*R7}s)(GL%eEngEeZbtNr$x&}k+5Ohe+2cQaegB$;XCD1E zC-10bZl9BLy$gqZ7~QYym^YffH}IP-Ymc5u+tP0Skfb-iO$*<3w|Rv2KWplTe$##b zmfgQ~GXL|%L+6hidMEfw>0MV!r+7WTX4`+#vYvVI@p(gvBOkr`ezzkL-#6(z=&6I62fp0-eVryRwl7M!x9H99 z?)h@){$WSYpY!RlA^yVF=I{Ofs^7SuN4&J@!ATz&w#6)Y;=Rs+b&DcT9%!0-a8~NZ zCQ-{DJ8`C8=O$MU?0@L^+@CwQKA>)W@aNQ{mnXe>JbHZ5{ks-O|5@IrylCsjb3K0C z*0`wEzn1*GX8fjhb6)*z)vO2d$K83b`@^q3_n#+%&$c-_^7r%?4&S-|Lh)ect!Fng9d6(^c#CJ=3iMUFYG=t zzQM5@s{LMD;76?VfBn3)~;;7_v5?w_S>En zw`c$BZ7QeD@Avx0Tkeyd8`4~Vg)P=6oXSj?`23QHb|=12e{|rn5B6^F`orqE-P*Oe z^+eXbx@(^*`svGFr_<{FHaBHi;WO!V*3P-(!z)+z_6%;fviY9Wu3gh^dw=Mwcbofb zckRn;RkHNH<*zP%uEz`C1nkQGT2nHpWl5K$N7l}2`NI`3v!{pu&}!J? z^>cn%Fsu9OrppgRjLmHlzaeY$k3DAYZ@F{jyy&&k)FJ=s^uq&}pHI2H{jkil(*~AL zIc9G1uO8o4%=}n4yyE@iuk|m>ocq$tYq~%Cz`hSpzg)Vl;OoA+Es5P`r?06yv&FBi zAME~dlV>|MN*&QT?NXga|6Vd?ZrUf7(A7gvc3t+tmj!Q+w=7@3u*lHrv*9T-E;i08 zZ89+W?&zrrLpQHYUeI;w#VudgKU2TyfDzGe&fYVubluvmbx(G9+xWul{>RcDyLkKi zz5DemYh6_E+ODtee`590&(DsX{&B=hC+khU^w}okbBC{{FI(31?T+ce>*wcx^JtsY zPfr=jx*s~R~WS`>yVv9(QE=FI}H3ocHV;%iAksi(bz=kg-hP zd(uYDk4>AbF~7X}(U-P`9G3e1q(2-scu4NR<0Zo$e`CvlywgQb>mDu5xqpWLIks~{ zQ$wKc;f~vT{(kqC-Ah(H{c@ZALlY(~`cZrQQmfbZw{5cWpQaATN1b$YV-l}8)>ylmH`f7W|)%RT*n8$0{d;OKt0&H3hm$A^w+_d&~j z=UZ+6^3gbBn_c0@=Dq0?erjw}^O0@A6T|Dx^*Yt}r&jk}*fRa+2Y)(pYNL;L>myg< zH-7Jx_xY|4l^%eVCXs3O3nTj5M;k(G-Q>kef z#eL3$Ir|eRYp$2Cy;mLh@?&B^DUV34e9>MGnJ-3finsYxY8uj2!{u35TzbpWJ4-8d zSh;IQD|lGBJ4G&5?sm{hp2piNv<^x2ELQDQ>ULPiQ{xI+!P|k=JdJl~otns5&ZCVr zkDsdK;X?lYa>)>NyL5K)OA{~NHXiL~wxHURS_%A#5=dgK=dYD&tWc1(5r+@|UXY0uVGXSiL1eL- z;&JKv_^gT=pHxw^k*O*Ty`vSMQ}MIlJ*^9v3RF(B1qv!*EEUUv^fjFV{=FgkUQh?? zcY)~pJ`_HQQ7GPckCx!mTE)MXp~my6jhWvOyn8Yza8y{&Mnjqxx5E1;tw$(6tkE-q zwPJWNNAJE(S-;e#ZrNhpnYw2%I}O)fI{zws(QUQ>l(J5Qs&29usAGABUJ2ZtdG%~j zZED)_6M#pJ>qMyQCToxy-80FmJJa-xt~NF8nhAgfs1xB;H`yDhy}YPo2&E%~`SnzR zvkZ^?(;fLRtoGE2@U5Gy!jond`20wB(DDsrok>dc{TqM&?Hf??uK`86(;bFS1l5V~ zbEN2Jr5IwTn8Xr$o~~R;8bqTfe$9~s(^gL6!5pIBOAAbPWb#-hsUsjf!bW&n82H~&u6vF|mp;_16`0F@HYiVfL7T<6> zTe%G`JzORZUrtNHH>?WydNExq^y6LDi|g^b3VCN~Aj!BOv@WtLj z#G2SS#M8H|M4WuRJ>&$}cPe=<(n?I}$9Esl2Y9zuc~pD)f(%tGeMQD|TO7h}p%$$g zqUcwAY&uV0*TUN#utLZ`T5}YyiN*VyTDfT5wht!p7G8q)CJbQ`D2F&vrdp(%05av^ zDwG498faC@`RwYzUn^Ux@)dH|*rbgopwU;>L_*a|Cy(b8qsmiAryjJGwn~@4;*n({ zeHDxObVGv{T0?DL@QGmfP*qh^SfxmtSr4vBn-wMUcAz=|EsPtyN?*Bh>7zkCc4iAL zy|H6~>^xAdB>CJTTTXYz94#&syth=1X5K2n3pJi>d=suWBt!PPF}{b!zl(IZO`X8< ze%j#jmoJZiI|^>ibSZ*`^&F&Xsfuu!2U%n_!)uOM1Pk|Y9ob$rYrwCo@8LSKvTA&E z3D3Us`k$-9yN%%!M;(++wli6%{ZejmsNNf)-Up-24X$Ae>CZYra;sGR6}7HW*cmM( z$Ll;4R(ex)z3LFo>jsDR7Qk&+7A&Y9ToyuW<*({d37c>}t8Z_2amuI3+R8#;zBU^n z`fGZOpefgT+3r|1$New>nj_lrXoYnBpf$qIi?(G(jv=g>jk0*Z(gptrp_k6otF)|i z{1~ggNU}=9696N2Y?r~WsE&ydahKRRz)df;bW^aiEqO3 zXSaxY3nOujWznc*wR)@~MO{UTbZ$vTTP9IKKFGMBZgBY%SE=qt;CvL$s~K6v zp|so3PT~}K1;Ad3p34MxG;*`RB^i?rw7~BO){R=QdW0gC)(wZEgj&2rf^&%vE>^FZ zBXBj1_eStHhm%b3NE7OrdUiW6A<#x)+9vS<30a?37_fy^+aCzc?}e9H*!432V+gw4 zEJhGT_(G$yrMBid$@V`8Ie25F>Rn}|I*My(rh1fuay=)`C5#sChD7P>nC(!q5Oyo5 zH}nq0o4{ybH3H}Ki9y$6VbPb3RxA6mFoo>N(&RuV%*cVh!%2ONq|i`**gRen7`}M! z>F?)dF{$rYl*Ls}xsX~3a&^wB8EYeQs;AJ*Lp9aRDLnUS>M4rc8z{$UTHwv(T+~9dyfm4z6{%Y7QMl z4p`-@Qa*?IP8|x(Uf?@P5 z!(1*ywO6h}h9L?aQPQniQ&A!ph`@6$g*=xKuR=vGN*m;uOAI9DsPkHkC%NqC4Jp;u zO*f1iRIH^}H^p32%jc0a12MqP(LBUHPow@Y2IB;Jfln{ifX{q;F|A6jSNo`zp5ds2 z9YlfU^VA~%>Z9{&Xg#0~9{UU|Z|gk*a7Uww2O6{jPzPTm2`tz6i~wBIh+>0#u3}TYlw&7a zUn%9|Q+eDq4zzq|tc4H!rm{uIb*@(`pXc-U13+`cH?Ip(e>945tiP_9C-v@2J-QF- z!v~+&^+BEBT>?0$B58H1StD^yeifqybe!-*K6ebIC`woLkSW?03o!4+;b*5PU-4Jw zNqJ%Ye+02&FOet%Z62bz%y@w2_VkvBV?b9h`Xulhkb%Ok1}*{vkl;DsGSCkRmjkDP zY!rDVuo_qoybEjxb^{**^gYLKfRn(lz;A#*mm-KZ@`l2O$8P6YftufFFpf~Y1!DIPtfjh8)svj^2C<4;3+wla@2jl*9 zfZnc5ulPw1$6MHdL`+e80ZBj~AO%PTu>8mR0Rw<^AOjc#`~xThrUKIedh_yS;0n+T z)7a)fKVTq`0W1f;1HK1N1DAkGzzb7ZEl>~00`3Q11`YsqpeuEO06+@_0zp81paIYj zXaqC{ngGp#h0vEq^pr3iWmfcri-Y0%N*xuhxbYvwXekD}c1a-DH5d9lhx z*aB+DRc%3AwMN2V6bFqK2=d`sROG{%mp?yF zl#fP=)s>G%PV(W*r(>L;NtIF^O&Wp8hiuD9W>xFYajZcjHu)f4>Pz;%!!b_u9aMif z%B-Ms9QMA0MtubP;g}zd2?!vYRdPUE335eupxkl%F7ywNSZ_lRU;P0!>G`faYGJ={cSI{Ful5 zt~FhCd^T|@7f}Xxan;duEo;wmsg9;QUPvx~Wn6W9UQ5~C*R5xnc}nMrPioVSe3IVs zL*+iM%$M3&8>_yMH6*kJUY8bmuoGn}clPCBf7lnw)+Wp2ir3$3RthMcObryvZ6FU8r%G4PZD{3yGw zIM?ebf~K1_6P}-^ICp&3VczcM>b{LtKGwPVgU}Fyd^nfyNr$)>=`vfppg6f_Ug7&^ z#4T}^A1OH#`PuEojpM}~%_pnj<*$^BOJ26v<#N+`QPk02$%`j_8T%-UYHihB(pr2L zoCJnrg|BlQ9u*K#q-Q;GYSVd~m&tJwPj{;|PV_x;oS-SE6QTIE%0;w43a#4yh?m66eKTTy->+ z@>F?{r!vkxO~FgBf=^{SlG$Gwr|yY+S9d&O8_#g6{fNCyEA?9DP_&CO->U7XQPgMFc0|`uJEp}h0?iL;M-_oy68r(K`#110 z@F_s)_5pNpXIvZx;s=2D>f$X}NMyna34OV=S94q=i8qzgf&*@eVMi$LF#)(e#dlg_ z7=&G7411@`lOR0I`G1i6y@OtrgtXKmLbU!WgA_jrqd z8Ne!F4e$&=_kDK(UjpZWi@+s-?gckRo45_YGYpKrvX=(X{o!%I1Hd9+39uBPd&X}A zp8`JvzX0^23A&FQf{|M+Fc267WCC<=*#eXSOM&IU(*WIX-ins_74S81H&#h4z$9QA z^lcHa47doLsSo{V4D1Gu0LOt_pf8<)ZUEgQ4;{R>a(-E;c5h|qka?A%w}w^D-#Y)p z|CaOlkA-^05&sUq^LU8(rC3@}yd6jc3_v+B19%yD9e5Mi3G4H4LI=;6WiBM&BCImJEVMEI z6(NJOiGS<4)768m<*BfMKQzh;3BPL8H`I~8y#!hC-Uw>N=iX2kv~yKO2e|Y;lh$y( zG~EuKY;*XQAJ@MaGrxgqMtNc-`xo?u4tcLcPuBcbm@W8uC@U)~qc3a);lT@a#ax6* z%ul>n1?L(lUm)|UfGvirsb~vV#r!LXfb)TehIl&SmYAdKd%+E{hN}=xmNpA7Y9S*f zUe59X#0_Tf>&G-+WR&mp5?y34e_abj<4XbRid38gDOmG@Al$L`KCUIfT_qRU+E_yx zVvX7d)mdfbt?((IMbLV9S$u#kE*86^;vjW;Ct?(K7dggs#hxV*9_{?gBr}m-$T9`JguD zjv}>8_i?lj5*8n(fL86Q!&Z!tXl0FhXS(Mp@3fM4Tgf}FXxEjz^NMy~(LF-C-$(c7 z2z0+n-f2bm!sxyhf$l}ot}0qBqk~Ky@kf>l+2Uye(F2fi1Q~AqsaL>26jGxn*jP{4 zRaisxS^yd6h5(HYX(Wn~T~8X7(rA=MrIbx|qsErFrWMc{CW=jFN?U=3gMRiZR6P2hc9WmjK#{_ys__5&fYbv>TCjB39KK zlD9Y40&koNUsadl1T>UwP~{7jX+mBx`ejv+Qs0B5riOw;Lo&Q;MTq z#Fa+Zi)eXZ@%olk;$UwJdPQ7V@I#}gXb_ z^8;Tb*Y`TPILbv_M%?nd+IH!&q@9bnywrX}ca9HxsuF#fRlL*<5hOhx%7~%w$ zpZ5uCV!a8Q8r^^vgT$~5Re9S-ulN)w5(r$ag?%_Fb7 zbdj(fj%m>)D-QB`N*jquJ5O)@RV3y6{R7MMp+2*P`s9=PXBGNXEx1U%3{CZ^8S@v?Th`8ve<7F{A%ccNNK-irO1`% z+0(A=J&E0(T-(Vsij*3++y>RNaT`<*DTC?>ZZ*|%do;+#?a?5lJQ^gp^{$rNb)mLA z*M%bGx=@j)Pqo~Z)wiWAtB;gr^+ihGYPrp5WaBoY5mII}65RU9dGfkZ$Q7sb=tr$8 zz$R3uxc~dA5XeWu2n|fSv7D=f(8=S!LMx~L4#jk zjGukQ`1v_8es)X3^@!pR6~y(>;tv&sEQqxrwlT&ZEQssD#vdw(>ruxaDhLfftOcX=P*$siBoYQio{?CHKPZ^T6`0(1-W0@P2D64J@}}VEO(PsFK6<1j&`t6OmkP z9RUpy$!&w-A(XtzG$jZm6w?$z!V4t!W0*PTGUs4F4Kw#+m^tS%NVuG?a57@LB6H-` zPy;gOzX~q@NswuD1Z2*CH41)^!4e-IrOwzwa*~Yb2f;6%5_7z-uHKaEVegAcE`JUf-A+wHy;P+pTf*%C2 zkm!b>JmjUi1F^bV#Vp9Hp)ZJjeLT3liy+$SB#3@}d=&g3iaDwWqVkB?PS`$0@@hzL zfN6CyxO~(lF_`%lgj<~)1wRPWx<1LyQI=GE;+6=@gJyBB0GBHcp{xf2g3E6aDsvzJ z#190Ff*-`a*f3mtFE?PCGIui}*EXxE zy2cq){?yQRxo5Xl6|8p5ZDaX6s)BVLNvR2}b`C`gn*Xm?S!xH)inZ%9ht|P8ViHk1 za3*00S=@kubM0DgwLSa))=G_gE2CEhmoE_uczP9vrFzvU_+3l}nRpkKLkkr{nQFBO zqaZiau&43zUh6dMX)SVp8ZYtv1Jke+Oopw~uoPNwPr-t_>uDIDOgQk4i6BkGUd770 zbsF|6t-QaAm3Q~kFfk`_pd+SXpZtJ3V`Ao1@gvB5@&oRWRWl8de#58R8Pbiik zw)GTF*fNle4Go(eACEoMw@D?o7TsZsD>=QQl~3fna7!f6nFz2XK< z!!De*O~Xc=1>p;)Z{RfSqOWZlcF`BaFZ$L_!;~7xH?jrd)|Kt%kZqZXZoJv1{Qo0k zZ`Zb~_Wp&VN|5h=?EVFIm+>t#%7W4sn(Oh?wh(1{+Ulb8(>5HXpSH9p{j}Xi>8I@? zNn9SRX)#5B+2{X8C>+n-$fL(JNjn z1`lN?lZ#o)29Hpz?G>Zj(boP>uNS55lJbUF=T~*oYdUZAD>~)P?_4POAvw~vQYDtF zm`3TR^S>f&0rDljoOyE2Tj_UquH;{NjWV3_tL&-VO_VgdL7@G?Vd6y`>bBOCQkc?G zbc*z3(wAyOy7bS2N?0jbpsEjg2{)tims-+2f}14&*|Ef z`t($%TJ7V7FC?nHG!IQ?5`xQQIy@r;(3fNAJ2GZOr^B5HHxv2N*R%|Xj|Ux$;_&%J zm9LLlzWc-PoFJATW%Qecw~G%VWhv4*VT6ZHvAJ}2Mp_|&{pp&Oqi#Id>vdk}?x3;msnzyC&q zotQ5otz#&K(9yz+xqMJi#Mb_LmcTPUTYWdNO{lPtIBL+1P+Q{Jolo)13W1I{?uxrp zoc*z18ky0Kd>FNu>Eo%M{0=$mwUT0L2KoFeD#;8X#}hD!7)|}d9jJ?=BZmLlf9fNZ zJY4F-($LZd<69;Y&a!dV5xskO+@{dL6CE99eh zrWeB6i0={5_arQ69TY?K6Jdksi(`ZN6_h>&G{v_~@FbEgoUD~SMwy}ww`8v4oYN?I zBO0=Q0(e#Wg-?FwPcCx@n{4PzmJMUASReRO@#TX|b`QRNBeA|Ht$__vN!B;V>%ikU zb_Ox+kyB^5(EvRQngExc`|OP8=6tz~@?it$`pNbRQk-SuoQ5!>z5>wZ>C1rheLwn2 zUjXb(0OA8cD*#<%0N$t&fcyLbcrGn~|7r1C4+sQ;fMCGYaTPs{Hz+$FDg+#T@afYR z2j&O8ILD8*Z?o}06v8raDe*+{3js>G0wDdZ0HB(TUZ_iUumdilGCT~IhG^^HQZKaw zE^Q5k-zJ{2zh+4on( z8yHe?o|ZK@LrTjY+%a3qFc~ez9Alw0z?fT7s5eV_Mw67C-8;Qwtdwmu7Mk@IX<~sT zU&>C)PE7A04L0jdQc6idt{!ygVQDH89dzCn=#!n=Df6BrsjuGf-W;iyu25$lw|%43 zKDM(IEycwqNC^p@Nmg_{)guu!3yOkz8wZ~pBUtLdS(^|mTsSiO9jHhhc#*8MCAiUD zyGYRq9ebzum!hL%rP$8#(qO$oo2j25^+q)3fn=F(G!^LzBXf-w5k~c(x8#q}nJ3%I z7#}0zFqB~f3UW+FvoX&i4b00c$k9u88%<;bdjd@TLjPOk^P~Y&4h-L=;^FglU7Y{T zc5!YEC%r)Ra{Zv5iu}}vkz0GzN}yH(wGyb6K&=F7B~UAYS_#xjpjHC45~!8HUnc=~ z^M9I8t3Utu=Sw4-1U>l_=KmcozLJD6Z>O*_Ozye^G*72_UNJy(^hp5Co67-O3wR8m zwSaj5ZMI(u&>hG%0L}Sd0%%UZ37|Rs765lT*babbe+bY#wmC9U&h;q|I{19Dt%|#} z21@?%R+rZ6$p7Lkb$MPmb?Y_<6I705;Kr;W1b`xOOsfGTf$RcHp`PU_CF8ra1-Ft(r0hDR5t_RQXS^N zr8NV3{}TC$cgk;MMq1Ly)c$Gd{jzvDD9j7!EJb5=qrhBXH1JYW`ri5aoN>6EBJDCJ84xn{d3uxHkfZ0) zAPFYvEPBo&CGMv$ok)utBpMP|VsWv_I6m)9DDnnMmWIY!*Rhi67S}rn%czJzLVQdjeJUK0qB_ene^ywbB zq+SUiPA=WBCzlR#DU(|OQc1i}$cN6U3SGUpj$Uks)guRbSyn%sYoZtJL~p=#(u=au z3*-ExTo=74yvj~4ub@YAy>|K0YwjHB(aSZjhhBmcz4+^-*V&0)r|YCA^OFFDr*gKt zPI_@p{I$AHda+LQnq4P7d;1XOB~y7l^=oe*f*#p{>!ByNkIs0NG0`FOajo>|wV87J zkm->Bysb8uFlOetk>T2dd8rY)uU z1IzZ5hwG(vL65rQ-T?6<4?*ZW6}U0O20@$pr&EGF%+y?Y{?zX!CnibJQC+2|sMyY(qGN1w$&60q z=hUTTS#*Y6ohdiNXtJ1e1r|9ym8p+mOksgJe{esXQ<mz_RKwE%%ncIN&KnI{B z5DC!W^C~vLkkO~kkp^pV01YZ>ph|;Z8Zgixq#Hnk>F&TCKo0=hXjo5x2JO87qLl;} z;{`tVr^!JokOuSxsAK96&?F=s7zktlgMdtcCOg@{VBjv`ZeR#76rhO~J=i}SxEB}! zj08pjI$$)A1LOkK;pG8ifPA0;7z>O83V|ZP02qN{U_4*~%mDSMCBOt=A}|Rk1ttUc z0rvw`&M9#J0h9q#foZ^Wpd6t18E_v09tLItj{uJXj{y{a#fsThKZOx$kN-Xi(2h_e zG)IEw8{nF_#-L(rc+_X!D!J5TLwx+zJmprAK3O>8Hz;7hT-qx#7v3^!L=swng|`B0 zz#nw#V3V?(Ke;tY9)*i?T8k^A(Q0*QfrY%~)g-m!HT96c3PCNzB*p_X~mt1ykDJ<-Lm=%cx% z^_=Ra6lIA4MY%cQ*<6F$47QyXS;5=k-9GHZLND_B=CRNIo)ai literal 0 HcmV?d00001 diff --git a/ISUP_Q.762_CNL113365_LATEST/src/ISUP_EncDec.cc b/ISUP_Q.762_CNL113365_LATEST/src/ISUP_EncDec.cc new file mode 100644 index 000000000..ea18af689 --- /dev/null +++ b/ISUP_Q.762_CNL113365_LATEST/src/ISUP_EncDec.cc @@ -0,0 +1,465 @@ +/////////////////////////////////////////////////////////////////////////////// +// +// Copyright Test Competence Center (TCC) ETH 2011 +// // +// The copyright to the computer program(s) herein is the property of TCC. // +// The program(s) may be used and/or copied only with the written permission // +// of TCC or in accordance with the terms and conditions stipulated in the // +// agreement/contract under which the program(s) have been supplied // +/////////////////////////////////////////////////////////////////////////////// +// +// File: ISUP_EncDec.cc +// Rev: R7D +// Prodnr: CNL 113 365 +// Updated: 2011-05-10 +// Contact: http://ttcn.ericsson.se +/////////////////////////////////////////////////////////////////////////////// +#include "ISUP_Types.hh" + +namespace ISUP__Types { + +OCTETSTRING enc__PDU__ISUP(const PDU__ISUP& pdu) +{ + if (TTCN_Logger::log_this_event(TTCN_DEBUG)) { + TTCN_Logger::begin_event(TTCN_DEBUG); + TTCN_Logger::log_event("Encoding PDU_ISUP: "); + pdu.log(); + TTCN_Logger::end_event(); + } + + TTCN_Buffer buf; + pdu.encode(PDU__ISUP_descr_, buf, TTCN_EncDec::CT_RAW); + OCTETSTRING ret_val(buf.get_len(), buf.get_data()); + + if (TTCN_Logger::log_this_event(TTCN_DEBUG)) { + TTCN_Logger::begin_event(TTCN_DEBUG); + TTCN_Logger::log_event("PDU_ISUP after encoding: "); + ret_val.log(); + TTCN_Logger::end_event(); + } + return ret_val; +} + +PDU__ISUP dec__PDU__ISUP(const OCTETSTRING& stream) +{ + if (TTCN_Logger::log_this_event(TTCN_DEBUG)) { + TTCN_Logger::begin_event(TTCN_DEBUG); + TTCN_Logger::log_event("Decoding PDU_ISUP: "); + stream.log(); + TTCN_Logger::end_event(); + } + + TTCN_Buffer buf; + buf.put_os(stream); + PDU__ISUP ret_val; + ret_val.decode(PDU__ISUP_descr_, buf, TTCN_EncDec::CT_RAW); + + if (TTCN_Logger::log_this_event(TTCN_DEBUG)) { + TTCN_Logger::begin_event(TTCN_DEBUG); + TTCN_Logger::log_event("Decoded PDU_ISUP: "); + ret_val.log(); + TTCN_Logger::end_event(); + } + return ret_val; +} + +PDU__ISUP dec__PDU__ISUP__noCIC(const OCTETSTRING& stream) +{ + if (TTCN_Logger::log_this_event(TTCN_DEBUG)) { + TTCN_Logger::begin_event(TTCN_DEBUG); + TTCN_Logger::log_event("Decoding PDU_ISUP: "); + stream.log(); + TTCN_Logger::end_event(); + } + + OCTETSTRING mod_stream (int2oct(0,2) + stream); + TTCN_Buffer buf; + buf.put_os(mod_stream); + PDU__ISUP ret_val; + ret_val.decode(PDU__ISUP_descr_, buf, TTCN_EncDec::CT_RAW); + PDU__ISUP::union_selection_type msg_type = ret_val.get_selection(); + switch (msg_type) + { + case PDU__ISUP::ALT_ISUP__ACM: + { + ret_val.ISUP__ACM().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__ANM: + { + ret_val.ISUP__ANM().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__APM: + { + ret_val.ISUP__APM().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__BLO: + { + ret_val.ISUP__BLO().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__BLA: + { + ret_val.ISUP__BLA().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__CPG: + { + ret_val.ISUP__CPG().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__CGB: + { + ret_val.ISUP__CGB().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__CGBA: + { + ret_val.ISUP__CGBA().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__CQM: + { + ret_val.ISUP__CQM().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__CQR: + { + ret_val.ISUP__CQR().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__GRS: + { + ret_val.ISUP__GRS().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__GRA: + { + ret_val.ISUP__GRA().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__CGU: + { + ret_val.ISUP__CGU().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__CGUA: + { + ret_val.ISUP__CGUA().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__CRG: + { + ret_val.ISUP__CRG().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__CFN: + { + ret_val.ISUP__CFN().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__CON: + { + ret_val.ISUP__CON().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__COT: + { + ret_val.ISUP__COT().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__CCR: + { + ret_val.ISUP__CCR().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__FAC: + { + ret_val.ISUP__FAC().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__FAA: + { + ret_val.ISUP__FAA().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__FRJ: + { + ret_val.ISUP__FRJ().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__FAR: + { + ret_val.ISUP__FAR().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__FOT: + { + ret_val.ISUP__FOT().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__IDR: + { + ret_val.ISUP__IDR().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__IRS: + { + ret_val.ISUP__IRS().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__INF: + { + ret_val.ISUP__INF().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__INR: + { + ret_val.ISUP__INR().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__IAM: + { + ret_val.ISUP__IAM().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__LPA: + { + ret_val.ISUP__LPA().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__LOP: + { + ret_val.ISUP__LOP().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__NRM: + { + ret_val.ISUP__NRM().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__OLM: + { + ret_val.ISUP__OLM().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__OPR: + { + ret_val.ISUP__OPR().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__PAM: + { + ret_val.ISUP__PAM().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__PRI: + { + ret_val.ISUP__PRI().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__REL: + { + ret_val.ISUP__REL().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__RLC: + { + ret_val.ISUP__RLC().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__RSC: + { + ret_val.ISUP__RSC().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__RES: + { + ret_val.ISUP__RES().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__SGM: + { + ret_val.ISUP__SGM().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__SAM: + { + ret_val.ISUP__SAM().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__SCB: + { + ret_val.ISUP__SCB().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__SDM: + { + ret_val.ISUP__SDM().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__SUS: + { + ret_val.ISUP__SUS().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__UBL: + { + ret_val.ISUP__UBL().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__UBA: + { + ret_val.ISUP__UBA().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__UCIC: + { + ret_val.ISUP__UCIC().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__UPA: + { + ret_val.ISUP__UPA().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__UPT: + { + ret_val.ISUP__UPT().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__USR: + { + ret_val.ISUP__USR().cic() = OMIT_VALUE; break; + } + default: + break; + } + if (TTCN_Logger::log_this_event(TTCN_DEBUG)) { + TTCN_Logger::begin_event(TTCN_DEBUG); + TTCN_Logger::log_event("Decoded PDU_ISUP: "); + ret_val.log(); + TTCN_Logger::end_event(); + } + return ret_val; +} + +INTEGER dec__PDU__ISUP__backtrack__noCIC(const OCTETSTRING& stream, PDU__ISUP& pdu) +{ + if (TTCN_Logger::log_this_event(TTCN_Logger::DEBUG_ENCDEC)) { + TTCN_Logger::begin_event(TTCN_Logger::DEBUG_ENCDEC); + TTCN_Logger::log_event_str("dec_PDU_ISUP_backtrack(): Stream before decoding: "); + stream.log(); + TTCN_Logger::end_event(); + } + TTCN_EncDec::set_error_behavior(TTCN_EncDec::ET_ALL, TTCN_EncDec::EB_WARNING); + TTCN_EncDec::clear_error(); + OCTETSTRING mod_stream (int2oct(0,2) + stream); + TTCN_Buffer ttcn_buffer; + ttcn_buffer.put_os(mod_stream); + pdu.decode(PDU__ISUP_descr_, ttcn_buffer, TTCN_EncDec::CT_RAW); + + + if (TTCN_EncDec::get_last_error_type() == TTCN_EncDec::ET_NONE) { + + PDU__ISUP::union_selection_type msg_type = pdu.get_selection(); + switch (msg_type) + { + case PDU__ISUP::ALT_ISUP__ACM: + { + pdu.ISUP__ACM().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__ANM: + { + pdu.ISUP__ANM().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__BLO: + { + pdu.ISUP__BLO().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__BLA: + { + pdu.ISUP__BLA().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__CPG: + { + pdu.ISUP__CPG().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__CGB: + { + pdu.ISUP__CGB().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__CGBA: + { + pdu.ISUP__CGBA().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__GRS: + { + pdu.ISUP__GRS().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__GRA: + { + pdu.ISUP__GRA().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__CGU: + { + pdu.ISUP__CGU().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__CGUA: + { + pdu.ISUP__CGUA().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__CQM: + { + pdu.ISUP__CQM().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__CQR: + { + pdu.ISUP__CQR().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__CFN: + { + pdu.ISUP__CFN().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__COT: + { + pdu.ISUP__COT().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__CCR: + { + pdu.ISUP__CCR().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__FAC: + { + pdu.ISUP__FAC().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__FOT: + { + pdu.ISUP__FOT().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__INF: + { + pdu.ISUP__INF().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__INR: + { + pdu.ISUP__INR().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__IAM: + { + pdu.ISUP__IAM().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__LPA: + { + pdu.ISUP__LPA().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__REL: + { + pdu.ISUP__REL().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__RLC: + { + pdu.ISUP__RLC().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__RSC: + { + pdu.ISUP__RSC().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__RES: + { + pdu.ISUP__RES().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__SUS: + { + pdu.ISUP__SUS().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__UBL: + { + pdu.ISUP__UBL().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__UBA: + { + pdu.ISUP__UBA().cic() = OMIT_VALUE; break; + } + case PDU__ISUP::ALT_ISUP__UCIC: + { + pdu.ISUP__UCIC().cic() = OMIT_VALUE; break; + } + default: + break; + } + + + if (TTCN_Logger::log_this_event(TTCN_Logger::DEBUG_ENCDEC)) { + TTCN_Logger::begin_event(TTCN_Logger::DEBUG_ENCDEC); + TTCN_Logger::log_event_str("dec_PDU_ISUP_backtrack_noCIC(): Decoded @ISUP_Types.PDU_ISUP: "); + pdu.log(); + TTCN_Logger::end_event(); + } + + if (ttcn_buffer.get_pos() < ttcn_buffer.get_len() && TTCN_Logger::log_this_event(TTCN_WARNING)) { + ttcn_buffer.cut(); + OCTETSTRING remaining_stream; + ttcn_buffer.get_string(remaining_stream); + TTCN_Logger::begin_event(TTCN_WARNING); + TTCN_Logger::log_event_str("dec_PDU_ISUP_backtrack(): Warning: Data remained at the end of the stream after successful decoding: "); + remaining_stream.log(); + TTCN_Logger::end_event(); + } + return 0; + } else return 1; +} + +}//namespace diff --git a/ISUP_Q.762_CNL113365_LATEST/src/ISUP_Q.762_CNL113365.grp b/ISUP_Q.762_CNL113365_LATEST/src/ISUP_Q.762_CNL113365.grp new file mode 100644 index 000000000..828a298fe --- /dev/null +++ b/ISUP_Q.762_CNL113365_LATEST/src/ISUP_Q.762_CNL113365.grp @@ -0,0 +1,26 @@ + + + + + + + + + diff --git a/ISUP_Q.762_CNL113365_LATEST/src/ISUP_Types.ttcn b/ISUP_Q.762_CNL113365_LATEST/src/ISUP_Types.ttcn new file mode 100644 index 000000000..26f794bcd --- /dev/null +++ b/ISUP_Q.762_CNL113365_LATEST/src/ISUP_Types.ttcn @@ -0,0 +1,4092 @@ +/////////////////////////////////////////////////////////////////////////////// +// +// Copyright Test Competence Center (TCC) ETH 2011 +// // +// The copyright to the computer program(s) herein is the property of TCC. // +// The program(s) may be used and/or copied only with the written permission // +// of TCC or in accordance with the terms and conditions stipulated in the // +// agreement/contract under which the program(s) have been supplied // +/////////////////////////////////////////////////////////////////////////////// +// +// File: ISUP_Types.ttcn +// Rev: R7D +// Prodnr: CNL 113 365 +// Updated: 2011-05-10 +// Contact: http://ttcn.ericsson.se +/////////////////////////////////////////////////////////////////////////////// +// +// This product is based on the following documents: +//************************************************************************ +// Ericsson Reference for ITU-T : 2/155 17-FAY 112 020/4 Uen, ITU-T ISDN User +// Part, Section A:Formats and Codes +// Standard ITU-T Reference ISUP : Q.763, Signaling System No. 7 - ISDN User +// Part formats and codes +//************************************************************************ +// EED/X 1056-174 Uen - Global Call reference for ISUP and BICC, MSC R12 + +/////////////////////////////////////////////////////////////////////////////// +// ! ! ! ! ! ! ! W A R N I N G ! ! ! ! ! ! ! // +// From R2A02 the parameters are in 'set' and not in 'set of'. It has the // +// consequence, that the parameters will be sent out in fix order (as defined// +// in set) so the tester cannot modify the order of the parameters with // +// modification the order in the template. If the order is important, then // +// the previous version of this protocol module should be used. // +/////////////////////////////////////////////////////////////////////////////// + +//---------------------------------------------------------- +//---------------------------------------------------------- +//The following modification were done from R1A03 to R2A02: +//---------------------------------------------------------- +//---------------------------------------------------------- +// New parameter: +//Calling_name_identity +//Global_call_reference +//------------------------------------------------- +// Modified parameter: +//Calling_geodetic_location: Polygon updated +//CCSS_parameter : replaces CCBS_parameter +//Charged_party_identification : converted into record +//Forward_GVNS: TNRN_Spare->BIT1, lengths->INT4b, RAW coding attributes +//Loop_prevention_indicators : field splitted +//Message_compatibility_information: field name updated +//Network_routing_number: incorrect fields +//Network_specific_facility : was not possible to decode +//Optional_backward_call_indicators: field name updated +//Pivot_counter: PivCount->BIT5 +//Pivot_routing_backward_information : converted into record +//Pivot_routing_forward_information : converted into record +//Redirect_backward_information : converted into record +//Redirect_forward_information : converted into record +//Redirecting_number : field name updated +//Redirection_information : optional keywords added +//Tariff_indicator : optional keywords added +//User_service_information: redesigned +//User_service_information_prime: redesigned +//User_teleservice_information : optional keywords added +//------------------------------------------------- +// Hexorder modified in parameter: +//Call_transfer_number +//Called_IN_number +//Called_directory_number +//Called_party_number +//Calling_party_number +//Connected_number +//Forward_GVNS +//Generic_number +//HTR_information +//Location_number +//Network_routing_number +//Original_called_number +//Original_called_IN_number +//Redirecting_number +//Redirection_number +//Subsequent_number +//------------------------------------------------- +// Parameter, which should be modified, but due to backward compatibility +// it is not modified: +//Parameter_compatibility_information +//------------------------------------------------- +//"set of" was changed to "set" with the following consequence in parameter: +//-Every optional parameter is extended the id and length. +//-The multiple parameters are put into a set with name _set +//-The optional parameters of the messages are put into set where every field +// is optional. +//-For mandatory fix long parameters new type is created via removing id and +// length +//-For mandatory variable long parameters new type is created via removing id +//-For parameters which can be also mandatory and optional, the end of name of +// the optional version is extended with an _OPT + +module ISUP_Types +{ + import from General_Types all; + + external function enc_PDU_ISUP(in PDU_ISUP pdu) return octetstring; + external function dec_PDU_ISUP(in octetstring stream) return PDU_ISUP; + external function dec_PDU_ISUP_noCIC(in octetstring stream) return PDU_ISUP; + external function enc_PDU_ISUP_fast(in PDU_ISUP pdu, out octetstring stream) + with { extension "prototype(fast) encode(RAW)" }; + external function dec_PDU_ISUP_backtrack(in octetstring stream, out PDU_ISUP pdu) return integer + with { extension "prototype(backtrack) decode(RAW)" }; + external function dec_PDU_ISUP_backtrack_noCIC(in octetstring stream, out PDU_ISUP pdu) return integer; + +//************************************************************************ +// ISUP parameters +//************************************************************************ +group ISUP_parameters +{ + +//************************************************************************ +// Circuit Identification Code +// Ericsson Specification Reference: Chapter 2.1.3 +// Standard Reference ISUP : Chapter 1.2 +//************************************************************************ + type record Circuit_identification_code + { + BIT12 CIC, // Circuit identification code + BIT4 Spare // Spare + } with { variant "" }; + + +//************************************************************************ +// Message Type +// Ericsson Specification Reference: Chapter 2.1.3 +// Standard Reference ISUP : Chapter 1.3 +//************************************************************************ + type bitstring ISUP_Message_type length(8) + with { variant "FIELDLENGTH(8)" }; + + +//************************************************************************ +// Pointer +// Ericsson Specification Reference: Chapter 2.1.7 +// Standard Reference ISUP : Chapter 1.9 +//************************************************************************ + type integer Pointer (0..255) + with { variant "FIELDLENGTH(8)" }; + + +//************************************************************************ +// End Of Optional Parameters Indicator +// Ericsson Specification Reference: Chapter 2.3.3.30 +// Standard Reference ISUP : Chapter 3.20 +//************************************************************************ + type octetstring End_of_optional_parameters_indicator length(1) + with { variant "FIELDLENGTH(1)" }; + + +//************************************************************************ +// Access Delivery Information +// Ericsson Specification Reference: Chapter 2.3.3.1 +// Standard Reference ISUP : Chapter 3.2 +//************************************************************************ + type record Access_delivery_information // 3.2 / Q.763 + { + BIT8 id, + INT1 lengthField, + + BIT1 AccessDel, // Access delivery indicator + BIT7 Spare // Spare + } with { variant "PRESENCE( id = '00101110'B)"; + variant (lengthField)"LENGTHTO(AccessDel,Spare)"; + }; + + +//************************************************************************ +// Access Transport +// Ericsson Specification Reference: Chapter 2.3.3.2 +// Standard Reference ISUP : Chapter 3.3 +//************************************************************************ + type record Access_transport + { + BIT8 id, + INT1 lengthField, + + OCTN ATP_field + } with { variant "PRESENCE( id = '00000011'B)"; + variant (lengthField)"LENGTHTO(ATP_field)"; + }; + + +//************************************************************************ +// Additional Charging Information +// Ericsson Specification Reference: Chapter 2.3.3.3 +//************************************************************************ + type record Additional_charging_information + { + BIT8 id, + INT1 lengthField, + + BIT8 AddChargeInfo // Additional charging information + } with { variant "PRESENCE( id = '11111010'B)"; + variant (lengthField)"LENGTHTO(AddChargeInfo)"; + }; + + +//************************************************************************ +// Additional Routing Information +// Ericsson Specification Reference: Chapter 2.3.3.4 +//************************************************************************ + type record Additional_routing_information + { + BIT8 id, + INT1 lengthField, + + OCT2 AddRoutInfo // Additional routing information + } with { variant "PRESENCE( id = '11111011'B)"; + variant (lengthField)"LENGTHTO(AddRoutInfo)"; + }; + + +//************************************************************************ +// Application Transport Parameter +// Standard Reference ISUP : Chapter 3.82 +//************************************************************************ + type record Application_transport_parameter + { + BIT8 id, + INT1 lengthField, + + BIT7 applicationContextIdOct1, // Application context identifier + BIT1 extInd1, // Extension indicator + BIT7 applicationContextIdOct1a optional, // Application context identifier + BIT1 extInd1a optional, // Extension indicator + BIT1 releaseCallInd, // Release call indicator + BIT1 sendNotificationInd, // Send notification indicator + BIT5 spare, // Spare + BIT1 extInd2, // Extension indicator + BIT6 aPMSegmentationInd, // APM segmentation indicator + BIT1 sequenceInd, // Sequence indicator + BIT1 extInd3, // Extension indicator + BIT7 segmentationLocalRef optional, // Segmentation local reference + BIT1 extInd3a optional, // Extension indicator + OCTN aPMUserInfo // Encapsulated application information + } with { variant "EXTENSION_BIT_GROUP (yes, applicationContextIdOct1, + extInd1a)"; + variant "EXTENSION_BIT_GROUP (yes, aPMSegmentationInd, + extInd3a)"; + variant "PRESENCE( id = '01111000'B)"; + variant (lengthField)"LENGTHTO(applicationContextIdOct1,extInd1, + applicationContextIdOct1a,extInd1a, + releaseCallInd,sendNotificationInd, + spare,extInd2,aPMSegmentationInd, + sequenceInd,extInd3, + segmentationLocalRef,extInd3a, + aPMUserInfo)"; + }; + + type set of Application_transport_parameter + Application_transport_parameter_set + with { variant "" }; + + +//************************************************************************ +// Automatic Congestion Level +// Ericsson Specification Reference: Chapter 2.3.3.5 +// Standard Reference ISUP : Chapter 3.4 +//************************************************************************ + type record Automatic_congestion_level + { + BIT8 id, + INT1 lengthField, + + BIT8 CongLevel + } with { variant "PRESENCE( id = '00100111'B)"; + variant (lengthField)"LENGTHTO(CongLevel)"; + }; + + +//************************************************************************ +// Backward Call Indicators +// Ericsson Specification Reference: Chapter 2.3.3.6 +// Standard Reference ISUP : Chapter 3.5 +//************************************************************************ + type record Backward_call_indicators_OPT + { + BIT8 id, + INT1 lengthField, + + BIT2 ChargeInd, // Charge indicator + BIT2 CalledPartyStatusInd, // Called party's status indicator + BIT2 CalledPartyCatInd, // Called party's category indicator + BIT2 EndToEndInd, // End-to-end method indicator + BIT1 InterworkingInd, // Interworking indicator + BIT1 EndToEndInfoInd, // End-to-end INFormation indicator + BIT1 ISUPInd, // ISDN User Part indicator + BIT1 HoldingInd, // Holding indicator + BIT1 ISDNAccessInd, // ISDN access indicator + BIT1 EchoControlDevInd, // Echo CONtrol device indicator + BIT2 SCCPMethodInd // SCCP method indicator + } with { variant "PRESENCE( id = '00010001'B)"; + variant (lengthField)"LENGTHTO(ChargeInd,CalledPartyStatusInd, + CalledPartyCatInd,EndToEndInd, + InterworkingInd,EndToEndInfoInd, + ISUPInd,HoldingInd,ISDNAccessInd, + EchoControlDevInd,SCCPMethodInd)"; + }; + + type record Backward_call_indicators + { + BIT2 ChargeInd, // Charge indicator + BIT2 CalledPartyStatusInd, // Called party's status indicator + BIT2 CalledPartyCatInd, // Called party's category indicator + BIT2 EndToEndInd, // End-to-end method indicator + BIT1 InterworkingInd, // Interworking indicator + BIT1 EndToEndInfoInd, // End-to-end INFormation indicator + BIT1 ISUPInd, // ISDN User Part indicator + BIT1 HoldingInd, // Holding indicator + BIT1 ISDNAccessInd, // ISDN access indicator + BIT1 EchoControlDevInd, // Echo CONtrol device indicator + BIT2 SCCPMethodInd // SCCP method indicator + } with { variant ""}; + +//************************************************************************ +// Backward GVNS +// Ericsson Specification Reference: Chapter 2.3.3.7 +// Standard Reference ISUP : Chapter 3.62 +//************************************************************************ + type record Backward_GVNS + { + BIT8 id, + INT1 lengthField, + + BIT2 TerminatingAccessInd, // Terminating access indicator + BIT5 Spare, // Spare + BIT1 ExtensionInd // Extension indicator + } with { variant "PRESENCE( id = '01001101'B)"; + variant (lengthField)"LENGTHTO(TerminatingAccessInd,Spare, + ExtensionInd)"; + }; + + +//************************************************************************ +// Call Diversion Information +// Ericsson Specification Reference: Chapter 2.3.3.8 +// Standard Reference ISUP : Chapter 3.6 +//************************************************************************ + type record Call_diversion_information + { + BIT8 id, + INT1 lengthField, + + BIT3 NotificationSubscriptionOptions, // Notification subscription options + BIT4 RedirectionReason, // Redirecting reason + BIT1 Spare // Spare + } with { variant "PRESENCE( id = '00110110'B)"; + variant (lengthField)"LENGTHTO(NotificationSubscriptionOptions, + RedirectionReason,Spare)"; + }; + + +//************************************************************************ +// Call Diversion Treatment Information +// Ericsson Specification Reference: Chapter 2.3.3.9 +// Standard Reference ISUP : Chapter 3.72 +//************************************************************************ + type record Call_diversion_treatment_indicators + { + BIT8 id, + INT1 lengthField, + + BIT2 CallDivertedInd, // Call to be diverted indicator + BIT5 Spare, // Spare + BIT1 ExtensionInd // Extension indicator + } with { variant "PRESENCE( id = '01101110'B)"; + variant(lengthField)"LENGTHTO(CallDivertedInd,Spare,ExtensionInd)"; + }; + + +//************************************************************************ +// Call History Information +// Ericsson Specification Reference: Chapter 2.3.3.10 +// Standard Reference ISUP : Chapter 3.7 +//************************************************************************ + type record Call_history_information + { + BIT8 id, + INT1 lengthField, + + OCT2 PropagatDelayValue + } with { variant "PRESENCE( id = '00101101'B)"; + variant (lengthField)"LENGTHTO(PropagatDelayValue)"; + }; + + +//************************************************************************ +// Call Offering Treatment Indicators +// Ericsson Specification Reference: Chapter 2.3.3.11 +// Standard Reference ISUP : Chapter 3.74 +//************************************************************************ + type record Call_offering_treatment_indicators + { + BIT8 id, + INT1 lengthField, + + BIT2 CallOfferedInd, // Call to be offered indicator + BIT5 Spare, // Spare + BIT1 ExtensionInd // Extension indicator + } with { variant "PRESENCE( id = '01110000'B)"; + variant (lengthField)"LENGTHTO(CallOfferedInd,Spare,ExtensionInd)"; + }; + + +//************************************************************************ +// Call Reference +// Standard Reference ISUP : Chapter 3.8 +//************************************************************************ + type record Call_reference + { + BIT8 id, + INT1 lengthField, + + OCT5 CRef_contents // Call identity + } with { variant "PRESENCE( id = '00000001'B)"; + variant (lengthField)"LENGTHTO(CRef_contents)"; + }; + + +//************************************************************************ +// Call Transfer Number +// Ericsson Specification Reference: Chapter 2.3.3.12 +// Standard Reference ISUP : Chapter 3.64 +//************************************************************************ + type record Call_transfer_number + { + BIT8 id, + INT1 lengthField, + + BIT7 NatureOfAddrInd, // Nature of address indicator + BIT1 OddEven, // Odd/even indicator + BIT2 ScreeningInd, // Screening indicator + BIT2 AddrPresentRestInd, // Address presentation REStricted indicator + BIT3 NumberingPlanInd, // Numbering plan indicator + BIT1 Spare, // Spare + HEX1_32 AddrSignals optional, // Address signals and Filler if odd addr.signals + HEX1 Filler optional + } with { variant (AddrSignals) "HEXORDER(low)"; + variant "PRESENCE( id = '01000101'B)"; + variant (lengthField)"LENGTHTO(NatureOfAddrInd,OddEven, + ScreeningInd,AddrPresentRestInd, + NumberingPlanInd,Spare, + AddrSignals,Filler)"; + }; + + +//************************************************************************ +// Call Transfer Reference +// Ericsson Specification Reference: Chapter 2.3.3.13 +// Standard Reference ISUP : Chapter 3.65 +//************************************************************************ + type record Call_transfer_reference + { + BIT8 id, + INT1 lengthField, + + BIT8 CallTransferId // Call transfer identity + } with { variant "PRESENCE( id = '01000011'B)"; + variant (lengthField)"LENGTHTO(CallTransferId)"; + }; + + +//************************************************************************ +// Call Transfer Treatment Indicators +// Ericsson Specification Reference: Chapter 2.3.3.14 +//************************************************************************ + type record Call_transfer_treatment_indicators + { + BIT8 id, + INT1 lengthField, + + BIT2 CallTransferredInd, // Call to be transferred indicator + BIT5 Spare, // Spare + BIT1 ExtensionInd // Extension indicator + } with { variant "PRESENCE( id = '11110011'B)"; + variant (lengthField)"LENGTHTO(CallTransferredInd,Spare, + ExtensionInd)"; + }; + + +//************************************************************************ +// Called IN Number +// Standard Reference ISUP : Chapter 3.73 +//************************************************************************ + type record Called_IN_number + { + BIT8 id, + INT1 lengthField, + + BIT7 NatureOfAddrInd, // Nature of address indicator + BIT1 OddEven, // Odd/even indicator + BIT2 spare_1, + BIT2 AddrPresentRestInd, // Address presentation REStricted indicator + BIT3 NumberingPlanInd, // Numbering plan indicator + BIT1 spare_2, // Numbering plan indicator + HEX1_32 AddrSignals optional, // Address signals and Filler if odd addr.signals + HEX1 Filler optional + } with { variant (AddrSignals) "HEXORDER(low)"; + variant "PRESENCE( id = '01101111'B)"; + variant (lengthField)"LENGTHTO(NatureOfAddrInd,OddEven, + spare_1,AddrPresentRestInd, + NumberingPlanInd,spare_2, + AddrSignals,Filler)"; + }; + +//************************************************************************ +// Called Directory Number +// Standard Reference ISUP : Chapter 3.86 +//************************************************************************ + type record Called_directory_number + { + BIT8 id, + INT1 lengthField, + + BIT7 NatureOfAddrInd, // Nature of address indicator + BIT1 OddEven, // Odd/even indicator + BIT4 spare, // spare + BIT3 NumberingPlanInd, // Numbering plan indicator + BIT1 INNInd, // Internal network number indicator + HEX1_32 AddrSignals, // Address signals and Filler if odd addr.signals + HEX1 Filler optional + } with { variant (AddrSignals) "HEXORDER(low)"; + variant "PRESENCE( id = '01111101'B)"; + variant (lengthField)"LENGTHTO(NatureOfAddrInd,OddEven, + spare,NumberingPlanInd, + INNInd,AddrSignals,Filler)"; + }; + + + +//************************************************************************ +// Called Party Number +// Ericsson Specification Reference: Chapter 2.3.3.15 +// Standard Reference ISUP : Chapter 3.9 +//************************************************************************ + type record Called_party_number + { + INT1 lengthField, + + BIT7 NatureOfAddrInd, // Nature of address indicator + BIT1 OddEven, // Odd/even indicator + BIT4 Spare, // spare + BIT3 NumberingPlanInd, // Numbering plan indicator + BIT1 INNInd, // Internal network number indicator + HEX1_32 AddrSignals, // Address signals and Filler if odd addr.signals + HEX1 Filler optional + } with { variant (AddrSignals) "HEXORDER(low)"; + variant (lengthField)"LENGTHTO(NatureOfAddrInd,OddEven, + Spare,NumberingPlanInd, + INNInd,AddrSignals,Filler)"; + }; + + +//************************************************************************ +// Calling Geodetic Location +// Standard Reference ISUP : Chapter 3.88 +//************************************************************************ + type record Ellipsoid_point + { + OCT3 DgrLat, // Degrees of latitude with sign + OCT3 DgrLong // Degrees of longitude + } with { variant "" }; + + type record Ellipsoid_point_with_uncertainty + { + OCT3 DgrLat, // Degrees of latitude with sign + OCT3 DgrLong, // Degrees of longitude + BIT7 UncCode, // Uncertainty code + BIT1 spare_1, // Spare + BIT7 Conf, // Confidence + BIT1 spare_2 // Spare + } with { variant "" }; + + type record Point_with_altitude_and_uncertainty + { + OCT3 DgrLat, // Degrees of latitude with sign + OCT3 DgrLong, // Degrees of longitude + BIT7 UncCode_1, // Uncertainty code + BIT1 spare_1, // Spare + OCT2 Alt, // Altitude with sign + BIT7 UncCode_2, // Uncertainty code + BIT1 spare_2, // Spare + BIT7 Conf, // Confidence + BIT1 spare_3 // Spare + } with { variant "" }; + + type record Ellipse_on_the_ellipsoid + { + OCT3 DgrLat, // Degrees of latitude with sign + OCT3 DgrLong, // Degrees of longitude + BIT7 MajRad, // Major radius + BIT1 spare_1, // Spare + BIT7 MinRad, // Minor radius + BIT1 spare_2, // Spare + OCT1 orient, // Orientation + BIT7 Conf, // Confidence + BIT1 spare_3 // Spare + } with { variant "" }; + + type record Ellipsoid_circle_sector + { + OCT3 DgrLat, // Degrees of latitude with sign + OCT3 DgrLong, // Degrees of longitude + BIT7 Rad, // Radius + BIT1 spare_1, // Spare + OCT1 Offset, // Offset + OCT1 IncAng, // Included angle + BIT7 Conf, // Confidence + BIT1 spare_2 // Spare + } with { variant "" }; + + type record Polygon + { + integer NumPoints, // Number of points + BIT4 spare_1, // Spare + DgrLat_longs DgrLat_Longs, // Degrees of latitude / logitude + BIT7 Conf, // Confidence + BIT1 spare_2 // Spare + } with { variant (NumPoints)"LENGTHTO(DgrLat_Longs)"; + variant (NumPoints)"UNIT(elements)"; + variant (NumPoints) "FIELDLENGTH(4)"; + }; + + type record of DgrLat_long DgrLat_longs// Degrees of latitude / logitude + + type record DgrLat_long + { + OCT3 DgrLat, // Degrees of latitude with sign + OCT3 DgrLong // Degrees of longitude + } with { variant "" }; + + type union Shape_description_union + { + Ellipsoid_point EP, + Ellipsoid_point_with_uncertainty EPU, + Point_with_altitude_and_uncertainty PAU, + Ellipse_on_the_ellipsoid EonE, + Ellipsoid_circle_sector ECS, + Polygon Pol + } with { variant "" }; + + type record Calling_geodetic_location + { + BIT8 id, + INT1 lengthField, + + BIT2 Scr, // Screening + BIT2 LPRI, // Location presentation REStricted indicator + BIT4 Spare, // Spare + BIT7 typeSh, // Type of shape + BIT1 ExtI, // Extension indicator + Shape_description_union ShapeDes + } with { variant (ShapeDes) "CROSSTAG( + EP, typeSh = '0000000'B; + EPU, typeSh = '0000001'B; + PAU, typeSh = '0000010'B; + EonE, typeSh = '0000011'B; + ECS, typeSh = '0000100'B; + Pol, typeSh = '0000101'B + )"; + variant "PRESENCE( id = '10000001'B)"; + variant (lengthField)"LENGTHTO(Scr,LPRI,Spare,typeSh,ExtI, + ShapeDes)"; + }; + +//************************************************************************ +// Calling name identity +// Ericsson Specification Reference: Chapter 2.3.3.16 +//************************************************************************ + type record Calling_name_identity + { + BIT8 id, + INT1 lengthField, + + BIT2 namePresentationRestrictedInd, // Name presentation restricted ind. + BIT2 screeningIndicator, // Screening indicator + BIT1 availabilityInd, // Availability indicator + BIT3 typeOfName, // Type of name + BIT8 encodingInd, // Encoding identification + OCT1_50 characterSubfield // Character + } with { variant "PRESENCE( id = '11110010'B)"; + variant (lengthField)"LENGTHTO(namePresentationRestrictedInd, + screeningIndicator,availabilityInd, + typeOfName,encodingInd, + characterSubfield)"; + }; + + +//************************************************************************ +// Calling Party Number +// Ericsson Specification Reference: Chapter 2.3.3.17 +// Standard Reference ISUP : Chapter 3.10 +//************************************************************************ + type record Calling_party_number + { + BIT8 id, + INT1 lengthField, + + BIT7 NatureOfAddrInd, // Nature of address indicator + BIT1 OddEven, // Odd/even indicator + BIT2 ScreeningInd, // Screening indicator + BIT2 AddrPresentRestInd, // Address presentation REStricted indicator + BIT3 NumberingPlanInd, // Numbering plan indicator + BIT1 NIInd, // Calling party number incomplete indicator + HEX1_32 AddrSignals optional, // Address signals and Filler if odd addr.signals + HEX1 Filler optional + } with { variant (AddrSignals) "HEXORDER(low)"; + variant "PRESENCE( id = '00001010'B)"; + variant (lengthField)"LENGTHTO(NatureOfAddrInd,OddEven, + ScreeningInd,AddrPresentRestInd, + NumberingPlanInd,NIInd, + AddrSignals,Filler)"; + }; + +//************************************************************************ +// Calling Party Number +// Ericsson Specification Reference: Chapter 2.3.3.18 +// Standard Reference ISUP : Chapter 3.11 +//************************************************************************ + type record Calling_partys_category_OPT + { + BIT8 id, + INT1 lengthField, + + BIT8 CallingPartysCategory // Calling party's category + } with { variant "PRESENCE( id = '00001001'B)"; + variant (lengthField)"LENGTHTO(CallingPartysCategory)"; + }; + + type record Calling_partys_category + { + BIT8 CallingPartysCategory // Calling party's category + } with { variant "" }; + +//************************************************************************ +// Cause Indicators +// Ericsson Specification Reference: Chapter 2.3.3.19 +// Standard Reference ISUP : Chapter 3.12 +//************************************************************************ + type record Cause_indicators_OPT + { + BIT8 id, + INT1 lengthField, + + BIT4 Location, // Location + BIT1 Spare, // Spare + BIT2 CodingStandard, // Coding standard + BIT1 Ext1, // Extension indicator + BIT7 CauseValue, // Vause value + BIT1 Ext2, // Extension indicator + OCTN Diagnostics optional // Diagnostic(s) (if any) + } with { variant "PRESENCE( id = '00010010'B)"; + variant (lengthField)"LENGTHTO(Location,Spare,CodingStandard, + Ext1,CauseValue, + Ext2,Diagnostics)"; + }; + + type record Cause_indicators + { + INT1 lengthField, + + BIT4 Location, // Location + BIT1 Spare, // Spare + BIT2 CodingStandard, // Coding standard + BIT1 Ext1, // Extension indicator + BIT7 Reserved optional, // National Recommendation + BIT1 Ext1a optional, // Present when Reserved field is present + BIT7 CauseValue, // Vause value + BIT1 Ext2, // Extension indicator + OCTN Diagnostics optional // Diagnostic(s) (if any) + } with { variant (Reserved) "PRESENCE (Ext1='0'B)"; + variant (Ext1a) "PRESENCE (Ext1='0'B)"; + variant (lengthField)"LENGTHTO(Location,Spare,CodingStandard, + Ext1,Reserved,Ext1a,CauseValue, + Ext2,Diagnostics)"; + }; + + +//************************************************************************ +// CCNR Possible Indicator +// Standard Reference ISUP : Chapter 3.83 +//************************************************************************ + type record CCNR_possible_indicator + { + BIT8 id, + INT1 lengthField, + + BIT1 CCNRPInd, // CCNR possible indicator + BIT7 spare // Spare + } with { variant "PRESENCE( id = '01111010'B)"; + variant (lengthField)"LENGTHTO(CCNRPInd,spare)"; + }; + + +//************************************************************************ +// CCSS +// Ericsson Specification Reference: Chapter 2.3.3.20 +// Standard Reference ISUP : Chapter 3.63 +//************************************************************************ + type record CCSS_parameter + { + BIT8 id, + INT1 lengthField, + + BIT1 CCSSCallInd, // CCSS call indicator + BIT7 Spare + } with { variant "PRESENCE( id = '01001011'B)"; + variant (lengthField)"LENGTHTO(CCSSCallInd,Spare)"; + }; + + +//************************************************************************ +// Charged Party Identification +// Standard Reference ISUP : Chapter 3.75 +//************************************************************************ + type record Charged_party_identification + { + BIT8 id, + INT1 lengthField, + + OCTN ChargedPartyId + } with { variant "PRESENCE( id = '01110001'B)"; + variant (lengthField)"LENGTHTO(ChargedPartyId)"; + }; + + +//************************************************************************ +// Circuit Assignment Map +// Standard Reference ISUP : Chapter 3.69 +//************************************************************************ + type record Circuit_assignment_map + { + BIT8 id, + INT1 lengthField, + + BIT6 MapType, // Map type + BIT2 spare_1, // Spare + BIT31 MapFormat, // Map format + BIT1 spare_2 // spare + } with { variant "PRESENCE( id = '00100101'B)"; + variant (lengthField)"LENGTHTO(MapType,spare_1,MapFormat,spare_2)"; + }; + + +//************************************************************************ +// Circuit Group Supervision Message Type Indicator +// Ericsson Specification Reference: Chapter 2.3.3.21 +// Standard Reference ISUP : Chapter 3.13 +//************************************************************************ + type record Circuit_group_supervision_message_type_indicator + { + BIT2 Type, // Type indicator + BIT6 Spare // Spare + } with { variant "" }; + + +//************************************************************************ +// Circuit State Indicator +// Ericsson Specification Reference: Chapter 2.3.3.22 +// Standard Reference ISUP : Chapter 3.14 +//************************************************************************ + type record Circuit_state_indicator + { + INT1 lengthField, + + OCTN CircuitStateIndicator + } with { variant (lengthField)"LENGTHTO(CircuitStateIndicator)"; + }; + + +//************************************************************************ +// Closed User Group Interlock Code +// Ericsson Specification Reference: Chapter 2.3.3.23 +// Standard Reference ISUP : Chapter 3.15 +//************************************************************************ +// The contents of this parameter are not subdivided because values +//are easy to give as hexnumbers. + type record Closed_user_group_interlock_code + { + BIT8 id, + INT1 lengthField, + + OCT4 CUGIC_contents // CUGIC + } with { variant "PRESENCE( id = '00011010'B)"; + variant (lengthField)"LENGTHTO(CUGIC_contents)"; + }; + + +//************************************************************************ +// Collect Call Request +// Standard Reference ISUP : Chapter 3.81 +//************************************************************************ + type record Collect_call_request + { + BIT8 id, + INT1 lengthField, + + BIT1 CCReqInd, // Collect call request indicator + BIT7 spare // Spare + } with { variant "PRESENCE( id = '01111001'B)"; + variant (lengthField)"LENGTHTO(CCReqInd,spare)"; + }; + + +//************************************************************************ +// Conference Treatment Indicators +// Ericsson Specification Reference: Chapter 2.3.3.24 +// Standard Reference ISUP : Chapter 3.76 +//************************************************************************ + type record Conference_treatment_indicators + { + BIT8 id, + INT1 lengthField, + + BIT2 ConfAcceptanceInd, // Conference acceptance indicator + BIT5 Spare, // Spare + BIT1 ExtensionInd // Extension indicator + } with { variant "PRESENCE( id = '01110010'B)"; + variant (lengthField)"LENGTHTO(ConfAcceptanceInd,Spare, + ExtensionInd)"; + }; + + +//************************************************************************ +// Connected Number +// Ericsson Specification Reference: Chapter 2.3.3.25 +// Standard Reference ISUP : Chapter 3.16 +//************************************************************************ + type record Connected_number + { + BIT8 id, + INT1 lengthField, + + BIT7 NatureOfAddrInd, // Nature of address indicators + BIT1 OddEven, // Odd/even indicator + BIT2 ScreeningInd, // Screening indicator + BIT2 AddrPresentRestInd, // Address presentation REStriction indicator + BIT3 NumberingPlanInd, // Numbering plan indicator + BIT1 Spare, // Spare + HEX1_32 AddrSignals optional, // Address signals and Filler if odd addr.signals + HEX1 Filler optional + } with { variant (AddrSignals) "HEXORDER(low)"; + variant "PRESENCE( id = '00100001'B)"; + variant (lengthField)"LENGTHTO(NatureOfAddrInd,OddEven, + ScreeningInd,AddrPresentRestInd, + NumberingPlanInd,Spare, + AddrSignals,Filler)"; + }; + +//************************************************************************ +// Connection Request +// Standard Reference ISUP : Chapter 3.17 +//************************************************************************ + type record Connection_request + { + BIT8 id, + INT1 lengthField, + + OCT3 LocRef, // Local reference + OCT2 SPC_contents, // Signalling point code + BIT8 PC, // Protocol class + BIT8 credit // Credit + } with { variant "PRESENCE( id = '00001101'B)"; + variant (lengthField)"LENGTHTO(LocRef,SPC_contents,PC,credit)"; + }; + + +//************************************************************************ +// Continuity Indicators +// Ericsson Specification Reference: Chapter 2.3.3.26 +// Standard Reference ISUP : Chapter 3.18 +//************************************************************************ + type record Continuity_indicators + { + BIT1 ContInd_field, // Continuity indicator + BIT7 Spare // Spare + } with { variant "" }; + + +//************************************************************************ +// Correlation Id +// Ericsson Specification Reference: Chapter 2.3.3.27 +// Standard Reference ISUP : Chapter 3.70 +//************************************************************************ + type record Correlation_id + { + BIT8 id, + INT1 lengthField, + + OCTN CorrelationId + } with { variant "PRESENCE( id = '01100101'B)"; + variant (lengthField)"LENGTHTO(CorrelationId)"; + }; + + +//************************************************************************ +// Display Information +// Ericsson Specification Reference: Chapter 2.3.3.28 +// Standard Reference ISUP : Chapter 3.77 +//************************************************************************ + type record Display_information + { + BIT8 id, + INT1 lengthField, + + OCTN DisplayInfo + } with { variant "PRESENCE( id = '01110011'B)"; + variant (lengthField)"LENGTHTO(DisplayInfo)"; + }; + + +//************************************************************************ +// Distributed Dynamic Routing Indicators +// Ericsson Specification Reference: Chapter 2.3.3.29 +//************************************************************************ + type record Distributed_dynamic_routing_indicators + { + BIT8 id, + INT1 lengthField, + + BIT1 AutoReroutingInd, // Automatic re-routing indicator + BIT1 EventDepRoutingInd, // Event dependent routing indicator + BIT6 Spare // Spare + } with { variant "PRESENCE( id = '11111000'B)"; + variant (lengthField)"LENGTHTO(AutoReroutingInd,EventDepRoutingInd, + Spare)"; + }; + + +//************************************************************************ +// Echo Control Information +// Standard Reference ISUP : Chapter 3.19 +//************************************************************************ + type record Echo_control_information + { + BIT8 id, + INT1 lengthField, + + BIT2 OEchoRsI, // Outgoing echo CONtrol device INFormation indicator + BIT2 IEchoRsI, // Incoming echo CONtrol device INFormation indicator + BIT2 OEchoRqI, // Outgoing echo CONtrol device request indicator + BIT2 IEchoRqI // Incoming echo CONtrol device request indicator + } with { variant "PRESENCE( id = '00110111'B)"; + variant (lengthField)"LENGTHTO(OEchoRsI,IEchoRsI,OEchoRqI, + IEchoRqI)"; + }; + + +//************************************************************************ +// Event Information +// Ericsson Specification Reference: Chapter 2.3.3.31 +// Standard Reference ISUP : Chapter 3.21 +//************************************************************************ + type record Event_information + { + BIT7 EventInd, // Event indicator + BIT1 EventPresentRestrInd // Event presentation retriction indicator + } with { variant ""}; + + +//************************************************************************ +// Facility Indicator +// Ericsson Specification Reference: Chapter 2.3.3.32 +// Standard Reference ISUP : Chapter 3.22 +//************************************************************************ + type record Facility_indicator + { + OCT1 FacilityInd // Facility indicator + } with { variant "" }; + + +//************************************************************************ +// Forward Call Indicators +// Ericsson Specification Reference: Chapter 2.3.3.33 +// Standard Reference ISUP : Chapter 3.23 +//************************************************************************ + type record Forward_call_indicators + { + BIT1 NatIntCallInd, // National/international call indicator + BIT2 EndToEndMethInd, // End-to-end method indicator + BIT1 InterworkInd, // Interworking indicator + BIT1 EndToEndInfoInd, // End-to-end INFormation indicator + BIT1 ISUPInd, // ISDN User Part indicator + BIT2 ISUPPreferenceInd, // ISDN User Part preference indicator + BIT1 ISDNAccessInd, // ISDN access indicator + BIT2 SCCPMethodInd, // SCCP method indicator + BIT1 Spare, // Spare + BIT2 Reserved, // Reserved + BIT2 VPNCallInd // VPN call indicator (national use) + } with { variant "" }; + + +//************************************************************************ +// Forward GVNS +// Ericsson Specification Reference: Chapter 2.3.3.34 +// Standard Reference ISUP : Chapter 3.66 +//************************************************************************ + type record Forward_GVNS + { + BIT8 id, + INT1 lengthField, + + INT4b OPSP_Len, // OPSP length indicator + BIT3 OPSP_Spare, // Spare + BIT1 OPSP_OddEven, // Odd/even indicator + HEX1_32 OPSP_AddSign optional, // Digits and Filler if odd digits + HEX1 OPSP_Filler optional, + INT4b GUG_Len, // GUG length indicator + BIT3 GUG_Spare, // Spare + BIT1 GUG_OddEven, // Odd/even indicator + HEX1_32 GUG_AddSign optional, // Digits and Filler if odd digits + HEX1 GUG_Filler optional, + INT4b TNRN_Len, // TNRN length indicator + BIT3 TNRN_NumPlanInd, // Numbering plan indicator + BIT1 TNRN_OddEven, // Odd/even indicator + BIT7 TNRN_NatOfAddInd optional, // Nature of address indicator + BIT1 TNRN_Spare optional, // Spare + HEX1_32 TNRN_AddSign optional, // Digits and Filler if odd digits + HEX1 TNRN_Filler optional + } with { variant (OPSP_Len) "LENGTHTO(OPSP_AddSign,OPSP_Filler)"; + variant (GUG_Len) "LENGTHTO(GUG_AddSign,GUG_Filler)"; + variant (TNRN_Len) "LENGTHTO(TNRN_NatOfAddInd,TNRN_Spare, + TNRN_AddSign,TNRN_Filler)"; + variant (OPSP_AddSign) "HEXORDER(low)"; + variant (GUG_AddSign) "HEXORDER(low)"; + variant (TNRN_AddSign) "HEXORDER(low)"; + variant "PRESENCE( id = '01001100'B)"; + variant (lengthField)"LENGTHTO(OPSP_Len,OPSP_Spare,OPSP_OddEven, + OPSP_AddSign,OPSP_Filler,GUG_Len, + GUG_Spare,GUG_OddEven,GUG_AddSign, + GUG_Filler,TNRN_Len,TNRN_NumPlanInd, + TNRN_OddEven,TNRN_NatOfAddInd, + TNRN_Spare,TNRN_AddSign, + TNRN_Filler)"; + }; + + +//************************************************************************ +// Freephone Indicators +// Ericsson Specification Reference: Chapter 2.3.3.35 +//************************************************************************ + type record Freephone_indicators + { + BIT8 id, + INT1 lengthField, + + BIT1 FreephoneInd, // Freephone indicator + BIT7 Spare // Spare + } with { variant "PRESENCE( id = '01000001'B)"; + variant (lengthField)"LENGTHTO(FreephoneInd,Spare)"; + }; + + +//************************************************************************ +// Generic Digits +// Ericsson Specification Reference: Chapter 2.3.3.36 +// Standard Reference ISUP : Chapter 3.24 +//************************************************************************ + type record Generic_digits + { + BIT8 id, + INT1 lengthField, + + BIT5 TypeOfDigits, // Type of digits + BIT3 EncodingScheme, // Encoding scheme + HEX1_32 Digits // Digits + } with { variant "PRESENCE( id = '11000001'B)"; + variant (lengthField)"LENGTHTO(TypeOfDigits,EncodingScheme, + Digits)"; + }; + + type set of Generic_digits Generic_digits_set + with { variant "" }; + + +//************************************************************************ +// Generic Notification Indicator +// Ericsson Specification Reference: Chapter 2.3.3.37 +// Standard Reference ISUP : Chapter 3.25 +//************************************************************************ + type record Generic_notification_indicator + { + BIT8 id, + INT1 lengthField, + + BIT7 NotificationInd, // Notification indicator + BIT1 ExtInd // Extension indicator + } with { variant "PRESENCE( id = '00101100'B)"; + variant (lengthField)"LENGTHTO(NotificationInd,ExtInd)"; + }; + + type set of Generic_notification_indicator + Generic_notification_indicator_set + with { variant "" }; + + +//************************************************************************ +// Generic Number +// Ericsson Specification Reference: Chapter 2.3.3.38 +// Standard Reference ISUP : Chapter 3.26 +//************************************************************************ + type record Generic_number + { + BIT8 id, + INT1 lengthField, + + BIT8 NumQualifier, // Number qualifier indicator + BIT7 NatureOfAddrInd, // Nature of address indicator + BIT1 Odd_Even, // Odd/even indicator + BIT2 ScreeningInd, // Screening indicator + BIT2 AddrPresentRestInd, // Address presesntation REStricted indicator + BIT3 NumberingPlanInd, // Numbering plan indicator + BIT1 NIInd, // Number incomplete indicator + HEX1_32 AddrSignals optional, // Address signals and Filler if odd addr.signals + HEX1 Filler optional + } with { variant (AddrSignals) "HEXORDER(low)"; + variant "PRESENCE( id = '11000000'B)"; + variant (lengthField)"LENGTHTO(NumQualifier,NatureOfAddrInd, + Odd_Even,ScreeningInd, + AddrPresentRestInd,NumberingPlanInd, + NIInd,AddrSignals,Filler)"; + }; + + type set of Generic_number Generic_number_set + with { variant "" }; + + + //************************************************************************ +// HTR Information +// Standard Reference ISUP : Chapter 3.89 +//************************************************************************ + type record HTR_information + { + BIT8 id, + INT1 lengthField, + + BIT7 NatureOfAddrInd, // Nature of address indicator + BIT1 OddEven, // Odd/even indicator + BIT4 spare_1, // Spare + BIT3 NumberingPlanInd, // Numbering plan indicator + BIT1 spare_2, // Spare + HEX1_32 AddrSignals, // Address signals and Filler if odd addr.signals + HEX1 Filler optional + } with { variant (AddrSignals) "HEXORDER(low)"; + variant "PRESENCE( id = '10000010'B)"; + variant (lengthField)"LENGTHTO(NatureOfAddrInd,OddEven,spare_1, + NumberingPlanInd,spare_2, + AddrSignals,Filler)"; + }; + +//************************************************************************ +// Hop Counter +// Ericsson Specification Reference: Chapter 2.3.3.39 +// Standard Reference ISUP : Chapter 3.80 +//************************************************************************ + type record Hop_counter + { + BIT8 id, + INT1 lengthField, + + BIT5 HopCount, // Hop counter + BIT3 spare // Spare + } with { variant "PRESENCE( id = '00111101'B)"; + variant (lengthField)"LENGTHTO(HopCount,spare)"; + }; + + +//************************************************************************ +// Information Indicators +// Ericsson Specification Reference: Chapter 2.3.3.40 +// Standard Reference ISUP : Chapter 3.28 +//************************************************************************ + type record Information_indicators + { + BIT2 CallingPartyAddrRespInd, // Calling party address RESponse indicator + BIT1 HoldProvidedInd, // Hold provided indicator + BIT2 Spare1, // Spare + BIT1 CallingPartyCatRespInd, // Calling party's category RESponse ind. + BIT1 Reserved1, // Reserved + BIT1 SolicitedInfoInd, // Solicited INFormation indicator + BIT4 Spare2, // Spare + BIT4 Reserved2 // Reserved 2 + } with { variant "" }; + + +//************************************************************************ +// Information Request Indicators +// Ericsson Specification Reference: Chapter 2.3.3.41 +// Standard Reference ISUP : Chapter 3.29 +//************************************************************************ + type record Information_request_indicators + { + BIT1 CallingPartyAddrRequestInd,// Calling party address request ind. + BIT1 HoldingInd_or_Spare, // Holding indicator + BIT1 Spare1, // Spare + BIT1 CallingPartyCatRequestInd, // Calling party's category request ind. + BIT1 Reserved1, // Charge INFormation request ind. + BIT2 Spare2, // Spare + BIT1 MCIDReqInd_or_Spare, // Malicious call identification request ind. + BIT4 Spare3, // Spare + BIT4 Reserved2 // Reserved + } with { variant "" }; + + +//************************************************************************ +// Location Number +// Ericsson Specification Reference: Chapter 2.3.3.42 +// Standard Reference ISUP : Chapter 3.30 +//************************************************************************ + type record Location_number + { + BIT8 id, + INT1 lengthField, + + BIT7 NatureOfAddrInd, // Nature of address indicator + BIT1 OddEven, // Odd/Even indicator + BIT2 ScreeningInd, // Screening indicator + BIT2 AddrPresentRestInd, // Address presentation REStricted indicator + BIT3 NumberingPlanInd, // Numbering plan indicator + BIT1 INNInd, // Internal network number indicator + HEX1_32 AddrSignals optional, // Address signals and Filler if odd addr.signals + HEX1 Filler optional + } with { variant (AddrSignals) "HEXORDER(low)"; + variant "PRESENCE( id = '00111111'B)"; + variant (lengthField)"LENGTHTO(NatureOfAddrInd,OddEven, + ScreeningInd,AddrPresentRestInd, + NumberingPlanInd,INNInd, + AddrSignals,Filler)"; + }; + +//************************************************************************ +// Loop Prevention Indicators +// Ericsson Specification Reference: Chapter 2.3.3.43 +// Standard Reference ISUP : Chapter 3.67 +//************************************************************************ + type record Loop_prevention_indicators + { + BIT8 id, + INT1 lengthField, + + BIT1 Type, // Type + BIT2 ResponseInd_or_Spare, // Response indicator or Spare + BIT5 Spare + } with { variant "PRESENCE( id = '01000100'B)"; + variant (lengthField)"LENGTHTO(Type,ResponseInd_or_Spare,Spare)"; + }; + +//************************************************************************ +// MCID Request Indicators +// Ericsson Specification Reference: Chapter 2.3.3.44 +// Standard Reference ISUP : Chapter 3.31 +//************************************************************************ + type record MCID_request_indicators + { + BIT8 id, + INT1 lengthField, + + BIT1 MCIDReqInd, // MCID request indicator + BIT1 HoldingInd, // Holding indicator + BIT6 Spare // Spare + } with { variant "PRESENCE( id = '00111011'B)"; + variant (lengthField)"LENGTHTO(MCIDReqInd,HoldingInd,Spare)"; + }; + + +//************************************************************************ +// MCID Response Indicators +// Ericsson Specification Reference: Chapter 2.3.3.45 +// Standard Reference ISUP : Chapter 3.32 +//************************************************************************ + type record MCID_response_indicators + { + BIT8 id, + INT1 lengthField, + + BIT1 MCIDRespInd, // MCID RESponse indicator + BIT1 HoldingProvInd, // Hold provided indicator + BIT6 Spare // Spare + } with { variant "PRESENCE( id = '00111100'B)"; + variant (lengthField)"LENGTHTO(MCIDRespInd,HoldingProvInd,Spare)"; + }; + + +//************************************************************************ +// Message Compatibility Information +// Ericsson Specification Reference: Chapter 2.3.3.46 +// Standard Reference ISUP : Chapter 3.33 +//************************************************************************ + type record Message_compatibility_information + { + BIT8 id, + INT1 lengthField, + + BIT1 TransitIntermedExchInd, // Transit at intermediate exchange ind. + BIT1 ReleaseCallInd, // Release call indicator + BIT1 SendNotificationInd, // Send notification indicator + BIT1 DiscardMessageInd, // Discard message indicator + BIT1 PassOnNotPossibleInd, // Pass on not possible indicator + BIT2 BroadNarrowbandIwInd, // Broadband/narrowband interworking ind. + BIT1 ExtInd1, // Extension indicator + OCTN Spare2 optional + } with { variant "EXTENSION_BIT_GROUP (yes,TransitIntermedExchInd,Spare2)"; + variant "PRESENCE( id = '00111000'B)"; + variant (lengthField)"LENGTHTO(TransitIntermedExchInd, + ReleaseCallInd,SendNotificationInd, + DiscardMessageInd, + PassOnNotPossibleInd, + BroadNarrowbandIwInd, + ExtInd1,Spare2)"; + }; + + + + +//************************************************************************ +// Meter Pulse Indicator +// Ericsson Specification Reference: Chapter 2.3.3.47 +//************************************************************************ + type record Meter_pulse_indicator + { + BIT8 id, + INT1 lengthField, + + OCT1 MeterPulse, // Meter pulse indicator + OCT1 Reserved // Reserved + } with { variant "PRESENCE( id = '11111110'B)"; + variant (lengthField)"LENGTHTO(MeterPulse,Reserved)"; + }; + +//************************************************************************ +// MLPP Precedence +// Ericsson Specification Reference: Chapter 2.3.3.48 +// Standard Reference ISUP : Chapter 3.34 +//************************************************************************ + type record MLPP_precedence + { + BIT8 id, + INT1 lengthField, + + BIT4 PreLev, // Precedence level + BIT1 spare_1, // Spare + BIT2 LFB, // Look ahead for busy + BIT1 spare_2, // Spare + OCT2 NI, // Network identity + OCT3 ServDom // MLPP service domain + } with { variant "PRESENCE( id = '00111010'B)"; + variant (lengthField)"LENGTHTO(PreLev,spare_1,LFB,spare_2,NI, + ServDom)"; + }; + + +//************************************************************************ +// Nature Of Connection Indicators +// Ericsson Specification Reference: Chapter 2.3.3.49 +// Standard Reference ISUP : Chapter 3.35 +//************************************************************************ + type record Nature_of_connection_indicators + { + BIT2 SatelliteInd, // Satellite indicator + BIT2 ContinuityCheckInd, // Continuity check indicator + BIT1 EchoControlDevInd, // Echo CONtrol device indicator + BIT3 Spare // Spare + } with { variant "" }; + + +//************************************************************************ +// Network Call Reference +// Ericsson Specification Reference: Chapter 2.3.3.50 +//************************************************************************ + type record Network_call_reference + { + BIT8 id, + INT1 lengthField, + + OCT3 CallIdentity, // Call identity + BIT14 SwitchId, // Switch identity + BIT2 Spare // Spare + } with { variant "PRESENCE( id = '11110100'B)"; + variant (lengthField)"LENGTHTO(CallIdentity,SwitchId,Spare)"; + }; + + +//************************************************************************ +// Network Management Controls +// Standard Reference ISUP : Chapter 3.68 +//************************************************************************ + type record Network_management_controls + { + BIT8 id, + INT1 lengthField, + + BIT1 TAR_indicator, // Temporary alternate routing indicator + BIT6 spare, // Temporary alternate routing indicator + BIT1 ExtI // Extension indicator + } with { variant "PRESENCE( id = '01011011'B)"; + variant (lengthField)"LENGTHTO(TAR_indicator,spare,ExtI)"; + }; + + +//************************************************************************ +// Network Routing Number +// Standard Reference ISUP : Chapter 3.90 +//************************************************************************ + type record Network_routing_number + { + BIT8 id, + INT1 lengthField, + + BIT4 NatureOfAddrInd, // Nature of address indicator + BIT3 NumberingPlanInd, // Numbering plan indicator + BIT1 OddEven, // Odd/even indicator + HEX1_32 AddrSignals, // Address signals and Filler if odd addr.signals + HEX1 Filler optional + } with { variant (AddrSignals) "HEXORDER(low)"; + variant "PRESENCE( id = '10000100'B)"; + variant (lengthField)"LENGTHTO(NatureOfAddrInd,NumberingPlanInd, + OddEven,AddrSignals,Filler)"; + }; + +//************************************************************************ +// Network Specific Facility +// Ericsson Specification Reference: Chapter 2.3.3.51 +// Standard Reference ISUP : Chapter 3.36 +//************************************************************************ + type record Network_specific_facility + { + BIT8 id, + INT1 lengthField, + + INT1 LenOfNetwId, // Length of network identification + BIT4 NetworkIdPlan optional, // Network identification plan + BIT3 TypeofNetworkId optional, // Type of network identification + BIT1 One optional, + OCTN NetworkId optional, // Network id. First bit in octets is 0 + OCTN NetworkSpecificFacility // network-specific FACility indicator + } with { variant (LenOfNetwId) "LENGTHTO(NetworkIdPlan,TypeofNetworkId, + One,NetworkId)"; + variant "PRESENCE( id = '00101111'B)"; + variant (lengthField)"LENGTHTO(LenOfNetwId,NetworkIdPlan, + TypeofNetworkId,One,NetworkId, + NetworkSpecificFacility)"; + }; + + +//************************************************************************ +// Number Portability Forward Information +// Standard Reference ISUP : Chapter 3.101 +//************************************************************************ + type record Number_portability_forward_information + { + BIT8 id, + INT1 lengthField, + + BIT4 NbPStInd, // Number portability status indicator + BIT3 spare, // Spare + BIT1 ExtI // Extension indicator + } with { variant "PRESENCE( id = '10001101'B)"; + variant (lengthField)"LENGTHTO(NbPStInd,spare,ExtI)"; + }; + + +//************************************************************************ +// Optional Backward Call Indicators +// Ericsson Specification Reference: Chapter 2.3.3.52 +// Standard Reference ISUP : Chapter 3.37 +//************************************************************************ + type record Optional_backward_call_indicators + { + BIT8 id, + INT1 lengthField, + + BIT1 InBandInfoInd, // In-band INFormation indicator + BIT1 CallDiversionMayOccurInd, // Call diversion may occur indicator + BIT1 SimpleSegmentationInd, // Simple segmentation indicator + BIT1 MLPPUserInd, // MLPP User Indicator + BIT2 Reserved, // Reserved + BIT1 TimeSupervBeforeAnsInd, // Time supervision before answerind. + BIT1 LastPartyRelInd // Last party release indicator + } with { variant "PRESENCE( id = '00101001'B)"; + variant (lengthField)"LENGTHTO(InBandInfoInd, + CallDiversionMayOccurInd, + SimpleSegmentationInd,MLPPUserInd, + Reserved,TimeSupervBeforeAnsInd, + LastPartyRelInd)"; + }; + + +//************************************************************************ +// Optional Forward Call Indicators +// Ericsson Specification Reference: Chapter 2.3.3.53 +// Standard Reference ISUP : Chapter 3.38 +//************************************************************************ + type record Optional_forward_call_indicators + { + BIT8 id, + INT1 lengthField, + + BIT2 CUGCallInd, // Closed user group call indicator + BIT1 SimpleSegmentationInd, // Simple segmentation indicator + BIT4 Spare, // Spare + BIT1 ConnLineReqInd // Connected line identity request indicator + } with { variant "PRESENCE( id = '00001000'B)"; + variant (lengthField)"LENGTHTO(CUGCallInd,SimpleSegmentationInd, + Spare,ConnLineReqInd)"; + }; + + +//************************************************************************ +// Original Called Number +// Ericsson Specification Reference: Chapter 2.3.3.54 +// Standard Reference ISUP : Chapter 3.39 +//************************************************************************ + type record Original_called_number + { + BIT8 id, + INT1 lengthField, + + BIT7 NatureOfAddrInd, // Nature of address indicator + BIT1 OddEven, // Odd/even indicator + BIT2 Spare_1, // Spare + BIT2 AddrPresentRestInd, // Address presentation REStricted indicator + BIT3 NumberingPlanInd, // Numbering plan indicator + BIT1 Spare_2, // Spare + HEX1_32 AddrSignals optional, // Address signals and Filler if odd addr.signals + HEX1 Filler optional + } with { variant (AddrSignals) "HEXORDER(low)"; + variant "PRESENCE( id = '00101000'B)"; + variant (lengthField)"LENGTHTO(NatureOfAddrInd,OddEven,Spare_1, + AddrPresentRestInd,NumberingPlanInd, + Spare_2,AddrSignals,Filler)"; + }; + +//************************************************************************ +// Original Called IN Number +// Standard Reference ISUP : Chapter 3.87 +//************************************************************************ + type record Original_called_IN_number + { + BIT8 id, + INT1 lengthField, + + BIT7 NatureOfAddrInd, // Nature of address indicator + BIT1 OddEven, // Odd/even indicator + BIT2 spare_1, // Spare + BIT2 AddrPresentRestInd, // Address presentation REStricted indicator + BIT3 NumberingPlanInd, // Numbering plan indicator + BIT1 spare_2, // Spare + HEX1_32 AddrSignals optional, // Address signals and Filler if odd addr.signals + HEX1 Filler optional + } with { variant (AddrSignals) "HEXORDER(low)"; + variant "PRESENCE( id = '01111111'B)"; + variant (lengthField)"LENGTHTO(NatureOfAddrInd,OddEven,spare_1, + AddrPresentRestInd,NumberingPlanInd, + spare_2,AddrSignals,Filler)"; + }; + +//************************************************************************ +// Origination ISC Point Code +// Ericsson Specification Reference: Chapter 2.3.3.55 +// Standard Reference ISUP : Chapter 3.40 +//************************************************************************ + type record Origination_ISC_point_code + { + BIT8 id, + INT1 lengthField, + + OCT2 OriISC_contents // Signalling point code + } with { variant "PRESENCE( id = '00101011'B)"; + variant (lengthField)"LENGTHTO(OriISC_contents)"; + }; + + +//************************************************************************ +// Parameter Compatibility Information +// Ericsson Specification Reference: Chapter 2.3.3.56 +// Standard Reference ISUP : Chapter 3.41 +//************************************************************************ + type record Parameter_compatibility_information + { + BIT8 id, + INT1 lengthField, + + BIT8 FirstUpgradParam, // Upgraded parameter name + BIT7 InstructIndFirst, // all instruction indicators for parameter 1 + BIT1 ExtInd1, // Extension indicator + BIT8 SecondUpgradParam optional, + BIT7 InstructIndSecond optional, // all instruction indicators for param. 2 + BIT1 ExtInd2 optional, // Extension indicator + BIT8 ThirdUpgradParam optional, + BIT7 InstructIndThird optional, // all instruction indicators for param. 3 + BIT1 ExtInd3 optional, // Extension indicator + BIT8 FourthUpgradParam optional, + BIT7 InstructIndFourth optional, // all instruction indicators for param. 4 + BIT1 ExtInd4 optional, // Extension indicator + BIT8 FifthUpgradParam optional, + BIT7 InstructIndFifth optional, // all instruction indicators for param. 5 + BIT1 ExtInd5 optional// Extension indicator + } with { variant "PRESENCE( id = '00111001'B)"; + variant (lengthField)"LENGTHTO(FirstUpgradParam,InstructIndFirst, + ExtInd1,SecondUpgradParam, + InstructIndSecond,ExtInd2, + ThirdUpgradParam,InstructIndThird, + ExtInd3,FourthUpgradParam, + InstructIndFourth,ExtInd4, + FifthUpgradParam,InstructIndFifth, + ExtInd5)"; + }; + + +//************************************************************************ +// Pivot Capability +// Standard Reference ISUP : Chapter 3.84 +//************************************************************************ + type record Pivot_capability + { + BIT8 id, + INT1 lengthField, + + BIT3 PivPosInd, // Pivot possible indicator + BIT3 spare, // Spare + BIT1 IwRedirInd, // Interworking to redirection indicator + BIT1 ExtI // Extension indicator + } with { variant "PRESENCE( id = '01111011'B)"; + variant (lengthField)"LENGTHTO(PivPosInd,spare,IwRedirInd,ExtI)"; + }; + + +//************************************************************************ +// Pivot Counter +// Standard Reference ISUP : Chapter 3.93 +//************************************************************************ + type record Pivot_counter + { + BIT8 id, + INT1 lengthField, + + BIT5 PivCount, // Pivot counter + BIT3 spare // spare + } with { variant "PRESENCE( id = '10000111'B)"; + variant (lengthField)"LENGTHTO(PivCount,spare)"; + }; + + +//************************************************************************ +// Pivot Routing Backward Information +// Standard Reference ISUP : Chapter 3.95 +//************************************************************************ + type record Pivot_routing_backward_information + { + BIT8 id, + INT1 lengthField, + + ISUP_Information_type_set PivotInfo + } with { variant "PRESENCE( id = '10001001'B)"; + variant (lengthField)"LENGTHTO(PivotInfo)"; + }; + + type record ISUP_Information_type + { + BIT8 infoTypeTag, + INT1 infoTypeLength, + OCTN infoTypeValue + } with { variant (infoTypeLength)"LENGTHTO(infoTypeValue)"; + }; + + type set of ISUP_Information_type ISUP_Information_type_set + with { variant "" }; + + +//************************************************************************ +// Pivot Routing Forward Information +// Standard Reference ISUP : Chapter 3.94 +//************************************************************************ + type record Pivot_routing_forward_information + { + BIT8 id, + INT1 lengthField, + + ISUP_Information_type_set PivotInfo + } with { variant "PRESENCE( id = '10001000'B)"; + variant (lengthField)"LENGTHTO(PivotInfo)"; + }; + + +//************************************************************************ +// Pivot Routing Indicators +// Standard Reference ISUP : Chapter 3.85 +//************************************************************************ + type record Pivot_routing_indicators + { + BIT8 id, + INT1 lengthField, + + BIT7 PivRoutInd, // Pivot routing indicators + BIT1 ExtI // Extension indicator + } with { variant "PRESENCE( id = '01111100'B)"; + variant (lengthField)"LENGTHTO(PivRoutInd,ExtI)"; + }; + + +//************************************************************************ +// Pivot Status +// Standard Reference ISUP : Chapter 3.92 +//************************************************************************ + type record Pivot_status + { + BIT8 id, + INT1 lengthField, + + BIT2 PivStInd, // Pivot status indicator + BIT5 spare, // Spare + BIT1 ExtI // Extension indicator + } with { variant "PRESENCE( id = '10000110'B)"; + variant (lengthField)"LENGTHTO(PivStInd,spare,ExtI)"; + }; + + +//************************************************************************ +// Propagation Delay Counter +// Ericsson Specification Reference: Chapter 2.3.3.57 +// Standard Reference ISUP : Chapter 3.42 +//************************************************************************ + type record Propagation_delay_counter + { + BIT8 id, + INT1 lengthField, + + OCT2 PropagationDelayValue + } with { variant "PRESENCE( id = '00110001'B)"; + variant (lengthField)"LENGTHTO(PropagationDelayValue)"; + }; + + +//************************************************************************ +// Query On Release Capability +// Standard Reference ISUP : Chapter 3.91 +//************************************************************************ + type record Query_on_release_capability + { + BIT8 id, + INT1 lengthField, + + BIT1 QoRCapInd, // Query on RELease capability indicator + BIT6 spare, // Spare + BIT1 ExtI // Extension indicator + } with { variant "PRESENCE( id = '10000101'B)"; + variant (lengthField)"LENGTHTO(QoRCapInd,spare,ExtI)"; + }; + + +//************************************************************************ +// Range And Status +// Ericsson Specification Reference: Chapter 2.3.3.58 +// Standard Reference ISUP : Chapter 3.43 +//************************************************************************ + type record Range_and_status + { + INT1 lengthField, + + OCT1 Range, // Range + OCTN Status optional// Status + } with { variant (lengthField)"LENGTHTO(Range,Status)"; + }; + + +//************************************************************************ +// Redirect Backward Information +// Standard Reference ISUP : Chapter 3.100 +//************************************************************************ + type record Redirect_backward_information + { + BIT8 id, + INT1 lengthField, + + ISUP_Information_type_set RedirInfo + } with { variant "PRESENCE( id = '10001100'B)"; + variant (lengthField)"LENGTHTO(RedirInfo)"; + }; + + +//************************************************************************ +// Redirect Capability +// Standard Reference ISUP : Chapter 3.96 +//************************************************************************ + type record Redirect_capability + { + BIT8 id, + INT1 lengthField, + + BIT3 RedirPosInd, // Redirect possible indicator + BIT4 spare, // Spare + BIT1 ExtI // Extension indicator + } with { variant "PRESENCE( id = '01001110'B)"; + variant (lengthField)"LENGTHTO(RedirPosInd,spare,ExtI)"; + }; + + +//************************************************************************ +// Redirect Counter +// Standard Reference ISUP : Chapter 3.97 +//************************************************************************ + type record Redirect_counter + { + BIT8 id, + INT1 lengthField, + + BIT5 RedirCount, // Redirect counter + BIT3 spare // Spare + } with { variant "PRESENCE( id = '01110111'B)"; + variant (lengthField)"LENGTHTO(RedirCount,spare)"; + }; + + +//************************************************************************ +// Redirect Forward Information +// Standard Reference ISUP : Chapter 3.99 +//************************************************************************ + type record Redirect_forward_information + { + BIT8 id, + INT1 lengthField, + + ISUP_Information_type_set RedirInfo + } with { variant "PRESENCE( id = '10001011'B)"; + variant (lengthField)"LENGTHTO(RedirInfo)"; + }; + + +//************************************************************************ +// Redirect Status +// Standard Reference ISUP : Chapter 3.98 +//************************************************************************ + type record Redirect_status + { + BIT8 id, + INT1 lengthField, + + BIT2 RedirStInd, // Redirect status indicator + BIT5 spare, // Spare + BIT1 ExtI // Extension indicator + } with { variant "PRESENCE( id = '10001010'B)"; + variant (lengthField)"LENGTHTO(RedirStInd,spare,ExtI)"; + }; + + +//************************************************************************ +// Redirecting Number +// Ericsson Specification Reference: Chapter 2.3.3.59 +// Standard Reference ISUP : Chapter 3.44 +//************************************************************************ + type record Redirecting_number + { + BIT8 id, + INT1 lengthField, + + BIT7 NatureOfAddrInd, // Nature of address indicator + BIT1 OddEven, // Odd/even indicator + BIT2 Spare1, // Spare + BIT2 AddrPresentRestInd, // Address presentation REStricted indicator + BIT3 NumberingPlanInd, // Numbering plan indicator + BIT1 Spare, // Spare + HEX1_32 AddrSignals optional, // Address signals and Filler if odd addr.signals + HEX1 Filler optional + } with { variant (AddrSignals) "HEXORDER(low)"; + variant "PRESENCE( id = '00001011'B)"; + variant (lengthField)"LENGTHTO(NatureOfAddrInd,OddEven, + Spare1,AddrPresentRestInd, + NumberingPlanInd,Spare,AddrSignals, + Filler)"; + }; + + + +//************************************************************************ +// Redirection Information +// Ericsson Specification Reference: Chapter 2.3.3.60 +// Standard Reference ISUP : Chapter 3.45 +//************************************************************************ + type record Redirection_information + { + BIT8 id, + INT1 lengthField, + + BIT3 RedirectionInd, // Redirecting indicator + BIT1 Spare1, // Redirecting indicator + BIT4 OriginalRedirectionReason, // Original redirection reason + BIT3 RedirectionCounter optional, // Redirection counter + BIT1 Spare2 optional, // Spare + BIT4 RedirectingReason optional // Redirecting reason + } with { variant "PRESENCE( id = '00010011'B)"; + variant (lengthField)"LENGTHTO(RedirectionInd,Spare1, + OriginalRedirectionReason, + RedirectionCounter,Spare2, + RedirectingReason)"; + }; + + +//************************************************************************ +// Redirection Number +// Ericsson Specification Reference: Chapter 2.3.3.61 +// Standard Reference ISUP : Chapter 3.46 +//************************************************************************ + type record Redirection_number + { + BIT8 id, + INT1 lengthField, + + BIT7 NatureOfAddrInd, // Nature of address indicator + BIT1 OddEven, // Odd/even indicator + BIT4 Spare, // spare + BIT3 NumberingPlanInd, // Numbering plan indicator + BIT1 INNInd, // Internal network number indicator + HEX1_32 AddrSignals, // Address signals and Filler if odd addr.signals + HEX1 Filler optional + } with { variant (AddrSignals) "HEXORDER(low)"; + variant "PRESENCE( id = '00001100'B)"; + variant (lengthField)"LENGTHTO(NatureOfAddrInd,OddEven,Spare, + NumberingPlanInd,INNInd, + AddrSignals,Filler)"; + }; + +//************************************************************************ +// Redirection Number Restriction +// Ericsson Specification Reference: Chapter 2.3.3.62 +// Standard Reference ISUP : Chapter 3.47 +//************************************************************************ + type record Redirection_number_restriction + { + BIT8 id, + INT1 lengthField, + + BIT2 PresRestInd, // Presentation REStricted indicator + BIT6 Spare // Spare + } with { variant "PRESENCE( id = '01000000'B)"; + variant (lengthField)"LENGTHTO(PresRestInd,Spare)"; + }; + + +//************************************************************************ +// Remote Operations +// Standard Reference ISUP : Chapter 3.48 +//************************************************************************ + type record Remote_operations + { + BIT8 id, + INT1 lengthField, + + BIT5 ProtProf, // Protocol profile + BIT2 spare, // Spare + BIT1 ExtI, // Extension indicator + OCTN Comp // Components + } with { variant "PRESENCE( id = '00110010'B)"; + variant (lengthField)"LENGTHTO(ProtProf,spare,ExtI,Comp)"; + }; + + +//************************************************************************ +// Route Identity +// Ericsson Specification Reference: Chapter 2.3.3.63 +//************************************************************************ + type record Route_identity + { + BIT8 id, + INT1 lengthField, + + OCT2 RouteIdentity + } with { variant "PRESENCE( id = '11111100'B)"; + variant (lengthField)"LENGTHTO(RouteIdentity)"; + }; + + +//************************************************************************ +// SCF Id +// Ericsson Specification Reference: Chapter 2.3.3.64 +// Standard Reference ISUP : Chapter 3.71 +//************************************************************************ + type record SCF_id + { + BIT8 id, + INT1 lengthField, + + OCTN SCFId + } with { variant "PRESENCE( id = '01100110'B)"; + variant (lengthField)"LENGTHTO(SCFId)"; + }; + + +//************************************************************************ +// Service Activation +// Ericsson Specification Reference: Chapter 2.3.3.65 +// Standard Reference ISUP : Chapter 3.49 +//************************************************************************ + type record Service_activation + { + BIT8 id, + INT1 lengthField, + + OCTN ServAct_contents + } with { variant "PRESENCE( id = '00110011'B)"; + variant (lengthField)"LENGTHTO(ServAct_contents)"; + }; + + +//************************************************************************ +// Signalling Point Code +// Standard Reference ISUP : Chapter 3.50 +//************************************************************************ + type record Signalling_point_code + { + BIT8 id, + INT1 lengthField, + + OCT2 SPC_contents // Signalling point code + } with { variant "PRESENCE( id = '00011110'B)"; + variant (lengthField)"LENGTHTO(SPC_contents)"; + }; + + +//************************************************************************ +// Subsequent Number +// Ericsson Specification Reference: Chapter 2.3.3.66 +// Standard Reference ISUP : Chapter 3.51 +//************************************************************************ + type record Subsequent_number_OPT + { + BIT8 id, + INT1 lengthField, + + BIT7 Spare, // Spare + BIT1 OddEven, // Odd/even inicator + HEX1_32 AddrSignals, // Address signals and Filler if odd addr.signals + HEX1 Filler optional + } with { variant (AddrSignals) "HEXORDER(low)"; + variant "PRESENCE( id = '00000101'B)"; + variant (lengthField)"LENGTHTO(Spare,OddEven,AddrSignals,Filler)"; + }; + + type record Subsequent_number + { + INT1 lengthField, + + BIT7 Spare, // Spare + BIT1 OddEven, // Odd/even inicator + HEX1_32 AddrSignals, // Address signals and Filler if odd addr.signals + HEX1 Filler optional + } with { variant (AddrSignals) "HEXORDER(low)"; + variant (lengthField)"LENGTHTO(Spare,OddEven,AddrSignals,Filler)"; + }; + + +//************************************************************************ +// Suspend Resume Indicators +// Ericsson Specification Reference: Chapter 2.3.3.67 +// Standard Reference ISUP : Chapter 3.52 +//************************************************************************ + type record Suspend_resume_indicators + { + BIT1 SUSRESInd, // Suspend/resume indicator + BIT7 Spare // Spare + } with { variant "" }; + + +//************************************************************************ +// Tariff Indicator +// Ericsson Specification Reference: Chapter 2.3.3.68 +//************************************************************************ + type record Tariff_indicator + { + BIT8 id, + INT1 lengthField, + + OCT1 TariffInd, // Tariff indicator + OCT1 Reserved optional// Reserved + } with { variant "PRESENCE( id = '11111101'B)"; + variant (lengthField)"LENGTHTO(TariffInd,Reserved)"; + }; + + +//************************************************************************ +// Transit Network Selection +// Ericsson Specification Reference: Chapter 2.3.3.69 +// Standard Reference ISUP : Chapter 3.53 +//************************************************************************ + type record Transit_network_selection + { + BIT8 id, + INT1 lengthField, + + BIT4 NetIdPlan, // Network identification plan + BIT3 TypeOfNetId, // Type of network identification + BIT1 OddEvenInd, // Odd/even inicator + OCTN NetId // Network identification + } with { variant "PRESENCE( id = '00100011'B)"; + variant (lengthField)"LENGTHTO(NetIdPlan,TypeOfNetId,OddEvenInd, + NetId)"; + }; + + +//************************************************************************ +// Transmission Medium Requirement +// Ericsson Specification Reference: Chapter 2.3.3.70 +// Standard Reference ISUP : Chapter 3.54 +//************************************************************************ + type record Transmission_medium_requirement + { + BIT8 TMR + } with { variant "" }; + +//************************************************************************ +// Transmission Medium Requirement Prime +// Ericsson Specification Reference: Chapter 2.3.3.71 +// Standard Reference ISUP : Chapter 3.55 +//************************************************************************ + type record Transmission_medium_requirement_prime + { + BIT8 id, + INT1 lengthField, + + BIT8 TMRp_field + } with { variant "PRESENCE( id = '00111110'B)"; + variant (lengthField)"LENGTHTO(TMRp_field)"; + }; + +//************************************************************************ +// Transmission Medium Used +// Ericsson Specification Reference: Chapter 2.3.3.72 +// Standard Reference ISUP : Chapter 3.56 +//************************************************************************ + type record Transmission_medium_used + { + BIT8 id, + INT1 lengthField, + + BIT8 TMU_field + } with { variant "PRESENCE( id = '00110101'B)"; + variant (lengthField)"LENGTHTO(TMU_field)"; + }; + + +//************************************************************************ +// UID Action Indicators +// Standard Reference ISUP : Chapter 3.78 +//************************************************************************ + type record UID_action_indicators + { + BIT8 id, + INT1 lengthField, + + BIT1 ThConInsInd, // Through CONnection instruction indicator + BIT1 T9InsInd, // T9 timer instruction indicator + BIT5 spare, // Spare + BIT1 ExtI // Extension indicator + } with { variant "PRESENCE( id = '01110100'B)"; + variant (lengthField)"LENGTHTO(ThConInsInd,T9InsInd,spare,ExtI)"; + }; + + +//************************************************************************ +// UID Capability Indicators +// Standard Reference ISUP : Chapter 3.79 +//************************************************************************ + type record UID_capability_indicators + { + BIT8 id, + INT1 lengthField, + + BIT1 through_connection_indicator, // Through CONnection indicator + BIT1 T9_timer_indicator, // T9 timer indicator + BIT5 spare, // T9 timer indicator + BIT1 ExtI // Extension indicator + } with { variant "PRESENCE( id = '01110101'B)"; + variant (lengthField)"LENGTHTO(through_connection_indicator, + T9_timer_indicator,spare,ExtI)"; + }; + + +//************************************************************************ +// User Service Information +// Ericsson Specification Reference: Chapter 2.3.3.73 +// Standard Reference ISUP : Chapter 3.57 +//************************************************************************ + type record User_service_information + { + BIT8 id, + INT1 lengthField, + + BIT5 InfTrC, // Information transfer capability + BIT2 CodS, // Coding standard + BIT1 ExtI_1, // Extension indicator (1) + //EXT GR1 start + BIT5 infTR, // Information transfer rate + BIT2 TrMod, // Transfer mode + BIT1 ExtI_2, // Extension indicator (0/1) + + BIT2 establishment optional, // demand + BIT2 configuration optional, // point-to-point + BIT3 structure optional, // default + BIT1 ext2a optional, + + BIT5 infoTransRate optional, //used for packet-mode calls + BIT2 symmetry optional, // bi-directional symmetric + BIT1 ext2b optional, + //EXT GR1 end + BIT7 RatMul optional, // Rate multiplier + BIT1 ExtI_2_1 optional, // Extension indicator (1) + + Layer1_info layer1 optional, + Layer2_info layer2 optional, + Layer3_info layer3 optional + } with { variant "EXTENSION_BIT_GROUP(yes,infTR,ext2b)"; + variant (RatMul) "PRESENCE(infTR = '11000'B)"; + variant (ExtI_2_1) "PRESENCE(infTR = '11000'B)"; + variant "TAG ( layer1, layer_id = '01'B; + layer2, layer_id = '10'B; + layer3, layer_id = '11'B;)" + variant "PRESENCE( id = '00011101'B)"; + variant (lengthField)"LENGTHTO(InfTrC,CodS,ExtI_1,infTR,TrMod, + ExtI_2,establishment,configuration, + structure,ext2a,infoTransRate, + symmetry,ext2b,RatMul,ExtI_2_1, + layer1,layer2,layer3)"; + }; + + type record Layer1_info + { + BIT5 UInf1, // User INFormation layer 1 protocol + BIT2 layer_id, // Layer identification + BIT1 ExtI_3, // Extension indicator (0/1) + + BIT5 UsrRate optional, // User rate + BIT1 Negot optional, // Negotiation + BIT1 SynAsyn optional, // Synchronous/Asynchronous + BIT1 ExtI_3a optional, // Extension indicator (0/1) + + //Note: the content of this field depends on field UInf1 - see Q.931 4.5.5 + BIT7 Bits_3b optional, // info bits in octet 3b + BIT1 ExtI_3b optional, // Extension indicator (0/1) + + //BIT1 Spare_1 optional, // Spare + //BIT1 FlCtrRx optional, // Flow control on Rx + //BIT1 FlCtrTx optional, // Flow control on Tx + //BIT1 NICRx optional, // Network independent clock on RX + //BIT1 NICTx optional, // Network independent clock on TX + //BIT2 IntRate optional, // Intermediate rate + //BIT1 ExtI_6 optional, // Extension indicator (0/1) + + //BIT1 Spare_2 optional, // Spare + //BIT1 InBndNeg optional, // In-band/out-band negotiation + //BIT1 Ass optional, // Assignor/assignee + //BIT1 LLINeg optional, // Logical link identifier negotiation + //BIT1 Mode optional, // Mode of operation + + //BIT1 MultFr optional,// Multiple frame establishment support in data link + //BIT1 Hdr optional, // Rate adaption header/no header + //BIT1 ExtI_7 optional,// Extension indicator (0/1) + + BIT3 Prty optional, // Parity INFormation + BIT2 NDatBit optional, // Number of data bits excluding parity bit if pres. + BIT2 NStpBit optional, // Number of stop bits + BIT1 ExtI_3c optional, // Extension indicator (0/1) + + BIT6 MdmTyp optional, // Modem type + BIT1 DupMod optional, // Mode duplex + BIT1 ExtI_3d optional // Extension indicator (1) + } with { variant "EXTENSION_BIT(yes)"} + + type record Layer2_info + { + BIT5 uInf2, // User information layer 2 protocol + BIT2 layer_id, // Layer identification + BIT1 extI_10 // Extension indicator (1) + } with { variant "" }; + + type record Layer3_info + { + BIT5 uInf3, // User information layer 3 protocol + BIT2 layer_id, // Layer identification + BIT1 extI_11 // Extension indicator (1) + } with { variant "" }; + + +//************************************************************************ +// User Service Information Prime +// Ericsson Specification Reference: Chapter 2.3.3.74 +// Standard Reference ISUP : Chapter 3.58 +//************************************************************************ + type record User_service_information_prime + { + BIT8 id, + INT1 lengthField, + + BIT5 InfTrC, // Information transfer capability + BIT2 CodS, // Coding standard + BIT1 ExtI_1, // Extension indicator (1) + //EXT GR1 start + BIT5 infTR, // Information transfer rate + BIT2 TrMod, // Transfer mode + BIT1 ExtI_2, // Extension indicator (0/1) + + BIT2 establishment optional, // demand + BIT2 configuration optional, // point-to-point + BIT3 structure optional, // default + BIT1 ext2a optional, + + BIT5 infoTransRate optional, //used for packet-mode calls + BIT2 symmetry optional, // bi-directional symmetric + BIT1 ext2b optional, + //EXT GR1 end + BIT7 RatMul optional, // Rate multiplier + BIT1 ExtI_2_1 optional, // Extension indicator (1) + + Layer1_info layer1 optional, + Layer2_info layer2 optional, + Layer3_info layer3 optional + } with { variant "EXTENSION_BIT_GROUP(yes,infTR,ext2b)"; + variant (RatMul) "PRESENCE(infTR = '11000'B)"; + variant (ExtI_2_1) "PRESENCE(infTR = '11000'B)"; + variant "TAG ( layer1, layer_id = '01'B; + layer2, layer_id = '10'B; + layer3, layer_id = '11'B;)" + variant "PRESENCE( id = '00110000'B)"; + variant (lengthField)"LENGTHTO(InfTrC,CodS,ExtI_1,infTR,TrMod, + ExtI_2,establishment,configuration, + structure,ext2a,infoTransRate, + symmetry,ext2b,RatMul,ExtI_2_1, + layer1,layer2,layer3)"; + }; +/* The old version is commented out because it could cause decoding problems. + type record User_service_information // 3.57 / Q.763 + { + BIT5 InfTrC, // Information transfer capability + BIT2 CodS, // Coding standard + BIT1 ExtI_1, // Extension indicator (1) + BIT5 InfTR, // Information transfer rate + BIT2 TrMod, // Transfer mode + BIT1 ExtI_2, // Extension indicator (0/1) + BIT8 RatMul optional, // Rate multiplier + BIT1 ExtI_3 optional, // Extension indicator (1) + BIT5 UInf1 optional, // User INFormation layer 1 protocol + BIT2 Lay1 optional, // Layer identification + BIT1 ExtI_4 optional, // Extension indicator (0/1) + BIT5 UsrRate optional, // User rate + BIT1 Negot optional, // Negotiation + BIT1 SynAsyn optional, // Synchronous/Asynchronous + BIT1 ExtI_5 optional, // Extension indicator (0/1) + BIT1 Spare_1 optional, // Spare + BIT1 FlCtrRx optional, // Flow control on Rx + BIT1 FlCtrTx optional, // Flow control on Tx + BIT1 NICRx optional, // Network independent clock on RX + BIT1 NICTx optional, // Network independent clock on TX + BIT2 IntRate optional, // Intermediate rate + BIT1 ExtI_6 optional, // Extension indicator (0/1) + BIT1 Spare_2 optional, // Spare + BIT1 InBndNeg optional, // In-band/out-band negotiation + BIT1 Ass optional, // Assignor/assignee + BIT1 LLINeg optional, // Logical link identifier negotiation + BIT1 Mode optional, // Mode of operation + BIT1 MultFr optional, // Multiple frame establishment support in data link + BIT1 Hdr optional, // Rate adaption header/no header + BIT1 ExtI_7 optional, // Extension indicator (0/1) + BIT3 Prty optional, // Parity INFormation + BIT2 NDatBit optional, // Number of data bits excluding parity bit if pres. + BIT2 NStpBit optional, // Number of stop bits + BIT1 ExtI_8 optional, // Extension indicator (1) + BIT6 MdmTyp optional, // Modem type + BIT1 DupMod optional, // Mode duplex + BIT1 ExtI_9 optional, // Extension indicator (1) + BIT5 UInf2 optional, // User INFormation layer 2 protocol + BIT2 Lay2 optional, // Layer identification + BIT1 ExtI_10 optional, // Extension indicator (1) + BIT5 UInf3 optional, // User INFormation layer 3 protocol + BIT2 Lay3 optional, // Layer identification + BIT1 ExtI_11 optional // Extension indicator (1) + } with { variant "" }; + + + type record User_service_information_prime // 3.58 / Q.763 + { + BIT5 InfTrC, // Information transfer capability + BIT2 CodS, // Coding standard + BIT1 ExtI_1, // Extension indicator (1) + BIT5 InfTR, // Information transfer rate + BIT2 TrMod, // Transfer mode + BIT1 ExtI_2, // Extension indicator (0/1) + BIT8 RatMul optional, // Rate multiplier + BIT1 ExtI_3 optional, // Extension indicator (1) + BIT5 UInf1 optional, // User INFormation layer 1 protocol + BIT2 Lay1 optional, // Layer identification + BIT1 ExtI_4 optional, // Extension indicator (0/1) + BIT5 UsrRate optional, // User rate + BIT1 Negot optional, // Negotiation + BIT1 SynAsyn optional, // Synchronous/Asynchronous + BIT1 ExtI_5 optional, // Extension indicator (0/1) + BIT1 Spare_1 optional, // Spare + BIT1 FlCtrRx optional, // Flow control on Rx + BIT1 FlCtrTx optional, // Flow control on Tx + BIT1 NICRx optional, // Network independent clock on RX + BIT1 NICTx optional, // Network independent clock on TX + BIT2 IntRate optional, // Intermediate rate + BIT1 ExtI_6 optional, // Extension indicator (0/1) + BIT1 Spare_2 optional, // Spare + BIT1 InBndNeg optional, // In-band/out-band negotiation + BIT1 Ass optional, // Assignor/assignee + BIT1 LLINeg optional, // Logical link identifier negotiation + BIT1 Mode optional, // Mode of operation + BIT1 MultFr optional, // Multiple frame establishment support in data link + BIT1 Hdr optional, // Rate adaption header/no header + BIT1 ExtI_7 optional, // Extension indicator (0/1) + BIT3 Prty optional, // Parity INFormation + BIT2 NDatBit optional, // Number of data bits excluding parity bit if pres. + BIT2 NStpBit optional, // Number of stop bits + BIT1 ExtI_8 optional, // Extension indicator (1) + BIT6 MdmTyp optional, // Modem type + BIT1 DupMod optional, // Mode duplex + BIT1 ExtI_9 optional, // Extension indicator (1) + BIT5 UInf2 optional, // User INFormation layer 2 protocol + BIT2 Lay2 optional, // Layer identification + BIT1 ExtI_10 optional, // Extension indicator (1) + BIT5 UInf3 optional, // User INFormation layer 3 protocol + BIT2 Lay3 optional, // Layer identification + BIT1 ExtI_11 optional // Extension indicator (1) + } with { variant "" }; +*/ + + +//************************************************************************ +// User Teleservice Information +// Ericsson Specification Reference: Chapter 2.3.3.75 +// Standard Reference ISUP : Chapter 3.59 +//************************************************************************ + type record User_teleservice_information + { + BIT8 id, + INT1 lengthField, + + BIT2 Pres, // Presentation + BIT3 Interpr, // Interpretation + BIT2 CodS, // Coding standard + BIT1 ExtI_1, // Extention indicator, always 1 + BIT7 HLChrInf, // High layer characteristics identification + BIT1 ExtI_2, // Extension indicator, (0/1) + BIT7 ExHLChrInf optional, // Extended high layer characteristics id. + BIT1 ExtI_3 optional // Extention indicator, always 1 + } with { variant (ExHLChrInf) "PRESENCE(ExtI_2 = '0'B)"; + variant (ExtI_3) "PRESENCE(ExtI_2 = '0'B)"; + variant "PRESENCE( id = '00110100'B)"; + variant (lengthField)"LENGTHTO(Pres,Interpr,CodS,ExtI_1,HLChrInf, + ExtI_2,ExHLChrInf,ExtI_3)"; + }; + +//************************************************************************ +// User To User Indicators +// Ericsson Specification Reference: Chapter 2.3.3.76 +// Standard Reference ISUP : Chapter 3.60 +//************************************************************************ + type record User_to_user_indicators + { + BIT8 id, + INT1 lengthField, + + BIT1 Type, // type + BIT2 Service1, // Service 1 + BIT2 Service2, // Service 2 + BIT2 Service3, // Service 3 + BIT1 NetworkDiscardInd //Network discard ind. (spare if Type = request) + } with { variant "PRESENCE( id = '00101010'B)"; + variant (lengthField)"LENGTHTO(Type,Service1,Service2,Service3, + NetworkDiscardInd)"; + }; + + +//************************************************************************ +// User To User Information +// Ericsson Specification Reference: Chapter 2.3.3.77 +// Standard Reference ISUP : Chapter 3.61 +//************************************************************************ + type record User_to_user_information_OPT + { + BIT8 id, + INT1 lengthField, + + OCTN UserInfo + } with { variant "PRESENCE( id = '00100000'B)"; + variant (lengthField)"LENGTHTO(UserInfo)"; + }; + + type record User_to_user_information + { + INT1 lengthField, + + OCTN UserInfo + } with { variant (lengthField)"LENGTHTO(UserInfo)"; + }; + + +//************************************************************************ +// Global Call Reference +// GCR included in ISUP market variants based on EED/X 1056-174 Uen - Global +// Call reference for ISUP and BICC, MSC R12. +// It is used in the IAM message. See section 3.1.1 for details. +//************************************************************************ + type record Global_call_reference + { + BIT8 id, + INT1 lengthField, + + INT1 netwIdLenInd, // Network ID length indicator + OCTN netwId, // Network ID + INT1 nodeIdLenInd, // Node ID length indicator + OCTN nodeId, // Node ID + INT1 callRefLenInd, // Call Reference length indicator + OCTN callRefId // Call Reference ID + } with { variant (netwIdLenInd) "LENGTHTO (netwId)"; + variant (nodeIdLenInd) "LENGTHTO(nodeId)"; + variant (callRefLenInd) "LENGTHTO (callRefId)"; + variant "PRESENCE( id = '10100100'B)"; + variant (lengthField)"LENGTHTO(netwIdLenInd,netwId,nodeIdLenInd, + nodeId,callRefLenInd,callRefId)"; + }; +} // END Group ISUP_parameters + + +//************************************************************************ +//************************************************************************ +//************************************************************************ +//************************************************************************ +//************************************************************************ + + +//************************************************************************ +// ACM - Address complete +// Ericsson Specification Reference: Chapter 2.2.2.1 +// Standard Reference ISUP : Chapter 4, Table 21 +//************************************************************************ + type set ACM_optional_part + { + Optional_backward_call_indicators optBackwardCallInd optional, + Cause_indicators_OPT causeInd optional, + User_to_user_indicators userToUserInd optional, + User_to_user_information_OPT userToUserInfo optional, + Access_transport accessTransport optional, + Generic_notification_indicator_set genericNotificationInd optional, + Transmission_medium_used transMediumUsed optional, + Access_delivery_information accessDeliveryInfo optional, + Redirection_number redirectionNum optional, + Parameter_compatibility_information paramCompatibilityInfo optional, + Call_diversion_information callDiversionInfo optional, + Network_specific_facility networkFacility optional, + Redirection_number_restriction redirectionNumRest optional, + Route_identity routeIdentity optional, + Call_transfer_treatment_indicators callTransferTreatmentInd optional, + Conference_treatment_indicators conferenceTreatmentInd optional, + + Call_reference callReference optional, + Echo_control_information echoControlInfo optional, + Remote_operations remoteOperations optional, + Service_activation serviceActivation optional, + UID_action_indicators UIDAcInd optional, + Application_transport_parameter_set ATPP optional, + CCNR_possible_indicator CCNRP optional, + HTR_information HTRInfo optional, + Pivot_routing_backward_information PRBI optional, + Redirect_status RedirSt optional + } with { variant (ATPP,genericNotificationInd) "REPEATABLE(yes)";}; + + + type record ACM_parameters + { + Circuit_identification_code cic optional, + ISUP_Message_type messageType, + Backward_call_indicators backwardCallInd, + Pointer opt_part_ptr, + ACM_optional_part acmOptionals optional, + End_of_optional_parameters_indicator endOfOp optional + } with { variant (opt_part_ptr) "POINTERTO (acmOptionals)"}; + + +//************************************************************************ +// ANM - Answer +// Ericsson Specification Reference: Chapter 2.2.2.2 +// Standard Reference ISUP : Chapter 4, Table 22 +//************************************************************************ + type set ANM_optional_part + { + Backward_call_indicators_OPT backwardCallInd optional, + Optional_backward_call_indicators optBackwardCallInd optional, + User_to_user_indicators userToUserInd optional, + User_to_user_information_OPT userToUserInfo optional, + Connected_number connectedNum optional, + Access_transport accessTransport optional, + Access_delivery_information accessDeliveryInfo optional, + Parameter_compatibility_information paramCompatibilityInfo optional, + Backward_GVNS backwardGVNS optional, + Call_history_information callHistoryInfo optional, + Generic_number_set genericNum optional, + Transmission_medium_used transMediumUsed optional, + Network_specific_facility networkFacility optional, + Redirection_number_restriction redirectionNumRest optional, + Call_transfer_treatment_indicators callTransferTreatmentInd optional, + Conference_treatment_indicators conferenceTreatmentInd optional, + + Call_reference callReference optional, + Generic_notification_indicator_set genericNotificationInd optional, + Remote_operations remoteOperations optional, + Redirection_number redirectionNum optional, + Service_activation serviceActivation optional, + Echo_control_information echoControlInfo optional, + Display_information DisInf optional, + Application_transport_parameter_set ATPP optional, + Pivot_routing_backward_information PRBI optional, + Redirect_status RedirSt optional + } with { variant (ATPP,genericNotificationInd,genericNum) "REPEATABLE(yes)";}; + + + type record ANM_parameters + { + Circuit_identification_code cic optional, + ISUP_Message_type messageType, + Pointer opt_part_ptr, + ANM_optional_part anmOptionals optional, + End_of_optional_parameters_indicator endOfOp optional + } with { variant (opt_part_ptr)"POINTERTO (anmOptionals)"; + }; + + +//************************************************************************ +// APM - Application Transport +// Standard Reference ISUP : Chapter 4, Table 51 +//************************************************************************ + type set APM_optional_part + { + Message_compatibility_information MCI optional, + Parameter_compatibility_information paramCompatibilityInfo optional, + Application_transport_parameter_set ATPP optional + } with { variant (ATPP) "REPEATABLE(yes)";}; + + + type record APM_parameters + { + Circuit_identification_code cic optional, + ISUP_Message_type messageType, + Pointer opt_part_ptr, + APM_optional_part apmOptionals optional, + End_of_optional_parameters_indicator endOfOp optional + } with { variant (opt_part_ptr) "POINTERTO (apmOptionals)"; + }; + + +//************************************************************************ +// BLO - Blocking +// Ericsson Specification Reference: Chapter 2.2.2.3 +// Standard Reference ISUP : Chapter 4, Table 39 +//************************************************************************ + type record BLO_parameters + { + Circuit_identification_code cic optional, + ISUP_Message_type messageType + } with { variant "" }; + + +//************************************************************************ +// BLA - Blocking Acknowledgement +// Ericsson Specification Reference: Chapter 2.2.2.4 +// Standard Reference ISUP : Chapter 4, Table 39 +//************************************************************************ + type record BLA_parameters + { + Circuit_identification_code cic optional, + ISUP_Message_type messageType + } with { variant "" }; + + +//************************************************************************ +// CPG - Call Progress +// Ericsson Specification Reference: Chapter 2.2.2.5 +// Standard Reference ISUP : Chapter 4, Table 23 +//************************************************************************ + type set CPG_optional_part + { + Cause_indicators_OPT causeInd optional, + Backward_call_indicators_OPT backwardCallInd optional, + Optional_backward_call_indicators optBackwardCallInd optional, + Access_transport accessTransport optional, + User_to_user_indicators userToUserInd optional, + Redirection_number redirectionNum optional, + User_to_user_information_OPT userToUserInfo optional, + Generic_notification_indicator_set genericNotificationInd optional, + Network_specific_facility networkFacility optional, + Transmission_medium_used transMediumUsed optional, + Access_delivery_information accessDeliveryInfo optional, + Parameter_compatibility_information paramCompatibilityInfo optional, + Call_diversion_information callDiversionInfo optional, + Redirection_number_restriction redirectionNumRest optional, + Call_transfer_number callTransferNumber optional, + Call_transfer_treatment_indicators callTransferTreatmentInd optional, + Conference_treatment_indicators conferenceTreatmentInd optional, + + Call_reference callReference optional, + Remote_operations remoteOperations optional, + Service_activation serviceActivation optional, + Echo_control_information echoControlInfo optional, + Connected_number connectedNum optional, + Backward_GVNS backwardGVNS optional, + Generic_number_set genericNum optional, + Call_history_information callHistoryInfo optional, + UID_action_indicators UIDAcInd optional, + Application_transport_parameter_set ATPP optional, + CCNR_possible_indicator CCNRP optional, + Pivot_routing_backward_information PRBI optional, + Redirect_status RedirSt optional + } with { variant (ATPP,genericNotificationInd,genericNum) "REPEATABLE(yes)";}; + + + type record CPG_parameters + { + Circuit_identification_code cic optional, + ISUP_Message_type messageType, + Event_information eventInfo, + Pointer opt_part_ptr, + CPG_optional_part cpgOptionals optional, + End_of_optional_parameters_indicator endOfOp optional + } with { variant (opt_part_ptr) "POINTERTO (cpgOptionals)"; + }; + + +//************************************************************************ +// CRG - Charge Information +// Ericsson Specification Reference: Chapter 2.2.2.6 +//************************************************************************ + type set CRG_optional_part + { + Meter_pulse_indicator meterPulseInd optional, + Tariff_indicator tariffInd optional, + Parameter_compatibility_information paramCompatibilityInfo optional + } with { variant "" }; + + + type record CRG_parameters + { + Circuit_identification_code cic optional, + ISUP_Message_type messageType, + Pointer opt_part_ptr, + CRG_optional_part crgOptionals optional, + End_of_optional_parameters_indicator endOfOp optional + } with { variant (opt_part_ptr)"POINTERTO (crgOptionals)"; + }; + + +//************************************************************************ +// CGB - Circuit Group Blocking +// Ericsson Specification Reference: Chapter 2.2.2.7 +// Standard Reference ISUP : Chapter 4, Table 40 +//************************************************************************ + type record CGB_parameters + { + Circuit_identification_code cic optional, + ISUP_Message_type messageType, + Circuit_group_supervision_message_type_indicator circuitGroupSupervMsgInd, + Pointer var_part_ptr, + Range_and_status rangeAndStatus + } with { variant (var_part_ptr) "POINTERTO (rangeAndStatus)"; + }; + + +//************************************************************************ +// CGBA - Circuit Group Blocking Acknowledgement +// Ericsson Specification Reference: Chapter 2.2.2.8 +// Standard Reference ISUP : Chapter 4, Table 40 +//************************************************************************ + type record CGBA_parameters + { + Circuit_identification_code cic optional, + ISUP_Message_type messageType, + Circuit_group_supervision_message_type_indicator circuitGroupSupervMsgInd, + Pointer var_part_ptr, + Range_and_status rangeAndStatus + } with { variant (var_part_ptr) "POINTERTO (rangeAndStatus)"; + }; + + +//************************************************************************ +// CQM - Circuit Group Query +// Ericsson Specification Reference: Chapter 2.2.2.9 +// Standard Reference ISUP : Chapter 4, Table 41 +//************************************************************************ + type record CQM_parameters + { + Circuit_identification_code cic optional, + ISUP_Message_type messageType, + Pointer var_part_ptr, + Range_and_status rangeAndStatus + } with { variant (var_part_ptr) "POINTERTO (rangeAndStatus)"; + }; + + +//************************************************************************ +// CQR - Circuit Group Query Response +// Ericsson Specification Reference: Chapter 2.2.2.10 +// Standard Reference ISUP : Chapter 4, Table 24 +//************************************************************************ + type record CQR_parameters + { + Circuit_identification_code cic optional, + ISUP_Message_type messageType, + Pointer var1_part_ptr, + Pointer var2_part_ptr, + Range_and_status rangeAndStatus, + Circuit_state_indicator circuitStateInd + } with { variant (var1_part_ptr) "POINTERTO (rangeAndStatus)"; + variant (var2_part_ptr) "POINTERTO (circuitStateInd)"; + }; + + +//************************************************************************ +// GRS - Circuit Group Reset +// Ericsson Specification Reference: Chapter 2.2.2.11 +// Standard Reference ISUP : Chapter 4, Table 41 +//************************************************************************ + type record GRS_parameters + { + Circuit_identification_code cic optional, + ISUP_Message_type messageType, + Pointer var_part_ptr, + Range_and_status rangeAndStatus + } with { variant (var_part_ptr) "POINTERTO (rangeAndStatus)"; + }; + + +//************************************************************************ +// GRA - Circuit Group Reset Acknowledgement +// Ericsson Specification Reference: Chapter 2.2.2.12 +// Standard Reference ISUP : Chapter 4, Table 25 +//************************************************************************ + type record GRA_parameters + { + Circuit_identification_code cic optional, + ISUP_Message_type messageType, + Pointer var_part_ptr, + Range_and_status rangeAndStatus + } with { variant (var_part_ptr) "POINTERTO (rangeAndStatus)"; + }; + +//************************************************************************ +// GGU - Circuit Group Unblocking +// Ericsson Specification Reference: Chapter 2.2.2.13 +// Standard Reference ISUP : Chapter 4, Table 40 +//************************************************************************ + type record CGU_parameters + { + Circuit_identification_code cic optional, + ISUP_Message_type messageType, + Circuit_group_supervision_message_type_indicator circuitGroupSupervMsgInd, + Pointer var_part_ptr, + Range_and_status rangeAndStatus + } with { variant (var_part_ptr) "POINTERTO (rangeAndStatus)"; + }; + + +//************************************************************************ +// CGUA - Circuit Group Unblocking Acknowledgement +// Ericsson Specification Reference: Chapter 2.2.2.14 +// Standard Reference ISUP : Chapter 4, Table 40 +//************************************************************************ + type record CGUA_parameters + { + Circuit_identification_code cic optional, + ISUP_Message_type messageType, + Circuit_group_supervision_message_type_indicator circuitGroupSupervMsgInd, + Pointer var_part_ptr, + Range_and_status rangeAndStatus + } with { variant (var_part_ptr)"POINTERTO (rangeAndStatus)"; + }; + + +//************************************************************************ +// CFN - Confusion +// Ericsson Specification Reference: Chapter 2.2.2.15 +// Standard Reference ISUP : Chapter 4, Table 26 +//************************************************************************ + type record CFN_parameters + { + Circuit_identification_code cic optional, + ISUP_Message_type messageType, + Pointer var_part_ptr, + Pointer opt_part_ptr, + Cause_indicators causeInd, + End_of_optional_parameters_indicator endOfOp + } with { variant (var_part_ptr)"POINTERTO (causeInd)"; + variant (opt_part_ptr)"POINTERTO (endOfOp)"; + }; + + +//************************************************************************ +// CON - Connect +// Ericsson Specification Reference: Chapter 2.2.2.16 +// Standard Reference ISUP : Chapter 4, Table 27 +//************************************************************************ + type set CON_optional_part + { + Optional_backward_call_indicators optBackwardCallInd optional, + Backward_GVNS backwardGVNS optional, + Connected_number connectedNum optional, + User_to_user_indicators userToUserInd optional, + User_to_user_information_OPT userToUserInfo optional, + Access_transport accessTransport optional, + Network_specific_facility networkFacility optional, + Transmission_medium_used transMediumUsed optional, + Access_delivery_information accessDeliveryInfo optional, + Call_history_information callHistoryInfo optional, + Parameter_compatibility_information paramCompatibilityInfo optional, + Generic_number_set genericNum optional, + Route_identity routeIdentity optional, + Redirection_number_restriction redirectionNumRest optional, + Call_transfer_treatment_indicators callTransferTreatmentInd optional, + Conference_treatment_indicators conferenceTreatmentInd optional, + + Call_reference callReference optional, + Generic_notification_indicator_set genericNotificationInd optional, + Remote_operations remoteOperations optional, + Echo_control_information echoControlInfo optional, + Service_activation serviceActivation optional, + Application_transport_parameter_set ATPP optional, + HTR_information HTRInfo optional, + Pivot_routing_backward_information PRBI optional, + Redirect_status RedirSt optional + } with { variant (ATPP,genericNotificationInd,genericNum) "REPEATABLE(yes)";}; + + + type record CON_parameters + { + Circuit_identification_code cic optional, + ISUP_Message_type messageType, + Backward_call_indicators backwardCallInd, + Pointer opt_part_ptr, + CON_optional_part conOptionals optional, + End_of_optional_parameters_indicator endOfOp optional + } with { variant (opt_part_ptr) "POINTERTO (conOptionals)"; + }; + + +//************************************************************************ +// COT - Continuity +// Ericsson Specification Reference: Chapter 2.2.2.17 +// Standard Reference ISUP : Chapter 4, Table 28 +//************************************************************************ + type record COT_parameters + { + Circuit_identification_code cic optional, + ISUP_Message_type messageType, + Continuity_indicators continuityInd + } with { variant "" }; + + +//************************************************************************ +// CCR - Continuity Check Request +// Ericsson Specification Reference: Chapter 2.2.2.18 +// Standard Reference ISUP : Chapter 4, Table 39 +//************************************************************************ + type record CCR_parameters + { + Circuit_identification_code cic optional, + ISUP_Message_type messageType + } with { variant "" }; + + +//************************************************************************ +// FAC - Facility +// Ericsson Specification Reference: Chapter 2.2.2.19 +// Standard Reference ISUP : Chapter 4, Table 45 +//************************************************************************ + type set FAC_optional_part + { + Message_compatibility_information messageCompatibilityInfo optional, + Parameter_compatibility_information paramCompatibilityInfo optional, + Service_activation serviceActivation optional, + Call_transfer_number callTransferNumber optional, + Access_transport accessTransport optional, + Generic_notification_indicator_set genericNotificationInd optional, + + Remote_operations remoteOperations optional, + Redirection_number redirectionNum optional, + Pivot_routing_indicators PRInd optional, + Pivot_status PSts optional, + Pivot_counter PCount optional, + Pivot_routing_backward_information PRBI optional, + Redirect_status RedirSt optional + } with { variant (genericNotificationInd) "REPEATABLE(yes)";}; + + + type record FAC_parameters + { + Circuit_identification_code cic optional, + ISUP_Message_type messageType, + Pointer opt_part_ptr, + FAC_optional_part facOptionals optional, + End_of_optional_parameters_indicator endOfOp optional + } with { variant (opt_part_ptr)"POINTERTO (facOptionals)"; + }; + + +//************************************************************************ +// FAA - Facility Accepted +// Ericsson Specification Reference: Chapter 2.2.2.20 +// Standard Reference ISUP : Chapter 4, Table 42 +//************************************************************************ + type set FAA_optional_part + { + User_to_user_indicators userToUserInd optional, + Parameter_compatibility_information paramCompatibilityInfo optional, + + Call_reference callReference optional, + Connection_request connectionRequest optional + } with { variant "" }; + + + type record FAA_parameters + { + Circuit_identification_code cic optional, + ISUP_Message_type messageType, + Facility_indicator facilityInd, + Pointer opt_part_ptr, + FAA_optional_part faaOptionals optional, + End_of_optional_parameters_indicator endOfOp optional + } with { variant (opt_part_ptr) "POINTERTO (faaOptionals)"; + }; + + +//************************************************************************ +// FRJ - Facility Reject +// Ericsson Specification Reference: Chapter 2.2.2.21 +// Standard Reference ISUP : Chapter 4, Table 29 +//************************************************************************ + type set FRJ_optional_part + { + User_to_user_indicators userToUserInd optional + } with { variant "" }; + + + type record FRJ_parameters + { + Circuit_identification_code cic optional, + ISUP_Message_type messageType, + Facility_indicator facilityInd, + Pointer var_part_ptr, + Pointer opt_part_ptr, + Cause_indicators causeInd, + FRJ_optional_part frjOptionals optional, + End_of_optional_parameters_indicator endOfOp optional + } with { variant (var_part_ptr) "POINTERTO (causeInd)"; + variant (opt_part_ptr) "POINTERTO (frjOptionals)"; + }; + + +//************************************************************************ +// FAR - Facility Request +// Ericsson Specification Reference: Chapter 2.2.2.22 +// Standard Reference ISUP : Chapter 4, Table 42 +//************************************************************************ + type set FAR_optional_part + { + User_to_user_indicators userToUserInd optional, + Parameter_compatibility_information paramCompatibilityInfo optional, + + Call_reference callReference optional, + Connection_request connectionRequest optional + } with { variant "" }; + + + type record FAR_parameters + { + Circuit_identification_code cic optional, + ISUP_Message_type messageType, + Facility_indicator facilityInd, + Pointer opt_part_ptr, + FAR_optional_part farOptionals optional, + End_of_optional_parameters_indicator endOfOp optional + } with { variant (opt_part_ptr) "POINTERTO (farOptionals)"; + }; + + +//************************************************************************ +// FOT - Forward Transfer +// Ericsson Specification Reference: Chapter 2.2.2.23 +// Standard Reference ISUP : Chapter 4, Table 37 +//************************************************************************ + type set FOT_optional_part + { + Parameter_compatibility_information paramCompatibilityInfo optional, + + Call_reference callReference optional + } with { variant "" }; + + + type record FOT_parameters + { + Circuit_identification_code cic optional, + ISUP_Message_type messageType, + Pointer opt_part_ptr, + FOT_optional_part fotOptionals optional, + End_of_optional_parameters_indicator endOfOp optional + } with { variant (opt_part_ptr) "POINTERTO (fotOptionals)"; + }; + + +//************************************************************************ +// IDR - Identification Request +// Ericsson Specification Reference: Chapter 2.2.2.24 +// Standard Reference ISUP : Chapter 4, Table 47 +//************************************************************************ + type set IDR_optional_part + { + MCID_request_indicators MCIDReqInd optional, + Message_compatibility_information messageCompatibilityInfo optional, + Parameter_compatibility_information paramCompatibilityInfo optional + } with { variant "" }; + + + type record IDR_parameters + { + Circuit_identification_code cic optional, + ISUP_Message_type messageType, + Pointer opt_part_ptr, + IDR_optional_part idrOptionals optional, + End_of_optional_parameters_indicator endOfOp optional + } with { variant (opt_part_ptr) "POINTERTO (idrOptionals)"; + }; + + +//************************************************************************ +// IRS - Identification Response +// Ericsson Specification Reference: Chapter 2.2.2.25 +// Standard Reference ISUP : Chapter 4, Table 48 +//************************************************************************ + type set IRS_optional_part + { + MCID_response_indicators MCIDRpInd optional, + Message_compatibility_information messageCompatibilityInfo optional, + Parameter_compatibility_information paramCompatibilityInfo optional, + Calling_party_number callingPartyNum optional, + Access_transport accessTransport optional, + Generic_number_set genericNum optional, + Charged_party_identification ChPId optional + } with { variant (genericNum) "REPEATABLE(yes)";}; + + + type record IRS_parameters + { + Circuit_identification_code cic optional, + ISUP_Message_type messageType, + Pointer opt_part_ptr, + IRS_optional_part irsOptionals optional, + End_of_optional_parameters_indicator endOfOp optional + } with { variant (opt_part_ptr) "POINTERTO (irsOptionals)"; + }; + + +//************************************************************************ +// INF - Information +// Ericsson Specification Reference: Chapter 2.2.2.26 +// Standard Reference ISUP : Chapter 4, Table 30 +//************************************************************************ + type set INF_optional_part + { + Calling_partys_category_OPT callingPartyCat optional, + Calling_party_number callingPartyNum optional, + Access_transport accessTransport optional, + Parameter_compatibility_information paramCompatibilityInfo optional, + Network_specific_facility networkFacility optional, + Display_information displayInfo optional, + + Call_reference callReference optional, + Connection_request connectionRequest optional + } with { variant "" }; + + + type record INF_parameters + { + Circuit_identification_code cic optional, + ISUP_Message_type messageType, + Information_indicators informationInd, + Pointer opt_part_ptr, + INF_optional_part infOptionals optional, + End_of_optional_parameters_indicator endOfOp optional + } with { variant (opt_part_ptr) "POINTERTO (infOptionals)"; + }; + + +//************************************************************************ +// INR - Information Request +// Ericsson Specification Reference: Chapter 2.2.2.27 +// Standard Reference ISUP : Chapter 4, Table 31 +//************************************************************************ + type set INR_optional_part + { + Network_specific_facility networkFacility optional, + Parameter_compatibility_information paramCompatibilityInfo optional, + + Call_reference callReference optional + } with { variant "" }; + + + type record INR_parameters + { + Circuit_identification_code cic optional, + ISUP_Message_type messageType, + Information_request_indicators InfRqInd, + Pointer opt_part_ptr, + INR_optional_part inrOptionals optional, + End_of_optional_parameters_indicator endOfOp optional + } with { variant (opt_part_ptr) "POINTERTO (inrOptionals)"; + }; + + +//************************************************************************ +// IAM - Initial Address Message +// Ericsson Specification Reference: Chapter 2.2.2.28 +// Standard Reference ISUP : Chapter 4, Table 32 +//************************************************************************ + type set IAM_optional_part + { + Transit_network_selection transitNetworkSel optional, + Calling_party_number callingPartyNum optional, + Optional_forward_call_indicators optForwardCallInd optional, + Redirecting_number redirectingNum optional, + Redirection_information redirectionInfo optional, + Closed_user_group_interlock_code cUGInterlockCode optional, + Original_called_number originalCalledNum optional, + User_to_user_information_OPT userToUserInfo optional, + Access_transport accessTransport optional, + User_service_information userServiceInfo optional, + User_to_user_indicators userToUserInd optional, + Generic_number_set genericNum optional, + Propagation_delay_counter propDelayCounter optional, + User_service_information_prime userServiceInfoPrime optional, + Network_specific_facility networkFacility optional, + Generic_digits_set genericDigits optional, + Origination_ISC_point_code origISCPointCode optional, + User_teleservice_information userTeleServiceInfo optional, + Parameter_compatibility_information paramCompatibilityInfo optional, + MLPP_precedence mLPPprecedence optional, + Route_identity routeIdentity optional, + Transmission_medium_requirement_prime transMediumReqPrime optional, + Location_number locationNum optional, + Forward_GVNS forwardGVNS optional, + Freephone_indicators freePhoneInd optional, + CCSS_parameter ccssPar optional, + Distributed_dynamic_routing_indicators distrDynRoutInd optional, + Additional_charging_information addChargeInfo optional, + Additional_routing_information addRoutInfo optional, + Correlation_id correlationId optional, + SCF_id SCFId optional, + Call_transfer_treatment_indicators callTransferTreatmentInd optional, + Conference_treatment_indicators conferenceTreatmentInd optional, + Call_offering_treatment_indicators callOfferingTreatmentInd optional, + Call_diversion_treatment_indicators callDiversionTreatmentInd optional, + Network_call_reference netwCallRef optional, + Calling_name_identity cgNameId optional, + Hop_counter HopCnt optional, + + Call_reference callReference optional, + Connection_request connectionRequest optional, + Remote_operations remoteOperations optional, + Generic_notification_indicator_set genericNotificationInd optional, + Service_activation serviceActivation optional, + Network_management_controls NetManCon optional, + Circuit_assignment_map CctAssMap optional, + Called_IN_number CdINnum optional, + UID_capability_indicators UIDcapInd optional, + Echo_control_information echoControlInfo optional, + Collect_call_request ColCReq optional, + Application_transport_parameter_set ATPP optional, + Pivot_capability PivCap optional, + Called_directory_number CDirNb optional, + Original_called_IN_number OCINNb optional, + Calling_geodetic_location CGeoLoc optional, + Network_routing_number NRNb optional, + Query_on_release_capability QoRCap optional, + Pivot_counter PCount optional, + Pivot_routing_forward_information PRFI optional, + Redirect_capability RedirCap optional, + Redirect_counter RedirCount optional, + Redirect_status RedirSt optional, + Redirect_forward_information RedirFI optional, + Number_portability_forward_information NPFI optional, + Global_call_reference GCRef optional + } with { variant (ATPP,genericNotificationInd,genericNum,genericDigits) + "REPEATABLE(yes)";}; + + + type record IAM_parameters + { + Circuit_identification_code cic optional, + ISUP_Message_type messageType, + Nature_of_connection_indicators natureOfConnInd, + Forward_call_indicators forwardCallInd, + Calling_partys_category callingPartyCat, + Transmission_medium_requirement transmissionMediumReq, + Pointer var_part_ptr, + Pointer opt_part_ptr, + Called_party_number calledPartyNum, + IAM_optional_part iamOptionals optional, + End_of_optional_parameters_indicator endOfOp optional + } with { variant (var_part_ptr) "POINTERTO (calledPartyNum)"; + variant (opt_part_ptr) "POINTERTO (iamOptionals)"; + }; + + +//************************************************************************ +// IAM_PTSO - Initial Address Message +// Ericsson Specification Reference: Chapter 2.2.2.28 +// Standard Reference ISUP : Chapter 4, Table 32 +//************************************************************************ +/* + type record PAR_GD + { + OCT1 parameter_type, + OCT1 lengthf, + Generic_digits parameter_contents + } with { variant "" }; + + + type record PAR_OISCP + { + OCT1 parameter_type, + OCT1 lengthf, + Origination_ISC_point_code parameter_contents + } with { variant "" }; + + + type record PAR_AT + { + OCT1 parameter_type, + OCT1 lengthf, + Access_transport parameter_contents + } with { variant "" }; + + + type record PAR_CPN + { + OCT1 parameter_type, + OCT1 lengthf, + Called_party_number parameter_contents + } with { variant "" }; + + + type record PAR_CGPN + { + OCT1 parameter_type, + OCT1 lengthf, + Called_party_number parameter_contents + } with { variant "" }; + + + + type set IAM_PTSO_optional_part + { + PAR_CGPN callingPartyNum, + PAR_AT accessTransport, + PAR_GD genericDigits, + PAR_OISCP origISCPointCode + } with { variant "" }; + + +type record IAM_PTSO_parameters + { + Circuit_identification_code cic optional, + ISUP_Message_type messageType, + Nature_of_connection_indicators natureOfConnInd, + Forward_call_indicators forwardCallInd, + Calling_partys_category callingPartyCat, + Transmission_medium_requirement transmissionMediumReq, + Pointer var_part_ptr, + Pointer opt_part_ptr, + INT1 calledPartyNum_length, + PAR_CPN calledPartyNum, + IAM_PTSO_optional_part iamOptionals optional, + End_of_optional_parameters_indicator endOfOp optional + } with { variant (var_part_ptr) "POINTERTO (calledPartyNum_length)"; + variant (opt_part_ptr) "POINTERTO (iamOptionals)"; + variant (calledPartyNum_length) "LENGTHTO (calledPartyNum)"; + }; + +*/ + + +//************************************************************************ +// LPA - Loop Back Acknowledgement +// Standard Reference ISUP : Chapter 4, Table 39 +//************************************************************************ + type record LPA_parameters + { + Circuit_identification_code cic optional, + ISUP_Message_type messageType + } with { variant "" }; + + +//************************************************************************ +// LOP - Loop Prevention +// Ericsson Specification Reference: Chapter 2.2.2.29 +// Standard Reference ISUP : Chapter 4, Table 50 +//************************************************************************ + type set LOP_optional_part + { + Message_compatibility_information messageCompatibilityInfo optional, + Parameter_compatibility_information paramCompatibilityInfo optional, + Call_transfer_reference callTransferReference optional, + Loop_prevention_indicators loopPreventionInd optional + } with { variant "" }; + + + type record LOP_parameters + { + Circuit_identification_code cic optional, + ISUP_Message_type messageType, + Pointer opt_part_ptr, + LOP_optional_part lopOptionals optional, + End_of_optional_parameters_indicator endOfOp optional + } with { variant (opt_part_ptr) "POINTERTO (lopOptionals)"; + }; + + +//************************************************************************ +// NRM - Network Resource Management +// Standard Reference ISUP : Chapter 4, Table 46 +//************************************************************************ + type set NRM_optional_part + { + Message_compatibility_information messageCompatibilityInfo optional, + Parameter_compatibility_information paramCompatibilityInfo optional, + Echo_control_information echoControlInfo optional + } with { variant "" }; + + + type record NRM_parameters + { + Circuit_identification_code cic optional, + ISUP_Message_type messageType, + Pointer opt_part_ptr, + NRM_optional_part nrmOptionals optional, + End_of_optional_parameters_indicator endOfOp optional + } with { variant (opt_part_ptr) "POINTERTO (nrmOptionals)"; + }; + + +//************************************************************************ +// OLM - Overload +// Standard Reference ISUP : Chapter 4, Table 39 +//************************************************************************ + type record OLM_parameters + { + Circuit_identification_code cic optional, + ISUP_Message_type messageType + } with { variant "" }; + + + +//************************************************************************ +// OPQ - Operator Queue FS: 2.2.2.32 / 61/15517-CRT 212 31 Uen Rev. A +//************************************************************************ +/* + type set OPQ_optional_part + { + Message_compatibility_information messageCompatibilityInfo optional + } with { variant "" }; + + type record OPQ_parameters + { + Circuit_identification_code cic optional, + ISUP_Message_type messageType, + Pointer opt_part_ptr, + OPQ_optional_part opqOptionals optional, + End_of_optional_parameters_indicator endOfOp optional + } with { variant (opt_part_ptr) "POINTERTO (opqOptionals)" }; + +*/ + + +//************************************************************************ +// OPR - Operator +// Ericsson Specification Reference: Chapter 2.2.2.30 +//************************************************************************ + type set OPR_optional_part + { + Message_compatibility_information messageCompatibilityInfo optional + } with { variant "" }; + + + type record OPR_parameters + { + Circuit_identification_code cic optional, + ISUP_Message_type messageType, + Pointer opt_part_ptr, + OPR_optional_part oprOptionals optional, + End_of_optional_parameters_indicator endOfOp optional + } with { variant (opt_part_ptr) "POINTERTO (oprOptionals)"; + }; + + +//************************************************************************ +// PAM - Pass-along +// Standard Reference ISUP : Chapter 4, Table 43 +//************************************************************************ + type record PAM_parameters + { + Circuit_identification_code cic optional, + ISUP_Message_type messageType, + Pointer opt_part_ptr, + OCTN contents optional + } with { variant (opt_part_ptr) "POINTERTO (contents)"; + }; + + +//************************************************************************ +// PRI - Pre-release Information +// Standard Reference ISUP : Chapter 4, Table 52 +//************************************************************************ + type set PRI_optional_part + { + Message_compatibility_information messageCompatibilityInfo optional, + Parameter_compatibility_information paramCompatibilityInfo optional, + Optional_forward_call_indicators optForwardCallInd optional, + Optional_backward_call_indicators optBackwardCallInd optional, + Application_transport_parameter_set ATPP optional + } with { variant (ATPP)"REPEATABLE(yes)";}; + + + type record PRI_parameters + { + Circuit_identification_code cic optional, + ISUP_Message_type messageType, + Pointer opt_part_ptr, + PRI_optional_part priOptionals optional, + End_of_optional_parameters_indicator endOfOp optional + } with { variant (opt_part_ptr) "POINTERTO (priOptionals)"; + }; + + +//************************************************************************ +// REL - Release +// Ericsson Specification Reference: Chapter 2.2.2.31 +// Standard Reference ISUP : Chapter 4, Table 33 +//************************************************************************ + type set REL_optional_part + { + Access_transport accessTransport optional, + User_to_user_indicators userToUserInd optional, + User_to_user_information_OPT userToUserInfo optional, + Automatic_congestion_level autCongLevel optional, + Network_specific_facility networkFacility optional, + Access_delivery_information accessDeliveryInfo optional, + Redirection_number redirectionNum optional, + Redirection_information redirectionInfo optional, + Parameter_compatibility_information paramCompatibilityInfo optional, + + Signalling_point_code sigPointCode optional, + Display_information displayInfo optional, + Remote_operations remoteOperations optional, + HTR_information HTRInfo optional, + Redirect_counter RedirCount optional, + Redirection_number_restriction redirectionNumRest optional, + Redirect_backward_information RedirBI optional + } with { variant "" }; + + type record REL_parameters + { + Circuit_identification_code cic optional, + ISUP_Message_type messageType, + Pointer var_part_ptr, + Pointer opt_part_ptr, + Cause_indicators causeInd, + REL_optional_part relOptionals optional, + End_of_optional_parameters_indicator endOfOp optional + } with { variant (var_part_ptr) "POINTERTO (causeInd)"; + variant (opt_part_ptr) "POINTERTO (relOptionals)"; + }; + + +//************************************************************************ +// RLC - Release Complete +// Ericsson Specification Reference: Chapter 2.2.2.32 +// Standard Reference ISUP : Chapter 4, Table 34 +//************************************************************************ + type set RLC_optional_part + { + Cause_indicators_OPT causeInd optional + } with { variant "" }; + + + type record RLC_parameters + { + Circuit_identification_code cic optional, + ISUP_Message_type messageType, + Pointer opt_part_ptr, + RLC_optional_part rlcOptionals optional, + End_of_optional_parameters_indicator endOfOp optional + } with { variant (opt_part_ptr) "POINTERTO (rlcOptionals)"; + }; + + +//************************************************************************ +// RSC - Reset Circuit +// Ericsson Specification Reference: Chapter 2.2.2.33 +// Standard Reference ISUP : Chapter 4, Table 39 +//************************************************************************ + type record RSC_parameters + { + Circuit_identification_code cic optional, + ISUP_Message_type messageType + } with { variant "" }; + + +//************************************************************************ +// RES - Resume +// Ericsson Specification Reference: Chapter 2.2.2.34 +// Standard Reference ISUP : Chapter 4, Table 38 +//************************************************************************ + type set RES_optional_part + { + Parameter_compatibility_information paramCompatibilityInfo optional, + + Call_reference callReference optional + } with { variant "" }; + + + type record RES_parameters + { + Circuit_identification_code cic optional, + ISUP_Message_type messageType, + Suspend_resume_indicators SUSRESInd, + Pointer opt_part_ptr, + RES_optional_part resOptionals optional, + End_of_optional_parameters_indicator endOfOp optional + } with { variant (opt_part_ptr) "POINTERTO (resOptionals)"; + }; + + +//************************************************************************ +// SGM - Segmentation +// Ericsson Specification Reference: Chapter 2.2.2.35 +// Standard Reference ISUP : Chapter 4, Table 49 +//************************************************************************ + type set SGM_optional_part + { + Access_transport accessTransport optional, + User_to_user_information_OPT userToUserInfo optional, + Message_compatibility_information messageCompatibilityInfo optional, + Generic_digits_set genericDigits optional, + Generic_notification_indicator_set genericNotificationInd optional, + Generic_number_set genericNum optional, + Calling_name_identity cgNameId optional + } with { variant (genericNotificationInd,genericNum,genericDigits) + "REPEATABLE(yes)";}; + + + type record SGM_parameters + { + Circuit_identification_code cic optional, + ISUP_Message_type messageType, + Pointer opt_part_ptr, + SGM_optional_part sgmOptionals optional, + End_of_optional_parameters_indicator endOfOp optional + } with { variant (opt_part_ptr) "POINTERTO (sgmOptionals)"; + }; + + +//************************************************************************ +// SCB - Special Clear Back +// Ericsson Specification Reference: Chapter 2.2.2.36 +//************************************************************************ + type set SCB_optional_part + { + Message_compatibility_information messageCompatibilityInfo optional + } with { variant "" }; + + + type record SCB_parameters + { + Circuit_identification_code cic optional, + ISUP_Message_type messageType, + Pointer opt_part_ptr, + SCB_optional_part scbOptionals optional, + End_of_optional_parameters_indicator endOfOp optional + } with { variant (opt_part_ptr) "POINTERTO (scbOptionals)"; + }; + + +//************************************************************************ +// SAM - Subsequent Address +// Ericsson Specification Reference: Chapter 2.2.2.37 +// Standard Reference ISUP : Chapter 4, Table 35 +//************************************************************************ + type record SAM_parameters + { + Circuit_identification_code cic optional, + ISUP_Message_type messageType, + Pointer var_part_ptr, + Pointer opt_part_ptr, + Subsequent_number subsequentNum, + End_of_optional_parameters_indicator endOfOp + } with { variant (var_part_ptr) "POINTERTO (subsequentNum)"; + variant (opt_part_ptr) "POINTERTO (endOfOp)"; + }; + + +//************************************************************************ +// SDM - Subsequent Directory Number +// Standard Reference ISUP : Chapter 4, Table 53 +//************************************************************************ + type set SDM_optional_part + { + Subsequent_number_OPT subsequentNum optional, + Message_compatibility_information messageCompatibilityInfo optional + } with { variant "" }; + + + type record SDM_parameters + { + Circuit_identification_code cic optional, + ISUP_Message_type messageType, + Pointer opt_part_ptr, + SDM_optional_part sdmOptionals optional, + End_of_optional_parameters_indicator endOfOp optional + } with { variant (opt_part_ptr) "POINTERTO (sdmOptionals)"; + }; + + +//************************************************************************ +// SUS - Suspend +// Ericsson Specification Reference: Chapter 2.2.2.38 +// Standard Reference ISUP : Chapter 4, Table 38 +//************************************************************************ + type set SUS_optional_part + { + Parameter_compatibility_information paramCompatibilityInfo optional, + + Call_reference callReference optional + } with { variant "" }; + + + type record SUS_parameters + { + Circuit_identification_code cic optional, + ISUP_Message_type messageType, + Suspend_resume_indicators SUSRESInd, + Pointer opt_part_ptr, + SUS_optional_part susOptionals optional, + End_of_optional_parameters_indicator endOfOp optional + } with { variant (opt_part_ptr) "POINTERTO (susOptionals)"; + }; + + +//************************************************************************ +// UBL - Unblocking +// Ericsson Specification Reference: Chapter 2.2.2.39 +// Standard Reference ISUP : Chapter 4, Table 39 +//************************************************************************ + type record UBL_parameters + { + Circuit_identification_code cic optional, + ISUP_Message_type messageType + } with { variant "" }; + + +//************************************************************************ +// UBA - Unblocking Acknowledgement +// Ericsson Specification Reference: Chapter 2.2.2.40 +// Standard Reference ISUP : Chapter 4, Table 39 +//************************************************************************ + type record UBA_parameters + { + Circuit_identification_code cic optional, + ISUP_Message_type messageType + } with { variant "" }; + + +//*************************************************************************** +// UCIC - Unequipped Circuit Identification Code +// Ericsson Specification Reference: Chapter 2.2.2.41 +// Standard Reference ISUP : Chapter 4, Table 39 +//*************************************************************************** + type record UCIC_parameters + { + Circuit_identification_code cic optional, + ISUP_Message_type messageType + } with { variant "" }; + + +//************************************************************************ +// UPA - User Part Available +// Ericsson Specification Reference: Chapter 2.2.2.42 +// Standard Reference ISUP : Chapter 4, Table 44 +//************************************************************************ + type set UPA_optional_part + { + Parameter_compatibility_information paramCompatibilityInfo optional + } with { variant ""}; + + + type record UPA_parameters + { + Circuit_identification_code cic optional, + ISUP_Message_type messageType, + Pointer opt_part_ptr, + UPA_optional_part upaOptionals optional, + End_of_optional_parameters_indicator endOfOp optional + } with { variant (opt_part_ptr) "POINTERTO (upaOptionals)"; + }; + + +//************************************************************************ +// UPT - User Part Test +// Ericsson Specification Reference: Chapter 2.2.2.43 +// Standard Reference ISUP : Chapter 4, Table 44 +//************************************************************************ + type set UPT_optional_part + { + Parameter_compatibility_information paramCompatibilityInfo optional + } with { variant "" }; + + + type record UPT_parameters + { + Circuit_identification_code cic optional, + ISUP_Message_type messageType, + Pointer opt_part_ptr, + UPT_optional_part uptOptionals optional, + End_of_optional_parameters_indicator endOfOp optional + } with { variant (opt_part_ptr) "POINTERTO (uptOptionals)"; + }; + + +//************************************************************************ +// USR - User-to-user Information +// Ericsson Specification Reference: Chapter 2.2.2.44 +// Standard Reference ISUP : Chapter 4, Table 36 +//************************************************************************ + type set USR_optional_part + { + Access_transport accessTransport optional, + Parameter_compatibility_information paramCompatibilityInfo optional + } with { variant "" }; + + + type record USR_parameters + { + Circuit_identification_code cic optional, + ISUP_Message_type messageType, + Pointer var_part_ptr, + Pointer opt_part_ptr, + User_to_user_information userToUserInfo, + USR_optional_part usrOptionals optional, + End_of_optional_parameters_indicator endOfOp optional + } with { variant (var_part_ptr) "POINTERTO (userToUserInfo)"; + variant (opt_part_ptr) "POINTERTO (usrOptionals)"; + }; + + +//************************************************************************ +//************************************************************************ +//************************************************************************ +//************************************************************************ +//************************************************************************ + +//************************************************************************ +// Top level PDU +//************************************************************************ + type union PDU_ISUP + { + ACM_parameters ISUP_ACM, //Address complete + ANM_parameters ISUP_ANM, //Answer + APM_parameters ISUP_APM, //Application transport + BLO_parameters ISUP_BLO, //Blocking + BLA_parameters ISUP_BLA, //Blocking acknowledgement + CPG_parameters ISUP_CPG, //Call progress + CGB_parameters ISUP_CGB, //Circuit group BLOcking + CGBA_parameters ISUP_CGBA, //Circuit group BLOcking acknowledgement + CQM_parameters ISUP_CQM, //Circuit group query + CQR_parameters ISUP_CQR, //Circuit group query RESponse + GRS_parameters ISUP_GRS, //Circuit group RESet + GRA_parameters ISUP_GRA, //Circuit group RESet acknowledge + CGU_parameters ISUP_CGU, //Circuit group unblocking + CGUA_parameters ISUP_CGUA, //Circuit group unblocking acknowledgement + CRG_parameters ISUP_CRG, //Charge INFormation + CFN_parameters ISUP_CFN, //Confusion + CON_parameters ISUP_CON, //Connect + COT_parameters ISUP_COT, //Continuity + CCR_parameters ISUP_CCR, //Continuity check request + FAC_parameters ISUP_FAC, //Facility + FAA_parameters ISUP_FAA, //Facility accepted + FRJ_parameters ISUP_FRJ, //Facility reject + FAR_parameters ISUP_FAR, //Facility request + FOT_parameters ISUP_FOT, //Forward transfer + IDR_parameters ISUP_IDR, //Identification request + IRS_parameters ISUP_IRS, //Identification RESponse + INF_parameters ISUP_INF, //Information + INR_parameters ISUP_INR, //Information request + IAM_parameters ISUP_IAM, //Initial address +// IAM_PTSO_parameters ISUP_IAM_PTSO, //Modified Initial address + LPA_parameters ISUP_LPA, //Loop back acknowlwdgement + LOP_parameters ISUP_LOP, //Loop prevention + NRM_parameters ISUP_NRM, //Network RESource management + OLM_parameters ISUP_OLM, //Overload +// OPQ_parameters ISUP_OPQ, //Operator Queue + OPR_parameters ISUP_OPR, //Operator + PAM_parameters ISUP_PAM, //Pass-along + PRI_parameters ISUP_PRI, //Pre-release INFormation + REL_parameters ISUP_REL, //Release + RLC_parameters ISUP_RLC, //Release complete + RSC_parameters ISUP_RSC, //Reset circuit + RES_parameters ISUP_RES, //Resume + SGM_parameters ISUP_SGM, //Segmentation + SAM_parameters ISUP_SAM, //Subsequent + SCB_parameters ISUP_SCB, //Special Clear Back + SDM_parameters ISUP_SDM, //Subsequent Directory Number + SUS_parameters ISUP_SUS, //Suspend + UBL_parameters ISUP_UBL, //Unblocking + UBA_parameters ISUP_UBA, //Unblocking acknowledge + UCIC_parameters ISUP_UCIC, //Unequipped cic + UPA_parameters ISUP_UPA, //User part available + UPT_parameters ISUP_UPT, //User part test + USR_parameters ISUP_USR //User-to-user INFormation + } with { variant "TAG( + ISUP_ACM, messageType = '00000110'B; + ISUP_ANM, messageType = '00001001'B; + ISUP_APM, messageType = '01000001'B; + ISUP_BLO, messageType = '00010011'B; + ISUP_BLA, messageType = '00010101'B; + ISUP_CPG, messageType = '00101100'B; + ISUP_CGB, messageType = '00011000'B; + ISUP_CGBA, messageType = '00011010'B; + ISUP_CQM, messageType = '00101010'B; + ISUP_CQR, messageType = '00101011'B; + ISUP_GRS, messageType = '00010111'B; + ISUP_GRA, messageType = '00101001'B; + ISUP_CGU, messageType = '00011001'B; + ISUP_CGUA, messageType = '00011011'B; + ISUP_CRG, messageType = '00110001'B; + ISUP_CFN, messageType = '00101111'B; + ISUP_CON, messageType = '00000111'B; + ISUP_COT, messageType = '00000101'B; + ISUP_CCR, messageType = '00010001'B; + ISUP_FAC, messageType = '00110011'B; + ISUP_FAA, messageType = '00100000'B; + ISUP_FRJ, messageType = '00100001'B; + ISUP_FAR, messageType = '00011111'B; + ISUP_FOT, messageType = '00001000'B; + ISUP_IDR, messageType = '00110110'B; + ISUP_IRS, messageType = '00110111'B; + ISUP_INF, messageType = '00000100'B; + ISUP_INR, messageType = '00000011'B; + ISUP_IAM, messageType = '00000001'B; +// ISUP_IAM_PTSO, messageType = '00000001'B; + ISUP_LPA, messageType = '00100100'B; + ISUP_LOP, messageType = '01000000'B; + ISUP_NRM, messageType = '00110010'B; + ISUP_OLM, messageType = '00110000'B; +// ISUP_OPQ, messageType = '11111110'B; + ISUP_OPR, messageType = '11111111'B; + ISUP_PAM, messageType = '00101000'B; + ISUP_PRI, messageType = '01000010'B; + ISUP_REL, messageType = '00001100'B; + ISUP_RLC, messageType = '00010000'B; + ISUP_RSC, messageType = '00010010'B; + ISUP_RES, messageType = '00001110'B; + ISUP_SGM, messageType = '00111000'B; + ISUP_SAM, messageType = '00000010'B; + ISUP_SCB, messageType = '11111001'B; + ISUP_SDM, messageType = '01000011'B; + ISUP_SUS, messageType = '00001101'B; + ISUP_UBL, messageType = '00010100'B; + ISUP_UBA, messageType = '00010110'B; + ISUP_UCIC, messageType = '00101110'B; + ISUP_UPA, messageType = '00110101'B; + ISUP_UPT, messageType = '00110100'B; + ISUP_USR, messageType = '00101101'B)" + }; + + +//************************************************************************ +//************************************************************************ +//************************************************************************ +//************************************************************************ +//************************************************************************ +}with{ encode "RAW"}//end module diff --git a/NS_v7.3.0_CNL113578_LATEST/doc/NS_v7.3.0_CNL113578_FS.pdf b/NS_v7.3.0_CNL113578_LATEST/doc/NS_v7.3.0_CNL113578_FS.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d9e43422a21770acef86744a29acc5da8d9c0f99 GIT binary patch literal 34766 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Ƕy(+|hcT*=x&PsOwu2)P$gxes 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

2M?e?sB6=xYGy5`?f$zBM_HB??z5g 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 A6951J literal 0 HcmV?d00001 diff --git a/NS_v7.3.0_CNL113578_LATEST/doc/NS_v7.3.0_CNL113578_PRI.pdf b/NS_v7.3.0_CNL113578_LATEST/doc/NS_v7.3.0_CNL113578_PRI.pdf new file mode 100644 index 0000000000000000000000000000000000000000..efcde4cebce1f166b2a23091e6cb16904ce983c1 GIT binary patch literal 29258 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 literal 0 HcmV?d00001 diff --git a/ROHC_CNL113426_LATEST/doc/ROHC_CNL113426_PRI.pdf b/ROHC_CNL113426_LATEST/doc/ROHC_CNL113426_PRI.pdf new file mode 100644 index 0000000000000000000000000000000000000000..3de5f50e7e44fae09959168620e98d3add4c1760 GIT binary patch literal 32494 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 literal 0 HcmV?d00001 diff --git a/SNDCP_v7.0.0_CNL113576_LATEST/src/SNDCP_Types.ttcn b/SNDCP_v7.0.0_CNL113576_LATEST/src/SNDCP_Types.ttcn new file mode 100644 index 000000000..e2cebf306 --- /dev/null +++ b/SNDCP_v7.0.0_CNL113576_LATEST/src/SNDCP_Types.ttcn @@ -0,0 +1,96 @@ +/* +/////////////////////////////////////////////////////////////////////////////// +// // +// Copyright Test Competence Center (TCC) ETH 2008 // +// // +// The copyright to the computer program(s) herein is the property of TCC. // +// The program(s) may be used and/or copied only with the written permission // +// of TCC or in accordance with the terms and conditions stipulated in the // +// agreement/contract under which the program(s) has been supplied. // +// // +/////////////////////////////////////////////////////////////////////////////// +// +// File: SNDCP_Types.ttcn +// Rev: R1A01 +// Prodnr: CNL 113 576 +// Updated: 2008-01-21 +// Contact: http://ttcn.ericsson.se +// Reference: 3GPP TS 44.065 7.0.0 +*/ +module SNDCP_Types +{ + +// This module contains the Subnetwork Dependent Convergence Protocol +// 44.065 v7.0.0 with attributes for RAW encoding/decoding. + +// According to 3GPP 04.64 - the maximum(!) length of the PDU_SN_UNITDATA and PDU_SN_DATA +// is minimum 140 and maximum 520 octets. +// The actual length of the PDU_SN_UNITDATA and PDU_SN_DATA is given in LLC ASPs or set to a parameter value. +// The possible maximum length of dataSegmentSnUnitdataPdu or dataSegmentSnDataPdu is therefore variable and +// will depend on this setting. +// The RAW decoder should have no problem decoding these fields when they are simply defined as octetstrings +// and stand at the end of the SNDPC PDUs. +// + +// + +import from General_Types all; + +external function enc_PDU_SN(in PDU_SN pdu ) return octetstring +with { extension "prototype(convert)" + extension "encode(RAW)" + } + +external function dec_PDU_SN(in octetstring stream) return PDU_SN +with { extension "prototype(convert)" + extension "decode(RAW)" + } + +type union PDU_SN +{ +PDU_SN_UNITDATA pDU_SN_UNITDATA, +PDU_SN_DATA pDU_SN_DATA +} with { variant "TAG ( + pDU_SN_UNITDATA, snPduType ='1'B; + pDU_SN_DATA, snPduType ='0'B + )" +}; + + +type record PDU_SN_UNITDATA +{ + BIT4 nsapi, + BIT1 moreBit, + BIT1 snPduType, + BIT1 firstSegmentIndicator, + BIT1 spareBit, // set to '0'B + BIT4 pcomp optional, + BIT4 dcomp optional, + BIT4 npduNumber, + BIT4 segmentNumber, + OCT1 npduNumberContinued, + octetstring dataSegmentSnUnitdataPdu +} with { variant (pcomp) "PRESENCE(firstSegmentIndicator = '1'B)"; + variant (dcomp) "PRESENCE(firstSegmentIndicator = '1'B)" + }; + + +type record PDU_SN_DATA +{ + BIT4 nsapi, + BIT1 moreBit, + BIT1 snPduType, + BIT1 firstSegmentIndicator, + BIT1 spareBit, // set to '0'B + BIT4 pcomp optional, + BIT4 dcomp optional, + OCT1 npduNumberAck optional, + octetstring dataSegmentSnDataPdu + +} with { variant (pcomp) "PRESENCE(firstSegmentIndicator = '1'B)"; + variant (dcomp) "PRESENCE(firstSegmentIndicator = '1'B)"; + variant (npduNumberAck) "PRESENCE(firstSegmentIndicator = '1'B)" + }; + + +}with{ encode "RAW"} // end of module