- What it does
- Configuration
- What you need
- Setting up announcements
- Setting up call barring
- Setting up incoming call barring
- I want to…
- Use the same announcement for all incoming barred calls
- Use a different announcement for barred incoming anonymous calls
- For barred incoming calls, only play an announcement when it is anonymously barred
- For barred incoming calls, only play an announcement when it is not anonymously barred
- Enable evaluation of incoming international barring rules
- I want to…
- Setting up outbound call barring
- Setting up prefix based barring
- Prefix barring interactions with other OCB features
- I want to…
- Treat 90077xxxxx numbers as premium rate entertainment for barring purposes and use a custom announcement when barred
- Treat all other 9007xxxxxx numbers as premium rate information services for barring purposes
- Bar all calls to 8xx numbers without playing an announcement, but with no prefix barring handling for calls to 801
- Override any other barring rules to always allow calls to one specific number
- Bar calls to 60000 whether or not the call is international
What it does
Call barring is a set of MMTel services that conditionally bar calls using a combination of system-wide and per subscriber rules.
-
Incoming Call Barring (ICB) bars incoming calls based on per subscriber rules written using common-policy schema (for example, a subscriber may set up Do Not Disturb, to bar all calls).
-
Anonymous Call Rejection (ACR) bars incoming calls from anonymous callers.
-
-
Outgoing Call Barring (OCB) bars outgoing calls based on per subscriber rules written using common-policy schema.
-
Operator Determined Barring (ODB) is a fixed set of barring conditions, each enabled or not per subscriber.
-
Operator Specific Barring (OSB) is a subset of ODB containing four rules each enabled or not per subscriber, but where the system-wide conditions and actions are configured using common-policy schema. Additionally, the action when these rules trigger may be augmented to retarget the call, with an ability to disable charging, and/or use a rule-specific announcement in this case.
-
Prefix barring uses dialed number rules to either explicitly allow or bar an outgoing call, or to effectively force a match condition for some of the ODB conditions, including the OSB rules.
-
Announcements may be set to be played to the caller when a call is barred.
Interactions with other services
Communications Diversion (CDIV)
Call barring for incoming calls is applied before MMTel CDIV, so any barred incoming call will not be subject to forwarding.
However, an inbound call which is not barred but then forwarded will have outbound barring processing applied to the outbound forwarded call.
Vertical service codes with XCAP data update
Vertical service codes in combination with XCAP data update may change subscriber data, affecting subscriber ICB and OCB rules, and enabling or disabling ODB rules for a subscriber.
ODB rules may prevent changes to subscriber data, both via vertical service codes with XCAP data update, and when using XCAP directly from user equipment.
Configuration
The example for sentinel-volte-gsm-config.yaml and
example for sentinel-volte-cdma-config.yaml show example configuration
relevant to call barring in the sentinel-volte/mmtel/communication-barring
section.
What you need
-
❏ Whether the system should process or ignore international and international-exHC barring rules based on the reliability of determining that an incoming call is international.
-
❏ The ID of an optional announcement to play when an incoming call is barred due to an anonymous caller.
-
❏ The ID of an optional announcement to play when an incoming call is barred otherwise.
-
❏ The ID of an optional announcement to play when an outgoing call is barred.
-
❏ For up to four operator specific barring rules:
-
❏ The common policy ruleset which defines the conditions and action for the rule.
-
❏ Whether to retarget the call and if so:
-
❏ the URL target
-
❏ the ID of an optional announcement to play
-
❏ whether to disable charging.
-
-
Setting up announcements
Call barring configuration only needs the announcement ID of the announcements that should be played. The details of those announcements should be configured beforehand. For details about how to do this, see Announcements.
Setting up call barring
I want to…
Enable ODB
In the hss-queries-enabled
section, set odb
to true
:
odb: true
Disable ODB
In the hss-queries-enabled
section, set odb
to false
:
odb: false
Setting up incoming call barring
I want to…
Use the same announcement for all incoming barred calls
In the incoming-communication-barring
, announcement
section, set the same announcement ID for both announcements:
announcement:
announcement-id: 21
anonymous-call-rejection-announcement-id: 21
Use a different announcement for barred incoming anonymous calls
In the incoming-communication-barring
, announcement
section, set separate announcement IDs for the two announcements:
announcement:
announcement-id: 21
anonymous-call-rejection-announcement-id: 22
For barred incoming calls, only play an announcement when it is anonymously barred
In the incoming-communication-barring
, announcement
section, remove or comment out the announcement-id
.
announcement:
# announcement-id: 21
anonymous-call-rejection-announcement-id: 22
For barred incoming calls, only play an announcement when it is not anonymously barred
In the incoming-communication-barring
, announcement
section, remove or comment out the anonymous-call-rejection-announcement-id
.
announcement:
announcement-id: 21
# anonymous-call-rejection-announcement-id: 22
Enable evaluation of incoming international barring rules
In the incoming-communication-barring
section,
set international-rules-active
to true
.
international-rules-active: true
Setting up outbound call barring
I want to…
Play an announcement for barred outgoing calls
In the outgoing-communication-barring
, announcement
section, set the announcement-id
:
announcement:
announcement-id: 20
Not play an announcement for barred outgoing calls
In the outgoing-communication-barring
section, delete or comment out the whole announcement
section.
# announcement:
# announcement-id: 20
Bar a suspended subscriber from making any calls, redirecting them to a specific number
-
Ensure ODB is enabled. See Enable ODB above.
-
Choose an OSB rule number to use.
(considering what types are spare and the desired priority of this and existing rules)
-
Ensure this OSB rule is disabled for all subscribers.
out of scope of this document
-
Set the OSB rule to:
-
bar all outbound calls
-
retarget any outbound call to the call center
-
optionally set up a specific announcement to play to the subscriber before retargeting the call
-
disable online charging for the call.
-
-
In the
operator-communication-barring
section, for the selected rule, underoperator-barring-rules
, add the following (this example for type1 OSB rule):
operator-communication-barring:
operator-barring-rules:
type1:
rule: # Bar outgoing calls
<cp:ruleset
xmlns="http://uri.etsi.org/ngn/params/xml/simservs/xcap"
xmlns:cp="urn:ietf:params:xml:ns:common-policy"
>
<cp:rule id="bar-outgoing--enabled-when-out-of-credit">
<cp:conditions>
<outgoing/>
</cp:conditions>
<cp:actions>
<allow>false</allow>
</cp:actions>
</cp:rule>
</cp:ruleset>
retarget:
retarget-uri: sip:payments@pay.your.bill.com
disable-online-charging-on-retarget: true
announcement:
announcement-id: 23
-
Enable this OSB rule in subscriber data for suspended subscribers.
out of scope of this document
Setting up prefix based barring
Prefix based barring provides a mechanism for an operator to augment the implicit or explicit condition of a MMTel OCB barring rule, so that the rule will also apply when the called party number matches some prefix with optional length criteria.
Because the same prefix can be treated differently (for example, depending on whether it is national or international),
and multiple prefixes may all need to be treated the same way,
the configuration is split into a list of prefixes
and a list of classifications
.
Each prefix
has a list of classifications
that may apply.
Each classification has further predicates to see if the classification is applicable to the call (minimum-number-length
, maximum-number-length
and match-international
).
If it is, the classification specifies the barring treatment of that call, and can optionally override the normal barring announcements.
Prefix barring interactions with other OCB features
There are different types of OCB rules, in the following overall order of priority:
-
Prefix based
OperatorAllow
-
Operator-specific ODB rules that allow a call, regardless whether applied by matching their defined condition, or by prefix based treatment
-
Prefix based
OperatorBar
-
Operator-specific ODB rules that bar a call, regardless whether applied by matching their defined condition, or by prefix based treatment
-
Prefix based premium-rate communication barring
-
Standard ODB rules
-
OCB rules
Within rules of the same type, an allow action will always take precedence over a barring or retargeting action.
If multiple operator-specific ODB rules apply and have conflicting retarget or barring actions, then the rule with the lower number will take precedence. (There are four slots available for operator-specific ODB rules, numbered one through four).
I want to…
Treat 90077xxxxx numbers as premium rate entertainment for barring purposes and use a custom announcement when barred
In outgoing-prefix-barring
,
add a classification and map that prefix to it.
In this case we use the maximum value for maximum-number-length
to prevent this barring rule being circumvented by overdialing.
outgoing-prefix-barring:
prefixes:
- prefix: '90077'
classifications:
- 'premium rate entertainment'
classifications:
- name: 'premium rate entertainment'
minimum-number-length: 10
maximum-number-length: 20
match-international: false
barring-treatment: 'PremiumRateEntertainment'
announcement:
announcement-id: 27
Treat all other 9007xxxxxx numbers as premium rate information services for barring purposes
In outgoing-prefix-barring
,
extend the above scenario by adding a new prefix and a new classification. This works because a call will match the longest prefix.
outgoing-prefix-barring:
prefixes:
- prefix: '90077'
classifications:
- 'premium rate entertainment'
- prefix: '9007'
classifications:
- 'premium rate info'
classifications:
- name: 'premium rate entertainment'
minimum-number-length: 10
maximum-number-length: 20
match-international: false
barring-treatment: 'PremiumRateEntertainment'
- name: 'premium rate info'
minimum-number-length: 10
maximum-number-length: 20
match-international: false
barring-treatment: 'PremiumRateInformation'
Bar all calls to 8xx numbers without playing an announcement, but with no prefix barring handling for calls to 801
In outgoing-prefix-barring
,
we need to be explicit about all the 80x prefixes excluding 801, and all the remaining 8x prefixes, mapping them all to the same classification.
outgoing-prefix-barring:
prefixes:
- prefix: '800'
classifications:
- 'barred shortcodes'
- prefix: '802'
classifications:
- 'barred shortcodes'
- prefix: '803'
classifications:
- 'barred shortcodes'
- prefix: '804'
classifications:
- 'barred shortcodes'
- prefix: '805'
classifications:
- 'barred shortcodes'
- prefix: '806'
classifications:
- 'barred shortcodes'
- prefix: '807'
classifications:
- 'barred shortcodes'
- prefix: '808'
classifications:
- 'barred shortcodes'
- prefix: '809'
classifications:
- 'barred shortcodes'
- prefix: '81'
classifications:
- 'barred shortcodes'
- prefix: '82'
classifications:
- 'barred shortcodes'
- prefix: '83'
classifications:
- 'barred shortcodes'
- prefix: '84'
classifications:
- 'barred shortcodes'
- prefix: '85'
classifications:
- 'barred shortcodes'
- prefix: '86'
classifications:
- 'barred shortcodes'
- prefix: '87'
classifications:
- 'barred shortcodes'
- prefix: '88'
classifications:
- 'barred shortcodes'
- prefix: '89'
classifications:
- 'barred shortcodes'
classifications:
- name: 'barred shortcodes'
minimum-number-length: 3
maximum-number-length: 3
match-international: false
barring-treatment: 'OperatorBar'
disable-ocb-announcement: true
Override any other barring rules to always allow calls to one specific number
In outgoing-prefix-barring
,
add a classification with barring-treatment
set to OperatorAllow
and matching exact number length, and map this from the complete number to that classification.
outgoing-prefix-barring:
prefixes:
- prefix: '900123456'
classifications:
- 'explicit allowed 9 digit numbers'
classifications:
- name: 'explicit allowed 9 digit numbers'
minimum-number-length: 9
maximum-number-length: 9
match-international: false
barring-treatment: 'OperatorAllow'
Bar calls to 60000 whether or not the call is international
In outgoing-prefix-barring
,
add two classifications, one for national and one for international, but otherwise the same, then map the prefix to both classifications.
outgoing-prefix-barring:
prefixes:
- prefix: '60000'
classifications:
- 'bar me'
- 'bar me - intl'
classifications:
- name: 'bar me'
minimum-number-length: 5
maximum-number-length: 5
match-international: false
barring-treatment: 'OperatorBar'
- name: 'bar me - intl'
minimum-number-length: 5
maximum-number-length: 5
match-international: true
barring-treatment: 'OperatorBar'