The CommuniGate Pro PBX Tasks communicate by sending events to task handlers. A task handler is a reference object describing a PBX Task, a Session, or a Real-Time Signal. In a CommuniGate Pro Cluster environment, the Task handler contains the address of the Cluster Member server the referenced PBX Task, Session, or Signal is running on.
When an event should be delivered to a different cluster member, it is delivered using the inter-Cluster CLI/API. The event recipient can reply, using the sender task handler, and again the inter-Cluster CLI/API will be used to deliver the reply event.
PBX Tasks usually employ Media channels. To be able to exchange media with external entities, PBX Tasks should run only on those Cluster members that have direct access to the Internet.
When a XIMSS session initiates a call, it creates a Call Leg object. These Call Leg objects manage XIMSS user Media channels and they should be able to exchange media with external entities, so they should run only on those Cluster members that have direct access to the Internet.
When a Signal component directs an incoming call to a XIMSS session, it creates a Call Leg object on the same Cluster member processing this incoming call Signal request. This Call Leg object is then "attached" to the XIMSS session (which is running on some backend Server and this can be running on a different Cluster member).
When an XIMSS session and its Call Lege are running on different Cluster members, they communicate via special events, which are delivered using the inter-Cluster CLI/API.
To configure the Call Leg processing option open the General page in the Settings WebAdmin realm and click the Cluster link:
If the Locally option is selected, Call Legs will be processed in the "regular" way: when any Server component needs to create a Call Leg object, it is created directly on this Server.
If the Locally for Others option is selected, Call Legs will be processed in the "regular" way, too. Additionally, this Server will create Call Leg for components running on other Cluster members. The Dynamic Cluster Controller collects and distributes information about all running Cluster members that have this option selected.
If the Remotely option is selected, this Cluster member will try to connect to any other Cluster member
that has the "Locally for Others" option selected. This Cluster member will then request that other Cluster member
to create a Call Leg object there.
Use this option for Backend Cluster members that do not have direct access to the Internet and thus cannot exchange media data with external entities.