Reference:PBX Locations
The fundamental idea of v6 locations is to seperate the location where a user registers (registration PBX) from the location of the user inside the numbering plan (numbering node) and again from the physical location of the user (physical-location).
The registration PBX is important for group features. Group features like pickup, partner keys etc. are possible only for users registered on the same PBX.
The numbering node defines the complete phone number of an user. Users within the same node can call each other with the subscriber number only. If the users are in different nodes the respective node prefixes have to be dialed. Nodes can be defined in multiple levels (like the international numbering plan with country codes, area codes, subscriber numbers). Escape digits are used to move up one level in the hierachy (like prefixes for the national/international network).
The physical location of a user is relevant for routing calls to objects marked 'local' and to 'extern' interfaces.
Concepts
The numbering node
For each numbering node a number has to be assigned and the node has to be assigned to another node of the next higher level in the hierarchy. The number of the node has to be unique inside the node to which the node has been assigned. There is one predefined non-configurable node which is called 'root'. This is the root of the numbering node tree. If only one level of nodes is needed, all nodes can be assigned to 'root'.
All objects defined on the PBX have to be assigned to a numbering node. If an object is assigned to the 'root' node it can be called without a prefix.
For each numbering node a 'escape' can be configured. With this escape the call is sent to the next higher node within the node hierarchy. This escape takes precedence over any conflicting number inside the node.
The registration PBX
Each PBX entity running on a gateway is a registration PBX, with a name configured locally on this gateway. Each object is assigned to a registration PBX. If a device registers for an object, this registration is accepted only by the registration PBX defined for the object. By definition, a registration PBX always needs to be assigned to a numbering node as well.
To be able to forward calls between the PBXs a registration tree for the PBXs has to be configured. This means there must be one master PBX in the system and the other PBXs have to be registered to a master in a way that a tree is formed with the master PBX being the root of the registration tree. This registration tree is completely independent of the numbering node tree. Usually it is configured in a way that it reflects the IP network structure.
The physical-location
The physical-location is not configured but determined for each device on runtime depending on the PBX the original registration was sent to. This physical-location is not necessarily identical to the registration PBX since if the registration is sent first to a PBX which is not the registration PBX for this object, it will be the physical-location anyway, but the registration is redirected to the registration PBX.
Local Objects
Any object can be marked as “Local”, which means that it can be called from endpoints with the physical-location being the registration PBX of this object without prefix. From endpoints with other physical locations it can be called with the respective prefixes. This is esspecially useful for Trunk Objects for outside lines which should have the same number all over the system (e.g. 0), but the call shall be sent to the different local break-outs.
Extern Objects
For each PBX an object can be configured as the 'extern' interface of the given PBX. Calls to Extern are routed in a similar way as calls to Local Objects, with the difference that Local Objects are searched first whereas Extern is the last resort if there is no other match. If a number is dialed which is not defined inside the system the call is routed to an Extern interface according the following rules:
- If a PBX is defined for the destination node, the call is sent to this PBX, if the destination is not found on this PBX the Extern interface of this PBX is used.
- If no PBX is defined for the destination node, the call is sent to the PBX registered for the source node of the call
- If neither of the above PBXs exist the call is routed to the Extern interface of the master PBX.
Groups
Various PBX features require participating PBX objects (e.g. users) to be in the same group. PBX objects are in the same group if
- they are assigned to a group with equal name
- they are registered with the same PBX
Groups do not depend on the nodes configured for the group members. Please note that the second point above depends on where the registration technically takes place. This may well differ from the configured PBX value for the object (e.g. in the case of fail over scenarios). The registration can be determined from the PBX's registrations list.
Configuration
Node Object
Defines a numbering node. Slave PBXs also require a numbering node to register. 'Number' defines the Prefix used for this Node and 'Name' defines the name of the node. The 'Node' configured for the PBX object itself defines the next higher level inside the numbering node hierachy, inside which this node is defined. The reserved name 'root' is used for the root of the numbering nodes. The 'PBX' configured for a node defines where a PBX for this node can be registered. If a PBX object is configured for the master 'root' shall be used as PBX.
Escape defines a number which is used to route the call to the next higher numbering node.
PBX/General
The PBX mode defines the general operating mode of the PBX:
- Master - Root of the registration tree. There must be exactly one master in a system
- Slave - A PBX registered to a node.
- Standby - Active standby for the Master
The System Name must be the same on all PBXs belonging to one system. For H.323 endpoints this is the Gatekeeper Identifier.
The PBX Name defines to which node this PBX registers. This name has to match to a Name configured in a PBX Object.
Replication
Relpication is done based on the multi-value attribute rep. Each object with an attribute rep matching the location name is replicated to the respective registration PBX. These attributes rep are not configured manually but the master PBX is attaching these attributes to objects so that in each replication PBX the required objects are present. To allow the physical-location to act as standby, the registration PBX adds a rep attribute indicating the physical-location whenever a registration comes in from a physical-location which is not the registration PBX. For the replicator on a given PBX only the location-name has to be configured. On PBXs which are configured as standby for a master, the replicator is configured to replicate the complete database from its master without the configuration of a location.
Implementation
Physical Location
The Physical Location of an endpoint is determined according to where the registration is first receiced in the system. This PBX may redirect the registration to a different PBX. The registration is redirected to the IP address of the other PBX and to the Gatekeeper Identifier <System Name>@<Name> with <Name> being the name of the redirecting PBX. This way the new PBX knows from which PBX this registration was redirected and this PBX is assumed the physical location of the endpoint.
** Note: a standby or standby slave PBX do not redirect a registration when it is not active, only a a master or slave PBX makes a redirect.
Calls between PBXs
If calls are forwarded from an endpoint to another PBX (slave or the respective master) the source name is used to transport additional information by adding the following information:
@<physical-location>:<source-node>
<physical-location> is the name of the PBX identified as the physical location of the endpoint (see above). This information is added only for calls to the respective master PBX.
<source-node> identifies the node in which the called party number has to be interpreted. Any PBX tries to resolve the number as far as possible and forwards the call with prefixes removed as far as possible and indicating the node in which the remaining number has to be interpreted.
When sending the call to any other destination except a master or another slave PBX the additional information is removed from the source name. So this is transparent to other endpoints/gateways registered to the PBX.
The calling party number is normalized to the full number including all node prefixes, but without escapes.
For calls from object marked 'local' no location prefixes are added to the calling party number. This way a call back for such a call will always end up in the respective local endpoint with the same number.