A template file is a set of instructions telling the system how to extract the necessary information from the data sent from your telephone system. A sample template is shown here to demonstrate its use.

'IPBX Demo Template
'Created 13 May 2001
'at 20:14 by JOHNSMITH
 
Type = TEXT
 
[Options]
 
HeaderLike = " DATE ##-???-##*"
HeaderTake = "      xxxxxxxxx"
 
[CallTypes]
 
'Outgoing Direct
##-???-## ##:##:##      ???#:##   ###  
aa bbb cc  dd ee ff     hhhh ii   jjj  
1

The file consists of a [Type] and [Options] section required to pre-process the data before it is usable, and a [CallTypes] section which holds the information necessary to extract the call record components from the raw data.

[Type] Section

This describes how the information is presented to the software. Possible options are described below:

TypeDescription
TEXTDenotes that the data consists of plain text subscribing to the ASCII standard.
BCD2.4Binary-coded decimal values, such as the proprietary format used in the Siemens Realitis PBX.
EXTERNALInforms the system that the data needs to be passed to another separate application before the processing is possible.

This setting also requires the path to the external application to be supplied in the [Options] section under the key name ExtPPFilename.

[Options] Section

This section contains the settings necessary to determine what data pre-processing is required - if any- before the individual call record elements can be extracted. Possible options are described below:

OptionDescriptionDefault value
EndTimeInforms the call processor that the call time specified is actually the time that the call ended. This ensures that the duration of the call is subtracted from the given call time to achieve the effect of the start time. All call data stored in the database assumes that the call time is the time that the call started, not ended.true or false
SubtractAnswerTimeNotifies the call processor to subtract the answer (response) time from the call duration. Use this option if the duration of a call includes the response time.true or false
AddAnswerTimeNotifies the call processor to add the answer (or response) time to the call duration, if the PBX doesn't include it already.true or false
StartEndDurationThis option is used when a PBX outputs the call's start and end time separately, but no duration time is being outputted. Because the system requires a call duration, the end time appears as though it were the duration, in which case this option will instruct the system to subtract the value specified for call time (elements d, e and f) from the value specified for duration (elements g, h and i), in order to achieve the correct duration.true or false
LinesInforms the system how many lines make up a call record. Requires the Line1 option in order to know how to recognise the first line of a call record. The pre-processor will then amalgamate all lines of a call record into a single line. 
Line1Shows the system how to identify the first line of a call record. The system then knows how many further lines are necessary before the amalgamation occurs (see Lines option, above). 

[CallTypes] Section

This section contains information about how the system identifies each line of call logging data, in terms of call type, e.g. outgoing, incoming answered, incoming abandoned, and how to extract the call record elements from the each line. Each call type is being assigned a code that identifies a line of data pertaining to the particular type of call.

Each type of call consists of three lines of data, as shown below:

'Outgoing Direct Dial
##-???-##  ##:##:##             ???#:##   ###   ###   ####?????????????????????????????????##*
aa bbb cc  dd ee ff             hhhh ii   jjj   mmm   kllllllllllllllll
1

The first line (##-???-## ##:##:##) is the match line, which tells the system how to match this particular call type. The # symbol indicates any digit between 0 and 9, and a ? symbol indicates any character including letters and numbers. The * symbol at the end of the line is important if there may be other data attached to the line that you're not interested in. The * indicates that anything else on the line does not matter.

The second line (aa bbb cc dd ee ff) tells the system how to extract each call record element from the line of data. In this example, the aa spans the first two characters of the data line meaning that the call date's day should be taken from here; bbb spans three characters starting at column 4 showing where the month is taken from, and so on.

The third line represents the number associated with the type of call. These call type numbers are internally used to identify types of calls and are summarised as follows:

Call Type #Type of Call
1Outgoing direct dialled
2Outgoing transferred (or operator-assisted)
100Incoming, Answered, Direct dialled (DDI)
101Incoming, Answered, Transferred, or as a result of a Transfer
150Incoming, Abandoned, Direct dialled (DDI)
151Incoming, Abandoned, Transferred on, or by Transfer from another extn
200Internal call (extension to extension)
300PBX Feature (dialled number should contain the feature number)

 

 

 

 

 

<p>A template file is a set of instructions telling the system how to
extract the necessary information from the data that is sent from
your PABX (or PABXs).</p>

<p>A sample template is shown here to demonstrate its use.  This example
is not a complete template and should not be used:</p>
'IPBX Demo Template
'Created 13 May 2001
'at 20:14 by JOHNSMITH

Type = TEXT

[Options]

HeaderLike = " DATE ##-???-##*"
HeaderTake = "      xxxxxxxxx"

[CallTypes]

'Outgoing Direct
##-???-## ##:##:## 		???#:##   ###  
aa bbb cc  dd ee ff 	hhhh ii   jjj  
1
<p>The file consists of a <span class="keyword">Type</span>, any <span class="keyword">Options</span> required to pre-process the data before it is useable, and a <span class="keyword">CallTypes</span> section which holds the information necessary to extract the various call record components from the raw data.</p>

<h2>[Type] Section</h2>

<p>This describes how the information is presented to the software.  This can be one of the following:</p>

<table class="confluenceTable">
	<tbody>
		<tr>
			<th class="confluenceTh">Type</th>
			<th class="confluenceTh">Description</th>
		</tr>
		<tr>
			<td class="confluenceTd"><b>TEXT</b></td>
			<td class="confluenceTd">Denotes that the data consists of plain text subscribing to the ASCII standard.</td>
		</tr>
		<tr>
			<td class="confluenceTd"><b>BCD2.4</b></td>
			<td class="confluenceTd">Binary-coded Decimal values, such as the proprietary format used in the Siemens Realitis PBX.</td>
		</tr>
		<tr>
			<td class="confluenceTd"><b>EXTERNAL</b></td>
			<td class="confluenceTd">Informs the system that the data needs to be passed to another separate application before processing is possible.

<p>This setting also requires the path to the external application to be supplied in the <span class="keyword">[Options]</span> section under the key name <span class="keyword">ExtPPFilename</span>.</p></td>
		</tr>
	</tbody>
</table>


<h2>[Options] Section</h2>

<p>This section contains the various settings to determine what (if any) pre-processing of the raw data is necessary before the individual call record elements can be extracted. Possible options are as follows:</p>

<table class="confluenceTable">
	<tbody>
		<tr>
			<th class="confluenceTh">Option</th>
			<th class="confluenceTh">Description</th>
			<th class="confluenceTh" width=100>Default value</th>
		</tr>
		<tr>
			<td class="confluenceTd"><b>EndTime</b></td>
			<td class="confluenceTd">Informs the call processor that the call time specified is actually the time that the call ended.  This ensures that the duration of the call is subtracted from the given call time to achieve the effect of start time.  All call data stored in the call database assumes that the call time is the time that the call started, not ended.</td>
			<td class="confluenceTd"><span class="keyword">true</span> or <span class="keyword">false</span></td>
		</tr>
		<tr>
			<td class="confluenceTd"><b>SubtractAnswerTime</b></td>
			<td class="confluenceTd">Tells the call processor to subtract the answer time from the call's duration.  Use this if the duration of a call includes the answer (or response) time, and you don't want it to.</td>
			<td class="confluenceTd"><span class="keyword">true</span> or <span class="keyword">false</span></td>
		</tr>
		<tr>
			<td class="confluenceTd"><b>AddAnswerTime</b></td>
			<td class="confluenceTd">Similar to above, but tells the call processor to add the answer (or response) time to the call duration, if the PBX doesn't include it already.</td>
			<td class="confluenceTd"><span class="keyword">true</span> or <span class="keyword">false</span></td>
		</tr>
		<tr>
			<td class="confluenceTd"><b>StartEndDuration</b></td>
			<td class="confluenceTd">This is used when a PBX outputs the call start time and the call end time separately, but issues no duration time.  Because the system requires a call duration, you quote the end time as though it were the duration.  This option then instructs the system to subtract the value specified for call time (elements d, e and f) from the value specified for duration (elements g, h and i) to achieve the correct duration.</td>
			<td class="confluenceTd"><span class="keyword">true</span> or <span class="keyword">false</span></td>
		</tr>
		<tr>
			<td class="confluenceTd"><b>Lines</b></td>
			<td class="confluenceTd">Informs the system how many lines make up a call record.  Requires the <span class="keyword">Line1</span> option in order to know how to recognise the first line of a call record.  The pre-processor will then amalgamate all lines of a call record into a single line.</td>
			<td class="confluenceTd"></td>
		</tr>
		<tr>
			<td class="confluenceTd"><b>Line1</b></td>
			<td class="confluenceTd">Shows the system how to identify the first line of a call record.  The system then knows how many further lines are necessary before the amalgamation occurs (see <span class="keyword">Lines</span> option, above).</td>
			<td class="confluenceTd"></td>
		</tr>
	</tbody>
</table>


<h2>[CallTypes] Section</h2>

<p>This section contains descriptions for each type
of call - eg. outgoing, incoming answered, incoming abandoned, etc.
- including what that type of call 'looks' like (how the system
identifies a line of PBX data as such), how to extract the call
record elements from the line, and finally a code that pertains to
the particular type of call.</p>

<p>Each type of call consists of three lines (excluding comments), for example:</p>
'Outgoing Direct Dial
##-???-##  ##:##:##             ???#:##   ###   ###   ####?????????????????????????????????##*
aa bbb cc  dd ee ff             hhhh ii   jjj   mmm   kllllllllllllllll
1
<p>The first line (<span class="keyword">##-???-##  ##:##:##</span>) is the match line, which tells the system how to match this particular call type.  The <span class="keyword">#</span> symbol indicates any digit between 0 and 9, and a <span class="keyword">?</span> symbol indicates any character including letters and numbers.  The <span class="keyword">*</span> symbol at the end of the line is important if there may be other data attached to the line that you're not interested in.  The <span class="keyword">*</span> indicates that anything else on the line does not matter.</p>

<p>The second line (<span class="keyword">aa bbb cc  dd ee ff</span>) tells the system how to extract each call record element from the line of data.  In this example, the <span class="keyword">aa</span> spans the first two characters of the data line meaning that the call date's day should be taken from here; <span class="keyword">bbb</span> spans three characters starting at column 4 showing where the month is taken from, and so on.</p>

<p>The third line represents the number associated with the type of call.  These call type numbers are internally used to identify types of calls and are summarised as follows:</p>

<table class="confluenceTable">
	<tbody>
		<tr>
			<th class="confluenceTh">Call Type #</th>
			<th class="confluenceTh">Type of Call</th>
		</tr>
		<tr>
			<td class="confluenceTd"><b>1</b></td>
			<td class="confluenceTd">Outgoing direct dialled</td>
		</tr>
		<tr>
			<td class="confluenceTd"><b>2</b></td>
			<td class="confluenceTd">Outgoing transferred (or operator-assisted)</td>
		</tr>
		<tr>
			<td class="confluenceTd"><b>100</b></td>
			<td class="confluenceTd">Incoming, Answered, Direct dialled (DDI)</td>
		</tr>
		<tr>
			<td class="confluenceTd"><b>101</b></td>
			<td class="confluenceTd">Incoming, Answered, Transferred, or as a result of a Transfer</td>
		</tr>
		<tr>
			<td class="confluenceTd"><b>150</b></td>
			<td class="confluenceTd">Incoming, Abandoned, Direct dialled (DDI)</td>
		</tr>
		<tr>
			<td class="confluenceTd"><b>151</b></td>
			<td class="confluenceTd">Incoming, Abandoned, Transferred on, or by Transfer from another extn</td>
		</tr>
		<tr>
			<td class="confluenceTd"><b>200</b></td>
			<td class="confluenceTd">Internal call (extension to extension)</td>
		</tr>
		<tr>
			<td class="confluenceTd"><b>300</b></td>
			<td class="confluenceTd">PBX Feature (dialled number should contain the feature number)</td>
		</tr>
	</tbody>
</table>