Multiple Branch Support
From SIPfoundry sipXecs IP PBX, The Open Source SIP PBX for Linux - Calivia
| Future / Possible Feature: This describes a feature not yet available in any released version |
| For status, see XX-4819 Survivable Branch Support |
Contents |
sipXecs Multiple Branch Support
A sipXecs installation has a single 'SIP Domain', managed by a single system that has the Management role (see Roles in sipXecs). Within that domain, there are 'branches': a branch is a location - an office suite, a building, or a campus. A sipXecs branch groups a set of servers, services, and users. Every server, service, and user is a part of some branch (of course, a sipXecs system may have only one branch that includes everything). Some services can serve multiple branches, and the Management role controls all branches.
All configuration is performed using the sipXconfig on the master system at the central site (but see #Voicemail below). The initial (master) system setup creates a default branch. Additional branches can be created at any time. When any new server is added, it must be added to some branch.
A branch always includes its own PSTN interface (either a local gateway or a local sipXbridge instance and IP communication to an external ITSP). A site that does not have PSTN connectivity of its own is conceptually just a remote part of some other branch. A gateway in one branch can be used by others, and each branch can have its own preference order for choosing gateways in each dial plan.
The IP network between all sipXecs branches must not have any NATs between branches (a normal IP routing infrastructure, perhaps using VPNs, is required). Each branch must correspond to one or more distinct IP subnets (see How Branches Relate To IP Networks).
Redundancy
In a multi-branch sipXecs installation, services should be robust in the event of failures of systems or network connections. The extent to which this is achieved in any given installation will be a tradeoff between the cost of redundant systems, the complexity of configuration, and the capabilities of individual services.
Once configured, each branch is able to perform all of the following without the aid of any other branch:
- Intra-branch station to station calls (calls between users within the branch).
- PSTN calling, including local emergency services.
- Local Auto-Attendants, but not including personal auto-attendants for users; those are part of the central voicemail service
- Music on Hold (each instance of the Music On Hold service can be configured with its own audio sources).
- Paging
- Call Park using park orbits configured on the local Park service.
- Busy Lamp Field and Shared Line Appearances (monitoring or sharing an instance of a line in some other branch is possible, but will not work correctly if that branch is unreachable due to network failure)
Number Portability and Roaming
Each user has a 'home' branch. The user/branch association can be changed by the administrator - a user can be 'moved' from one branch to another by changing the assignment of the home branch for that user. The choice of branch is not constrained by phyisical/network location: a user that is physically in one branch may be logically assigned to another (and a line for one user can have appearances on phones whose primary user is in another branch). A user assigned to one branch can physically make and receive calls when connected to the network in a branch other than their home branch (assuming that the network connectivity between branches is working - if not, there are some restrictions).
Some call routing decisions are controlled by the home branch of the caller, and others are controlled by the branch from which the call actually originates: for details, see Multi-Branch Call Routing.
Voicemail
Voicemail is a central service: a multi-branch sipXecs system has only one instance of the voicemail service that is shared by all branches.
If there is no network connectivity between some branch and the server where the voicemail role is instantiated, or if that server is down, then there is no access to either voicemail or to personal auto-attendants (which are actually implemented as feature of the voicemail system).
Conference Server
All conference addresses are global, so users in any Branch may use any conference server.
ACD
Each instance of an ACD service must be defined to be located on a server in some Branch.
There are two possible configurations for the association of Agents to ACDs; the difference is in how the agents login/logout using the telephone keypad.
- All ACD agents within a branch must be on the same ACD.
- A branch can have only one ACD.
- An Agent may not be assigned to more than one ACD.
or
- Each ACD had its own login/logout dial string.
- Agents must/can login/logout from each ACD separately
In the latter alternative, agents can be associated with more than one ACD in any branch, but would log into each ACD separately, because the login/logout is globally unique.
