Real-time charging for OpenSIPS CGRateS -...
Transcript of Real-time charging for OpenSIPS CGRateS -...
![Page 1: Real-time charging for OpenSIPS CGRateS - Workshopopensips.org/pub/events/...Chicago/...2015-CGRates.pdf · Real-time charging for OpenSIPS CGRateS - Workshop Dan Christian Bogos](https://reader034.fdocuments.us/reader034/viewer/2022052406/5aa5033c7f8b9a1d728c9cc6/html5/thumbnails/1.jpg)
Real-time charging for OpenSIPS CGRateS - Workshop
Dan Christian [email protected]
OpenSIPS Workshop Chicago, August 2015
![Page 2: Real-time charging for OpenSIPS CGRateS - Workshopopensips.org/pub/events/...Chicago/...2015-CGRates.pdf · Real-time charging for OpenSIPS CGRateS - Workshop Dan Christian Bogos](https://reader034.fdocuments.us/reader034/viewer/2022052406/5aa5033c7f8b9a1d728c9cc6/html5/thumbnails/2.jpg)
Our Background
Located in Bavaria/Germany, over 8 years of experience with architecting server side solutions in VoIP environment Platform implementations covering both wholesale and retail business categories
Responsibly understanding real-time processing constrains and the seriousness of live system outages
Real-time charging for OpenSIPSOpenSIPS Workshop Chicago, August 2015
![Page 3: Real-time charging for OpenSIPS CGRateS - Workshopopensips.org/pub/events/...Chicago/...2015-CGRates.pdf · Real-time charging for OpenSIPS CGRateS - Workshop Dan Christian Bogos](https://reader034.fdocuments.us/reader034/viewer/2022052406/5aa5033c7f8b9a1d728c9cc6/html5/thumbnails/3.jpg)
About CGRateSCharging/Billing engine Plug-able into existing billing infrastructureAccommodate new components into ISP/ITSP network (eg: add new VoIP switch, SMS Service, Data stream)Non-intrusive
Modular architectureEasy to enhance by rewriting specific components - JSON/HTTP/GOB RPC API
Performance OrientedBuilt-in transactional cache system (data ageing, live counters)Asynchronous processing with micro-threads
Feature-richMulti-tenancy, derived charging, account bundles, LCR, CDRStats, rates history, etcAgile in developing new features
Test driven developmentAprox. 1000 tests as part of the build system
Real-time charging for OpenSIPSOpenSIPS Workshop Chicago, August 2015
![Page 4: Real-time charging for OpenSIPS CGRateS - Workshopopensips.org/pub/events/...Chicago/...2015-CGRates.pdf · Real-time charging for OpenSIPS CGRateS - Workshop Dan Christian Bogos](https://reader034.fdocuments.us/reader034/viewer/2022052406/5aa5033c7f8b9a1d728c9cc6/html5/thumbnails/4.jpg)
CGRateS subsystems
![Page 5: Real-time charging for OpenSIPS CGRateS - Workshopopensips.org/pub/events/...Chicago/...2015-CGRates.pdf · Real-time charging for OpenSIPS CGRateS - Workshop Dan Christian Bogos](https://reader034.fdocuments.us/reader034/viewer/2022052406/5aa5033c7f8b9a1d728c9cc6/html5/thumbnails/5.jpg)
OpenSIPS Integration
Multiple integration mechanismsBased on traffic profileShared data through pseudovariables
REST_CLIENT for call authorization, LCRHTTP-JSON RPC Request/Answer
EVI ACC_ACCOUNTING*prepaid, *pseudoprepaid, *postpaid, *rated
EVI E_ACC_CDR*pseudoprepaid, *postpaid, *rated
Db_flatstore CDR processing*pseudoprepaid, *postpaid, *rated
Real-time charging for OpenSIPSOpenSIPS Workshop Chicago, August 2015
![Page 6: Real-time charging for OpenSIPS CGRateS - Workshopopensips.org/pub/events/...Chicago/...2015-CGRates.pdf · Real-time charging for OpenSIPS CGRateS - Workshop Dan Christian Bogos](https://reader034.fdocuments.us/reader034/viewer/2022052406/5aa5033c7f8b9a1d728c9cc6/html5/thumbnails/6.jpg)
OpenSIPS Real-time Prepaid
Call AuthorizationAsync/sync support through the user of rest_clientSets maximum call duration through dialog timeout
Call disconnectExecuted through mi_datagram by CGR SessionManager
Call StartOut of E_ACC_EVENT via event_datagram to CGR-SMStarts debit loop in case of prepaid calls – real or emulated ones
Call Stop/MissedOut of E_ACC_EVENT/E_ACC_MISSED_EVENT via event_datagram to CGR-SMStops debit loopWrites CDRs
Real-time charging for OpenSIPSOpenSIPS Workshop Chicago, August 2015
![Page 7: Real-time charging for OpenSIPS CGRateS - Workshopopensips.org/pub/events/...Chicago/...2015-CGRates.pdf · Real-time charging for OpenSIPS CGRateS - Workshop Dan Christian Bogos](https://reader034.fdocuments.us/reader034/viewer/2022052406/5aa5033c7f8b9a1d728c9cc6/html5/thumbnails/7.jpg)
Task - Installation
VM installEmpty Debian Jessie out of netinstall
OpenSIPS installBuild debian packages, include rest_client (2.1 branch)
CGRateS installPrerequisites: git, redis-server, mysql-serverOut of officially provided packages by CGRateS team (0.9.1rc6)
Real-time charging for OpenSIPSOpenSIPS Workshop Chicago, August 2015
![Page 8: Real-time charging for OpenSIPS CGRateS - Workshopopensips.org/pub/events/...Chicago/...2015-CGRates.pdf · Real-time charging for OpenSIPS CGRateS - Workshop Dan Christian Bogos](https://reader034.fdocuments.us/reader034/viewer/2022052406/5aa5033c7f8b9a1d728c9cc6/html5/thumbnails/8.jpg)
Task - Configuration
OpenSIPSProvided opensips.cfg file out of cgrates repositoryPart of CGRateS build test environment
MySQLCreate CGRateS DB schema
CGRateSProvided cgrates.json dedicated for OpenSIPS integration
Real-time charging for OpenSIPSOpenSIPS Workshop Chicago, August 2015
![Page 9: Real-time charging for OpenSIPS CGRateS - Workshopopensips.org/pub/events/...Chicago/...2015-CGRates.pdf · Real-time charging for OpenSIPS CGRateS - Workshop Dan Christian Bogos](https://reader034.fdocuments.us/reader034/viewer/2022052406/5aa5033c7f8b9a1d728c9cc6/html5/thumbnails/9.jpg)
Task – CGRateS Tariff Plan
AccountActions.csvActionPlans.csvActions.csvActionTriggers.csvCdrStats.csvDerivedChargers.csvDestinationRates.csvDestinations.csvLcrRules.csvRates.csvRatingPlans.csvRatingProfiles.csvSharedGroups.csvTimings.csvUsers.csv
Real-time charging for OpenSIPSOpenSIPS Workshop Chicago, August 2015
![Page 10: Real-time charging for OpenSIPS CGRateS - Workshopopensips.org/pub/events/...Chicago/...2015-CGRates.pdf · Real-time charging for OpenSIPS CGRateS - Workshop Dan Christian Bogos](https://reader034.fdocuments.us/reader034/viewer/2022052406/5aa5033c7f8b9a1d728c9cc6/html5/thumbnails/10.jpg)
Meet the cgr-console
InteractiveOr not ...
History
Auto-completion
Help
Real-time charging for OpenSIPSOpenSIPS Workshop Chicago, August 2015
![Page 11: Real-time charging for OpenSIPS CGRateS - Workshopopensips.org/pub/events/...Chicago/...2015-CGRates.pdf · Real-time charging for OpenSIPS CGRateS - Workshop Dan Christian Bogos](https://reader034.fdocuments.us/reader034/viewer/2022052406/5aa5033c7f8b9a1d728c9cc6/html5/thumbnails/11.jpg)
Task - Calls
Prepaid users1001, 1006, 1007
Postpaid users1002
Pseudoprepaid users1003
Rated users1004
Real-time charging for OpenSIPSOpenSIPS Workshop Chicago, August 2015
![Page 12: Real-time charging for OpenSIPS CGRateS - Workshopopensips.org/pub/events/...Chicago/...2015-CGRates.pdf · Real-time charging for OpenSIPS CGRateS - Workshop Dan Christian Bogos](https://reader034.fdocuments.us/reader034/viewer/2022052406/5aa5033c7f8b9a1d728c9cc6/html5/thumbnails/12.jpg)
Task – CDRC CDR import
Db_flatstore generated CDRRecords split between multiple filesFailed/missed calls CDR records
Real-time charging for OpenSIPSOpenSIPS Workshop Chicago, August 2015
![Page 13: Real-time charging for OpenSIPS CGRateS - Workshopopensips.org/pub/events/...Chicago/...2015-CGRates.pdf · Real-time charging for OpenSIPS CGRateS - Workshop Dan Christian Bogos](https://reader034.fdocuments.us/reader034/viewer/2022052406/5aa5033c7f8b9a1d728c9cc6/html5/thumbnails/13.jpg)
Task – Check CDR Stats
Customer Stats
Supplier Stats
Real-time charging for OpenSIPSOpenSIPS Workshop Chicago, August 2015
![Page 14: Real-time charging for OpenSIPS CGRateS - Workshopopensips.org/pub/events/...Chicago/...2015-CGRates.pdf · Real-time charging for OpenSIPS CGRateS - Workshop Dan Christian Bogos](https://reader034.fdocuments.us/reader034/viewer/2022052406/5aa5033c7f8b9a1d728c9cc6/html5/thumbnails/14.jpg)
Task – Exporting CDRs
Standard templateCheck derived charging
Extended template
Retrieve call detailsUsing cgr-console
Real-time charging for OpenSIPSOpenSIPS Workshop Chicago, August 2015
![Page 15: Real-time charging for OpenSIPS CGRateS - Workshopopensips.org/pub/events/...Chicago/...2015-CGRates.pdf · Real-time charging for OpenSIPS CGRateS - Workshop Dan Christian Bogos](https://reader034.fdocuments.us/reader034/viewer/2022052406/5aa5033c7f8b9a1d728c9cc6/html5/thumbnails/15.jpg)
Task – Fraud Mitigation
Accounting levelMultiple calls from same account 1001
External top-up out of patternWarning – threshold level 1Account disable - threshold level 2Multiple calls out of same account – simultaneous disconnect on fraud detection
Real-time charging for OpenSIPSOpenSIPS Workshop Chicago, August 2015
![Page 16: Real-time charging for OpenSIPS CGRateS - Workshopopensips.org/pub/events/...Chicago/...2015-CGRates.pdf · Real-time charging for OpenSIPS CGRateS - Workshop Dan Christian Bogos](https://reader034.fdocuments.us/reader034/viewer/2022052406/5aa5033c7f8b9a1d728c9cc6/html5/thumbnails/16.jpg)
Task – Console simulation
Check accounts
Call cost queries
LCR queries
Real-time charging for OpenSIPSOpenSIPS Workshop Chicago, August 2015
![Page 17: Real-time charging for OpenSIPS CGRateS - Workshopopensips.org/pub/events/...Chicago/...2015-CGRates.pdf · Real-time charging for OpenSIPS CGRateS - Workshop Dan Christian Bogos](https://reader034.fdocuments.us/reader034/viewer/2022052406/5aa5033c7f8b9a1d728c9cc6/html5/thumbnails/17.jpg)
Questions?
Websitehttp://www.cgrates.org
Documentationhttp://cgrates.readthedocs.org
Code + issues tracker https://github.com/cgrates/cgrates
SupportGoogle group: CGRateSIRC Freenode: #cgrates
Real-time charging for OpenSIPSOpenSIPS Workshop Chicago, August 2015