Reference:PBX Locations: Difference between revisions

From innovaphone wiki
Jump to navigation Jump to search
New page: == Introduction == Locations in the PBX are reworked in v6 for the following reasons: *In v5 locations which could be addressed only with a prefix could only be administrated locally, so ...
 
 
(25 intermediate revisions by 3 users not shown)
Line 1: Line 1:
== Introduction ==
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).


Locations in the PBX are reworked in v6 for the following reasons:
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.
*In v5 locations which could be addressed only with a prefix could only be administrated locally, so in an installation with many small locations all with prefixes, it was very hard to get an overview over the system in total and backup of the configuration was difficult.
*There is the frequent feature request for group functions not only within one location but for groups of users in different locations. To implement group functions for users which are actually registered in different locations consumes a lot of bandwidth between locations and does not scale very well.


The general idea to solve these problems is to separate 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 (physical-location) of the user.
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).


This way call routing can be based on the numbering node and physical-location wheras group functions can be performed for users within a registration PBX.
The physical location of a user is relevant for routing calls to objects marked 'local' and to 'extern' interfaces.


== Locations ==
== Concepts ==


=== The numbering node ===
=== The numbering node ===


Each object is assigned to a node in the numbering tree. All objects within one numbering node can call each other without the use of prefixes. A numbering-node object with the name of the node defines the prefix for the node. The numbering node of the object itself defines where this numbering node is located inside the total numbering plan. There is one implicitly defined numbering node “root” without a prefix. Objects which are configured with a numbering node “root” can be called without prefix.
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'.
This way a tree of numbering nodes can be defined.
 
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 ===
=== 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, so a location object is used to configure it. If there are more than PBXs in a single numbering node, separate pseudo numbering nodes must be created for the PBXs.
 
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 ===
Line 23: Line 27:
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.
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.
== GatekeeperId ==
=== Local Objects ===


As GatekeeperId for the registrations of endpoints at the PBX, the registration PBX is used. If a PBX has to redirect a registration, because the user is not defined on this location it is redirected to a gatekeeperId with the form new-location/old-location. This way the incoming GatekeeperId can be used to determin the physical location of an endpoint.
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.


== Local Objects ==
=== Extern Objects ===


Any object can be marked as “Local”, which means that it can only be called from endpoints with the physical-location being the registration PBX of this object, or by dialing explicitly the prefix of the numbering node of physical location PBX.
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 routing based on the numbering node fails (which can only determined on the master), it is additionally checked if there is a match for the dialed number within the physical-location of the endpoint.
*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.


== Routing ==
=== 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


The routing of calls works by applying the following rules in this precedence on each PBX the call is handled:
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 [[Reference7:Administration/PBX/Registrations|registrations list]].
*The dialed number is searched within the numbering node of the calling endpoint.
*If there is no match the call is sent to EXTERN if such a registration exists
*If there is no match in the current or the call to EXTERN fails with “unallocated number” numbering node, the search is continued on the next higher node
*If the destination cannot be resolved locally the call is sent to the respective master.
*If the call is already at the master and a “local-only” object was found, the physical location of the endpoint is searched for a match.
*If there is still no match, the call is terminated with cause “unallocated number”


== Objects ==
== Configuration ==


=== Location Definition ===
=== Node Object ===


Defines the prefix of a numbering node. The numbering node of the location definitions itself defines the location of this node within the complete numbering plan.
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 ===
Escape defines a number which is used to route the call to the next higher numbering node.


Defines a number which is used to route the call to the next higher numbering node. This way a numbering scheme like in the public telephone network can be established: define a numbering node for each country, inside each country define Escape(0) to access the international numbers, define numbering nodes for each area code, define Escape(0) inside each area code to access the national numbers. This is esspecially useful if a multi-level numbering scheme has to be implemented to avoid conflicts of location prefixes with normal user numbers.
=== PBX/General ===


== Redundancy ==
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 master of a registration PBX (the PBX where this PBX is registered) always acts as standby for the registration PBX. One registration PBX which is registrated at a given master can be configured as standby to this master.
The System Name must be the same on all PBXs belonging to one system. For H.323 endpoints this is the Gatekeeper Identifier.
If the physical location of a user is different from the registration PBX this physical location will also act as standby if the connection to the master fails.
 
On the endpoint the physical location has to be configured as primary gatekeeper. As alternate gatekeeper the respective master (where the physical-location is registered) has to be configured, or a PBX which is registered at the physical location and is configured as standby.
The PBX Name defines to which node this PBX registers. This name has to match to a Name configured in a PBX Object.


== Replication ==
== Replication ==
Line 64: Line 72:
For the replicator on a given PBX only the location-name has to be configured.
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.
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.
[[Category:Concept|{{PAGENAME}}]]

Latest revision as of 15:34, 7 August 2014

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.