Reference9:Concept Reporting

From innovaphone wiki
Jump to navigation Jump to search
There are also other versions of this article available: Reference9 (this version) | Reference10 | Reference12r1

Requirements

It is needed to have the application platform installed and running.

Installation

Download the latest version of innovaphone reporting.

Log into the application platform, go to the Applications tag, click on Upload/Update and upload the downloaded file. The installation will start automatically and the page will refresh every two seconds showing the installation process. If there is no error during the installation you will see at the end "Installation was succesfull". Otherwise, you will get "installation failed" and the reason why it went wrong.

Configuration

Device

It is required to have a Reporting license installed on your device. Check under General/License if you already have one.

Any innovaphone device which sends CDRs to the reporting application must have at least one CDR interface configured. Log into your device, click on Gateway and use the following options for the configuration of the CDR interface:

- Type: HTTP/HTTPS

- Address: ip address of the application platform

- Port: 80

- Method: POST/GET

- Path: ap/cdr.fcgi

The application platform is by default password protected and will drop the received CDRs. There are two ways to have the CDRs written in the database, either the innovaphone Application platform URL/username/password is configured in your device under Services/HTTP/Client or you configure the "ap/cdr.fcgi" path as public in the application platform (see explation below, 3.2)

innovaphone Application Platform

If the reporting URL/user/password is not configured in your device, you should then define this URL as public in the application platform under Administration/Web Server (this option is however not recomended)

Database

reporting installs postgreSQL version 8.3 as database management system and creates the innovaphone-reporting database to store CDRs sent from any innovaphone devices (appendix 7.6 explains the database structure). PostgreSQL is also available for other applications and any of them could create its own database.

Password

reporting creates the database user "innovaphone-reporting" with default password "reporting". This password may be changed at the innovaphone reporting page under Config/Database.

Remote Access

there are tools (PgAdmin III) that allow to connect to application databases remotely. It is first needed to configure the IP you are connecting from under Config/Database at the innovaphone reporting page.

Filters

General

Conditions

Report Creation

General

Web Interface

Remote Interface

Backup and Restore

You can both manually and automatically backup the database and configuration files for reporting under Administration/Backup in the application platform. Configuration details for the update server can be found here.

Configuration Files

saveinnovaphone-reportingcfgs is the command used to save configuration files

Data

reporting only defines the database as application data and the "saveinnovaphone-reportingdb" command will backup it

Logs

use saveinnovaphone-reportinglogs to save log files

Appendix

innovaphone Reporting XML

   <?xml version="1.0" encoding="utf-8"?>
   <application>
   <name>innovaphone Reporting</name>
   <desc>Reporting software</desc>
   <directory>innovaphone-reporting</directory>
   <href>report.php</href>
   <linux-username>innovaphone-reporting</linux-username>
   <packages>
       <package>php5-pgsql</package>
       <package>php5-gd</package>
       <package>postgresql-8.3</package>
       <package>postgresql-common</package>
   </packages>
   <database name="innovaphone-reporting" username="innovaphone-reporting"/>
   <log-files>
       <log title="Postgresql-8.3">/var/log/postgresql/postgresql-8.3-main.log</log>
       <log title="Reporting cleanup">/var/www/innovaphone/apps/innovaphone-reporting/log/reporting_cleanup.log</log>
       <log title="innovaphone Reporting">/var/www/innovaphone/apps/innovaphone-reporting/log/innovaphone-reporting.log</log>
   </log-files>
   <config-files>
       <conf>/etc/postgresql/8.3/main/pg_hba.conf</conf>
       <conf>/etc/postgresql/8.3/main/postgresql.conf</conf>
   </config-files>
   <backup>
       <command title="Save innovaphone Reporting configuration files" cmd="saveinnovaphone-reportingcfgs" script=""/>
       <command title="Save innovaphone Reporting database" cmd="saveinnovaphone-reportingdb" script=""/>
       <command title="Save innovaphone Reporting log files" cmd="saveinnovaphone-reportinglogs" script=""/>
   </backup>
   <restore>
       <command title="Restore innovaphone Reporting configuration files" cmd="restoreinnovaphone-reportingcfgs" script="">
           <action>/etc/init.d/postgresql-8.3 restart</action>
       </command> 
       <command title="Restore innovaphone Reporting database" cmd="restoreinnovaphone-reportingdb" script=""/>
   </restore>
   <uninstall/>
   </application>

Installed Debian Packages

Configuration Files

pg_hba.conf is the client authentication configuration file and controls which hosts are allowed to connect, how clients are authenticated, which PostgreSQL user names they can use and which databases they can access.

postgresql.conf is the PostgreSQL configuration file

Data Files

Report XML

 <report>
   <record>
     ....
     <remote name="saturn" number="101" dn="Saturn"/>
     <status>co</status>
     <type>ct</type>
     <dir>i</dir>
     <billing-duration seconds="40">0:40</billing-duration>
     <call-duration seconds="40">0:40</call-duration>
     <conn-duration seconds="20">0:20</conn-duration>
   </record>
 </report>
  • remote: outgoing calls -> dialed endpoint
  • remote: incoming calls -> first ep2 above entry event or entry event if this is the first one
  • remote: incoming calls with incoming transfer after entry event -> transfer target
  • status: outgoing calls -> best found status in call flow
  • status: incoming calls -> status of entry event
  • type: the type of the entry event or, if not set, the type of the next event, if given
  • dir: o (outgoing) if the first event is the entry event and the caller is ep1
  • dir: i (incoming) if not o
  • billing-duration: outgoing call -> duration from the first event until the last event in the flow
  • billing-duration: incoming call -> duration from the first transfer/forward event until the last event in the flow
  • call-duration: duration of the whole call
  • conn-duration: duration from the entry event until the event, where the local endpoint isn't connected any more

Database Structure

The innovaphone-reporting database is divided in two sections, cdrs and filters.

cdrs

Each received cdr-xml is formed by a cdr tag and an undefined number of event and group tags. (Refer to: CDR)

This section is composed by four tables, cdrs, events, groups and cdr_properties. The first three tables contain the corresponding fields to store the information contained in the cdr, event and group tags.

Cdrs Fields: id, guid, sys, pbx, node, device, cn, e164, h323, dir, utc, local.

Event Fields: id, msg, type, e164, h323, conf, cause, time, cdr_id, order_index.

Group Fields: id, name, active, type, cdr_id.

id field is assigned by postgresql for each entry and has nothing to do with the information present in the cdr. It is different for each entry inside the table.

Events table has two additional fields, called cdr_id, to associate these events to the corresponding cdr entry and order_index to keep their position inside the cdr. Groups table has also the cdr_id field to associate the group entries to the corresponding cdr and events entries.

The cdr_properties table contains relevant information associated with the call such as call_length, alert_length or call_flow. It also presents a cdr_id field.

filters

This section is composed by three tables, filter_columns, filter_conditions and filters.

filter_columns is not used for the time being. This is supposed to contain the columns the user want to see in his report but right now we just show a some default columns (Time/Object/Local Party/Direction/Call Flow/Remote Party)

filter_conditions contains the defined conditions for a filter: Object, Number, Groups, PBX and Node.

filter contains the filter name and description plus two conditions call_state (No Response, Connected, Busy and No Channel) and direction (Incoming, Outgoing, Transfer and Call Forward)

All three tables are related through an id

Remote Interface

Tools