How SwyxWare handles charging information (kb2211)
The information in this article applies to:
- SwyxWare from version 3.20
SwyxWare recognizes charging information sent via ISDN or can calculate them itself via the least cost routing module. This article describes in detail how SwyxWare processes charges, how charges are signalled into Sub-PBXes or ISDN devices connected to SwyxWare. It explains how charging information is forwarded via SwyxLinks and how charging information is stored in call detail records. The charges of the current call can also be shown in the display of SwyxIt! or SwyxPhone Lxxx.
There are two sources of charging information
- Information received on ISDN D-channel via "Advice of charge" information elements (IE).
- Calculated from the least cost routing module (LCR).
ISDN provided charging information has priority over LCR calculated values always. SwyxServer calculates charging information via LCR periodically as long as no charges are received from ISDN, starting one second after a call has been connected. When SwyxServer gets an AOC IE on ISDN D-channel, LCR charging calculation will be switched off for the call. Usually the first AOC from ISDN is sent immediately after the call is connected so that no LCR calculation will be done at all.
If SwyxWare receives charging information via ISDN, these information will be used always. No calculation via LCR will be done. Charging information from ISDN can be in two formats. Both formats are available during a call (AOC-D) and/or after the end of a call (AOC-E). It depends on your provider and your line what kind of information will be sent. Contact your ISDN line provider for details:
Advice of charge in charging units
This type of charging information contains a number of charging units. It's the type of AOC the German Telekom usually sends. To get a display on clients or in call details records as currency value, SwyxServer needs to know how much one charging unit costs. This can be configured within SwyxWare Administration. Open SwyxServer properties and select the "Charges" property page to set the charging unit value. Changing these value has no influence on past calls. They will be use for any call established after changing these settings. Note that these settings are used for this type of AOC only. They're ignored for AOC in currency units or LCR calculated values.
Advice of charge in currency units
This type of charging information contains the number of charging units, the value of one unit and the currency. SwyxServer uses these information to generate the charging display for the clients and call details records. E.g. Swiss Telecom usually sends this type of AOC.
If no charging information is available on the ISDN D-Channel (AOC), SwyxServer uses the least cost routing module to calculate charges itself. Least cost routing works in Germany only, i.e. if your SwyxServer is located in Germany and has a german area code. Same is true for charges calculated via LCR. The least cost routing module uses the preselected provider configured within the SwyxServer properties in SwyxWare Administration to calculate charges. Note that charging calculation is independent of the least cost routing itself, i.e. even if you've switched off LCR, call charges will be calculated and displayed. To prevent this, remove the LCR module if it's already installed or deselect it during installation. To remove it, stop all Swyx Services, open Windows 2000 control panel, select the "Add/Remove programs" applet, and click "Change" at the SwyxWare entry. SwyxWare installation starts in maintenance mode. Select the "Modify" radio button and click "Next". Now you can deselect "Least Cost Routing". Finish the installation wizard by clicking "Next". To prevent it from being installed in the first place, deselect "Least Cost Routing" during installation.Note that if SwyxServer receives charging information from ISDN, LCR calculation won't be used. ISDN provided charges have priority over LCR calculated values always.
The accuracy of charging information depends on your provider (in case of ISDN provided information) or on the LCR module (when SwyxServer has no information from ISDN and calculates them itself). The LCR module calculates charging information using the configured default rate. SwyxServer default is the german Telekom's common ISDN rate. If you've any special rate for your ISDN line which is not supported by the LCR module, SwyxWare cannot calculate correct values. You can configure the provider/rate with SwyxWare administration. Open SwyxServer properties and select the least cost routing tab. Change the "Preselected Provider" to match the provider/rate of your ISDN line. If the rate of your line and the SwyxWare LCR configuration matches, the calculated charges are quite accurate, but Swyx cannot guarantee that they're identically to the invoice you get from your provider. Furthermore, usually no provider will guarantee that charging information signalled via ISDN is 100% accurate, too.
Charging information in Sub-PBXes or ISDN devices
Beginning with SwyxWare v4.0 charging information will be signalled to another PBX connected to Swyxware as Sub-PBX or an ISDN device, i.e. with the ISDN board operating in NT-mode and SwyxWare line configuration set to "ISDN line to sub-PBX or ISDN device". SwyxWare sends AOC-D information elements in currency units on the D-channel always, independent from the received AOC on PSTN lines. Even charging information calculated by SwyxWare itself via LCR will be send in this format to the sub-pbx or ISDN device.
For PBXes or ISDN devices which cannot handle AOC-D IEs, SwyxGate can be configured to send "display" information elements instead (Display IE). To do this, add the following registry key on the computer where SwyxGate is running:
HKEY_USERS\<SID of the user account the service is running with>\Software\<manufacturer>\IpPbxGate\CurrentVersion \Options\Ctrl<x>
where <x> is the CAPI controller number of the line where the Sub-PBX or ISDN device is connected to. To get the SID of the SwyxGate service account use the PsGetSid tool (see link below).
A printf formatting statement, such as "%s %1.2f", which results in something like "EUR 1,23". %s is replaced by the currency, %1.2f displays the value with one or more digits before the decimal separator and exactly two digits afterwards. Note that you cannot change the order. %s has to be before %f always.
If this value is set, charging information will be signalled on this line as "Display" IE always. If this value is empty or not present (default) charging information will be signalled on this line as AOC-D IE.
Charging information via SwyxLinks
SwyxServer will forward charging information to other sites via a SwyxLink, too. If a client A1 on site A dials a number which is routed via a SwyxLink to site B and a SwyxGate GB on site B into B's PSTN, the charging information received from SwyxGate GB will be forwarded over the SwyxLink back to client A1. If SwyxGate B doesn't get charging information via ISDN, SwyxServer on site B calculates charges via LCR and sends them back via the SwyxLink to site A for display at A1 and recording in call detail records.
Charging information in CDRs
Charging information will be recorded in call detail records, too. The following fields contain the information
|Currency||Currency of charges. If field AOC is "1" and PSTN has signaled charging information with currency, this column contains that currency. If field AOC is "1" and PSTN hasn't signaled charging information this value is the charging unit currency configured within SwyxWare Administration.
If field AOC is "0" this is the currency calculated by the Least cost routing module.
|Costs||Call costs. If field AOC is "1" and PSTN has signaled complete charging information in currency units, this column contains these signaled charges. If field "AOC is "1" and PSTN has signaled charging units only, this column contains the calculated charges as configured within SwyxWare Administration.|
|AOC||"1" advice of charge received from PSTN or another site.
"0" costs are calculated by the Least cost routing module.
|DestinationDevice||Destination device where the call is targeted at. For calls into PSTN this is the SwyxGate used. For external calls to another site this is the name of the link used to route the call. Contains "(call routing)" if the call is accepted by an user's call routing script, e.g. to play or record a message. You can use this field to determine if the recorded charges are from your site (SwyxGate name) or from another site (link name)|
- PsGetSid Tool
This tool displays the Security ID of a windows user account, either a local user account or domain account. Note that this tool is freeware from www.sysinternals.com. Swyx won't provide support for it.
The third-party contact information included in this article is provided to help you find the technical support you need. This contact information is subject to change without notice. Swyx in no way guarantees the accuracy of this third-party contact information nor is responsible for it's content.