- What it does
- Configuration
- What you need
- Setting up Diameter Ro online charging
- I want to…
- Use Diameter Ro online charging on a GSM based deployment
- Disable Diameter Ro charging on a GSM based deployment
- Use Diameter Ro online charging on a CDMA based deployment
- Disable Diameter Ro charging on a CDMA based deployment
- Configure Diameter Ro online charging
- Play an announcement to subscribers when they run low on credit
- Play an announcement to subscribers when they run out of credit
- Configure multiple destination realms
- Set an identifier for an OCS for selecting it with a P-Charging-Function-Addresses header
- I want to…
What it does
When Diameter Ro charging is in use, the Rhino VoLTE TAS communicates with one or more online charging systems (OCS) in real time to authorize credit for calls. While a call is in progress, Diameter Ro messages are exchanged with the OCS whenever more credit is required, or when there are significant changes in the call that could impact the cost (e.g. video is enabled). If at any point the OCS refuses to grant credit, the call is ended.
While the method for enabling Diameter Ro charging differs between GSM and CDMA based deployments, there is no functional difference in charging behavior as the GSM and CDMA parts of the network are not involved.
Diameter Ro charging announcements
When using Diameter Ro online charging, the Rhino VoLTE TAS supports playing announcements when:
-
the subscriber attempts to make a call when they are running low on credit
-
the subscriber attempts to make a call without having any credit
-
the subscriber begins to run low on credit during a call
-
the subscriber runs out of credit during the call
-
the OCS instructs the TAS to do so.
Low credit announcements are played when the OCS’s response to a credit check includes a low balance indicator.
After playing a low credit announcement, the Rhino VoLTE TAS waits for a time before doing another credit check.
The time period is set in the charging-reauth-delay-milliseconds
field.
Out of credit announcements are played when the OCS sends an "Out of Credit" response to a credit check. The call is terminated after playing an out of credit announcement.
The OCS instructs announcements to be played by including announcement information in its response to a credit check. These announcements will take precedence over the low and out of credit announcements configured in the Rhino VoLTE TAS. If the announcement information came in a "Out of Credit" response, the call will end after the announcement has been played.
When configuring the charging service to play an announcement, you only provide the ID of the announcement that should be played. This ID must correspond to an announcement that has been configured in the announcement service. See Announcements for instruction about how to do this.
Multiple OCS Support
The Rhino VoLTE TAS supports communicating with multiple different Diameter Ro online charging systems. Each OCS must have its own Diameter realm, and those realms must be configured as destination realms in the Rhino VoLTE TAS’s Diameter Ro configuration.
The particular OCS to use for a given call is determined from the ecf
parameter of the P-Charging-Function-Addresses header on the initial SIP request for the call.
The value of the ecf
parameter that identifies a particular OCS is its realm name by default,
but can be configured to be any arbitrary value by specifying a charging-function-address
when configuring the destination realm for an OCS.
Configuration
The example for sentinel-volte-gsm-config.yaml and
example for sentinel-volte-cdma-config.yaml show example configuration
relevant to Diameter Ro online charging in the sentinel-volte/charging/ro-charging
section.
What you need
-
❏ The release version of Diameter Ro to use with the online charging system.
-
❏ The origin realm to use when sending Diameter Ro messages. This is the TAS’s realm.
-
❏ The destination realm to use when sending Diameter Ro messages. This is the online charging system’s realm.
-
❏ The OCS peers' hostnames, ports, and transport protocols.
For low balance announcements:
-
❏ The ID of the low balance announcement to play in call setup.
-
❏ The ID of the low balance announcement to play in an active call.
-
❏ The time to wait after playing an announcement before doing another credit check.
For out of credit announcements:
-
❏ The ID of the out of credit announcement to play in call setup.
-
❏ The ID of the out of credit announcement to play in an active call.
For multiple OCS support:
-
❏ The destination realm of each OCS.
-
❏ A list of which peers are associated with which realms.
-
❏ (Optional) An identifier for each OCS that will be used to select it with a P-Charging-Function-Addresses header.
Setting up Diameter Ro online charging
I want to…
Use Diameter Ro online charging on a GSM based deployment
-
In the
charging
section, set thegsm-online-charging-type
toro
orcap-ro
for mixed CAMEL/Ro deployments:
gsm-online-charging-type: ro
-
In the
charging
section, configure thero-charging
section. See Configure Diameter Ro online charging. -
In
mmt-gsm-vmpool-config.yaml
, you must ensure that allper-node-diameter-ro
sections in the MMT cluster configuration are present and not commented out.
# Remove this if diameter-ro is disabled
per-node-diameter-ro:
diameter-ro-origin-host: mmt1.mmt.site1.mnc123.mcc530.3gppnetwork.org
Disable Diameter Ro charging on a GSM based deployment
-
In the
charging
section, set thegsm-online-charging-type
todisabled
:
gsm-online-charging-type: disabled
-
Remove or comment out the
ro-charging
section:
# ro-charging:
# diameter-ro:
# diameter-ro-release: Vcb0
# origin-realm: metaswitch.com
# destination-realm: metaswitch.com
# destination-peers:
# - destination-hostname: peer.metaswitch.com
# port: 3868
# protocol-transport: aaa
# metric: 1
# continue-session-on-ocs-failure: false
#
# charging-announcements:
# low-credit-announcements:
# call-setup-announcement-id: 100
# mid-call-announcement-id: 100
# charging-reauth-delay-milliseconds: 30000
# out-of-credit-announcements:
# call-setup-announcement-id: 101
# mid-call-announcement-id: 102
-
In
mmt-gsm-vmpool-config.yaml
, you must comment out allper-node-diameter-ro
sections in the MMT cluster configuration.
# Remove this if diameter-ro is disabled
# per-node-diameter-ro:
# diameter-ro-origin-host: mmt1.mmt.site1.mnc123.mcc530.3gppnetwork.org
Use Diameter Ro online charging on a CDMA based deployment
-
In the
charging
section, setcdma-online-charging-enabled
totrue
:
cdma-online-charging-enabled: true
-
In the
charging
section, configure thero-charging
section. See Configure Diameter Ro online charging. -
In
mmt-cdma-vmpool-config.yaml
, you must ensure that all per-node-diameter-ro sections in the MMT cluster configuration are present and not commented out.
# Remove this if diameter-ro is disabled
per-node-diameter-ro:
diameter-ro-origin-host: mmt1.mmt.site1.mnc123.mcc530.3gppnetwork.org
Disable Diameter Ro charging on a CDMA based deployment
-
In the
charging
section, setcdma-online-charging-enabled
tofalse
:
cdma-online-charging-enabled: false
-
Remove or comment out the entire
ro-charging
section:
# ro-charging:
# diameter-ro:
# diameter-ro-release: Vcb0
# origin-realm: metaswitch.com
# destination-realm: metaswitch.com
# destination-peers:
# - destination-hostname: peer.metaswitch.com
# port: 3868
# protocol-transport: aaa
# metric: 1
# continue-session-on-ocs-failure: false
#
# charging-announcements:
# low-credit-announcements:
# call-setup-announcement-id: 100
# mid-call-announcement-id: 100
# charging-reauth-delay-milliseconds: 30000
# out-of-credit-announcements:
# call-setup-announcement-id: 101
# mid-call-announcement-id: 102
-
In
mmt-cdma-vmpool-config.yaml
, you must comment out allper-node-diameter-ro
sections in the MMT cluster configuration.
# Remove this if diameter-ro is disabled
# per-node-diameter-ro:
# diameter-ro-origin-host: mmt1.mmt.site1.mnc123.mcc530.3gppnetwork.org
Configure Diameter Ro online charging
In the charging
section,
ensure that the ro-charging
section is present and not commented out:
ro-charging:
diameter-ro:
diameter-ro-release: Vcb0
origin-realm: metaswitch.com
destination-realm: metaswitch.com
destination-peers:
- destination-hostname: peer.metaswitch.com
port: 3868
protocol-transport: aaa
metric: 1
-
The
diameter-ro-release
of Diameter Ro to use. -
The Diameter
origin-realm
for the Rhino VoLTE TAS. -
The Diameter
destination-realm
for the online charging system. -
A Diameter
destination-peers
list that correspond to OCS servers. There must be at least one entry, and for each entry the following values must be set:-
the
destination-hostname
for the OCS server -
the
port
for the OCS server -
the
protocol-transport
to use with the OCS server. -
the
metric
to use with this OCS server peer.
-
Play an announcement to subscribers when they run low on credit
Ensure the announcement IDs you want to use have been set up in the announcement service. See Announcements. |
In charging
, ro-charging
, ensure that the charging-announcements
section is present.:
charging-announcements:
low-credit-announcements:
call-setup-announcement-id: 100
mid-call-announcement-id: 100
charging-reauth-delay-milliseconds: 30000
-
Add a
low-credit-announcements
section.-
Set the
call-setup-announcement-id
of the announcement to play when a subscriber is low on credit at the beginning of a call. -
Set the
mid-call-announcement-id
of the announcement to play when a subscriber becomes low on credit during a call. -
Set the
charging-reauth-delay-milliseconds
time to wait (in milliseconds) before doing another credit check after playing a low balance announcement.
-
Related section: Diameter Ro charging announcements
Play an announcement to subscribers when they run out of credit
Ensure the announcement IDs you want to use have been set up in the announcement service. See Announcements. |
In charging
, ro-charging
, ensure that the charging-announcements
section is present:
charging-announcements:
out-of-credit-announcements:
call-setup-announcement-id: 101
mid-call-announcement-id: 102
-
Add an
out-of-credit-announcements
section.-
Set the
call-setup-announcement-id
of the announcement to play when a subscriber tries to make a call without having enough credit. -
Set the
mid-call-announcement-id
of the announcement to play when a subscriber runs out of credit during a call.
-
Related section: Diameter Ro charging announcements
Configure multiple destination realms
In charging
, ro-charging
:
diameter-ro:
diameter-ro-release: Vcb0
origin-realm: metaswitch.com
destination-realms:
- destination-realm: ocs1.metaswitch.com
peers:
- peer1.metaswitch.com
- destination-realm: ocs2.metaswitch.com
peers:
- peer2.metaswitch.com
- peer3.metaswitch.com
destination-peers:
- destination-hostname: peer1.metaswitch.com
port: 3868
protocol-transport: aaa
metric: 1
- destination-hostname: peer2.metaswitch.com
port: 3868
protocol-transport: aaa
metric: 1
- destination-hostname: peer3.metaswitch.com
port: 3868
protocol-transport: aaa
metric: 2
-
Under
diameter-ro
, add adestination-realms
list.-
If there is already a
destination-realm
listed underro-charging
, remove it.
-
-
For each realm you want to add, create a new entry in the
destination-realms
list with:-
a
destination-realm
giving the realm name. -
a
peers
list giving the destination-hostnames of peers associated with the realm.
-
-
Ensure all the peers referenced by the realms are configured in the
destination-peers
list.
Set an identifier for an OCS for selecting it with a P-Charging-Function-Addresses header
In charging
, ro-charging
, diameter-ro
:
destination-realms:
- destination-realm: ocs1.metaswitch.com
charging-function-address: ocs_1
peers:
- peer1.metaswitch.com
- destination-realm: ocs2.metaswitch.com
peers:
- peer2.metaswitch.com
- peer3.metaswitch.com
-
Find the destination realm for the OCS you want to add an identifier for in the
destination-realms
list. -
Add a
charging-function-address
to the list entry with the identifier to use for the OCS.