Creating custom report forms for CUCM
This article is intended for users of the Tariscope billing system, who use it to analyze calls made through Cisco Unified Communications Manager (CUCM) and who want to get some additional call information that is contained in CDR files but not in call views and standard Tariscope system report forms. This article may also be useful to all Tariscope users as an example of how to independently create the necessary report forms.
The CDR file from CUCM contains many fields, most of which do not make it into the Tariscope database unless the phone system is configured to store all CDR fields. In some cases, those CDR fields that are not processed may be of interest. For example, this can be useful if you want to analyze which party in a phone conversation ended the call. There is a separate article about this case on the website.
Another example is the analysis of call completion codes. Information about this does not require storing all CDR fields of CUCM, and this issue is the subject of the following article on the site. But if you want to generate periodic reports on call completion codes, we suggest you continue reading this article, where we will look at how to create the necessary report form.
To create report forms for Tariscope, you should use the free Microsoft Report Builder program. The installation of this program can be downloaded from the Microsoft website.
It is impossible to consider all the features of this program within the scope of this article. For this, please refer to the documentation on the Microsoft website. We will consider only the main steps that need to be performed to create a report form on call termination codes. We will assume that we need to create a report form, which will be used to generate reports for a given period and will display call termination codes and the number of calls of the corresponding code. The report data should be sorted by call termination codes.
Note that the report form is based on an SQL query or an entire program using the Transact-SQL (T-SQL). In addition, you need to know where the necessary data is in the Tariscope database. This information can be found in the document “Tariscope 4.x. Database schema”. This document is provided only to official Tariscope users. To do this, send a request to the SoftPI support service.
After launching the Microsoft Report Builder program, a window appears that offers options for creating a report form using various wizards or using a “Blank Report.” If we choose the latter option, the program window will look like in Figure 1.
Figure 1
The program window contains a menu, as well as the following windows: Report Data, report forms, and Properties.
The program menu contains the following items:
- File. It allows you to open an existing report form or save a report form.
- Home. A toolbar for editing report elements is displayed, as well as the Run button to start generating the report.
- Insert. A panel with elements that can be inserted into the report form is displayed.
- View. A toolbar is displayed for selecting which application windows to display.
The Properties window displays properties that apply to the entire report form. We recommend that you set some report properties right away, such as Author, Description, and Language.
The first two parameters are informative and are not required for the task, although we recommend specifying them. However, the absence of a specific language can sometimes lead to the report not working. For example, if you are creating a report form in German, you should select the de-DE value in the Language list.
Among the report properties, also pay attention to the report size. The following parameters are used for this: ActiveSize, Margins, PageSize. You can change these parameters if necessary.
The default report form already has the Report Title section at the top and a Page Footer section at the bottom, which displays a built-in parameter that displays the execution time of the query to the SQL server. This parameter is called Execution Time.
A list of other built-in fields that can be used in a report form can be seen by opening the Build-in-Fields branch in the Report Data window.
If you are not interested in the query execution time, click on the outline of the &ExecutionTime field and delete it. If you do not plan to display any data in the footer, you can also delete it. To do this, set the Height parameter to 0 in its properties. You can also delete the Report Title section and insert a text box for the report title. To do this, select Insert in the program menu and click on the Text Box icon and select the area on the report form where this field will be located. Then enter the name of the report in it (Figure 2).
Figure 2
Let's set the report parameters: the date and time from which the call data will be analyzed, and the date and time to which the call data will be analyzed. To do this, in the New window, select Parameters and right-click. The Add Parameter item will appear, click on it. As a result, the Report Parameter Properties window will appear.
In this window, in the Name box, enter the name of the parameter. For example, for the first parameter it will be FromDate. In the Prompt box, we will set, for example, the phrase “From date, time”. And in the Data Type list, we will select the Date/Time item. Then click the OK button to save the parameter data.
Repeat similar steps for the second parameter (Figure 3).
Figure 3
The next step in creating a report form is to create an SQL query to obtain the necessary data. To do this, you need to understand where to get this data. The main call parameters are stored in the Calls table or in the viCalls view. As mentioned above, such information can be found in the document “Tariscope 4.x. Database schema”. As can be seen from the description of the Calls table in this document, the table contains the ReleaseCause field, which stores the reason code for the call termination. Also, from this table, to create an SQL query, you will need the CallDateTime field, which stores the date and time of the call start.
To create an SQL query in the report form, first, you need to specify the data source. In our case, this is the Tariscope database. To do this, in the Report Data window, select Data Sources and right-click, then click Add Data Source. The Data Source Properties window will appear (Figure 4), where you need to specify the connection parameters to the SQL server and the Tariscope database.
Figure 4
In the Name box, you can leave the name DataSource1 or replace it, for example, with Tariscope.
Select Use a connection embedded in my report.
In the Select connection type list, leave Microsoft SQL Server selected.
In the Connection string box, you need to specify the connection string to the Tariscope database. Depending on which computer you are creating the report form on, this connection string may be different.
One of the options for the connection string to the Tariscope database when creating the report form on the same computer where the SQL server is installed will be the following:
Data Source=.\\;Initial Catalog=Tariscope
To make sure that this line is entered correctly, click the Test connection button. If everything is entered correctly, you will get a window with the inscription: Connection created successfully. If you get an error during the test connection, then check the entered data and correct the error.
Click the OK button to save the database connection string settings.
In the Report Data window, select Datasets, then right-click and click Add Dataset.
The Dataset Properties window will appear (Figure 5).
Figure 5
In the Name textbox, you can leave the name of the dataset or specify your own name, for example, CallTerminationCodes.
Select the Use a dataset embedded in my report check box. The Dataset Properties window will change its appearance slightly (Figure 6).
Figure 6
In the Data source list, select the name of the data source that you created in the previous step. In our example, this is the Tariscope data source.
In the Query textbox, enter the SQL query that will retrieve the necessary data from the Tariscope database.
One of the SQL query options that will display the call termination reason code and the number of calls with this code for a given period would be the following:
SELECT ReleaseCause, COUNT(ID) AS TerminationCodeNumber
FROM Calls
WHERE CallDateTime BETWEEN @FromDate AND @ToDate
GROUP BY ReleaseCause
ORDER BY ReleaseCause
The first line of this query provides the selection of the call termination code (ReleaseCause) and the number of times each code occurs (TerminationCodeNumber).
The second line of the query shows that the data is selected from the Calls table.
The third line indicates that the data is selected for the period where the start of the call (the CallDateTime field) is within the time interval specified by the period start (@FromDate) and period end (@ToDate) parameters.
The fourth line provides grouping of the data by the call termination reason field (ReleaseCause).
The last, fifth line orders the query results by the value of the ReleaseCause field.
The above SQL query will work correctly if you use only one telephone system, CUCM, with Tariscope. If you have several telephone systems, but only one CUCM, then the selection of data based on its calls can be specified directly in the SQL query conditions. To do this, you need to determine what identifier CUCM has in the Tariscope system. To do this, open the Equipment page in Tariscope. The telephone system table contains identifiers (IDs) of telephone systems. Find the ID that belongs to CUCM. For example, this is ID = 320. In this case, the above SQL query should be written as follows:
SELECT ReleaseCause, COUNT(ID) AS TerminationCodeNumber
FROM Calls
WHERE CallDateTime BETWEEN @FromDate AND @ToDate
AND PBXID = 320
GROUP BY ReleaseCause
ORDER BY ReleaseCause
In this request, the part that was added is highlighted. That is, the condition that calls are processed only from the PBX with the identifier of 320.
In that case, if you have several telephone systems and you want to receive a separate report for each of them, then you need to add another parameter to the report form, identifier of PBX. The data type for this parameter should be integer. And if we called it PBXID, then the SQL query that considers the PBX will look like this:
SELECT ReleaseCause, COUNT(ID) AS TerminationCodeNumber
FROM Calls
WHERE CallDateTime BETWEEN @FromDate AND @ToDate
AND PBXID = @PBXID
GROUP BY ReleaseCause
ORDER BY ReleaseCause
We recommend that you always make sure that the query works correctly before writing a query in this window. To do this, you can use either the SQL-queries page in Tariscope or Microsoft SQL Server Management Studio (SSMS). When checking this, keep in mind that instead of the report form parameters, you should specify specific data. For example, we can test our last query on data for 09/01/2024 for the PBX with ID = 320. To do this, the query should look like this:
SELECT ReleaseCause, COUNT(ID) AS TerminationCodeNumber
FROM Calls
WHERE CallDateTime BETWEEN '2024-09-01 00:00:00' AND '2024-09-01 23:59:00' AND
PBXTD =320
GROUP BY ReleaseCause
ORDER BY ReleaseCause
After you have made sure that the query works correctly and you have inserted it into the Dataset Properties window, save this query by clicking OK in this window.
Now let's add a table to the report form, where the results of the SQL query will be displayed. To do this, in the Microsoft Report Builder program menu, select the Insert item, and then click on the Table -> Insert table icon on the toolbar. Then specify a place for the table on the report form. The report form will look like the one shown in Figure 7.
Figure 7
In this case, the Properties window will display the parameters of this table. We need to link the table to the dataset that we previously created. To do this, for the DataSetName table parameter, we need to select the CallTerminationCodes dataset.
The table that we inserted contains 3 columns. But in our query, we only have two fields. Therefore, one of the table columns needs to be deleted. To do this, click on the column header row, a table border will appear, click on this border, which will cause a menu to appear (Figure 8).
Figure 8
Select Delete Columns, this column will be deleted. There are other options for deleting a column.
In the remaining columns, we will enter the headings, and in the next row we will select the data fields that will be displayed (Figure 9).
Figure 9
After that, you can check the report generation. To do this, click the Run icon on the program toolbar. As a result, the program will look like shown in Figure 10.
Figure 10
In the From date, time box, enter the date and time of the start of the period.
In the To date, time box, enter the date and time of the end of the period.
In the PBX ID box, enter the PBX identifier. For example: 320
Click the View Report button. If everything is done correctly, the report will be displayed.
An example of such a report is shown in Figure 11.
Figure 11
We got the result we expected. But the report can be improved. For example, specify the period for which it contains data; add a description of the call termination code, specify the total number of calls, and so on.
Let's add data regarding the period for which the report is generated. This data is contained in the FromDate and ToDate parameters that we created. Add a Text Box to the report form by analogy with how we added a table. Select this text position on the report form and right-click. A menu will appear in which you need to select the Expression value. This opens the Expression window. In this window, you need to enter an expression, an example of which is shown in Figure 12, and click ОК.
Figure 12
If you then run the report, the report will now contain data for the period shown in the example in Figure 13.
Figure 13
Now let's add a summary of the number of calls that are included in the report. To do this, click on the report form on the table row where the data is displayed. Right-click, in the menu that appears, select: Insert Row -> Outside Group – Below. A new row will appear. In this row, in the Termination Code column, you can enter, for example: Totals, and in the Number column, right-click and select Expression from the menu. In the Expression window, enter the following expression:
SUM(CInt(Fields!TerminationCodeNumber.Value))
This expression will summarize the value of the TerminationCodeNumber field using the SUM function, which was previously converted to an integer using the CInt function. Having generated a report on these changes, we will get the result, an example of which is shown in Figure 14.
Figure 14
Now let's look at how to add a description of call termination codes to the report. Such information is directly in the Tariscope system code, but it is not in the database. Therefore, one of the options is to add such information to the Tariscope database. To do this, you need to have a list of codes and their descriptions. The list of codes and their descriptions in Ukrainian are in the article on our website in the Table 1.
Copy the data from this table and paste it into Excel Sheet. The first row should contain the column names (Figure 15).
Figure 15
Save this data in a csv file with the name: CallTerminationCauseCodes.csv
The name of this file can be anything, but it should not coincide with any name of the tables in the Tariscope database.
To create a table with termination codes and their description, we will use the Microsoft SQL Server Management Studio (SSMS) program. You need to connect to the SQL server with the Tariscope database in this program. Select the Tariscope database row, right-click and in the menu that appears, select: Tasks -> Import Flat File. The Import Flat File ‘Tariscope’ window will open. Click Next. The window will look like the one shown in Figure 16.
Figure 16
Click Browse and select the created csv file. In the New table name box, a file name will be suggested. If desired, you can change this name. Click Next. The window will display a preview of the data. If everything is satisfactory, click Next. The program window will display the structure of the table being created, an example of which is shown in Figure 17.
Figure 17
If desired, you can make the Code field as Primary Key.
Click Next, then Finish. If the import from the csv file is successful, the following the Operation Complete message will appear. After that, you need to update the data and check if a new table has been created, in our example it is dbo.CallTerminationCauseCodes.
Now you need to change the SQL query of the report form to consider the data of this table in the report. One of the options for doing this is given below:
SELECT ReleaseCause, Min(Description) AS Description, COUNT(ID) AS
TerminationCodeNumber
FROM Calls
JOIN CallTerminationCauseCodes ON Code = ReleaseCause
WHERE CallDateTime BETWEEN @FromDate AND @ToDate
AND PBXID = @PBXID
GROUP BY ReleaseCause
ORDER BY ReleaseCause
After saving this query, you need to add a display of the Description field value in the report form table. To do this, select the Number column and right-click. In the menu that appears, select: Insert Column -> Left. In the column header, write Description. In the values row, select Description (Figure 18).
Figure 18
If we now generate this report, we will get a result like that shown in Figure 19.
Figure 19
You can further improve this report form depending on the requirements for it.
If this report is planned to be generated automatically on a schedule using the Tariscope Tasks, then you need to make changes to the SQL query again so that the report automatically generates the specified period relative to the current time, since it will be impossible to specify them as parameters, and directly, without a parameter, specify the PBX identifier. Depending on the period for which you plan to generate the report, the SQL query may differ slightly. If, for example, you plan to generate reports by call termination codes every hour, then in the report form you should remove the parameters, and write the SQL query as follows:
SELECT ReleaseCause, Min(Description) AS Description, COUNT(ID) AS
TerminationCodeNumber
FROM Calls
JOIN CallTerminationCauseCodes ON Code = ReleaseCause
WHERE CallDateTime BETWEEN DateAdd(hh, -1, GetDate()) AND GetDate()
AND PBXID = 320
GROUP BY ReleaseCause
ORDER BY ReleaseCause
In this query, you must change the value of the PBXID field from 320 to your CUCM ID. The current time is determined by using the GetDate function. The time that is one hour earlier than the current time is determined using the DateAdd function.
Configuring the CDR format for Avaya Aura
Avaya Aura has a CDR format that is configurable both by the list of fields and by their order. To understand which CDR fields should be used in Avaya Aura to process them in the Tariscope billing system, here is the relevant information. For the correct processing of CDR data in Tariscope, almost all the fields listed below should be in the Avaya Aura CDR format setting.
acct-code. (Account Code). This CDR field can contain either a project code or an account code. If you use the project code when calling, then in Tariscope the field will go to ProjectCode. This field is not mandatory.
auth-code. (Authorization Code).If your telephone system allows you to use an authorization code when making calls, then this field should be added when configuring the CDR format in the PBX. In Tariscope, this field falls into a field with the corresponding name. If an authorization code calls are not used, this field is not required.
calling-num. (Calling Number). Depending on the call type in Tariscope, this field corresponds to one of the following fields: Originator, CLID, or DialNumber. This is a required field.
code-dial. (Code Dial). This field contains the access code that the subscriber dials when making outgoing calls. This field is optional.
code-used. (Access Code Used). This field is used only for outgoing calls when the system uses a trunk group that is different from the access code the subscriber dials. If you have such cases, then this field is mandatory. It is used when forming the Terminator field in Tariscope.
cond-code. (Condition Code).(Condition Code). Used in Tariscope to determine the call type.
date. This field contains the end date of the call. You can use the ‘start-date’ field instead. One of these fields is mandatory for Tariscope call processing.
dialed-num. (Dialed Number). Depending on the type of call in Tariscope, this field corresponds to one of the following fields: Terminator or DialNumber.
duration.This field contains the duration of the call in the format: hours (from 0 to 9), minutes (from 00 to 59), tenths of minutes (from 0 to 9). Thus, when using this field, the accuracy of determining the call duration is 6 seconds. The ‘sec-dur’ field can be used instead of this field. The use of one of these fields is required to determine the duration of a conversation in Tariscope.
in-crt-id. (Incoming Circuit Identification). This field contains the number of the trunk in the trunk group used for the incoming call. For outgoing calls, this field is empty. This is a required field, in Tariscope it is used to form the Originator field for incoming calls.
in-trk-code. (Incoming TAC). This field contains the access code for the incoming connection group. This field is mandatory for forming the Originator field in Tariscope for incoming or transit calls.
out-crt-id. (Outgoing Circuit Identification). For outgoing calls, this field contains the number of the outside line in the outside line group used during the call. This field is empty for incoming calls. This is a required field, in Tariscope it is used to form the Terminator field for outgoing calls.
sec-dur. This field contains the duration of calls in seconds with an accuracy of 1 second. It can be used instead of the ‘duration’ field. The use of one of these fields is required to determine the duration of a conversation in Tariscope.
start-date. This field contains the start date of the call. It can be used instead of the ‘date’ field. The use of one of these fields is mandatory to determine the start date of the call in Tariscope.
start-time. This field contains the start time of the call. It can be used instead of the ‘time’ field. The use of one of these fields is required to determine the start time of the call in Tariscope.
time. This field contains the end time of the call. It can be used instead of the ‘start-time’ field. The use of one of these fields is required to determine the start time of the call in Tariscope
ucid. ЭThis field contains the unique identifier of the call. It is necessary for linking in Tariscope individual CDR records formed during transfer calls.
All other CDR fields that are available in the Avaya Aura CDR format are not used in the Tariscope system.
Avaya Aura's CDR processing settings in Tariscope are described in the Tariscope document. Administrator's Guide.
Tariscope restriction feature for 3CX
Tariscope system provides the restriction feature for some telephone systems including 3CX. The restriction feature allows the Tariscope administrator to set a limit for the specific type of calls for a subscriber, group of subscribers, route, or gateway. The limit can be set in monetary or time terms. The specific type of calls is defined by a call category, which is assigned to area (country) codes. When a subscriber or a group of subscribers exhausts the set limit, Tariscope will prohibit the subscriber or group of subscribers to make calls until the end of the period. Tariscope will remove this restriction at the beginning of a new period.
The basic Tariscope license does not include the restriction feature. To use the restriction feature you should have the Tariscope license, which includes the feature. Below we will consider how to configure the restriction feature in Tariscope.
First, you must install and configure Tariscope in accordance with the Tariscope documentation (http://www.tariscope.com/en/88-support_en/tariscope-4-6-administrator-en/1456-tariscope-4-6-admin-en.html).
Create a category which will be associated with the restriction feature (http://www.tariscope.com/en/81-support_en/tariscope-web-administrator-en/1161-categories-en.html) as it shown in Figure 1.
Figure 1
In the Tariscope menu, select Provider and rates → desired provider → Outgoing → Destination codes. The Destination codes page is displayed. Select the country and city codes for which calls should be restricted and set them to the created category. The windows where you set a category for area codes is shown in Figure 2.
Figure 2
In the Tariscope menu, select Communication nodes → your node name → your 3CX → Restriction classes. The Restriction classes page is displayed.
Create a restriction group. The group can include several classes of restrictions. You must associate each of the classes with a specific category of calls on which the restriction is set. Often one class of restrictions is sufficient. Create a restriction class. To do this, select the restriction group and click on the Add class icon on the toolbar. The Restriction class window appears as it is shown in Figure 3.
Figure 3
In the Name text box, enter a name for the restriction class.
In the Class text box, you should enter information that can be used in a script for this restriction. Usually for 3CX this information does not play a role.
Click on the Save button.
To associate a class with a category, select the class and click on the Configure categories icon on the toolbar. The Categories window appears. An example on the window is shown in Figure 4.
Figure4
Turn on the category which you set for area and country codes and click on the Save button.
In the Tariscope menu, select the Subscribers item. The Subscribers active page is displayed. Depending on the license you have, you can set the limits to only subscribers or also groups of subscribers. If you have the Tariscope license with restriction feature of “Only for subscribers”, you set the limits only for subscribers. If you have the Tariscope license with restriction feature of “Only for subscribers or groups of subscribers” or “All”, you can set the limits both subscribers and groups of subscribers.
To set a limit for a subscriber, select the subscriber on the page and click on the Restrictions icon on the toolbar. The Edit page appears. Click on the Add icon on the toolbar to add a limit. The New restriction window appears as it is shown in Figure 5.
Figure 5
In the Categories list, select a category whish is used for restrictions.
In the Restriction type list, select the Money item if you set a money limit, or the Seconds item if you set a time limit.
In the Restriction class list, select the class which you created in the previous configuration step.
In the Credit box, enter a limit value.
Click Save.
Repeat these actions for other subscribers.
If you need to set a limit for group of subscribers, select the group and click on the Restrictions icon on the toolbar. Repeat the steps that were described above for the subscriber.
The last step in setting the restrictions is settings of Tariscope Observer. In the Tariscope menu, select Data Collection/Observer → Observers management. The Data Collection/Observer page appears. Select the row for 3CX and click on the Edit icon on the toolbar. The menu appears. Select the Observers’ scripts item. The page appears as it is shown in Figure 6.
Figure 6
If you want to restrict only subscribers, in the Event list, select the Change class of service item. In the Script list, select the setcos-subscriber-3cx-v18.cs item.
If you want to restrict a group of subscribers, in the Event list, select the Group state changed item. In the Script list, select the setcos-group-3cx-v18.cs item.
Then, click on the Edit button that is on the right of the Script list. The Edit window appears an example of which is shown in Figure 7.
Figure 7
You should change the values in the script specifying your values.
In the following line, specify a username which you use to login to 3CX with admin rights:
const string PBX_USERNAME = "username";
In the following line, specify a password which you use to login: const string PBX_PASSWORD = "admin_password";
In the following line, specify IP address and IP port of your 3CX:
const string PBX_HOST = "http://your_pbx_address:5000";
Click Save.
In the Unrestrict interval list, select the desired period. The default value is Every month.
In the Next auto unrestrict interval calendar box, select day and time when the set restrictions must be reset. For example, this could be the beginning of the first day of the next month if the interval is one month.
Click on the Save button.
Start the Tariscope Observer.
Alcatel-Lucent OXE. Collecting CDRs via TCP in Tariscope
If you are an administrator or owner of an Alcatel-Lucent OmniPCX Enterprise PBX (Alcatel-Lucent OXE) and you want to collect CDR online via the IP network, you can use the Tariscope billing system (SoftPI). The Tariscope system not only provides CDR data collection, but also their processing and analysis, and has many other functions.
In this article, we will only describe how to configure Tariscope to receive CDRs via the TCP protocol.
Tariscope Observer (or simply Observer) services are used for collecting and initial processing of CDRs in the Tariscope system. One Observer service is designed to work with one phone system. The received and processed CDR data is stored in the Tariscope database, and then in Tariscope you can view, filter, sort, group the call information, create various reports, inform the administrator about the occurrence of some events related to calls, etc.
Let's create a new Tariscope Observer service to collect CDRs from Alcatel-Lucent OXE using the TCP/IP.
From the Tariscope application menu, select Data Collection/Observer -> Observer management. The Data Collection/Observer page appears, an example of which is shown in Figure 1.
Figure 1
This page contains a list of previously created Observers in a table, as well as a toolbar.
Click the Add icon on the toolbar (the name of the icon appears when you hover over the icon). In the menu that appears, select the New observer item, which will bring up the window shown in Figure 2.
Figure 2
In the Name textbox, enter the name of the Observer. For example, it will be AlcatelOXE. Click Save. A new window will appear, confirming the creation of a new Observer. In this window, click on the Settings button.
The Tariscope Observer configuration (Alcatel OXE) page will appear, as shown in Figure 3.
Figure 3
In the Device position, "not selected" is indicated. This means that you must select a previously created phone system in Tariscope, from which call information will be received and processed by Observer. To do this, click on the link "here". The Equipment selection window appears, where you should select the previously created PBX: Alcatel-Lucent OXE.
In the Data Source list, select the TCP client item. After that, click on the Data source configuration button. The Data source configuration window appears, an example of which is shown in Figure 4.
Figure 4
In the Server position, enter the IP address of your PBX.
If Alcatel-Lucent OXE uses a different IP port than the one specified in the Port textbox, specify its value.
There is no need to specify anything in all other positions.
Click Done.
You can leave all other settings unchanged on the Tariscope Observer configuration page. If necessary, they can be replaced. A detailed description of all Observer parameters can be found in the document: Tariscope.4.6. Administrator's guide.
Click the Done button. On the Data Collection/Observer page, a new line with the name of the created Observer will appear in the table. Select this line and click the Edit icon on the toolbar. In the menu that appears, select the Observers’ scripts item. The corresponding page will be opened, an example of which is shown in Figure 5.
Figure 5
This setting is required in order to connect to the TCP/IP server of Alcatel-Lucent OXE to receive tickers with CDR data. For this type of PBX, the usual TCP connection of the client to the TCP server is not enough.
In the Event list, select the Data source connection item, and in the Script list, select the script: alcatelOXE-TCP-client.cs. This script will perform the appropriate data exchange when connected to the TCP/IP server of Alcatel-Lucent OXE, which will allow Observer to receive CDR data.
Click Save.
This completes the process of creating and configuring Tariscope. It can be run to get CDR data.
Tariscope update for 3CX v.18
In October 2021, 3CX released a new version, 18, of its IP PBX. Since the API was changed in this PBX, the corresponding updates related to the operation of the restriction feature were made to the Tariscope billing system.
Let us remind 3CX users that using Tariscope allows you not only to take into account telephone calls made through 3CX, but also to manage the budget spending on telephone calls. In Tariscope, you can set limits for specific subscribers or a group of subscribers in the amount of money or the duration of calls per month. When this limit is reached, Tariscope will close the exit from the PBX to a subscriber or a group of subscribers until the end of the current month. At the beginning of the first day of the next month, Tariscope will automatically remove this restriction. Thus, a company with 3CX and Tariscope can accurately plan the costs of telephone calls and fulfill the planned budget.
But these are not all the possibilities that the joint use of the Tariscope system with 3CX provides. A list of additional features is provided on the 3CX settings page of Tariscope, an example of which is shown below.
As you can see from this figure, Tariscope allows:
- Reject calls from subscribers whose balance is below the specified value. This setting is relevant only for users of the Tariscope Provider edition.
- Terminate calls with a cost over the specified cost. If this setting is specified, then from the moment the call starts, Tariscope calculates the maximum possible duration of this call, based on the specified allowable call cost, and if the calls of this duration are exceeded, the call is terminated.
- Terminate calls longer than the specified duration. The principle of operation of this setting is similar to the previous setting.
- Reject calls without an access code (authorization code). The authorization code is not used in the 3CX PBX, but it can be set in Tariscope. At the start of a call, Tariscope will check whether the dialed number contains an authorization code or not. If not, then the call is rejected.
- Reject calls to certain destinations. Area, country codes are listed as a list in this setting.
- Export information about call queues for building reports, which are contained in this data, as well as in data CDR.
- Correct call duration for different stages of transfer calls. CDR data from 3CX contains only the total duration for transfer calls, making it impossible to understand how long each subscriber took part in the call. Therefore, to resolve this issue, additional information is needed that can be obtained from 3CX.
- Automatically create and periodically synchronize subscriber information based on the information contained in 3CX.
All these capabilities allow you to more efficiently use the 3CX, receive complete information about the calls made and manage the company's budget for telephone calls.