NexOSS CDR Processing

NexOSS CDR Processing Work Flow

CDRs are collected by OSPrey and additional data is added to the CDR:
  • From NexOSS configuration:

  • Source and destination Account Names,

  • Source and destination Device Names

  • Product Name

  • ServiceProviderId, GroupId and UserId is added if it is configured and not reported in CDR.

  • Breakout labels for Traffic Analyzer reports, trigger reports and fraud trigger reports

  • Country name correlated with source IP address

  • From Number Portability Database:

    • Location Routing Number (LRN)

    • Subscription Version

    • Operating Company Number (OCN)

    • Voice URI

  • From LCADS database:

    • Operating Company Number (OCN)

    • Terminating switch CLLI code

  • From CNAM service

    • CNAM or Name of the calling party
  • From Reputation Service

    • Reputation of the Calling Number
NexOSS CDR Collection

NexOSS collects CDRs using cdr_collection.sh sub-script in the $NexOSS_HOME/unix/run/run_NexOSS.sh script. The cdr_collection.sh sub-script starts the following to scripts:

cdr_pull.sh

Copies CDR files to $NexOSS_HOME/WORK directory as * .cdr files

cdr_file_audit.sh

Checks that all expected files have been collected. Logs an error if an expected cdr file is missing

NexOSS CDR Mediation

The CDRs are processed in multiple steps before being inserted into the NexOSS database. The .cdr file extension is modified by each step to indicate which mediation processes have been performed on the CDR file.

  • Enreacher .cdr.e (cdr_enreacher.sh)

    CDR call legs are correlated.

  • Reported .cdr.e.r

    NexOSS web server writes CDRs to fraud and Traffic Analyzer reports except for call completion and concurrent calls reports.

  • Sorted .cdr.e.r.s (sort.sh)

  • Merged .cdr.e.r.s.m (cdr_merge.sh)

  • Mediation .cdr.e.r.s.m (cdr_mediation.sh)

    CDRs are inserted into REACDR and ReportableCDR tables. CDR file is moved from WORK directory to ARCHIVE directory.

NexOSS Database Operations

When CDRs are inserted in the database, the following processes are performed.

  • NexOSS web server uses CDRs in the ReportableCDR table to create call completion and concurrent calls reports. When this is done the updateable flag for each processed CDR is changed from Y to N.

  • The ArchiveReportableCDR.sh script copies CDRs, with Archived=N to the ArchivedReportableCDR table and changes the Archived value from N to Y.

  • The rate_cdrs.sh script rates CDRs in REACDR table and inserts the rated CDR into the RatedCDR table. The updateable value in the REACDR table is changed from Yes to No. If NexOSS.etc parameter CDRRate.DeleteRecordsAfterProcessing = true, then rate_cdrs.sh will delete each CDR in the REACDR table after it is rated.

  • The NexOSS web server uses CDRs in the RatedCDR table to create Credit Control and Profit reports. The Reported value of the RatedCDR is changed from No to Yes.

  • The invoice_cdrs.sh script uses RatedCDRs to create invoice reports. The invoice report is written to the $NexOSS_HOME/INVOICES_BY_ACCOUNT/ directory. The summary details about each invoice are written to the AccountInvoice database table. A time stamp is written to the RatedCDR for the O_InvoicedArchived and T_InvoicedArchived data fields. The CDRs used to create the invoice, are written to $NexOSS_HOME/INVOICED_CDR_ARCHIVE_BY_ACCOUNT/ directory.

  • The archive_cdrs.sh script copies rated CDRs to the &NexOSS_HOME/CDR_ARCHIVE_BY_ACCOUNT/ directory. A time stamp is written to the RatedCDR for the O_Archived and T_Archived data fields.

  • The archive_ratedcdr_table.sh script copies rated CDRs to the ArchivedRatedCDR database table. The value of the Archived data field in the RatedCDR table is changed from No to Yes.

  • If the start_table_to_file.sh script is uncommented in the run_cdr_export.sh script, then CDRs in the RatedCDR table with Updateable=Y will be exported to a file in the $NexOSS_HOME/WORK directory. The table_2_file application will change Updateable to N after the CDR is exported. If the NexOSS.etc parameter Table2File.DeleteRecordsAfterProcessing=true, then the table_to_file will delete CDRs from the RatedCDR table after export.