17
Real-time charging for OpenSIPS CGRateS - Workshop Dan Christian Bogos [email protected] OpenSIPS Workshop Chicago, August 2015

Real-time charging for OpenSIPS CGRateS - Workshop€¦ · EVI ACC_ACCOUNTING *prepaid, *pseudoprepaid, *postpaid ... *postpaid, *rated Real-time charging for OpenSIPS OpenSIPS Workshop

  • Upload
    others

  • View
    25

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Real-time charging for OpenSIPS CGRateS - Workshop€¦ · EVI ACC_ACCOUNTING *prepaid, *pseudoprepaid, *postpaid ... *postpaid, *rated Real-time charging for OpenSIPS OpenSIPS Workshop

Real-time charging for OpenSIPS CGRateS - Workshop

Dan Christian [email protected]

OpenSIPS Workshop Chicago, August 2015

Page 2: Real-time charging for OpenSIPS CGRateS - Workshop€¦ · EVI ACC_ACCOUNTING *prepaid, *pseudoprepaid, *postpaid ... *postpaid, *rated Real-time charging for OpenSIPS OpenSIPS Workshop

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 - Workshop€¦ · EVI ACC_ACCOUNTING *prepaid, *pseudoprepaid, *postpaid ... *postpaid, *rated Real-time charging for OpenSIPS OpenSIPS Workshop

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 - Workshop€¦ · EVI ACC_ACCOUNTING *prepaid, *pseudoprepaid, *postpaid ... *postpaid, *rated Real-time charging for OpenSIPS OpenSIPS Workshop

CGRateS subsystems

Page 5: Real-time charging for OpenSIPS CGRateS - Workshop€¦ · EVI ACC_ACCOUNTING *prepaid, *pseudoprepaid, *postpaid ... *postpaid, *rated Real-time charging for OpenSIPS OpenSIPS Workshop

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 - Workshop€¦ · EVI ACC_ACCOUNTING *prepaid, *pseudoprepaid, *postpaid ... *postpaid, *rated Real-time charging for OpenSIPS OpenSIPS Workshop

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 - Workshop€¦ · EVI ACC_ACCOUNTING *prepaid, *pseudoprepaid, *postpaid ... *postpaid, *rated Real-time charging for OpenSIPS OpenSIPS Workshop

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 - Workshop€¦ · EVI ACC_ACCOUNTING *prepaid, *pseudoprepaid, *postpaid ... *postpaid, *rated Real-time charging for OpenSIPS OpenSIPS Workshop

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 - Workshop€¦ · EVI ACC_ACCOUNTING *prepaid, *pseudoprepaid, *postpaid ... *postpaid, *rated Real-time charging for OpenSIPS OpenSIPS Workshop

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 - Workshop€¦ · EVI ACC_ACCOUNTING *prepaid, *pseudoprepaid, *postpaid ... *postpaid, *rated Real-time charging for OpenSIPS OpenSIPS Workshop

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 - Workshop€¦ · EVI ACC_ACCOUNTING *prepaid, *pseudoprepaid, *postpaid ... *postpaid, *rated Real-time charging for OpenSIPS OpenSIPS Workshop

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 - Workshop€¦ · EVI ACC_ACCOUNTING *prepaid, *pseudoprepaid, *postpaid ... *postpaid, *rated Real-time charging for OpenSIPS OpenSIPS Workshop

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 - Workshop€¦ · EVI ACC_ACCOUNTING *prepaid, *pseudoprepaid, *postpaid ... *postpaid, *rated Real-time charging for OpenSIPS OpenSIPS Workshop

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 - Workshop€¦ · EVI ACC_ACCOUNTING *prepaid, *pseudoprepaid, *postpaid ... *postpaid, *rated Real-time charging for OpenSIPS OpenSIPS Workshop

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 - Workshop€¦ · EVI ACC_ACCOUNTING *prepaid, *pseudoprepaid, *postpaid ... *postpaid, *rated Real-time charging for OpenSIPS OpenSIPS Workshop

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 - Workshop€¦ · EVI ACC_ACCOUNTING *prepaid, *pseudoprepaid, *postpaid ... *postpaid, *rated Real-time charging for OpenSIPS OpenSIPS Workshop

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 - Workshop€¦ · EVI ACC_ACCOUNTING *prepaid, *pseudoprepaid, *postpaid ... *postpaid, *rated Real-time charging for OpenSIPS OpenSIPS Workshop

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