IMPORTANT:
Creating the ECS Administrative User Account
configure
context
local
administrator <user_name> password <password> ecs
end
Installing the ECS License
Enabling Enhanced Charging Service
configure
require
active-charging
context local
interface <interface_name>
ip
address <ip_address/mask>
exit
server ftpd
end
IMPORTANT:
Creating the Enhanced Charging Service
Configuring Rule Definitions
configure
active-charging
service <ecs_service_name>
ruledef <ruledef_name>
<protocol> <expression>
<operator> <condition>
rule-application { charging | post-processing | routing }
end
Configuring Group of Ruledefs
configure
active-charging
service <ecs_service_name>
group-of-ruledefs <ruledef_group_name>
add-ruledef
priority <priority> ruledef <ruledef_name>
group-of-ruledefs-application { charging | content-filtering | gx-alias | post-processing }
end
Configuring Charging Actions
Verifying your Configuration
Configuring Rulebase
configure
active-charging
service <ecs_service_name>
rulebase <rulebase_name>
flow
end-condition { content-filtering | hagr | handoff | normal-end-signaling | session-end | url-blacklisting | timeout } [ flow-overflow ] + { charging-edr <charging_edr_format_name> | reporting-edr <reporting_edr_format_name> }
billing-records
udr udr-format <udr_format_name>
action
priority <action_priority> { [ dynamic-only | static-and-dynamic | timedef <timedef_name> ] { group-of-ruledefs <ruledef_group_name> | ruledef <ruledef_name> } charging-action <charging_action_name> [ monitoring-key <monitoring_key> ] [ description <description> ] }
route
priority <route_priority> ruledef <ruledef_name> analyzer <analyzer> [ description <description> ]
rtp
dynamic-flow-detection
udr
threshold interval <interval>
cca
radius charging context <context> group <group_name>
cca
radius accounting interval <interval>
end
Setting EDR Formats
IMPORTANT:
configure
active-charging
service <ecs_service_name>
edr-format <edr_format_name>
attribute <attribute> { [ format { MM/DD/YY-HH:MM:SS | MM/DD/YYYY-HH:MM:SS | YYYY/MM/DD-HH:MM:SS | YYYYMMDDHHMMSS | seconds } ] [ localtime ] | [ { ip | tcp } { bytes | pkts } { downlink | uplink } ] priority <priority> }
rule-variable <protocol> <rule> priority <priority>
event-label <event_label> priority <priority>
end
IMPORTANT:
Setting UDR Formats
IMPORTANT:
configure
active-charging
service <ecs_service_name>
udr-format <udr_format_name>
attribute <attribute> { [ format { MM/DD/YY-HH:MM:SS | MM/DD/YYYY-HH:MM:SS | YYYY/MM/DD-HH:MM:SS | YYYYMMDDHHMMSS | seconds } ] [ localtime ] | [ { bytes | pkts } { downlink | uplink } ] ] priority <priority> }
end
IMPORTANT:
Enabling Charging Record Retrieval
Optional Configurations
IMPORTANT:
Configuring a Rulebase for a Subscriber
configure
context <context_name>
subscriber
name <subscriber_name>
active-charging
rulebase <rulebase_name>
end
Configuring a Rulebase in an APN
IMPORTANT:
configure
context <context_name>
apn <apn_name>
active-charging
rulebase <rulebase_name>
end
Configuring Charging Rule Optimization
configure
active-charging
service <ecs_service_name>
rulebase <rulebase_name>
charging-rule-optimization { high | low | medium }
end
Configuring Enhanced Features
IMPORTANT:
IMPORTANT:
IMPORTANT:
Configuring Prepaid CCA for Diameter or RADIUS
configure
active-charging
service <ecs_service_name>
charging-action <charging_action_name>
cca
charging credit [ preemptively-request | rating-group <coupon_id> ]
exit
credit-control [ group <group_name> ]
mode { diameter | radius }
quota
time-threshold { <absolute_value> | percent <percent_value> }
quota
unit-threshold { <absolute_value> | percent <percent_value> }
quota
volume-threshold { <absolute_value> | percent <percent_value> }
end
Configuring Diameter Prepaid Credit Control Application (DCCA)
IMPORTANT:
IMPORTANT:
configure
active-charging
service <ecs_service_name>
credit-control [ group <cc_group_name> ]
mode diameter
diameter
origin endpoint <endpoint_name>
diameter
dictionary <dcca_dictionary>
diameter
peer-select peer <peer_name> [ realm <realm_name> ] [ secondary-peer <sec_peer_name> [ realm <realm_name> ] ] [ imsi-based { [ prefix | suffix ] <imsi/prefix/suffix_start_value> } [ to <imsi/prefix/suffix_end_value> ] ]
end
Configuring Peer-Select in Subscriber Configuration Mode (Optional)
IMPORTANT:
configure
context <context_name>
subscriber
name <subscriber_name>
dcca
peer-select peer <host_name> [ [ realm <realm_name> ] [ secondary-peer <host_name> [ realm <realm_name> ] ] ]
end
Configuring Peer-Select in APN Configuration Mode (Optional)
IMPORTANT:
IMPORTANT:
configure
context <context_name>
apn <apn_name>
dcca
peer-select peer <host_name> [ [ realm <realm_name> ] [ secondary-peer <host_name> [ realm <realm_name> ] ] ]
end
Configuring RADIUS Prepaid Credit Control Application
IMPORTANT:
IMPORTANT:
configure
active-charging
service <ecs_service_name>
credit-control [ group <group_name> ]
mode radius
exit
rulebase <rulebase_name>
cca
radius charging context <vpn_context> [ group <group_name> ]
end
IMPORTANT:
Creating an ECS ACL
Applying an ACL to an Individual Subscriber
configure
context <context_name>
subscriber
name <subscriber_name>
ip
access-group <acl_name> [ in | out ]
end
Configuring GTPP Accounting
Configuring EDR/UDR Parameters
configure
context <context_name>
edr-module
active-charging-service
cdr { push-interval <push_interval> | push-trigger space-usage-percent <trigger_percentage> | remove-file-after-transfer | transfer-mode { pull | push primary { encrypted-url <encrypted_url> | url <url> } [ [ secondary { encrypted-secondary-url <encrypted_secondary_url> | secondary-url <secondary_url> } ] [ via local-context ] + ] | use-harddisk }
file [ charging-service-name { include | omit } ] [ compression { gzip | none } ] [ current-prefix <string> ] [ delete-timeout <seconds> ] [ directory <directory_name> ] [ edr-format-name ] [ exclude-checksum-record ] [ field-separator { hyphen | omit | underscore } ] [ file-sequence-number
rulebase-seq-num ] [ headers ] [ name <file_name> ] [ reset-indicator ] [ rotation [ num-records <number> | time <seconds> | volume <bytes> ] ] [ sequence-number { length <length> | omit | padded | padded-six-length | unpadded } ] [ storage-limit <limit> ] [ single-edr-format ] [ time-stamp { expanded-format | rotated-format | unix-format } ] [ trailing-text <string> ] [ trap-on-file-delete ] [ xor-final-record ] +
exit
udr-module
active-charging-service
file [ charging-service-name { include | omit } ] [ compression { gzip | none } ] [ current-prefix <string> ] [ delete-timeout <seconds> ] [ directory <directory_name> ] [ exclude-checksum-record ] [ field-separator { hyphen | omit | underscore } ] [ file-sequence-number
rulebase-seq-num ] [ headers ] [ name <file_name> ] [ reset-indicator ] [ rotation [ num-records <number> | time <seconds> | volume <bytes> ] ] [ sequence-number { length <length> | omit | padded | padded-six-length | unpadded } ] [ storage-limit <limit> ] [ time-stamp { expanded-format | rotated-format | unix-format } ] [ trailing-text <string> ] [ trap-on-file-delete ] [ udr-seq-num ] [ xor-final-record ] +
end
Verifying your Configurations
Pushing EDR/UDR Files Manually
Retrieving EDR and UDR Files
sftp -oUser=ecpadmin@ECP 192.168.1.10:/records/edr/*
sftp -oUser=ecpadmin@ECP 192.168.1.10:/records/udr/*
Configuring Fair Usage Feature
configure
active-charging
service <ecs_service_name>
fair-usage
fair-usage
threshold-percent <usage_threshold>
fair-usage
deact-margin <deactivate_margin>
fair-usage
adjust-factor <adjust_factor>
fair-usage
inline-memory-share <max_mem_for_in-line>
rulebase <rulebase_name>
fair-usage
session-waiver-percent <session_waiver>
end
Configuring Post Processing Feature
configure
active-charging
service <ecs_service_name>
ruledef <ruledef_name>
<protocol> <expression>
<operator> <condition>
rule-application
post-processing
exit
charging-action <charging_action_name>
...
exit
rulebase <rulebase_name>
action
priority <action_priority> { [ dynamic-only | static-and-dynamic | timedef <timedef_name> ] { group-of-ruledefs <ruledef_group_name> | ruledef <ruledef_name> } charging-action <charging_action_name> [ monitoring-key <monitoring_key> ] [ description <description> ] }
post-processing
priority <priority> ruledef <ruledef_name> charging-action <charging_action_name>
...
end
Configuring TCP Proxy
configure
active-charging
service <ecs_service_name>
rulebase <rulebase_name>
tcp
proxy-mode { dynamic { all | content-filtering | dcca | ip-readdressing | nexthop-readdressing | xheader-insert + } | static [ port [ <port_number> [ to <port_number> ] ] ] }
end
Configuring Time-of-Day Activation/Deactivation of Rules Feature
configure
active-charging
service <ecs_service_name>
ruledef <ruledef_name>
...
exit
timedef <timedef_name>
start
day { friday | monday | saturday | sunday | thursday | tuesday | wednesday } time <hh> <mm> <ss> end day { friday | monday | saturday | sunday | thursday | tuesday | wednesday } time <hh> <mm> <ss>
start
time <hh> <mm>
<ss> end
time <hh>
<mm> <ss>
exit
charging-action <charging_action_name>
...
exit
rulebase <rulebase_name>
action
priority <action_priority> timedef <timedef_name> { group-of-ruledefs <ruledef_group_name> | ruledef <ruledef_name> } charging-action <charging_action_name> [ description <description> ]
...
end
Configuring URL Filtering Feature
configure
active-charging
service <ecs_service_name>
group-of-prefixed-urls <prefixed_urls_group_name>
end
configure
active-charging
service <ecs_service_name>
group-of-prefixed-urls <prefixed_urls_group_name>
prefixed-url <url_1>
...
prefixed-url <url_10>
end
configure
active-charging
service <ecs_service_name>
rulebase <rulebase_name>
url-preprocessing
bypass group-of-prefixed-urls <prefixed_urls_group_name>
...
url-preprocessing
bypass group-of-prefixed-urls <prefixed_urls_group_name>
end
IMPORTANT:
Configuring the X-Header Format
configure
active-charging
service <ecs_service_name>
xheader-format <xheader_format_name>
insert <xheader_field_name> { string-constant <xheader_field_value> | variable { bearer { 3gpp { apn | charging-characteristics | charging-id | imei | imsi | qos | rat-type | s-mcc-mnc | sgsn-address } | acr | customer-id | ggsn-address | mdn | msisdn-no-cc | radius-calling-station-id | session-id | sn-rulebase | subscriber-ip-address | username } [ encrypt ] | http { host | url } }
end
Configuring Charging Action for Insertion of X-Header Fields
IMPORTANT:
Configuring X-Header Encryption
configure
active-charging
service <ecs_service_name>
rulebase <rulebase_name>
xheader-encryption
certificate-name <certificate_name>
xheader-encryption
re-encryption period <re-encryption_period>
end