7. Advanced Subscriber Configuration

7.1. Access Control for SIP Calls
7.1.1. Block Lists
7.1.1.1. Block Modes
7.1.1.2. Block Lists
7.1.1.3. Block Anonymous Numbers
7.1.2. NCOS Levels
7.1.2.1. Creating NCOS Levels
7.1.2.2. Creating Rules per NCOS Level
7.1.2.3. Assigning NCOS Levels to Subscribers/Domains
7.1.3. IP Address Restriction
7.2. Call Forwarding and Call Hunting
7.2.1. Defining Destination Sets
7.2.2. Activating a Destination Set
7.2.3. Defining Time Sets
7.2.4. Assigning a Time Set to a Call Forward

The sip:provider CE provides a large amount of subscriber features in order to offer compelling VoIP services to end customers, and also to cover as many deployment scenarios as possible. In this chapter, we will go over the features and describe their behavior and their use cases.

7.1. Access Control for SIP Calls

There are two different methods to provide fine-grained call admission control to both subscribers and admins. One is Block Lists, where you can define which numbers or patterns can be called from a subscriber to outbound direction and which numbers or patterns are allowed to call a subscriber in inbound direction. The other is NCOS Levels, where the admin predefines rules for outbound calls, which are grouped in certain levels. The user can then just choose the level, or the admin can restrict a user to a certain level. Also sip:provider CE offers some options to restrict the IP addresses that subscriber is allowed to use the service from. The following chapters will discuss these features in detail.

7.1.1. Block Lists

Block Lists provide a way to control which users/numbers are able to call or to be called, based on a subscriber level.

Subscriber Block Lists

Block Lists are separated into Administrative Block Lists (adm_block_*) and Subscriber Block Lists (block_*). They both have the same behavior, but Administrative Block Lists take higher precedence. Administrative Block Lists are only accessible by the system administrator and can thus be used to override any Subscriber Block Lists, e.g. to block certain destinations. The following break-down of the various block features apply to both types of lists.

7.1.1.1. Block Modes

Block lists can either be whitelists or blacklists and are controlled by the User Preferences block_in_mode, block_outmode__ and their administrative counterparts.

  • The blacklist mode tells the system to allow anything except the entries in the list. This mode is used if you want to just block certain numbers and allow all the rest.
  • The whitelist mode indicates to reject anything except the entries in the list. This is used if you want to enforce a strict policy and allow only selected destinations or sources.

You can change a list mode from one to the other at any time.

7.1.1.2. Block Lists

The list contents are controlled by the User Preferences block_in_list, block_out_list and their administrative counterparts. Click on the Edit button in the User Preferences view to define the list entries.

Outgoing Block List

In block list entries, you can provide shell patterns like * and []. The behavior of the list is controlled by the block_xxx_mode feature (so they are either allowed or rejected). In our example above we have block_out_mode set to blacklist, so all calls to US numbers and to the Austrian number +431234567 are going to be rejected.

7.1.1.3. Block Anonymous Numbers

For incoming call, the User Preference block_in_clir and adm_block_in_clir controls whether or not to reject incoming calls with number supression (either "[Aa]nonymous" in the display- or user-part of the From-URI or a header Privacy: id is set). This flag is independent from the Block Mode.

7.1.2. NCOS Levels

NCOS Levels provide predefined lists of allowed or denied destinations for outbound calls of local subscribers. Compared to Block Lists, they are much easier to manage, because they are defined on a global scope, and the individual levels can then be assigned to each subscriber. Again there is the distinction for user- and administrative-levels.

NCOS levels can either be whitelists or blacklists.

  • The blacklist mode indicates to allow everything except the entries in this level. This mode is used if you want to just block certain destinations and allow all the rest.
  • The whitelist mode indicates to reject anything except the entries in this level. This is used if you want to enforce a strict policy and allow only selected destinations.
7.1.2.1. Creating NCOS Levels

To create an NCOS Level, go to Number ManagementNCOS.

NCOS Levels

Enter a name, select the mode and add a description, then click the Add button.

7.1.2.2. Creating Rules per NCOS Level

To define the rules within the newly created NCOS Level, click on the name of the level.

Enter NCOS Level View

In the Number Patterns section you can enter multiple patterns to define your level, one after the other.

Enter NCOS Entry View

In this example, we block (since the mode of the level is blacklist) all numbers starting with 439. Click the Add button to save the entry in the level.

The option include local area code in list for a blacklist means that calls within the area code of the subscribers are denied, and for whitelist that they are allowed, respectively. For example if a subscriber has country-code 43 and area-code 1, then selecting this checkbox would result in an implicit entry ^431.

7.1.2.3. Assigning NCOS Levels to Subscribers/Domains

Once you’ve defined your NCOS Levels, you can assign them to local subscribers. To do so, navigate to User AdministrationSubscribers, search for the subscriber you want to edit, go to the Preferences Tab and press the Edit button.

Edit Subscriber Preferences

Navigate down to the ncos and adm_ncos preference drop-downs and select your NCOS Level. Navigate further down to the end of the preference list and press the Save button.

You can assign the NCOS level to all subscribers within a particular domain. To do so, navigate to System AdministrationSubscribers, select domain you want to edit, go to the Preferences Tab and press the Edit button. Select your NCOS Level in the ncos or adm_ncos preference drop-down. Press the Save button.

Note: if both domain and subscriber have same NCOS preference set (either ncos or adm_ncos, or both) the subscriber’s preference is used. This is done so that you can override the domain-global setting on the subscriber level.

7.1.3. IP Address Restriction

The sip:provider CE provides subscriber preference allowed_ips to restrict the IP addresses that subscriber is allowed to use the service from. If the REGISTER or INVITE request comes from an IP address that is not in the allowed list, the sip:provider CE will reject it with a 403 message. Also a voice message can be played when the call attempt is rejected (if configured).

By default, allowed_ips is an empty list which means that subscriber is not restricted. If you want to configure a restriction, navigate to User AdministrationSubscribers, search for the subscriber you want to edit, go to the Preferences Tab and scroll down to the allowed_ips preference.

Edit Subscriber Allowed IP Addresses

Press the Edit button to the right of empty drop-down list.

Enter Subscriber Allowed IP Addresses

You can enter multiple allowed IP addresses or IP address ranges one after another. Click the Add button to save each entry in the list. Click the Delete button if you want to remove some entry.

7.2. Call Forwarding and Call Hunting

The sip:provider CE provides the capabilities for normal call forwarding (deflecting a call for a local subscriber to another party immediately or based on events like the called party being busy or doesn’t answer the phone for a certain number of seconds) and serial call hunting (sequentially executing a group of deflection targets until one of them succeeds). Targets can be stacked, which means if a target is also a local subscriber, it can have another call forward or hunt group which is executed accordingly.

Call Forwards and Call Hunting Groups can either be executed unconditionally or based on a Time Set Definition, so you can define deflections based on time period definitions (e.g. Monday to Friday 8am to 4pm etc).

7.2.1. Defining Destination Sets

A Call Forward is always based on a Destination Set, which contains one (for normal Call Forwards) or more (for Hunt Groups) destinations.

To define a Destination Set, go to the Preferences Tab of a subscriber and click on the Edit Destination Sets button in the Call Forwards section.

Call Forwards Overview

You can create a Destination Set by setting a name for the set and press the Add button.

Create New Call Forward Destination Set

Once you created your destination set, you can add destinations to it. Select either one of the internal services (Voicebox, Fax2Mail if available, Conferencing) or define a number or SIP URI. You can also define how long to try this destination (which is important for Hunt Groups if you want to let a destination only ring for a certain amount of seconds). Click the Add button once you are done to save the destination.

Create New Call Forward Destination

If you want to add more destinations for a Destination Set in order to create a Hunt Group, click the Edit button of the Destination Set.

Add Another Call Forward Destination

To rearrange the order of the destinations within a Destination Set, just drag&drop the entries to the proper position.

Reorder Call Forward Destinations

You can define multiple destination sets to be used for different types of forwards (unconditional, busy etc.) and for different Time Sets (using one Destination Set during office hours and else another one).

7.2.2. Activating a Destination Set

In order to activate a Destination Set to be used always (that is, without a Time Set constraint), go back to your Call Forwards section in the Preferences view and select the Destination Set you want to use for the particular scenario, then press the Add button. Since no Time Sets have been defined yet, you can only select always for the period option.

Activate A Call Forward Destination Set

7.2.3. Defining Time Sets

To define certain time periods in which a Destination Set should be active, click on the Edit Time Sets button in the Call Forwards section.

Call Forwards Overview

Like with Destination Sets, you can create multiple Time Sets to be used for different scenarios, and you can assign multiple Time Sets to a specific Call Forward.

To create a Time Set, just provide a name and click the Add button.

Create Call Forward Time Set

Once the Time Set is created, you can add Time Period Definitions. To do so, drag&drop the building blocks from the top into the slots of your Time Set.

[Important]

The ranges mean from through to, so an hour range 08-17 means from start of hour 8 to end of hour 17, which is 08:00:00-17:59:59. Also note that ranges wrap around nicely, so an hour range definition 23-01 works perfectly fine.

To define a more complex period definition which defines after-office-hours (Mo-Fri from 00:00 to 08:29 and from 18:00-00:00, and Sat-Sun the whole day), you need three different rules as shown in the figure below:

Create A Call Forward Time Period

  • The first row defines the weekend, which is the whole Saturday and Sunday.
  • The second row defines the time on Weekdays (Mon-Fri) from 18:00 to 07:59 (again remember the meaning through).
  • The last row defines the half hour on Weekdays (Mon-Fri) from 08:00 to 08:29.

Once you’ve defined a row, click the Add button next to the row. If you want to add more rows to a Time Set, just click the Edit button next to the Time Set Name.

7.2.4. Assigning a Time Set to a Call Forward

To use a previously defined Time Set, go back to the Call Forward section of the Preferences view and select it from the drop-down of the appropriate scenario, along with a Destination Set. If you already use a Destination Set, click the Edit button to add a Time Set for this scenario. Note that you can add multiple rows per scenario. For our after office hours example above, we can add a new Time Set called public holidays, which defines all public holidays where your office is closed, then add both of them for the Call Forward Unconditional scenario, like this:

Define Multiple Time Periods

Of course you can set different Destination Sets for different Time Sets for a specific Call Forward scenario.