Advice of Charge Services for Euro ISDN
Advice of charge (AOC) is a pre-billing function that tasks the rating engine with calculating the cost of using a service and relaying that information back to the customer (caller). This allows users to obtain call charging information periodically during the call (AOC-D) or at the end of the call (AOC-E).
AOC messages are sent in the EURO ISDN Facility Information Element (IE) message. The device interworks these ISDN messages with SIP by converting the AOC messages into SIP INFO (during call) and BYE messages (end of call) using the
This feature can typically be implemented in the hotel industry, where external calls made by guests can be billed accurately. In such a setup, the device is connected on one side to a PBX through an ISDN line (Euro ISDN), and on the other side to a SIP trunk provided by an ITSP. When a call is made by a guest, the device first sends an AOC-D Facility message to the PBX indicating the connection charge unit, and then sends subsequent AOC-D messages every user-defined interval to indicate the charge unit during the call. When the call ends, the device sends an AOC-E Facility message to the PBX indicating the total number of charged units.
The feature is applicable only to Euro ISDN
The device supports various AOC methods:
■ | Tel-to-IP Direction: The device converts the AOC messages received in the EURO ISDN Facility IE messages into SIP INFO and BYE messages using the proprietary SIP AOC header. |
■ | Device Generation of AOC to Tel: The device generates the metering tones according to user-defined amounts, intervals, currency type, and multiplier. For more information, see Configuring Charge Codes. |
■ | IP-to-Tel Direction: |
● | SIP-to-Tel interworking: The device uses the AOC header from the IP side and sends to Tel in EURO ISDN Facility IE messages. Below shows the SIP AOC header: |
AOC: charged; <parameters>
Where parameters can be:
◆ | state="active" or "terminated" |
◆ | charging-info="currency" or "pulse" |
If "currency", the following parameters are available:
◆ | currency=<string> |
◆ | currency-type="iso4217-a" or <string> |
◆ | amount=<number> |
◆ | multiplier=("0.001","0.01","0.1","1","10","100","1000") |
If "pulse", the following parameter is available:
◆ | recorded-units=<number> |
The device can also receive AOC data in the SIP INFO message containing an 'application/vnd.etsi.aoc+xml' body. For example:
INFO sip:103@10.10.12.188:5060 SIP/2.0
Via: SIP/2.0/UDP 10.10.12.159:5061;branch=z9hG4bK-1-18439@10.10.12.159;rport
From: "2110017: Bob" <sip:4988@10.10.12.188>;tag=1
To: <sip:103@10.10.12.188;user=phone>;tag=pmvsivy1ju
Call-ID: 1-18439@10.10.12.159
CSeq: 3 INFO
Max-Forwards: 70
Contact: <sip:4988@10.10.12.159:5061;line=qhpks806>;reg-id=1
Content-Type: application/vnd.etsi.aoc+xml
Content-Length: 405
<?xml version="1.0" encoding="UTF-8"?>
<aoc xmlns="http://uri.etsi.org/ngn/params/xml/simservs/aoc">
<aoc-d>
<charging-info>subtotal</charging-info>
<recorded-charges>
<recorded-currency-units>
<currency-id>EUR</currency-id>
<currency-amount>0.1</currency-amount>
</recorded-currency-units>
</recorded-charges>
<billing-id>normal-charging</billing-id>
</aoc-d>
</aoc>
In such a case, you should use message manipulation rules on the SIP INFO message to convert the advice of charge data in the XML to the AOC SIP header with the relevant format (parameters) as discussed above:
Parameter |
Value |
|
---|---|---|
'Index' |
1 |
2 |
'Name' |
Add AOC header |
Remove XML body |
'Manipulation Set ID' |
0 |
0 |
'Row Rule' |
Use Current Condition |
Use Previous Condition |
'Message Type' |
Any |
|
'Condition' |
body.application/vnd.etsi.aoc+xml REGEX (<currency-amount>)(\d+)(<\/currency-amount>) |
body.application/vnd.etsi.aoc+xml exists |
'Action Subject' |
Header.AOC |
body.application/vnd.etsi.aoc+xml |
'Action Type' |
Add |
Remove |
'Action Value' |
'charged;charging-info=pulse;recorded-units='+$2 |
|
● | TELES proprietary method |
● | Cirpack proprietary methods |
For more information on the proprietary methods, see the PayPhoneMeteringMode parameter in Metering Tone Parameters.
➢ | To configure AOC: |
1. | Make sure that the PSTN protocol for the trunk line is configured to Euro ISDN and network side. |
2. | Make sure that the date and time of the device is correct. For accuracy, it is recommended to use an NTP server to obtain the date and time. For more information, see Date and Time. |
3. | Configure the required AOC method: |
● | Device Generation of AOC to Tel: |
i. | Open the Supplementary Services page (Setup menu > Signaling & Media tab > Gateway folder > DTMF & Supplementary > Supplementary Services Settings), and then configure the 'Generate Metering Tones' parameter (PayPhoneMeteringMode) to Charge Code Table. |
ii. | In the Charge Codes table, configure Charge Codes (see Configuring Charge Codes). |
iii. | In the Tel-to-IP Routing table, assign the Charge Code index to the relevant Tel-to-IP routing rule (see Configuring Tel-to-IP Routing Rules). |
● | AOC in Tel-to-IP Direction: Open the Supplementary Services Settings page, and then configure the 'AoC Support' parameter to Enable to send AOC to IP. |
● | AOC in IP-to-Tel Direction: Open the Supplementary Services page, and then configure the 'Generate Metering Tones' parameter (PayPhoneMeteringMode) to one of the following: SIP Interval Provided, SIP RAW Data Provided, SIP RAW Data Incremental Provided, or SIP-to-Tel Interworking. |