AV-Portal 3.23.2 (82e6d442014116effb30fa56eb6dcabdede8ee7f)

Using CGRateS as online Diameter/Radius AAA Server

Video in TIB AV-Portal: Using CGRateS as online Diameter/Radius AAA Server

Formal Metadata

Using CGRateS as online Diameter/Radius AAA Server
Title of Series
CC Attribution 2.0 Belgium:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Release Date

Content Metadata

Subject Area
Computer-generated imagery Bit rate Multiplication sign
Suite (music) Building Thread (computing) INTEGRAL Multiplication sign Source code Execution unit Real-time operating system Mereology Proper map Neuroinformatik Mathematics Bit rate Software framework Series (mathematics) Extension (kinesiology) Physical system Programming language Enterprise architecture Software developer Bit Connected space Process (computing) Repository (publishing) Telecommunication Order (biology) Website Pattern language Sinc function Row (database) Filter <Stochastik> Functional (mathematics) Statistics Server (computing) Implementation Service (economics) Open source Connectivity (graph theory) Event horizon Mixture model Term (mathematics) Queue (abstract data type) Software testing Plug-in (computing) Computer architecture Addition Multiplication Standard deviation Internettelefonie Chemical equation Projective plane High availability System call Diameter Cache (computing) Radius Integrated development environment Personal digital assistant Fiber bundle Communications protocol
Aliasing Functional (mathematics) Server (computing) Implementation Statistics Service (economics) Code Multiplication sign Connectivity (graph theory) Open set Mereology Thresholding (image processing) Scalability Template (C++) Attribute grammar Neuroinformatik User profile Latent heat Bit rate Computer hardware Energy level Software framework Data conversion Module (mathematics) Algorithm Projective plane Diameter Data management Radius Process (computing) Communications protocol Asynchronous Transfer Mode
Complex (psychology) Multiplication sign Gene cluster Client (computing) Data dictionary Coprocessor Event horizon Field (computer science) Template (C++) Attribute grammar Product (business) 2 (number) Bit rate Data conversion Module (mathematics) Chemical equation Electronic mailing list Generic programming Maxima and minima Database Bit System call Benchmark Diameter Radius Process (computing) Software Personal digital assistant Logic Communications protocol Library (computing)
Service (economics)
we have dumped Christian bogus using CGI
rates thank you okay so hello everybody thank you for surviving until this time it's amazing so I'm here to talk about CGI rates
today and yeah I'm part of the of the project since a while now and we got quite some new additions and exciting functionality over the time and yeah a bit how we reached here just to understand why we came to saturate so we are a company in Germany since over 10 years we were doing server-side solutions in a VoIP environment so we had both retail as well as wholesale projects and in time we needed to to have a proper way of rating so during this time we also consider that we were educated in the hard way around the live system outages this house EG rates came
up what CJ rates it's a it's some mixture of terms it's something which works real-time it's coming close to billing although it's only a billing engine and it's it's a suite of things because it has more component than just a billing engine its enterprise because its customer buys customizable so you can use it as more as a framework to do your own thing so you can customize it to help you solving your billing issues it's all open source so full sources are available on github we don't have any add-ons in private repositories and we we really respect and consider the the tips from our community it's a non-intrusive by the way it's a non-intrusive billing system so it will not force you routing your calls through us or do other tricks in order to get the billing out it simply communicates in real-time with your communication switch or other routing service it's it's designed around performance being online and real-time it needs to be fast for that we have used or we have developed our own caching server and system inside it it which is transactional it has support for LRU if you know Lee's record used and it also has support to time out the items in cache everything what we do it our it's a synchronous so we use this micro threads which everybody all the go developers know by now that they are very powerful and handy talking about go by the way I think we are one of the oldest project around we started sometimes in 2010 so by that time go was in in weekly realized really stage so we took quite some risk starting a billing engine in unknown programming language which was kind of fine as well it's a test driven development project today we have more than four thousand tests which we run on our bills we have both unit tests integration tests also called simulation test so it's something which protects us quite seriously from making or or hitting ourselves it has a modular architecture it's cloud-ready so it's it's based on microservices everything what series does it does it through api's we call it even when cigarettes breed it does it through a thrown API it's easier also to enhance it by replacing specific components so you can simply you don't like something which we wrote you take it out you put your own component and the rest of them should be working like it was working before it's feature-rich so we are what others are calling online or offline charging system it's multi tenant we have the the oldest component as a rating engine with derived charging this derived charging gives you a possibility to fork City yards or calls so you can in parallel build your order of your distributors all of your suppliers and your customer so it helps you solving some issues as well there we have account balances this this bundles what others are calling you can have unlimited bundles so you have data bundles minute bundles monetary you can play with them like queueing the order they are processed you can failover and so on between them and we we do session or event charging with balance reservation and refunds so this is also something you need if you are doing online charging we have plugins or what we call agents to major open source VoIP systems see they are logging so we also are able to we have a CDR server so you can send us the city ours we have we support also interim records and we also support online exports this online exports gives you the possibility to have the CDRs rated in real time and post it to your own infrastructure so you don't need to use our server so you get something what we call rating queues so you push one CDR to us and few milliseconds later you get it on your site already rated so it emulates like you are receiving from the switch the CD are already rated so this helps you not changing your existing building infrastructure regarding the another important chapter we do fraud detection with automatic mitigation so we have some modules flexible in doing that we support LCR computation and some particular cases so LCR based on quality so you can select your suppliers based on how good they terminate your calls and you also we also have LCR over bundles so if they offer you some three minutes over weekend or something you can or the system can bring them into service just for the duration of the bundles we have a statistics service so it's able to compute generic early statistics for you it's all online so you can have in a matter of milliseconds ASR a CD for your customer for the last one hour lasts one day whatever you put in your filters so this is also useful to help you monitoring and be and react on on traffic pattern changes or or something you can set some triggers so you can your customer or your supplier gets notified when ASR drops or so it's it can help you on this and then we have what we will discuss diameter or radius server implementation with some process templates making the whole thing protocol or standard agnostic it's important because at least in the diameter everybody has its own extensions and it's quite hard to be compatible with all the vendors around we have also built in high availability support so we know how to failover between various components and connection fail failure and we also educate ourselves to be agile in developing new features so you have a new feature we want to hear about it and please put it on on our github
just to understand the project you can see some of its history one of the first committees from before 2012 and ever since our code base traced so we were constantly adding features during this time and constantly developing the project to understand our
situates works I have put the components which are part of the CTA ecosystem this is also the reason why I told you it's it's like a framework because you have many components which are working together and each with isolated functionality it each of this component can be a standalone server or service or they can all be integrated into one process they can talk between them at a process level via some if you know go via channels so for them it doesn't matter whether they talk internally over channels or they talk externally over RPC they don't know about that so it's in this way you can scale on demand as when you get scalability problem you just throw in some new hardware and split a component there so part of the of the components or some of the components are like attributes these attributes is like alias server or user profile server so if things are missing from your request you are able to add them through this attribute Raths is the is the component where did we do the rating and accounting so there is where cost is showing up and also accounts are managed stats is the statistic service it's a generic one so you can implement new algorithm ethel's of computation by simply adding some function resources are able to compute the resources used by your customer so you can offer them I don't know channels for specific destinations or count their requests per second so this is what resource helps you for and then thresholds is to to do fraud management or notifications so you can monitor your traffic and you can see all the agents which we have so each of this agent will work as a protocol converter you have diameter you have radius then an asterisk agent for asterisks over a RI so free switch is also supported comma ilio and also there is a module within open zips mode cigeratte doing exactly the same thing and a general session manager dealing with sessions we also have support for importing generic CDRs so you can throw in any CSV or XML and you can configure templates to process it regarding
diameter and radius agents we have as I told you a generic protocol converter it's protocol agnostic and you can define all its logic in JSON processing templates you can have multiple matching processor in the same time you can have fallback in between them you can debug your your templates and you can also do processor variable overloading between the process we have when it comes to radius you can also define a bit more advanced you can have per client secrets or dictionaries we did that in in own library so we are also encouraging you to use that we maintain a radical as Radiesse library in go some idea to have on how you define the template so you will for example in case of diameter you will select the CCR fields which you want to convert and send it to CG rates and you also will select which fields you want in the diameter answer so in CCA answer being sent back to to diameter client out of the diameter event you will have internal event going to cigeratte so you see here the the event which is produced out of a complex complicated event in diameter and you can see as reply you have more modules based on what you have selected to be requested in the in the request you get specific answers and you see here attributes like querying the database or resources for monitoring resources you have the maximum usage of your call this is the value in nanoseconds because this is how both defines time duration and then you have the list of suppliers if you want if you are interested to with their cost and why they were selected again it's all integrated in one API call so I went fast I don't know do I still have time for questions or okay so if any question I know I was bit not seriously we use it in production since 1/2 years we have at this
particular customers sometimes speaking 500 requests per second with 50,000 active sessions so it's it's quite stable for us oh nice to meet you so it was it's really a good library so nice to meet you again yeah it depends sorry he's asking me if I have some benchmarks on on caching so I told you in production benchmarks were like around 500 requests per second with 50,000 simultaneous sessions up we are working we didn't have a customer more than 500 like 600,000 prepaid users so this is quite a large network but if you want to go about above that we are working on a balancer solution which should be available in maximum to 3 months I think or let's say 5 months as soon as you have the network if you have today the network I'll be more than happy to assist you to bring it up that but there was nobody that that I so think yeah this is what what I heard also so but we already prepare ourself for the clustering in the future thank you very
much [Applause]