Access Privilege Controls on Dialplans

There are multiple ways of controlling user access privileges to dialling out of the organisation.

Below is one method that relies only on the dialplans.

The privileges are configured through two hierarchies:

  • the access control, and
  • the national number plan

In our most basic configuration, the restrictions are based around differences in costs for different outbound classes of calls.

The hierarchy of calls, where the highest privilege is also authorised to user lower privilege access.

  • International calls are most expensive
  • national calls (domestic)
  • mobile telephone services
  • local calls
  • internal
[authorised-all]

include => authorised-international

[authorised-international]
include => international
include => authorised-domestic

[authorised-domestic]
include => domestic
include => authorised-mobile

[authorised-mobile]
include => mobile
include => authorised-local

[authorised-local]
include => authorised-internal
include => free

[authorised-internal]
include => emergency
include => phones

The above Access Control List (ACL) Hierarchy matches up with the available national number scheme. Which for Australia will look something like this.

[international]
exten => _0011.,1,Goto(dial_trunk,${EXTEN},1)

[domestic]
exten => _ZXXXXXXX,1,Goto(dial_trunk,${EXTEN},1)
exten => _0[235678]XXXXXXXX,1,Goto(dial_trunk,${EXTEN},1)

[mobile]
exten => _04XXXXXXXX,1,Goto(dial_trunk,${EXTEN},1)

[free]
exten => _1[38]00XXXXXX,1,Goto(dial_trunk,${EXTEN},1)
exten => _13XXXX,1,Goto(dial_trunk,${EXTEN},1)
exten => _119X,1,Goto(dial_trunk,${EXTEN},1)

[emergency]
exten => _000,1,Goto(dial_trunk,${EXTEN},1)
exten => _106,1,Goto(dial_trunk,${EXTEN},1)