Installing and Configure TNGBuffer on a Linux server

The TNGBuffer can connect to multiple PABX’s at the same time and give a single PIP string out. This program also writes out all the rawdata and processed data. There is 100000 call buffer build in. So the TNG or TES is not connected to it, it will buffer the data for this amount of entries.

This is used for sites that have multiple Mitel Controllers and that need to get all the data into on TNG or Hosted sites that have multiple PABXs for TES.

Each connection to each PABX can have a different plugin allocated.
It can Connect to TCP connections or read from a file and connect to a AmtMitel.

The Software needs to be installed in


The software consists of the executable, with a Guardian link and an INI file.
You will need the plugin for each Type of PABX you are going to load as well.

If you do not have a guardian installed, please install it as /usr/local/bin/guardian
Make sure that you have a /opt/datatex/lib folder and it is included in the /etc/ files.

Copy the tngbuffer and INI file to the install folder and make them executable

mkdir -p /opt/datatex/tngbuffer
cp tngbuffer- /opt/datatex/tngbuffer/tngbuffer.bin
cp tngbuffer.ini /opt/datatex/tngbuffer/
ln -s /usr/local/bin/guardian /opt/datatex/tngbuffer/tngbuffer
cp /opt/datatex/libldconfig

The INI file must be configured to have each PABX listed in the [PABX] section. If it is not listed there, no attempts will be made to capture the call details. This list is just a description that lists the other sections that are to be looked at. So use a descriptive name that is going to be easy to read.


I have 3 PABX here and a AmtMitel. I have added a TCP entry and a File entry for each PABX. This will allow me to use the TCP connections to capture live information and the file entries to load raw data from Files If I need to. The File entries will not actually do anything unless I create a file for it to process.

If you want to disable an entry and not remove the entries for the PABX use the PABX_DISABLED section like this:


For each Entry in the PABX section, I now need to create 3 sections like this:


For more details on the CLI rules check

The MAIN Section
Please note that this section matches entry 0 in the above PABX section.

  • The section that matches actually the name you entered in the in the PABX section, contains all the specifics about how to process the data.
  • The _DROP entry specifies which PABX IP addresses to skip when processing the data. On most PABXs this IP will match the PABX IP. If you enter this IP all data from this IP will be dropped and not go through the Buffer to the external program connecting to it.
  • The _CLIRULES is used to manipulate some of the data before it is sent on.

TYPE can be:

  • AMTMITEL: This connects to the AmtMitel and processes the data from the SMDR output. Not that since the Amtmitel connects to multiple PABXs, multiple IPs can come through as the source of the data. This where the DROP section can be used to drop only the data for certain IPs.
  • TCP: a TCP connection (like a telnet) is made to the IP and port specified. All data received will be processed through the Plugin specified
  • FILE: This mean a file will be read in from the file system. then it processes the data as if it was received from the TCP port.
  • FILEMASK: allows multiple files in one location with the same file mask, to be processed in a random order.
    E.g. A FILEPATHMASK is also required to specify the file mask

ID is actually the IP address of the Source PABX. This allows you to have multiple sources using the same ID. For instance, you have the TCP input and the File input for the same PABX. TES uses this information to make sure that the call details are allocated to the correct PABX + Extension combination.

HOST is the IP address that will be connected to for the AmtMitel or the TCP connection. It can be blank for the FILE Type.

PORT is the port that will be connected to. For AmtMitel is is 27982 and for Mitel PABX it is 1752.

PLUGIN is the location of the Plugin to use. The same plugin can be used for each instance of the same PABX type. Default Mitel plugin location: /opt/datatex/lib/

FILENAME is the location of the file that will be read for the processing of data. e.g. /opt/datatex/tngbuffer/mitel-


The _DROP section
This means that all the data from AmtMitel will be accepted except if the source PABX IP is That data will be discarded. If there is nothing in this section, all data for this PABX will be accepted.

The _CLI Section
Please see this post for the details about all the types of rules that you can use.

This section will be read in sequence and each rule will be applied to the call record that is currently being processed. This can be used to manipulate the extension, number or trunk values before it is exported. It can also be used to drop call records based on certain criteria.


This will log the entries from the AmtMitel, but will not send it on the the TNG/TES.

0=Extension|length less than|3|reject||False|ANY|
1=Extension|length greater than|5|reject||False|ANY|
2=Extension|starts with|**|reject||False|ANY|

This will Reject entries that has extensions less than 3 digits or more than 5 digest.
It will also drop entries where the extension starts with “**”.