Access this screen from the CyReport Manager Site Configuration Configure Decoders, click here on running CyReport Manager.
Different makes, and even models, of PABX have different formats of SMDR output. The purpose of a ‘decoder’ is to extract the information from these various different types of records, and store the information into a standard database record for CyReport. To do this, the decoder needs to identify what type of information is being presented, and where in each record each field is positioned and how big it is.
There are several sections to the Decoder Configuration screen:
- PABX Name
- Call Record Types
- Standard Fields
- Enhanced Fields
- Call Flags
- Test Data Input Box
The PABX Name is actually the name of the Decoder. In many cases, a particular PABX would usually require only one decoder but there might be occasions where special versions of a decoder are required. Some PABXs, for example, have a configurable output, where the installer can select which information is output in a record and in what order the fields appear.
To create a new decoder, select 'File' then 'New PABX'. Enter the PABX name with more details when required.
There are seven call types that can be selected, however below are those the most frequently used:
- Internal – a call made from one extension to another.
- Incoming – a call coming into the PABX on a trunk and going to an extension.
- Outgoing – a call made from an extension to an outside number using a trunk.
- Tandem – a call coming into the PABX on a trunk and exiting back out of the PABX on a different trunk.
The other call types e.g. Feature, Unknown, Date Record, are rarely used.
Call Record Type
A Call Record Type is a set of configurations inside a decoder that decodes a particular type of records from the PABX data. Some PABX systems can only give basic call records, but some may output extensive call data records that CyReport may need to log.
When multiple Call Record Types have been defined for a decoder, the decoder needs to know which one refers to each call record it is processing.
Identifiers are used to tell the decoder where to look in the record for certain fields of data to identify the record.
Example: Valid if offset 30, length 3 does not equal 'ABC'.
When the decoder is processing the call record it has received, it will look at the 30th character in the data, and check if the 30th, 31st and 32nd characters are the sequence 'ABC'. If they are, this identifier says that this record is valid. The decoder will then attempt to extract the information from the record using the information in the rest of the decoder to find the various fields.
Click on 'Add' to add a new identifier to the call record type.
Each record consists of a number of characters in a string. The first character is offset 0, the second if offset 1 etc.
- Offset – the number of characters from the beginning of the string.
- Length – the length of the string to match.
The empty box can be used to make the Identifier valid if the data is either the same as the text in the Text to match field or different to it, depending n how they are set. They both have a similar same effect, as explained.