Kamailio interaction via evapi module

Scenario

  • Kamailio default configuration modified for CGRateS interaction. For script maintainability and simplicity we have separated CGRateS specific routes in kamailio-cgrates.cfg file which is included in main kamailio.cfg via include directive.
  • Considering the following users (with configs hardcoded in the kamailio.cfg configuration script and loaded in htable): 1001-prepaid, 1002-postpaid, 1003-pseudoprepaid, 1004-rated, 1005-rated, 1006-prepaid, 1007-prepaid.
  • CGRateS with following components:
  • CGR-SM started as translator between Kamailio and CGR-Rater for both authorization events as well as accounting ones.
  • CGR-CDRS component processing raw CDRs from CGR-SM component and storing them inside CGR StorDB.
  • CGR-CDRE exporting rated CDRs from CGR StorDB (export path: /tmp).
  • CGR-History component keeping the archive of the rates modifications (path browsable with git client at /tmp/cgr_history).

Starting Kamailio with custom configuration

/usr/share/cgrates/tutorials/kamevapi/kamailio/etc/init.d/kamailio start

To verify that Kamailio is running we run the console command:

kamctl moni

Starting CGRateS with custom configuration

/usr/share/cgrates/tutorials/kamevapi/cgrates/etc/init.d/cgrates start

Make sure that cgrates is running

cgr-console status

CDR processing

At the end of each call Kamailio will generate an CDR event via evapi and this will be directed towards the port configured inside cgrates.json. This event will reach inside CGRateS through the SM component (close to real-time). Once in-there it will be instantly rated and be ready for export.

CGRateS Usage

Since it is common to most of the tutorials, the example for CGRateS usage is provided in a separate page here