From b2d8f4036012700be11f9b4b9c6ca41738f459e3 Mon Sep 17 00:00:00 2001 From: DanB Date: Sun, 21 Apr 2013 13:55:24 +0200 Subject: [PATCH] Adding FreeSWITCH documentation in the miscelaneous section --- docs/configuration.rst | 2 +- docs/freeswitch.rst | 82 ++++++++++++++++++++++++++ docs/images/CGRateSFSTypicalUsage.png | Bin 0 -> 99709 bytes docs/introduction.rst | 3 +- docs/miscellaneous.rst | 5 ++ sessionmanager/session.go | 2 +- 6 files changed, 91 insertions(+), 3 deletions(-) create mode 100644 docs/freeswitch.rst create mode 100644 docs/images/CGRateSFSTypicalUsage.png diff --git a/docs/configuration.rst b/docs/configuration.rst index b51ad6c3b..95d4e1d9c 100644 --- a/docs/configuration.rst +++ b/docs/configuration.rst @@ -4,7 +4,7 @@ 4.1. cgr-rater configuration file --------------------------------- -Organized into configuration sections. All configuration options come with defaults and we have tried our best to choose the best ones for a minimum of efforts necessary to run. +Organized into configuration sections. All configuration options come with defaults and we have tried our best to choose the best ones for a minimum of efforts necessary when running. Bellow is the default configuration file which comes hardcoded into cgr-rater. diff --git a/docs/freeswitch.rst b/docs/freeswitch.rst new file mode 100644 index 000000000..9882fe5c3 --- /dev/null +++ b/docs/freeswitch.rst @@ -0,0 +1,82 @@ +8.1. FreeSWITCH integration +================================ + +FreeSWITCH_ used as Telecom Switch is fully supported by all of the 3 rating modes: prepaid/postpaid/pseudoprepaid. +A typical use case would be like the one in the diagram bellow: + +.. image:: images/CGRateSFSTypicalUsage.png + +The process of rating is decoupled into two different components: + +8.1.1. SessionManager +--------------------- + +- Attached to FreeSWITCH_ via the socket library, enhancing CGRateS with real-time call monitoring and call control functions. +- In Prepaid mode implements the following behaviour: + - On *CHANNEL_PARK* event received from FreeSWITCH_: + - Authorize the call by calling *GetMaxSessionTime* on the Rater. + - Sets the channel variable *cgr_notify* via *uuid_setvar* to one of the following values: + - MISSING_PARAMETER: if one of the required channel variables is missing and CGRateS cannot make rating. + - SYSTEM_ERROR: if rating could not be performed due to a system error. + - INSUFFICIENT_FUNDS: if MaximSessionTime is 0. + - AUTH_OK: Call is authorized to proceed. + - Un-Park the call via *uuid_transfer* to original dialed number. The FreeSWITCH_ administrator is expected to make use of *cgr_notify* variable value to either allow the call going further or reject it (eg: towards an IVR or returning authorization fail message to call originator). + - On *CHANNEL_ANSWER* event received: + - Starts debit loop by calling at configured interval *MaxDebit* on the Rater. + - If any of the debits fail: + - Set *cgr_notify* channel variable to either SYSTEM_ERROR in case of errors or INSUFFICIENT_FUNDS of there would be not enough balance for the next debit to proceed. + - Send *hangup* command with cause *MANAGER_REQUEST*. + + - On *CHANNEL_HANGUP_COMPLETE* event received: + - Refund the reserved balance back to the user's account (works for both monetary and minutes debited). + - Save call costs into CGRateS LogDB. + +- In Postpaid mode: + - On *CHANNEL_ANSWER* event received: + - Index the call into CGRateS's cache + - On *CHANNEL_HANGUP_COMPLETE* event received: + - Call *Debit* RPC method on the Rater. + - Save call costs into CGRateS LogDB. + +- On CGRateS Shutdown execute, for security reasons, hangup commands on calls which can be CGR related: + - *hupall MANAGER_REQUEST cgr_reqtype prepaid* + - *hupall MANAGER_REQUEST cgr_reqtype postpaid* + + +8.1.2. Mediator +--------------- + +Attaches costs to FreeSWITCH_ native written .csv files. Since writing channel variables during hangup is asynchronous and can be missed by the CDR recorder mechanism of FreeSWITCH_, we decided to keep this as separate process after the call is completed and do not write the costs via channel variables. + + +8.1.2.1. Modes of operation +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The Mediator process for FreeSWITCH works in two different modes: + +- Costs from LogDB (activated by setting -1 as *subject_idx* in the *cgrates.cfg*: + - Queries LogDB for a previous saved price by SessionManager. + - This behavior is typical for prepaid/postpaid calls which were previously processed by SessionManager and important in the sense that we write in CDRs exactly what was billed real-time from user's account. +- Costs queried from Rater: + - This mode is specific for multiple process mediation and does not necessary reflect the price which was deducted from the user's account during real-time rating. + - Another application for this mode is pseudoprepaid when there is no SessionManager monitoring and charging calls in real-time (debit done directly from CDRs). + - This mode is triggered from configuration file by setting proper indexes (or leave them defaults if cgrates rating template is using whitin FreeSWITCH_ cdr_csv configuration file. + +A typical usage into our implementations is a combination between the two modes of operation (by setting at a minimum -1 as subject_idx to run from LogDB and succesive mediation processes with different indexes). + + +8.1.2.2. Implementation logic +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- The Mediator process is configured and started in the *cgrates.cfg* file and is alive as long as the *cgr-rater* application is on. +- To avoid concurrency issues, the Mediator does not process active maintained CDR csv files by FreeSWITCH_ but picks them up as soon as FreeSWITCH_ has done with them by rotating. The information about rotation comes in real-time on the Linux OS through the use of inotify. +- Based on configured indexes in the configuration file, the Mediator will start multiple processes for the same CDR. +- For each mediation process configured the Mediator will apped the original CDR with costs calculated. In case of errors of some kind, the value *-1* will be prepended. +- When mediation is completed on a file, the file will be moved to configured *cdr_out_dir* path. + + + + +.. _FreeSWITCH: http://www.freeswitch.org + + diff --git a/docs/images/CGRateSFSTypicalUsage.png b/docs/images/CGRateSFSTypicalUsage.png new file mode 100644 index 0000000000000000000000000000000000000000..586d6752d2891f134f09f9bd01ba189c72d49907 GIT binary patch literal 99709 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

Qzmj5X5l53Kb@o9)YsIs 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≪AX|m)Ou_3oW&kWLmn&iCQJ6z!dwGgrYVdwsza+UR84IekKu5Pa z4GoP!>Mq)T4{|ANX?u9D*-Ku3ezKa5JUb_6^7@XWzox^GE7j8SzxjV$fSp6jn!e(0 z5p*cGP<0(fYt&Lg4MACZkM*8gcDZWtCqr-{5ZnTww|2Dq{rN>##8u!gTs*J&ZGve= zjs8cQ@31G5dW4Wy9z&Go9L&pIkTXhOgU``YlTk?l!Q=BaxmH}9Zr>rPaoS@?Z}mug z=j&qAQc@x+mOM;8)osqTk_7;0xu^8b$*fAhEaE0=YA)ZJpdjOrPbpWgP99cp^0EI(M;svCKM}sM9rvvg z)%}cE8P)xWIH0s^cl|lCls-gdJSIvhli^+pU<`~u-fZ^jN+A#72L|b#cv$aP)oeVnWy1W!lRMNCXM&xuBABesLTzq#pl!*V-)nSng!Ss`(M8fKGY6pm5 zP>@Re9j00sKAU-Xyx^J<(U%7V^uDzSL-YHu=S}?=4m5JvXkGWJp-<+8?C5=?_r|>J zFF8{WNe|sCC{g~#0sG7J(fL^&%Xa?UFZSrAOGCVV_$D0A{-KOq+0SpRtOS&vU(oQd ze$_8hN!Ls%UxT=o$AWW(;|cVKD&vrap2dp4=mK>AZQ&ady@|)bv;@~nzAZXFv8zY z+U+-FNUq1)1z*KALRQUSy6@>JI`o^YIsN|(+e>GkCSOm9Q=5I_&HjTUV=%XZd*Y}i zd0z&{)tZ{G9H?Th^VjX5@m>6wEtMVW>V zEch7HeMdFC08^15iAE~@_h0Nx)zK;{@(K#%XlhxrNliC4N`d~+b_kMkryr~QHojxz zm+Jjul18RZf6xP2$&K!Z^NnuhBy2X@*2~YY1q?OSPN?S1?%lj`!;=bz%{SyL#-mPd zr`G@Z*>`n&VA(9_0uW~|%trBziww~gmJ@6jX3gQlb~W)5c@Ve}elyZUK?$UXv8F)v z<)PAtPzRyXC@04s3|SJD1c!0c#*Nos@mQCUPT>;gopxEiZ<29vEGHyg(yev+7gioqhtAy1Y{n}))$PR8 z5%z80sRULL@lhf`T7bDS)z)@7{0?rN-nenp*N6G`ZUNe!n|83Yv;f42b`8GY^_dgF zJ`J9mO_y@)-zrvrf4iBKQomSJr-S?V_pD?@OIrYBN*BWe2S%xFUvSJp@Njzh(o=JP z&c?~3=a&Ip*3|{mSi>YF-wWeJA`4N9+MRj9g*6}Vd7ffWJAMeI(9Xk$pTYAwkd)NH zpiP*bj~{=ob8B~DzMJapVIyTeJRp zl@aW1U}ydptvh{635K>)&!eqIX464WU3qB28AjL$+{klo8TYOxj|OzHSKBB2AsfC; zO-;wXm2=Ipm10_gP z3m*Z!H=YX|2~>cb>V@bLJUw4h#0)nM*}ZR{{>s0fc$3eSjFJNLW}}>dJ2?CSZ%hDEpMl%v8G|$G6i|<8jXB3o-&&Kf{utef$2~ zaX4sD9|b*cf|&8Jt5!WxXaO~kUa7BBBm2z=zEGz zo;)ydjb_1NtLf7pAyDL`QObcbh>D65)eC;w$zIU=tTn~1KTH`uw87~rAA++l^#>VA zm>XI3$MpO`Np!;ZM;See1&{iOTyH`be0ZDlX_~qkC)bP|AnBv$YS``KgDpLp7DW!o z3JPb2aq`ruto-~0jPw6lo#q+mKKN9A^QM^bURiTK9DI=TK#YNbCugei;2Ze0hv z!2bAj>m3}bfk`&}e6g9i!i!P8LG5k+92K+4uo;+8u=V&c=M=palnGQ4bJD*Z*RVZ^ z{v_to<;#kWg`iGZ^j^Y$GBKHR(NYsqYi1UDRLkAD$*))?&`uC5wPq*Y+ zVA<5nGzEFYb$7xEa$d}e8H#}paA8tXQa}SX#l*}!Xpk4XVTasX;PgC`nANstyj;1P zba8SD3R@L7L*!bu>Z|zTZzu$cExquzC2#>4x}5g9gTAO>SwYkk)p*DYeBr?0f?H`^ zoR0go2=NAs|8=)%K0YrWe|ln2>vhH@xBu0lzkL+e#_akp-oirS{@?+{vvNH~y3Ad6 z`OLUmTK6ip#>QT6Sm5f)j*jbboJ|Sinedg}wvhSXGS`E}!+vC1Bfh9wBc`j|cw){q zgzF*UKIGq*fI;yw@puPfeL1SPdoBfdm%-^8+o}r`ZXBn$JFkg)XTQ71b}WBaU7zk9 z@jcV$^Or9|5=&~?df|4#Z76ZK>=4` znx5tlALw`N37B?v*P6bP^Dv{$%4&v~kBf8&P3G!B1q5v~&Hb40Zq(jdo1`kPK_cMa z3Jc!hrY@xy{RZC@md%%tOGE`Wxaltrp_@k{@sy4z^_3SBY&y3M$g_x`KF@87%=oqR z5B2M1BW1QZ&BWJL$vZMEA3poGTOHv)r)edBkWT1W9)Bmz=v!lbaQ}*(Xa(|=YjALIp8jJ}GbvEV{Pu$f!m0&cO~P~)U=`VGhm6)h zx{JNMlwveX(zjlIJg>>RHB{bH{`-G(LMCPhehk)IdguMcmh}RF3{t>J1b@c-#6wXCqwl~Wutlenm|WnyLlC6S6$o==umN5y_b7Z_U{PhM6n_UW z%4bc%G#l%$Y3W~B$8`u?EFl3#6xQb};hn_T^e`!xlr=x`MK;zWXhN&*Qw8GXUP|%+;uQu^w*~-sc@*WKV1Ql@y zLo(ELZOTnN-Y^FXC5i(z^2Q##?6+g%|0Zq=YO3c?+(D{Df(>A(2o ztJ7JmJz)63HNO&vDA$r%Hk$K!<%SPmj-{e=eBQ6lvw3-K?0b*{Xm8$+FAD~#wC>S` zTVQbkGjSQPpWk0LD*g^V03iS(!gNyOtXYtZf8u-v0>?1*7dcP=^9i%6o!%3Z5>`(Y z4!PEaF@2)z4{X^YAze&KRK$phvIW}eK<5!LyV(`S4PJ4qf8tDxqLU9FI^=kQ!PPAg zI1B`a?dsX%Y=y42KCzB3fevNTA&fz{ z93uxYo}pUx9Xx2-^k+B;4JV`n&^0=TQj7wm-zqINoKy2Y6kigRr-i+YWcahX;G0oF zi`LRs?2y&f)>ev}Ue>kuko4Ml&hzs^ans2vDT#(NX7`9^2lBi0tV-ABM6!}yieK2hLI&O11z**t6&y(54GVjs; z`GXElny>i-t_!_4L&6^jTKbwZ_4`;~I5u%6`%*%A$w`LM1YTF`WS%|sO-pk#gCrzA zEv7rm-iV8d{b8Xk{GRDx#4~32q>Y}Jvzxw)#Wp$rNfe~~mn1i5&O^%QT?+bE)B0Mw z#oEEbr1@(HD&e7Rv@Y{HO-PbZU;lasHNx9y8K zbg(xoEk@XfhhH&|y<(za67ng)**9^j`XHz24WkAQow(cBf5x)7$5Gv<*%Dy-D?2(k ztOT9o{WHFT4Q1{T%?1BQ>axkbQ*`PSn=kCCjEI9Q5x(6#6+E$=fM;V< zQC_aDrdI9QRA44S_L|qT_#{aN5OC%|!k@M@wUEO&4WFw?a+!B#Sy_>I4D|F`8FL;V zt78~nePOk^)u^pAroG9mnQYh@xw9M3ilLO&fB$7=W=6z=V3$6AJePiOL|jC}id6xZ zwdJ=Xy%#o$a3rbzQo|EnVdF>9-kN2%}Z?IV#>-vPp76Ag}nn5jU=s zlt$Y6PnAr(8?~6Nh4xd0*C7nb#*DEuspH=vL>NCr=IE73+SoU5nVF*Qvwk!y(=#9d zn(&N2Hc93+8oLr_9-lhmJn81}EI0?bgVV^G8OM%6V@q1Hu&^kZXn?cRa=-yq+avS8 zI$^$wTOiB=>0%BBOk>Kqx}A}e@<1oyGKP<@nla;IpG-+XqBg~J+ATzc684Q(8GaNl zQx*`Gk1%%2c9vLK)hc|TPPSV&t5ewgSZqQUsFL`+AIfbLeMfBC}!v66il;@ zZWvaM{^R;yAK#ajlq|uo0Cvva=_;_$cu5FvNBExse1n8+_haAw-1GVUKnRoRh>L;?xeO4C=Bgs1p^obkI|z>)m^QQFnB<-23_}#7cXkq zt~q{3k19`1mWwi&%D@pc|C7m?&_F7qx^V?2-+j7;7(WMufW|?w&|B&{*bWEDL36(? zHW?}^Vi$TgqNiKK?aiJz1Zx9ivYzZHn&DE$DUuzxZg5l2a@ zSsuc{Sh@1_sZ%@oI};^-5Z+0 z#rXLCyGn~2L`7X~#5Z}kkTUu5@BsFYX^_E~t+l5L6wU%=3V4h_{!r*+Dhy;%8!G+h z29al>-ww0iZ8gF)4{D8a%%{Uw>E~5Pj~*H0+gn^-x&%cIOy2Oi(O3|9`uSO>-GfWEc=$Xf@s>_tmPGhn8HyU6d zhPrIyD9iiv6Xg)w@Kk87R|f^fEM++uoGsodWpQJ&w0Lx7Q%wbSd@BS}IT9i5U{gTyqPXo&$Cb95e{uN8{iuj|~pXmw&7b+8mKm@v^!37d;^5 z$dvHez0qtldw=o5zGYo8Gn(}DVB>3V9~MM7iz$2g`E9Gzl~7){?ssVQAarGp>yD$) zVvdC!6JCMs{UlNer68YfnJ*zLb0}h?J`BL2OeC}3AdjGs2j&DrmPj3 z{I`Rbz>Hz4FPOAW9bpzfHq0F|4}JQlM`X)jzw@fQ!x@Cc)W0RXA*gWk`|(7Ax>__c zB6F{wd!o2nXX_g^|Sq7Z(ZLR0#S^T`FH6u}Yb3 zTJr@nslxB3_5CT9KCw=<&Hhgx-bKO;yH}j5wfKXp#?y&n+;kBke#w=?Wp9{luL3I{ zAbG2*YWJ*+S3bpbr8lB2AKQaQ(W7z{gyP`!>v#2?g>@6wefOt>l$y6>jdsw`0)9!T zQ~Z^rrp@x`Nu6nX1M9UvcQgmiFB{7u&ugW5zO%$!>6hsC8lI!x6%|E@F_huC~nP zMZUgxSMZA=EFLgwhhZhHaya;R{(UkWYj_Vl-m`0AACQJ!5uH9f6dw zbf`J`)%Ur&)4*ex-=+=1e(TZ0e%>;vKKDhs#dH;7ij7aDe#j?xq?A!| zg}vBWXZUPezY~ogL&misQ22iKIyF5hcZSpr%c1t=OzC3Q zxtJO(QabnKrjiPCzWO^W%gtQD={h%_YE8f$(~B) z7vKoJ@|r(&5F=SsRrmFK!pEBGo3U>x{zt@ZnU!I!vS;`1-ATIpLIYQ>1dLt?@t+Wb z4t&B8nPm}Q**y?u<$E$<@LoNrR)l@TYzLzhvW2Jtz1y`)Twf#aQHDj!FIK#f1SEx& zOAM{w`x&nW)OQJc_ogVAp`4pn@j%Wsy0Sn*S#Dd8dyCrY*OcA3k@jG*X5`yOxfCNw z*IG{z88noEbP|A8uIt(gTji2Q)gVnH1HG@jP3Cj`eJ$Jk8%51n26nI@ z27P-+U=)@x@Z(`L>l~nRp}u)PdB*SeHBlaqs6(i&Sn{pA*eZR5+_my@e?S*9a{qt4 z^I1KXmK2)k2Wtg)8yetI+E=}fLFUCP8U5Z3NVDB0C%fJ?X>q4?pFWi=9g71mD|*|F z!l3x@AfO{ZKPfY*D<8Ypo|*4A;@sb{_>|_wKXLoB0jx-fbzok`*oj0X zYJgVY-xnNbO4wbcISskFHuiRQN&_S(BDl*b91yA6*y-l_NABgTSJdsygdJ?d7F1@( z&dQjbRV%(IHq?BL!NF&Z2|bf54abf1%fB@xC`j*=q_VdS^{T+I#weZr7{7l12DEVv z`1s)N-L01CIPzvcXw%c*M8mT8<&xe$`7_IC2vfBE8CdGCuhuIqE}p`=Yez?naSQKk zD}B}8_GC`Wxb&`~k+<33O%qX3(e^2PyjW8Aqy#XlA|ak5(TfRNsmNgS3kgkQ?XBaL z$piwLs;I?wZpT0QPKfWg-lV6$;|nNXf&2m!SP4)CeSC!dONxq$FaeDB<=Krvse#P@ z;E%0Fi&@b|1;(T>&t&&%>0vo~@6U=XtmPaFJV&>S-wBY}HZqPrp&j|oKTeWoz-qf7 zuzV$)(3m!6%}9Y zVh`Y^A1ypZwD#YK60i}dDhMS2ee^nvHJrD}CJochT0WZ;Ycr>AJ&bMHMs z*17SI%gO{Svc+!xeBmQr?dnui)?@q$o>yF7e<42_%mUu;8k<>9cIs)cP6vdGqV<;N zjv*6HzwJitS=?Mgp?>vQcEG<)goc+ou3IYtpg0R?+qA`QN*ltKKOv0Jvtvu)V-ode91n|)s< zB_Q%3*$I6vSmdU$U|djTo!thl7(Zmys#R|C)&d*ISxH^pAK4+g3Vg3O)OY19=KkO`t9Q(6h+-omKi>DXYu)tEk%uoO6 z6#Kg|gO?w!Y7tX^zBxu{fzG7i+$=jQ^r`2bqNN*3T&PzE?r{N_BV^Ehx`y}ALd3j^N0 zadD?Y+kM+ggewB)mM=71SxC;%gClQVxX5Mh+&o;<2&KLaPh8jUIQVZimqt1Q2M4g> z8H4J6qex}@YWTQ>{RM+;%9z@kt&R0?ahq|}bza?r9+RXC=aC+U7jl~;_Feopzc`$j zI2aGeUQ)%dMYFk+)K_mWk1#t3h$!3}kf_q(emWbrmaQxex;!B~sd&zrp@V*}S~oc1 z+{KGRm}=A3PR>o0l(lG4js1@m zOderX3oNbr?mnd$hlBxRe;SXYEiPRAa>4+V*SBfuyQk;Ba{N9%JumPf&kb#YU>6hP z&)k-Z#b!psUs_|b`wS$^2$c;2lICk}K9hLhfIo9KU?@}p*?pyOO)n^@b-NiQ`{nz0 z)hM|rxtBa%@bKS&FOU7dLzV&od*2*zVkp!%n#+oH_mcEXyw9(AC2l@lHU7SL!G+ag zior|Hy<#Y&|H~&`VY2=fprK>OM!gP8Ro?qQ-4sPAt||w17o14)k2)@rBsZd>dQ3eV zLktXxMxAhRa@sg~S?iyyz1Awd#e$`vwe$557 zmR8=IIqXYH;Xjgyxqrn_wz42n3hwK6uPjjSdR^L%T8qSUclXVQXTt;JJq*Ve5!e#gI)snd{c zyQ^q=eoWl-Oh;e0{#J{k<#q>;h=KXic^0zPL(dR>S~(hi109{LM7fc1(}&2E;@j0LKO7?fLWP3JLcO2W9&mwya3rxAso*hkGq8f3E(w z<$Bsq$&-m6BeORyhP1uR@yTwkRIclJXS_(vRsFqwHsr5S>Gx%g`I*v@*swg^5_A?y zGE@#tqh~9ZNeO%&4UGVB6cW_;-mz0%&jr2^AjBzCU}5*N6|_iC&cc0$EOt0)&P-S> z;nWdA#yoQ-dMS~E2@`$(l!`e6;3sg|{!$`4CX+F6Xx+Mf`yr+a6+^pm*aHHdi4L}4 zT${2A(}u}>d-U_{@Buu6?$SK#)HB^AIj67TZQr#mduuP$AD?$_`pTbXkC|L(OXm!h z_U@cR>r66&t!s5gTbe2t@*C(P4o+2`A-*^&P!`&}9XZ1DSML7>{3jU^iXMOWE-{Wf z+UaraUbE+{aTxT!>w40r`|*aNezo3&k2Svrod(w*rJ{l^V0yg4YEtvkz2Rz_Q;kht zH^;8tW*4T=Z^rH&eHGqr+HRyABYXI`O;z>wyl?g68K6|T*(_Xm6*rC#z!)cc266D1 zyCG8(Qzkpne6jjx!iEi9LZ%iVpd+Q%u0@o+fu1FJmDBWpx((2=RQcenQ`R_Ki zvy&l%KtXq`N!3$m<2>+IJlsa@XCejLY)9A4dXkw$&~zuKIu^;GD&+dzXMPPG4Ov!m z?V{|(dK%eJhPjGqq}eV{_<6L_wR%;@(`60o;-6nSXGp9~Qf*06_uJag=@h#8xy?HT z06K3J(k|H|G$V$Mtx0UqJTE zeh7wF17Dc`b!q^u%5ub|u^AFbc49dM2~1psNJs|OA9sjO2W=V*+X-PmwTGRmYNqka z5R?TFAqp+kcia1)+R~$MlAP!>OmCW6TZi=Phb^cu%%`$5nlPccBTXaS$H&U1X#R+) zA0O2JsGTN}=o%=h`dH(W>C!G^_AZ|&YR;Sy;2nO~MrK-x*NB0Wk8~;4T{(Ya@WQaE z&5DZp#`^FECa$(IFq{4V4kK7&;G7Nt+nj&?bZ5y|mD-3AiB==~eEy(YF)(h1gfg2@ zf(iNJoA2XpqBeM7*V%O{iQ7ZMZoV4%zH9h0iR~XfKhDt)G5EG{;UefCl^Ltzz}HQc zlyZxMA|Zf-U{PiZ)V@E8?VK*?GsA}`Lx{{fa{CXn37#j54c(1q3)~wLHa5ZI3S65wh(!8%>mnuYirf{P# zoIlT)XV%v+ma#SYwP-b+%l{`6w&GiRsfZRWXU-W{v2 zqpDdMx?o?Y;jTYdW{=LQkv-yC{>u1fSeT`S=Q5|4EpTguy&P$Sb(cM(W3)*b_;ET$gazp?G&xR1ks+%ZbSg z>K~=2*NBP$m;EB$3g#mWe_ejPU??Y8q;NHH1%vt7)&3=Q@Zw%#8;y2W}?&#S&}>TP{f@l{KU zFsooYy`V&+h@oN>NvZRNxy}~|&h+ULX0m|D10}>9tyV}E9|xSoWE6Awgxlar70m423z{^(WAeI}W*;m^hb@+dIg4&Y-4bMMVY6v+-3GQ*-NQDe!Im z*IsydY({0|{8XcruO*_dOUTF=v{vHBZ=In2`ON6)oID2A6pqSy&V5s^weofgah&W z_cy(KS$*Rn>O^Y1lk=Z3|MKwo&7(o9KYYTm1 zk{G$Xis)az6r-IkV>J`&<(^KWB;ZLIo+Tj|kPPj4tLvthRC&bVktbJ)g4mD8>h(OloKHiWI?c%X66xW)`^L_`$31%B3kU%qkUk~c4d^%dr&>|HPxrLd@vtE)UN?Jl2I z0C5*iUOOpyxPk)fB;UeyWWrdxR$M$<2dV+}UBv;N=!zwfI)oj;WJApR;$K)}y_qoR zRIL)Tr*&t{`%8!+;rdII4Rq?Zdl1-UnRlS}@UT=CexC0~?6D_SiBG(p06{epY_E%-t z(3?Y+6<;rL)%e`>(dWOp?v*>lL+cMj2E<=W={Pf8R_u1@v)FGxCo5b$?mk6H_R?8p zj}DZ9kW%m%NSGPAO`W(nD`^(#6`#abcW7_O^xemx%fa zrwqf|gYoe+DvT|4nM=sE1mr|r8bx&!iLT@?q=;q`+ma=!GaqNwGy@r-f!TfJh^E{& zm{cB>*`*gv>ZKHoQxhkYZSVbh-=hb`z4XhEC}5x|Y`|pbFyuv_OU9AuIriNXoZ^gf zjI0L1c1#=Yep4|*Ph&ZYSLHXc#P{9(MdW!V^}Ii|F=~0v-JJJ*yPtQXy!6d63zpE7 zde$W7UYO%zCHZ>r539WjyOZ3SI=eiy#L_z+{Qlzj-{(O|7UxQLjsLr_$0{A^GvN6} zMFzk2tnzbbOoN1AZ`m8(pFz8eEK$Hio+UQAiHzYZn=m~joc*J`FPYh-sVZIw#1*1DKlIjr($YxLiykF`GCcyofO zC2%aw^-KlrCefv@UaD@jKBx9O+3!y|uByaa=hIP9Ax$i1(Oc&?AkVIbmE+P&`}?eA zX&c}BGeLkTAY87mv!1RvC33{sYK`@=gNu9Z?={u4=*<4xmk*ymR?&5Q_S(nQkK*Tw zh-CEx-Xzw5jlBqDy8vvon({dAsjs|DW*~#hglPA-rO?x={ zyKXOy<33sO47&hwk4#)Mt1I!#n*M)3Yh?HZUjB8@@6$K4=H^!uG9)k9bX78S9!>=e za{_ukC40%OTdZ@5wz{j?H*(=5@$}K6#gq1YaWJ0qU8iCB;7wgEbXhdm`@Qy6TW|jHq(XrKz9a&C)U3z0x7&)7Bw+ zD=&F$JW_D_<%a}qtv)_YO4qz1eg7My)#H~|gu|z-uMr>p#_%fD<*Y}u=e^vUP+L%2N*)$Cj2y^o zdp+Cyum2c+W|I5|-+-l#-4fHn9^Ww;{Cio{(M@;LgZD(}&o(_#6*`gI9^Q6hRm0S# z+T6aee9Gm0stYc$tm(^=-70GtJi@bFc(wDY=YQrh5`p3-^CMnOjvu?~?2)z`533(r z&KO%ZE`HoB&Dz_YIlnVj#pM6JQq*ElwAwb+&Ks`uf&==Dq@mETOf@e+HNrbbh!3~D z&EzexZ{f@%ZpO?CU5Ku4?U>oSGM(ZR6VHQ$($zQXW&d|QCB1v&7x|){Ve@)5+>6yJ zdRaTjF@B%@uywjEcl!svp4EN-yQUrw!n@c1dU$z`v(360njS`V1DcBuwEoCjIWBDi zQJWF@tc-_)T_ZB%u@mY&Soigr%1PteO*<*Sr13Wmc;O)~EGUF#!YVfSBYre}?5AK?GxvVnJYU|o=B6i*)n>-kS z!y9l>XZuU1^&T$^wvwlU1-rD_7a87ZD4Qw5e-*0>C-E4~=+apU}e+g*OaGQ})gTW$tr1e9euYz?hXjQrzB2D$i z3TH4vpx7np<2q`tE(Z`@xNoA%%p9MrT}-7rDFzs9?=E{IBBC=W#5MYRQA+es*@G|g zpTF%lXq>_R&W^?Hms@&>nI+^*aLVuBbJw5pYp>Z-@YMQprqz)_Plul~e-a}$%0lV) z1iMd@<71{qy3U>f&$F>HLb!us7A>$_<<`gP6f6b#S1exz=+39Ja*i=A7{>M$do5rU z6wZw7#)t@uaf!3cP>v6C>|P+wW`*g;ssYdhxnW9*NKvD__wt^iZl2C&Hj-(P37Bvy{W5M?=N#LFvUS+`@L0dU3u$GbRK8cnxy%#kkXK?#4|csVqf;c(JNgI?g8P*rzr+qMozF=)d3 z%iz?t_N{tc89UP5_rUy9k8&2Kd!AlwVf*G*Wns3j(Y!IMKh9WGSFn2bmLB(K3b~!U zmM7+Y?b`MkR>$^q$iRt&rB&lR!%|5$n3bYil9+ed95xzgaC z&#_`{)%e&e)x^0pn2bqW*w^rZyJo z1;!0`BV#9JMfexG+O(zJ_lC$T8fotkE+%?^4_SnNerYg4?g~PDDg(4^tM{l-7h*j5 zfsNw_LhY8%5)RrxZKZ=N$MzM&Q#06T=+0LdmO3r7RB|27Jup?0U2aJysO$QCAs_4N zpD$$qyQ=ZOSe}iF^z6sbSsg!rhA1i?{BhkotJ}_3`XlbjN=zO5ns;K*F577Vr*hjZ z-S#o~GN*a)&`m6kIaI(;rBM_!LwVr?>5K`xUVBPXgh7grnUZXPJljQ;WVaZ0_i=qb zO&|k9iKeLmRfnHK^O3IBjLGwT(f|91vE z8|~{!H4C@a=l}idKMW8AJ!Sit&S_{k8D%7WKSa@tE*X0$<6*EiwbazCRO7F^(Y50* zaA4!c9-E7SG7=2}Twz5##b9ZnG%FlwEC{4mS+cRdDI*js78*I2bo%3u@{0hUoS5-J zhT4BCIxnw+g7v}(aHACNd#Lpqo0}8&?k&J%z+mnuVb#~iRLSAI?Xg}$&-VnuNY`k_kh;&pZ-}KFBKFkRCu_k0PO$`RoP~2@{m6~i}lLzhznVY^5^G@ z^@E~JCJea;H4Xy_wrqO*X1Nyeo%NjCww3X_w-^^)>G}6t$NzBw82U`2x1;q)K5=3> z;#F9yB2O4~f_QvD%&}z211b@MoruU$hi2r0F!u9ubD`8vc|3=I3+~YT?4qIcweX9( z`bV1n*@jS-H#V1%AGB85$}qN{LUm>$0CnX`z~~Z-BsmUnlFyT*1Qct~$>2Xe^e)wI z#YctO2ZrLfx5n5Zu%DH&#-@t^adfMgEIEu_(Jz)ag=xYO>~$dLFqk{BesAO?W)BmQ z&tQmw&;c=GH$|%U-=HmwPMD>0(uyx!<{Ptzawc-#iVA=YV9VMWDB$Vh?(p$azKKgr ztwEzJI(_OqLA=RT`gB$Jk3{t2!|bgII!~EH6qXm_tRkniK>94yNDKrg(YQ0Zdwb5A zBhT6L3wa{{tu(hm;_7Ig!Lw)Ud1p4dOZdngyzA*UHUZgZ@O=>#;TKbQT8L!sXZ?yb zYc>mEj~fJhTKekquRqL=I`SPx+I)qY+0tr&hzl>K>unti_I0f1eR>>TyhmlYNho_U zr|*G~CMI$zwB4#p7(7WAXRgc2&Aq9ei)r`~FJevm4z?m(>J2_-dL*Gp+)Ng46Jg5_ zfgn1%m=P6-+sZ ze)r?P{dIk=PhEJupReb6p2v9%T)VIS2F}pzIEyC&WB@1|R)`kA@syE!HHMZR2s;-S zp|iZqN4Z*an1TfQ5@NX>N)cIUCi;GO*nFKH|Hu})dDA958GHfag$dhF6VsxKmg`#kL_0H@LF?2kP0hJ z5HY}rHWQWkD>_5Rq`8~D9y>xX<7LtJ5pVY2F!Y~>{4MDvlHRd_-jZLdt1!Ij z_o>i|S^V*XFx%e3DefW*W8~7(xp$e(gk=Pm++8TDNthiU^q#t~*yuXg*k}vs1~>#1 zB;ZH@b2{;U`2DA?f(hNem3}% zVHbsa7`N>%B&^vf0+57<171iC=$3H30y2X4oMGfot_S6YbJJd6o&!w5Dv7{CT`aJ= zLejTE&=7s<9|q>Nos{;kydn zn*l_K78GKGde!wCEieKAV=lM^|>nGFpMXYYRkCjk@;0=O9paj#uy znOvM-z{y1?RETX6j6}%!Wo=4)+Dh1&;@?Aq1Q0a}zH(Z8fa-|40U;eha4aPcy{fx7 zUZR_;n2R`q1^gCL?0UF82~tW{1zp`<=YH8O5AE%FaR!x&l z?19&je*L0Pj47xV<$DcK=zEYa@7{$)imso`S1!Fg`#|WD@J@rF?pkgJUL=a)z137b zZS9?M9*<0gv%03i3B_%X#^_q5!;55mJg0U(}v_M)xrj;&jdlgYGR1VI8A z68OMyqWJ(#vC_)tZ6BVj_dhO(L>eMCt|OQGP zzl_46b`!~Vocze?`3qb(f28X!ZUNelh>FgG?`dghAQ0+=XmEeD7J90qrKz&6 z={R|}Z{LQNZBO(**pQXYuE!&^7*VWAa(v?AE;v+_x1Bod@ZKRJvzumA?4r{^sZxfz zvdRl!mZiUUGnJxBAt!_T*3E}Cu7BX)jm7vJmb@nUWGP&oW0R7g5kiFtV`amP*fYZ- zIAxD^N~3q+p|(OV2O3#}yBsvc7CI#kr>Gb^K1UC8_ zfky4{7482;zslXK%Hz09kQ+@ooKSl8ClXSR!Qx-}4_0$9hS|Ew70KoxcQ~w}d0fYx z(9N^tDRITkp@5wK68e;|ItXnl(ik&&AomM?RX1#DUhS`lojf%5;1tpWwG?o0{Gtsq zDn20G$-baK!1CeT7Pyw~zGdL}Cn_n9mAF{`HtxDgkBoKv$T*)A5sdM@lTNqqY4IWX z=)~QL&z}oTg^wCJ{F$4gy3WhAbeQQi9uTf*JfqBA-w#02hBX3O_FK4t@IAH(=$azV z8D5^q0|jyQ>dJT=Uh>nXrrloTdq>e>=fkED<@3*C*D=9+x$5&->S)AR)sjYWM(2?t zi_s+|E>2UbqM`!65ylKP8{9o~-EsHj3P*TFHp?Cab6%mUgm0tyBl zv`0lMrHtWE)g>2~M^$tUzQ-$pvQP#6SlW9A-x^g7KJaLNaX5g$NdJ9@HGN*stJgH3 zrd;y$tQUWbTN}T_bGPxM$zg1L`3+4QNEo}o_(xm`2yYO~W8>TqSuBmwZi_n_UN8ah zcff(fTIw@;8jOL?F5H}rut$YI-3m?>tQ(0RGy7#acMKi?qU)eKnwXn^Fm1mgC&Ctr z&BfYBpr?4H(4@cr5Mb{&JYfpsLTnr`1ZU$(pr;iSbO5!^^DlYILoSoMF#53&`k+U5 zK(9uvfp^3VofCMmE+`Yg)1dX}4|9>dkN+O*e*n$$Vwu%u504c%?VPPUz7eepPER0U#DK>_V11Ogoe@2_hC58H1n4#{q#j z!N~;eDV~Sas}@wS4m1|vIoOon>D6<8*uQbfdLZvGG^fe>VcO>-w4d8vdB(n%YH9E4 zWeIe!Q_k)RulPWQ(@&C~L(w1wbaZr}$kw6lbJDkSaw5V&iP8ZA4FDE2&$AtAL8+-{ zBQBx?Kr-XVkCoQDAAZi=h>UzzRAj&MxDhA;!e&viE4>#!fsg^CUu-nbTUru2f2?15 zk9`^+UutNyVgqxj2qRK?MFlK3B9&Glg)#PAHiJDcgs_j4NBRE?<8k9`#7hi<9o}Q7 z&z@VqZbuIY_Dz^GH*JyW3$#?A;c_HM(zMw>GSXp>m_UOE#!NMIPPhp${UAAPkT8Nq z3kI1`Nv4PH>gJKt8$q`fW^L}yP${9kdvqKF(ui(=!^5s=*sz^JH<3I`$Do?sg@yoM zmTcFLWMJSkITYaUtj;|&&#hvwTnx-vhIc=NR2|TH z;b)Kq^G>~6%?vhRJ*POSbl(D81ED1?f@&#Mte zoQ;@=K2C5UbpQ?QS2oNh!J=DW8R|43eQkH*A7;=!ars%V0l(4FaUe5Y{~0zjGXrSg zy($0sg9-Tg@ZgP)cP)Va-mdgpcm3znOSf-&u>)8rQAGm|fYRY)JS0j)3$#sXgav5x z_ENUMv0s>a_11RA2jF*t3okATYa1KEdv7tNVfMhe173`k*YjCiEJrg5n_F;d7QcN9 zpz4i})Jr&+iMDL%Ovu~xO%f1H$VS(V)+D?Gh6Ih(@#9;yV_*si^Xc^OC+N|hV9($( zpdzzz@B5E*+h{=J@mub*b^dXKN3Xe34YGS2No9n)^DA@jcOyX?jToYo z;r|ZawLdH}km}0B)WLV|q9ysIJ{?788IQIbK6A{D#LY3ju~ys>(i-UV@nrIf(wAe= z$^!D8)ns#%q8c6c!`gdUShYb9LU(=vC&gz_U)$L z0~SkD!MjyB3wb*_enFF8acNGFH5|Rn?B~y$s)WEbBQ7tfb70w<+76%RJ=CADzxGVA zMS~8%FiP6vnDOt|S^z%@4huWShTRRN?NOsEns_{@6sTvUnJC=oUp`iU92`^thvmPg z)I934io*>)1l#~#w(dp!4n^f*KtfqHEGbZ3MB`9D`yunlqD>faE63al*CBh{0O9pB zunxk3L@`SI{8^+0BOe4K&0%3YOinTAfBk>7%1GUP3M#|^!r7s@a5p;+Sq92^W8);4 zp@sD-oUbaigt|)*2M3OGqVI0%ZQn3oqb)vcE6_9b`Ev{Rl(BX%8NsJsgN5)q?U`47L_NI?Pf<{`XY0ty6A!o$NOxpJ}EdTNbww_1J+s}FyW*=B{NzpdCb*pt8i=Gr4K ze|jHF8Mm!YME}$4(v0-K;6q;IFM5tWVtG97EaB3&;;#aOqOq~D{d9T*Y_+;X`XzAX#B8K1AQJNzptZFafsR`Rvqc8jq z(V~Eub@3%Tr9oUAhN#ehQ@w3;NFquTRA<9CVG@VY)U&h>yv$|TmlN5l@G|8iwgsUq4I+k}hr?}2j zcT?wf!e0%)AONRUFJhsBsW0&8`@=C05q$h(MfNtwqoqKVZkl%`C2~+Zp!fh6&F^to zTU$e)I`{Rf^UUEY2?8_iG=*-2IBjriUF*}ui%T?rd-rDBRLx`KxM(W@(7kyayd?C$ zW$fIc0Ni73!LJ8h6_ol6vPDxcF?g+r=5|d39YvyPj;&c<50)&5y>%aX#e9=GcmWB| zv!8&5pqD}F4^M=~=|YQIs7Ggn#UdUt5)dytu^)q;>*0z0J$qPa2~Q@}?+Kx4YKi*@ zsWmL#35!vaJfvvcZ!O7mh>=o3m!<=p8~V`_+jj1?2K1T;E_}E`p|pX7GK-#SBgvrs zDPoaB-a(ptG!uW=NtTwSQx}+7x|~QpMJc%ol?QE&!j)ebLFD1Cj)MEf%3k;pE>24Y zbY}2~>U?I(Dry!V9lfEMTc!($^)!YST-TK6^zl%3pE^f{PC1fX9 z|Gun;npMebn3?PYCY_De4^8bO9tH#F{QS6Rrgik|2a1j6ia7mhLFcm$F zTiU=NDu-%G-wl@&W-G%;ia>8FQ*0|SPN}XD5d*;1FpEjfexJm(w!S(m_I5XqHglT= zmQw!?3WTxE<4~JFGq%;i{rE5|E76zbx{W0!t-A~G5d{2x6`W0*wN=8oM>7&YRlIM6 z%Euh2CkTy`5eSUJtatcwO!7|m1X;N0rz&x=v(J3}nwpqMHZm$fO$Am4K&rM1hz~6T z1JrGL`ud_Uki2mNIfO&coOgN33M;Gw+eJ4N39(B#gQ|BqPA`U;3zCT#h=5vrlv@6O zL)e}}Aii6d#4{)BKSTZwjGjuZ!-?M&7k`cwPQT)5Lj`%?e8Z;s(Sy>9l@a=sAs@luB)YE!~zc@q^Ei1$As>nONF7))~&8MSW4QJN?nt@RUQ8P%QNGDqWXa@UVS`sx} zk*TR=-6wSI?WbYpMt|QDygamXy>^m!b+?ipblTziLuE=T`TnZu%y71gO)R@{`>O3`*$}HX|VidCrJgO&}a3yq##-5q%0G|o0tfm`z!BZ+FJ6T$$ z^*D^XmBW5eMrJRyYL3yXD6&fznS#v5-lmKNr_nLsckd?f&*3Q(g-7{f~i4BfiO6wuP@?YsQ| zpYly~ns_m9@1UZsT+i9;9i8*Z1wea&;-81BpEOaY`U>#fKgN3 zt5;-iZ>R15szPugk){=jwn>tG&AL%f3n5JSqRbQarTqdgXb&?1=!Hn})xvrkpLPsB22S!Y3f;}5GAVd_Y@fodS8w0alD+|0lKc5;u%mkzt^OT?jdN*D31c5>Ddf?P z0OIffEXVLx6kdJw^&Pf0aB1H{B8^N;WEly|C7(>6#sjHd{9dV zrvND+r$bi&313hcWpqj!(?c$*gH$GuY38MKG`121r6w4vM9#+1GBeReSF_zrH7%;h zG9CS&V}v=*W#g*&2GXX(DnhCNLX2{sU3~}jG8AEVlauun$3TA*xC2-LJ8IP6xMuY| zTZ3u?uCe0411Ty6-zili10I$y$JzSn(RTsKIBUunSa29FqA(;LsoAj67MpXx5peT6 zge(O(QQ*?sK*EgwS-IQm0hH*Fs-(3;=g1m<9`6_qCbY7Ega<%VW-wa=>{MG@yIN#P zB5^kQf!KYU(`Tl8|HejXS|GHnFzCTufi(3+4g}X80uqERzy^{M?pne{^P}AzjE~f6 zK?Z4`(Ya;vF@Oz_(McjfYjmgSwd;MdqLVP%F0>8!6}ue)J05OTynhH6?%SLbwuP4g zu%8wYy@B?J^#K-17rV`^!rFI}NR6%_d|8Oo7rcHS%GZQb2j9H2>)SW9+vD{!fgcOM zb_`~dZ)pP5L?Q4!r5zKjv)!STJ><3Fe?U5t(oi#CiVP|^qH3`qYz3d!hwygbL~=nF zuJ;d)%iyFT%o0-)Bt_)O^~B1`-{1hiA)a~HuCtS+4+gKVb~QH>Nw8RtVw!|mBl?F# zaZ8HZW0?K0ogky<0)HG}^+}**SD9n@O3C@;d_on1nFi)eOBuSO=GS%;IrINP@h+DM>o~Kd&itb7nGwv%DA^Bg!V|iMUJCvhC|(`B{6nxc(loY zQuykx$J&{Q0Xb^At113GMS|`n06Pc{dTYf)onBFq*lGh~-pmuH&YWqrJ_wn#LvUDa z;Q@Giafz9U?g$B+mVf~umQ(;s;jm*Y%nF@(FT(OL$h&;S-Hq_y7`T?yE}n;E1t>^=boD7XA2T}+V`6_>ys21+YFjcjqExIm?-J8{cIJ%)fV@i*smaMi=K$le(N~*EHJZEp zN)USfrx#YK>(pOb&PbXlT3(sKg2P>3UbHJZYJY}tG=4`E?#!?w9 zi!5Su{gIytRl^_#l=yo6C$v4c(S!t_ySxi<17I}piYY8f4jNVucc|y}sIG}dXkg#( zAy>5=Ncb0NYhy~vH=*-f?#M~s#SJ%8wLM!it09aJ+F$=joEh1VCUtd-IzlCsc=U@q z47NH2H7Jd-d|SZP-#q>*#`PQhro(9Qq{PIIt?vx$_hmD_7ytHuxd6ZN%9+o;-($7wbEJN}lI! zRJP*cQOUHI_EKM?y+lP)5yFQ7`WrrB&k85mi$o0&QJJ$f%P~TJIqycX1N1??bfg;m zs_NpBsp6zazs5|x37$=&aYt!Q(2i;C zn+PcYcuOMYs}*PP(kW+85|lPX^A zxM&<^#dwX!IGrRC1};!%R=yOs>ncXAgJM)?Q+(Xplp~`-Vhicb+qd}4&|p{<#kbmU zT+PJ-1GOEAsSd`t3?PTV%?5UM{#Fo>pJUHqsTB`Fub@=E$!U1+SrXiv@!-IF);Y4q zYO~f@8N;NEpzc6}fMm2BUy5JYl z*?C-;Rc7jZNHdkoz1o%*dO0mLqXzp>Z2Pl1?FzrdsO+wBH50glbEsgD*K^`Vq!fDu z#N^DMc-h07U_o&0irEPUm7(hEo3vv#OCBMGaR!w{M>=|6E)%F~ak(qQWXGkfos9^us z8aYsI6xoJzX?<{1+GEV<~ZzJ>AXa&f_rvSpwZE{EN z1S?W}K_BHpu<2`S(-_3|By#@ilpkt%v)vvmOgDnBJ&F!~OB6Hw>i*yx0eFW<7HQM) zEoHtjW41M5Zy=8)IvVgC+bkTYDq-pHfvV9JFOcc^7>$hSu)FaI3ANwEIU6~W_KqZj z`N<>_@Um02k5XK77pbPFrxds*q_${#F?NGU14bVf#UNtAL=|^HN63jWdb|snCu(Da zt%}%0k6>>nsBnwOgQu91#nx+8XFG{BWtUktdO}^tU%=@W0tm1v%FfDyhp~*zv#q=u z!sL?cjboTaoPd-$M@{FUe8U-!6LBK$x5{$F1GCigdD|3)29h%c^K`DMH`Zk9e~5m5 z_uKAjR_+fR7+jJ8)q`7oyn$v@7M)rNAHiXi)bi`Av(SKD{&rSYX|yjGnm~)fw+HPF zx3d@038|juB+(ESrS%l317=TR^ z=4W;&CQ-OS#{fQG0E(T6G^OcsO07l7hwX=(FOW+%`6v}T9#dqcyKOmo`$OMrj+0-N zxu(AI8{6Bry-vq%kQe!&k-*vw<9s%`{v+fYmI2 z|IV)9jq_DFdbd&B61Mi%#eKNL{!V2?V!MPq5=_8|5;s}^&$`#;ea$y<_6QSR1$xTb zE;~s!W*bY(4SRLPYq(}yrPvvaQ#P078ReDYDI-o_r$fEi6x+pd&+w5h?WXz|D^3-fcP zDVt3qLvBh1s*og7c!x>XcK-*H+`<{FW5tpbnE?G_x~ESMpshoO(?$|72!f1h_ZZ*u z5|(z5L}Rmrs*R$wzS4dbFyUhA`X5^WSzxB2&xi9n)_$@;)=%VM9Xy0h0W2LzHJ~HG zUl=SDR6mSs7e<$Ev-XrQ@$I~0T&ApJOpdF+wn6;E7PBf(ndSL&q?)czZ$onGd&mKn z58^gUmnCNgsPENsbJjR@#a|+;$$k9X+8kR|^6?YlUd+Uc?%ve!rPnf_n{*F55haK8{CZabSqGKNCCLlr{nZx8h(W_@+Rx=f`K?n=LMGN z;F^QN05Dr^fJ+??6NFP4^(L1bFyzm%Q5FXu=Rftx>DR5gqfcEzD7MF4k-!PT=!>22 z*^Hq#dlXP!2^}5uaoFhqNyZ?#frPES?$M*~7#Z;ooI$l(Iyz|g2oFg3mS0{L9`wW< z5FEVe4&T)a$MtknFV^Rnc^=lAZoE2uE@b-)Umv+8(LX;tPi;P{`!Xup@>0pnP3C}8 z6eO#sLSD)zXQ(ae8ca3DKTFb5Z1g$E41rj{?zAm?ljggx$8IJXvVOvK91MiT@87Ks zCg4p@Kz_5M%)5IVj*MDHhrtAWRQ5@y-J_~+d@jj&s;@|12=(3gaepHnv^!6pg!1sS zg`x{E*oXcyvDIL}O!OJi*x(&X48v+1MuG5u6OH3wVuImdkzMDW=XC7rNJ_}!kaod5 zmUb=}ZM*MLBY6_(i5k?Ob>iZ7o}ktk8)tS+KhDp${KE$Q6Ft32OvvpW`zk?o{Wrzp zYWkNG-`A3Qbl~Ch=WHY}Z@<}uVUkVO$8r#sgRnWqTYaMP7`jy8`T+gYya?Igw{<$! zZiI8?=Dah0c0Y?hzff=@Q}77+=i5`4dD={3*Zt*gJ4Bn_%+u;n*R9J`UpcX#G-4io zWl|#KHc4OMi;&opJEyw5OY)2>gnW8@4swwmr1D>q{OjA;>6i4m<$5gDzXv-A2Uyf1 zyb|DdBiV$RK7aAz@B{i|AU}vN_8Gvi>&os`&0kZkwUa{(yC zpCL-|Vd$F0o0)FugQPF6Kz|XX96;CS+);Td;vok?DUCY?eorJ4&NT?t=(Iwd+2@xbot1U zRQ4V)|8?-U=c#&*p*`uw0AH!q7_fox_x}qjDuB&Zn2kKT7E(DvKpKdSry`Bu7&GzNRSm~Cgr!m~eg3O2Z$s<&BcbbsSS9oh9 zs!&5;EU|iV4;b?XP6}HYG#l7MF6wRh6+b4Mf;t)%g;FPvgMRt)WfW0ZnY7H1t~6Ng z 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 literal 0 HcmV?d00001 diff --git a/docs/introduction.rst b/docs/introduction.rst index b90b08e84..660c5e7a0 100644 --- a/docs/introduction.rst +++ b/docs/introduction.rst @@ -2,10 +2,11 @@ ============== CGRateS is a very fast and easy scalable rating engine targeted especially for ISPs and Telecom Operators. -It is written in Go (http://golang.org) and accessible from any language via JSON RPC. The code is well documented (go doc compliant API docs) and heavily tested. +It is written in Go_ and accessible from any language via JSON RPC. The code is well documented (go doc compliant API docs) and heavily tested. After testing various databases like Kyoto_ cabinet, Redis_ or Mongodb_, the project focused on Redis as it delivers the best trade-off between speed, configuration and scalability. Despite that a connection to any database can be easily integrated by writing a simple adapter. +.. _Go: http://golang.org .. _kyoto: http://fallabs.com/kyotocabinet .. _Redis: http://redis.io .. _Mongodb: http://www.mongodb.org diff --git a/docs/miscellaneous.rst b/docs/miscellaneous.rst index 201f7a098..edc035252 100644 --- a/docs/miscellaneous.rst +++ b/docs/miscellaneous.rst @@ -1,2 +1,7 @@ 8. Miscellaneous ================ + +.. toctree:: + :maxdepth: 2 + + freeswitch diff --git a/sessionmanager/session.go b/sessionmanager/session.go index ccded4cea..b85d617c7 100644 --- a/sessionmanager/session.go +++ b/sessionmanager/session.go @@ -77,7 +77,7 @@ func NewSession(ev Event, sm SessionManager) (s *Session) { return } -// the debit loop method (to be stoped by sending somenting on stopDebit channel) +// the debit loop method (to be stoped by sending somenthing on stopDebit channel) func (s *Session) startDebitLoop() { nextCd := *s.callDescriptor index := 0.0