From a5c34fcd801fb1c2b490b2fc647fd2c4b30d51ab Mon Sep 17 00:00:00 2001 From: Radu Ioan Fericean Date: Fri, 9 Mar 2012 17:15:51 +0200 Subject: [PATCH] api and features --- .gitignore | 1 + README.md | 16 +++++++---- docs/apicalls.rst | 60 ++++++++++++++++++++++++++++++++++++++++ docs/arhitecture.rst | 0 docs/images/general.dia | Bin 0 -> 2384 bytes docs/images/general.png | Bin 0 -> 22054 bytes docs/index.rst | 1 + docs/intro.rst | 17 ++++++++---- docs/tutorial.rst | 13 +++++++++ 9 files changed, 98 insertions(+), 10 deletions(-) create mode 100644 docs/apicalls.rst create mode 100644 docs/arhitecture.rst create mode 100644 docs/images/general.dia create mode 100644 docs/images/general.png create mode 100644 docs/tutorial.rst diff --git a/.gitignore b/.gitignore index 791ac5886..5b935a833 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ a.out *.a *.6 *.pyc +*~ .settings *project *workspace diff --git a/README.md b/README.md index 5e08f2000..bb140c64d 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,15 @@ # Rating system designed to be used in VoIP Carriers World # ## Features ## -+ Fast RatingEngine, holds all rating information into memory -+ Unlimited spanned timebased rating: considers both ActiveFrom/RateStartsAt -+ Unlimited rate profiles chanining for fallback -+ Rating Fields: ConnectFee, RateIn, RateOut ++ Rates for prepaid and for postpaid ++ The budget expressed in money and/or minutes (seconds) + High accuracy rating: configurable to miliseconds -+ Flexible rates storage - plugin based rates loading ++ Handles volume dicount ++ Received calls bonus ++ Fully/Easy configurable ++ Very fast (5000+ req/sec) ++ Good documentation ++ Paid support + +## Documentation ## +http://readthedocs.org/docs/cgrates/ \ No newline at end of file diff --git a/docs/apicalls.rst b/docs/apicalls.rst new file mode 100644 index 000000000..440277998 --- /dev/null +++ b/docs/apicalls.rst @@ -0,0 +1,60 @@ +Api Calls +========= + +JSON RPC +-------- +GetCost + Creates a CallCost structure with the cost nformation calculated for the received CallDescriptor. + +DebitBalance + Interface method used to add/substract an amount of cents from user's money budget. + The amount filed has to be filled in call descriptor. + +DebitSMS + Interface method used to add/substract an amount of units from user's sms budget. + The amount filed has to be filled in call descriptor. + +DebitSeconds + Interface method used to add/substract an amount of seconds from user's minutes budget. + The amount filed has to be filled in call descriptor. + +GetMaxSessionTime + Returns the aproximate max allowed session for user budget. It will try the max amount received in the call descriptor + and will decrease it by 10% for nine times. So if the user has little credit it will still allow 10% of the initial amount. + If the user has no credit then it will return 0. + +AddVolumeDiscountSeconds + Interface method used to add an amount to the accumulated placed call seconds to be used for volume discount. + The amount filed has to be filled in call descriptor. + +ResetVolumeDiscountSeconds + Resets the accumulated volume discount seconds (to zero). + +AddRecievedCallSeconds + Adds the specified amount of seconds to the recived call seconds. When the threshold specified in the user's tariff plan is reached then the recived call budget is reseted and the bonus specified in the tariff plan is applyed. + The amount filed has to be filled in call descriptor. + +ResetUserBudget + Resets user budgets value to the amounts specified in the tariff plan. + +Http +---- + +getcost + :Example: curl "http://127.0.0.1:8000/getcost?cstmid=vdf&subj=rif&dest=0257" +debitbalance + :Example: curl "http://127.0.0.1:8000/debitbalance?cstmid=vdf&subj=rif&dest=0257@amount=100" +debitsms + :Example: curl "http://127.0.0.1:8000/debitsms?cstmid=vdf&subj=rif&dest=0257@amount=100" +debitseconds + :Example: curl "http://127.0.0.1:8000/debitseconds?cstmid=vdf&subj=rif&dest=0257@amount=100" +getmaxsessiontime + :Example: curl "http://127.0.0.1:8000/getmaxsessiontime?cstmid=vdf&subj=rif&dest=0257@amount=100" +addvolumediscountseconds + :Example: curl "http://127.0.0.1:8000/addvolumediscountseconds?cstmid=vdf&subj=rif&dest=0257@amount=100" +resetvolumediscountseconds + :Example: curl "http://127.0.0.1:8000/resetvolumediscountseconds?cstmid=vdf&subj=rif&dest=0257" +addrecievedcallseconds + :Example: curl "http://127.0.0.1:8000/addrecievedcallseconds?cstmid=vdf&subj=rif&dest=0257@amount=100" +resetuserbudget + :Example: curl "http://127.0.0.1:8000/resetuserbudget?cstmid=vdf&subj=rif&dest=0257" \ No newline at end of file diff --git a/docs/arhitecture.rst b/docs/arhitecture.rst new file mode 100644 index 000000000..e69de29bb diff --git a/docs/images/general.dia b/docs/images/general.dia new file mode 100644 index 0000000000000000000000000000000000000000..1b407c1dbf35a25fd3f5502379dbebf323037427 GIT binary patch literal 2384 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 literal 0 HcmV?d00001 diff --git a/docs/index.rst b/docs/index.rst index 2631f8e69..6c2ef81c1 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -13,6 +13,7 @@ Contents: intro tutorial + apicalls arhitecture Indices and tables diff --git a/docs/intro.rst b/docs/intro.rst index 45a61334d..0d5b39ba6 100644 --- a/docs/intro.rst +++ b/docs/intro.rst @@ -1,11 +1,18 @@ Introduction ============ +CGRates is a very fast and easy scalable rating enginge targeted especialli for telecom providers. + +It is written in go (http://golang.net) and accesible from any language via JSON RPC. + Features -------- -+ Fast RatingEngine, holds all rating information into memory -+ Unlimited spanned timebased rating: considers both ActiveFrom/RateStartsAt -+ Unlimited rate profiles chanining for fallback -+ Rating Fields: ConnectFee, RateIn, RateOut ++ Rates for prepaid and for postpaid ++ The budget expressed in money and/or minutes (seconds) + High accuracy rating: configurable to miliseconds -+ Flexible rates storage - plugin based rates loading \ No newline at end of file ++ Handles volume dicount ++ Received calls bonus ++ Fully/Easy configurable ++ Very fast (5000+ req/sec) ++ Good documentation ++ Paid support \ No newline at end of file diff --git a/docs/tutorial.rst b/docs/tutorial.rst new file mode 100644 index 000000000..338f57266 --- /dev/null +++ b/docs/tutorial.rst @@ -0,0 +1,13 @@ +Tutorial +======== + +.. image:: ` images/general.png + +Instalation +----------- + +Running +------- + +Data importing +--------------