Download Administering Presence Services XCP Controller

Document related concepts
no text concepts found
Transcript
Administering Presence Services XCP
Controller
August 2010
Contents
Chapter 1: Using the Presence XCP Controller......................................................................9
Starting the Presence XCP Controller...............................................................................................................9
Using Linux...............................................................................................................................................9
Using web access...........................................................................................................................................10
Configuration views.........................................................................................................................................11
XCP Controller interface.................................................................................................................................12
System....................................................................................................................................................12
Router.....................................................................................................................................................13
Components...........................................................................................................................................13
Chapter 2: Router....................................................................................................................15
About Router Area..........................................................................................................................................15
Global Router settings.....................................................................................................................................16
Cluster....................................................................................................................................................17
Realm.....................................................................................................................................................18
MDNS.....................................................................................................................................................18
Log level.................................................................................................................................................19
Obscure Plaintext Passwords.................................................................................................................20
Advanced Performance Tuning options..................................................................................................20
Master Accept port.................................................................................................................................20
Database setup......................................................................................................................................22
Enabling SNMP......................................................................................................................................23
Mutually Trusted TLS Host Names.........................................................................................................24
Chapter 3: Logging..................................................................................................................25
Logging...........................................................................................................................................................25
Configuring Syslog for Red Hat Linux....................................................................................................26
Setting the Log Level for Router-Generated Packets.............................................................................26
Jabberd Logger Configuration................................................................................................................28
JSM Logging...........................................................................................................................................35
Message Archiver Logging.....................................................................................................................37
Statistics Logging...................................................................................................................................38
Component Logging (Jlog).....................................................................................................................39
Presence Services logging.....................................................................................................................42
Changing logging levels.........................................................................................................................43
Collecting logs........................................................................................................................................44
System Manager Alarm and Logging.....................................................................................................45
Chapter 4: Presence Session Manager (JSM)......................................................................47
Optional modules............................................................................................................................................48
JSM hostnames..............................................................................................................................................48
Presence Administrators.................................................................................................................................49
Unregistering users................................................................................................................................49
Deleting Offline messages......................................................................................................................50
Locating Inactive accounts.....................................................................................................................50
Broadcasting messages to all users.......................................................................................................51
System limits...................................................................................................................................................53
System parameters.........................................................................................................................................53
Database setup option....................................................................................................................................54
Administering Presence Services XCP Controller
August 2010
3
JSM features...................................................................................................................................................56
Stats................................................................................................................................................................56
Agents.............................................................................................................................................................57
Legacy redirect to external components.........................................................................................................57
Static EventBroker events...............................................................................................................................57
Configuring JDS..............................................................................................................................................58
Configuring Roster..........................................................................................................................................59
Configuring Sendmail......................................................................................................................................59
Configuring Offline SMTP................................................................................................................................60
Configuring Registration Requirements..........................................................................................................61
Authorization...................................................................................................................................................62
JSM Logging...................................................................................................................................................62
Configuring HTTP Digest Module...................................................................................................................63
Configuring personal eventing........................................................................................................................63
Configuring SNMP..........................................................................................................................................64
Chapter 4: Authorization.........................................................................................................65
Authz Authorization.........................................................................................................................................65
XCP Server Configuration......................................................................................................................65
Authorization Protocol............................................................................................................................69
Design Notes..........................................................................................................................................72
Security Considerations..........................................................................................................................73
Licensing.........................................................................................................................................................78
Chapter 5: Access...................................................................................................................81
EventBroker....................................................................................................................................................81
Configuring the EventBroker for the Presence Session Manager..........................................................82
Configuring the EventBroker for Text Conferencing...............................................................................83
OpenPort Configuration..........................................................................................................................84
Example Component..............................................................................................................................85
Protocol: Event Access from External Components...............................................................................89
InfoBroker......................................................................................................................................................118
Planning Your Deployment...................................................................................................................119
InfoBroker Configuration.......................................................................................................................119
Creating and Publishing to Nodes........................................................................................................122
Data Drivers..........................................................................................................................................123
XEP-60 Compliance.............................................................................................................................124
Example Implementations....................................................................................................................126
InfoBroker Parameter Reference..........................................................................................................128
Category Parameter Reference............................................................................................................132
Chapter 7: Connection managers........................................................................................137
Verifying Connection Manager certificates....................................................................................................137
Adding and configuring an additional Connection Manager..........................................................................138
Chapter 8: File Transfer Proxy.............................................................................................141
Configuring the Basic File Transfer Proxy.....................................................................................................141
To configure the File Transfer Proxy.....................................................................................................141
File Transfer Proxy Parameter Reference.....................................................................................................142
Basic Parameters.................................................................................................................................142
Intermediate Parameters......................................................................................................................143
Advanced Parameters..........................................................................................................................144
4
Administering Presence Services XCP Controller
August 2010
Chapter 9: OCS Gateway......................................................................................................147
Verifying OCS Gateway certificates..............................................................................................................147
Configuring a Server-to-Server Connection Manager...................................................................................148
Configuring the OCS Gateway......................................................................................................................149
Adding an Outgoing Connection Attempt Rule in the S2SCP.......................................................................152
Configuring an OpenPort connection............................................................................................................153
Configuring Jabber administrators................................................................................................................153
Chapter 10: Server-to-Server connections.........................................................................155
Configuring the Basic S2S Connection Manager..........................................................................................155
Configuring the OpenPort connection...........................................................................................................156
Configuring the dialback password...............................................................................................................157
Blacklisting and Whitelisting Hosts and IP Addresses..................................................................................158
Discovery Protocol for Querying the S2S Command Processor...................................................................159
Example: Querying the S2SCP for information....................................................................................159
Example: Querying for outbound and inbound lists..............................................................................159
Example: Querying S2CP for all items.................................................................................................160
Chapter 11: Active Directory................................................................................................161
Configuring the Active Directory component.................................................................................................161
Configuring a Directory Server to work with Active Directory...............................................................162
Configuring a database........................................................................................................................163
Configuring the JSM to use the Active Directory component........................................................................165
Chapter 12: Jabber Directory and LDAP.............................................................................167
Configuring the Jabber Directory component................................................................................................167
Configuring a Directory Server.............................................................................................................168
Configuring an LDAP Database...........................................................................................................169
Configuring the JSM to use the Jabber Directory Component......................................................................172
Jabber LDAP objectClasses and Attributes..................................................................................................173
Directory Server optimization........................................................................................................................174
Chapter 13: LaunchBroker...................................................................................................175
Configuring the LaunchBroker Component...................................................................................................175
To configure the LaunchBroker component..........................................................................................175
Configuring the WebEx Collaboration Command..........................................................................................176
To configure the WebEx Collaboration Command................................................................................176
Configuring the Adobe Acrobat Connect Professional Command ................................................................177
Setting up Adobe Connect Server........................................................................................................177
To configure the Adobe Acrobat Connect Professional command .......................................................178
Configuring a Custom LaunchBroker Command..........................................................................................179
To configure a custom command..........................................................................................................179
LaunchBroker Parameter Reference............................................................................................................180
Basic Parameters.................................................................................................................................180
Intermediate Parameters......................................................................................................................181
Advanced Parameters..........................................................................................................................182
Chapter 14: Message Archiver.............................................................................................185
Configuring Message Archive.......................................................................................................................185
Configuring the Presence Session Manager.................................................................................................186
Retrieving Message Archiver Data................................................................................................................187
Incoming and outgoing messages........................................................................................................188
Administering Presence Services XCP Controller
August 2010
5
Files transfer requests..........................................................................................................................189
Chapter 16: Presence Mirror................................................................................................197
Configuring the Presence Mirror Component................................................................................................197
To configure the Presence Mirror.........................................................................................................197
Configuring the Presence Session Manager.................................................................................................198
To configure the Presence Session Manager.......................................................................................198
Presence Mirror Parameter Reference.........................................................................................................199
Intermediate Parameters......................................................................................................................199
Advanced Parameters..........................................................................................................................201
Chapter 18: Intra-Domain (Clustered) federation using Single Domain Name Support. 211
Clustered federation using Single Domain Name Support (SDNS)..............................................................211
Configuring SDNS for Intra-Domain (Clustered) Federation.........................................................................212
Configuring JSM...................................................................................................................................212
Configuring SDNS for JSM...................................................................................................................212
Configuring an R2R connection............................................................................................................213
Chapter 19: Kerberos authentication and Microsoft Active Directory.............................215
Active Directory setup...................................................................................................................................215
Configuring Kerberos for the Presence Services Server..............................................................................215
Chapter 17: Services.............................................................................................................219
Stanza Optimizer...........................................................................................................................................219
Configuring the Stanza Optimizer Component.....................................................................................219
Configuring Text Conferencing for Stanza Optimization.......................................................................221
Configuring the InfoBroker for Stanza Optimization.............................................................................221
Stanza Optimizer Parameter Reference...............................................................................................222
Text Conferencing.........................................................................................................................................226
Configuring Persistent Conference Rooms..........................................................................................227
Configuring Text Conferencing Administrators.....................................................................................227
Conference Room User Roles..............................................................................................................228
Text Conferencing Gears......................................................................................................................229
Text Conferencing Parameter Reference.............................................................................................232
Wait List Service............................................................................................................................................243
Configuring the Wait List Service Component......................................................................................243
Wait List Service Parameter Reference................................................................................................244
The Wait List Interface..........................................................................................................................248
Creating a JIG File................................................................................................................................249
Web Services................................................................................................................................................249
Configuring Web Services....................................................................................................................250
Web Services Parameter Reference....................................................................................................254
Service-Specific Configurations............................................................................................................257
Invoking Services from a SOAP-over-HTTP Client..............................................................................259
Web Services Definition Language Files..............................................................................................260
Chapter 20: System Manager...............................................................................................261
Presence.......................................................................................................................................................261
Presence administration.......................................................................................................................261
Presence configuration properties........................................................................................................261
Classes.................................................................................................................................................262
Access Levels.......................................................................................................................................264
6
Administering Presence Services XCP Controller
August 2010
Presence server status.........................................................................................................................267
Access Levels...............................................................................................................................................267
Presence access levels........................................................................................................................267
Viewing Presence access levels..........................................................................................................268
Creating Presence access levels.........................................................................................................268
Modifying Presence access levels........................................................................................................268
Deleting Presence access levels..........................................................................................................269
Presence access level field descriptions..............................................................................................269
Classes.........................................................................................................................................................270
Presence classes.................................................................................................................................270
Viewing Presence classes....................................................................................................................270
Creating Presence classes...................................................................................................................271
Modifying Presence classes.................................................................................................................271
Deleting Presence classes...................................................................................................................271
Index.......................................................................................................................................273
Administering Presence Services XCP Controller
August 2010
7
8
Administering Presence Services XCP Controller
August 2010
Chapter 1: Using the Presence XCP
Controller
The Presence XCP controller is a web-based administration console that you must use to configure the
Presence XCP server. From the Presence XCP Controller main page, you can access information on the
server’s core router, and on all of the plug-ins and components that are running on the server. You can
start and stop the server and its components from this location. You can also view an XML summary of
your server configuration.
Important:
Avaya strongly recommends against editing any of the server component XML files manually. If you
edit a file manually, you can easily compromise your configuration, and you may not be able to use use
the Presence XCP Controller later to edit the configuration.
This chapter consists of the following sections:
• Starting the Presence XCP Controller on page 9
• Using web access on page 10
• Configuration views on page 11
• XCP Controller interface on page 12
• Online Help
Starting the Presence XCP Controller
This section describes how to start the Presence XCP controller and access it through a Web
browser.
Related topics:
Using Linux on page 9
Using Linux
if you are using Presence XCP Controller for Linux, then too start the Presence XCP controller:
To start the Presence XCP controller
Administering Presence Services XCP Controller
August 2010
9
Using the Presence XCP Controller
1. Change to the $JABBER_HOME/bin directory.
2. At the command line prompt, enter:
./runcontroller start
3. Open a Web browser, and connect to the Presence XCP controller using the
server’s IP address and the port that you provided during the installation.
The syntax is as follows:
https://[
xcp_server_IP
]:[
xcp_controller_port
]/admin
For example:
https://127.0.0.1:7300/admin
Note:
The default Presence XCP Controller port is 7300 as specified during installation.
If you prefer to connect to the Presence XCP controller using the server’s host
name, see Using web access on page 10.
4. Click OK when you see the message about using an unknown authority or that there
is a problem with the security certificate.
The system displays this message because you are connecting using SSL, and the
certificate is being signed by Avaya, which is not a certificate authority.
If you entered a URL containing the server’s host name rather than the IP address,
you may see an error message similar to the one shown in the following figure. The
free certificate that Avaya supplies is for the IP address, not the host name, of the
machine on which you installed the Presence Services server. To remove this error
either connect to the Presence XCP Controller using the server’s IP address, or use
a certificate for your host name that is obtained from a trusted certificate authority.
5. At the login prompt, enter the username and the password for the Presence XCP
controller Administrator (specified during installation), and click OK.
6. When you see the Presence XCP controller page, click XCP Controller Home.
Using web access
When you access Presence XCP Controller using your Presence Services server’s host name,
it is automatically converted to the server’s IP address. This conversion allows multiple
controllers to be run from a single host. If you prefer to use the Presence Services server host
10
Administering Presence Services XCP Controller
August 2010
Configuration views
name to access Presence XCP Controller, you can modify the web-cm.xml file, and change
the IP address to the host name so that when you log in, the system uses the host name.
To modify web-cm.xml
1. Stop the Presence Services server and log off from Presence XCP Controller.
2. Change to the $JABBER_HOME/etc directory.
3. Open the web-cm.xml file in a text editor.
4. Change the setting of the <server-host/> tag from the IP address to the host name
of your Presence Services server.
5. Save and close web-cm.xml.
6. Restart Presence XCP Controller and the Presence Services server.
Configuration views
The Presence XCP controller offers three levels of configuration, called configuration views:
Basic, Intermediate, and Advanced. The following figure shows the Configuration view menu,
which is located in the top right corner of every Presence XCP Controller configuration page.
When you select a particular view, it remains in effect on all pages until you change it.
The Basic configuration view displays the fewest configuration options and primarily uses the
server’s default values. You use this view to configure your system for most of the server
components and to quickly run the Presence XCP Controller.
The Intermediate configuration view displays all of the options that are available in the Basic
view in addition to some other options, such as host name, command configurations, and
logging. It also includes many of the options for components that are installed with the
Presence XCP extras installation package. These components, which require you to configure
at least the Intermediate view include:
• InfoBroker
• Message Archiver
• Presence Mirror
• Wait List Service
• Web Services
The Advanced configuration view displays all of the options that are contained in the Basic and
Intermediate views in addition to a number of fine-tuning options such as buffer size, run level,
and thread count. These options require a more advanced level of Presence Services server
knowledge, and you can use them to adjust the performance of your Presence XCP system.
Administering Presence Services XCP Controller
August 2010
11
Using the Presence XCP Controller
The components whose configurations require you to use the Advanced configuration view
include:
• Single Domain Name Support (SDNS)
• Router-to-Router Connection
• Stanza Optimizer
XCP Controller interface
The System, Router, and Components areas on the Presence XCP Controller main page are
described in the following sections.
Related topics:
System on page 12
Router on page 13
Components on page 13
System
The links in the System area perform the following functions:
• Summary - Displays the complete jabber.xml file, which contains your configuration
settings.
Important:
If you have modified the configuration of a plug-in or component, you must restart the
system before the changes take effect and appear in the Summary.
• Cluster - Displays a page from which you can access all of the controllers in this
cluster.
• Stop the System - Stops the Presence Services server and all of its plug-ins and
components.
• Online Help - Opens the controllers online help system, which is the online version of the
Presence Services Admin Guide.
When you stop the system, the XCP Contoller - presence page is displayed.
12
Administering Presence Services XCP Controller
August 2010
XCP Controller interface
You can select from the two options:
• Click start the system now to restart the server.
• Click view all of the controllers to display the page from which you can access all of the
controllers in the current cluster.
Router
Router plug-ins are extensions of the Presence Services server core router, and always start
and stop with the system. Each plug-in on your system is listed in the controller’s Router
area.
You can add a new plug-in by selecting one from the list and clicking Go to display its
configuration page. You can also modify the configuration of a plug-in’s by clicking the
corresponding Edit link, or remove a plug-in (except for the core router) by clicking its Remove
link.
Important:
You cannot remove the Core Router, since it is the core of the Presence Services server.
Components
Components are extensions of the Presence Services server that can be started and stopped
independent of the server. In the Components area, you can add, modify, start, stop, or remove
server components.
You add a new component by selecting from the list and clicking Go to access its configuration
page. You can start and stop individual components if needed by clicking the Start and Stop
links. You can also modify configuration of a component by clicking the corresponding Edit
link, or remove a stopped component by clicking its Remove link. (You must stop a component
before you can remove it.)
Administering Presence Services XCP Controller
August 2010
13
Using the Presence XCP Controller
14
Administering Presence Services XCP Controller
August 2010
Chapter 2: Router
About Router Area
Use the Router area, to install, configure, or remove server plug-ins to the core server. In
addition, you can install new “plug-ins” as extensions to the core server . You can automatically
start and stop the core server .
Note:
You cannot independently start the core server or stop the core server using the defined
plug-ins.
The Router area lists the following information:
• Core Router
• Presence Session Manager
• Database Extensions (XDBs)
Each installed plug-ins and any additional plug-in you install are listed in a table in the Router
section. By default, Core Router plug-in is available in the table.
Note:
Do not remove the “Core Router” plug-in from the server.
The Status column provides a snap-shot of the system. It indicates how the system responded
(whether the task completion was successful) while performing the start or stop operation of
the plug-ins. To view the status report of the system, you can use either the SNMP tools or
Jstats.
The Plug-in Class column indicates how the server classifies the plug-in. For example, if you
install Presence Session Manager, then this column displays Presence Session Manager .
The Description column provides a brief information about the component. For example, if
you have three connection managers, you can describe each connection manager fields as
follows:
• Connection Manager for SMS
• Connection Manager for Basic IM
• Redundant Connection Manager for Basic IM
Administering Presence Services XCP Controller
August 2010
15
Router
The Actions column lists all actions that you can perform for that plug-in. For example, if you
want to configure namespaces and other data for the plug-in, click Configuration.
Global Router settings
The Presence XCP core router provides the Presence Services server with its core
communication functionality. When you install the Presence Services server, you also install
the Presence XCP core router with default setings.
The core routers configuration page contains global settings, which allow you to configure
features that affect your entire server environment. For example, you can configure database
settings that are used by all components that require a database. You can override the core
router’s global settings in any individual components configuration page if needed.
To open the Global Router Configuration page, click Edit beside Global router settings in the
Router area on the Presence XCP Controllers main page.
This page lists the options on the Presence XCP Controller Advanced configuration view of
the Global Settings Configuration page.
The following sections describe the features available in the Global Settings Configuration
page:
• Cluster on page 17
• Realm on page 18
• MDNS on page 18
• Log level on page 19
• Obscure Plaintext Passwords on page 20
• Advanced Performance Tuning options on page 20
• Master Accept port on page 20
• Database setup on page 22
• Enabling SNMP on page 23
• Mutually Trusted TLS Host Names on page 24
Related topics:
Cluster on page 17
Realm on page 18
MDNS on page 18
Log level on page 19
Obscure Plaintext Passwords on page 20
Advanced Performance Tuning options on page 20
16
Administering Presence Services XCP Controller
August 2010
Global Router settings
Master Accept port on page 20
Database setup on page 22
Enabling SNMP on page 23
Mutually Trusted TLS Host Names on page 24
Cluster
The Cluster, which you specify during installation, is a unique string that identifies your
Presence Services server installation. Clusters enable the server to use dynamic routing in
high-scale installations where multiple Presence XCP core routers are required. All the routers
that need to interact must have the same cluster name, and must be installed on the same
network subnet.
You can change the cluster after you have installed the Presence Services server. To do this,
you must change the cluster’s setting in the Global Settings Configuration page and in the
web-cm.xml file.
To change the cluster
1. In the Global Settings Configuration page, enter a new identifier in the Cluster
field.
For example: abcdefg123
2. Click Submit to save your configuration.
3. On the Presence XCP Controller main page, click Stop the System to stop the
Presence Services server.
4. Change to the $JABBER_HOME/bin directory, and enter the following command to
stop the Presence XCP Controller:
./runcontroller stop
5. Change to the $JABBER_HOME/etc directory, and open the web-cm.xml file in a
text editor.
6. Locate the following line. In this example, the cluster is set to c4d8f7d17136:
<config config:cluster=“c4d8f7d17136” config:realm=“presence”
xmlns=“http://www.Presence.com/config/cm”>
7. Change the value of the config:cluster attribute to the identifier that you used in step
1. For example:
config:cluster=“abcdefg123”
8. Save and close the web-cm.xml file.
9. Change to the $JABBER_HOME/bin directory, and enter the following command to
start the Presence XCP Controller:
Administering Presence Services XCP Controller
August 2010
17
Router
./runcontroller start
10. Access the Presence XCP Controller in a Web browser and restart the server.
Realm
The Realm, which you specify during installation, is a unique string that identifies the Presence
XCP core router and all of its components. The default realm is presence.
You can change the realm after you have installed the server. To do this, you must change the
realm’s setting in the Global Settings Configuration page and in the web-cm.xml file.
To change the realm:
1. In the Global Settings Configuration page, enter a new identifier in the Realm field;
for example: xcp1
2. Click Submit to save your configuration.
3. On the Presence XCP Controller’s main page, click Stop the System to stop the
Presence Services server.
4. Change to the $JABBER_HOME/bin directory, and enter the ./runcontroller
stop command to stop the Presence XCP Controller.
5. Change to the $JABBER_HOME/etc, and open the web-cm.xml file in a text
editor.
6. Locate the following line. In this example, the realm is set to Presence:
<config config:cluster=“c4d8f7d17136” config:realm=“presence”
xmlns=“http://www.Presence.com/config/cm”>
7. Change the value of the config:realm attribute to the identifier that you used in step
1. For example:
config:realm=“xcp1”
8. Save and close the web-cm.xml file.
9. Change to the $JABBER_HOME/bin directory, and enter the ./runcontroller
start command to restart the Presence XCP Controller.
10. Access the Presence XCP Controller in a Web browser, and start the server.
MDNS
When you install the Presence Services server, the MDNS (multicast DNS) option is disabled
by default . MDNS allows the server to use its dynamic clustering feature, which provides
18
Administering Presence Services XCP Controller
August 2010
Global Router settings
automatic router-to-router functionality when you have multiple core routers installed in the
same network subnet.
Important:
For single Presence XCP router installations, Avaya recommends disabling the MDNS
option to prevent unnecessary packets from being sent through the network.
Log level
The Level of information to log option lets you specify the level at which the Presence
Services server logs messages to the jabberd Logger. This log level acts as a high-level filter
for the types of messages that the server logs. The system does not send log messages that
are less severe than the level you specify to the logger.
For example, If you set the log level to info, the system by default sends the info, warn, and
error levels to jabberd Logger.
The log levels from which you can choose are described in the following table. Each log level
specifies the severity of the data that is logged and determines the amount of data that the
Presence Services server records: the lower the severity level, the more verbose the log. The
levels are listed from the highest severity to the lowest.
Table 1: Log levels
Log Level
Description
error
System-generated errors such as the inability to create listen ports, server
configuration errors, failure to create the log files, and so on.
warn
Non-fatal errors such as bounced packets, nonexistent user logging in,
invalid recipient for a message, and so on. In addition, all data logged at
the error level.
info
Data on socket connections and all JSM logs (packet, session, and
message) with all data logged at the error and warn levels. The server logs
at this level by default.
verbose
Every packet that is processed by the server and JSM, and all data logged
at the error, warn, and info levels.
debug
Information from all other log levels in addition to debug data.
Administering Presence Services XCP Controller
August 2010
19
Router
Obscure Plaintext Passwords
The system enables the Obscure plaintext passwords in log files option by default when
you install the Presence Services server. This feature X’s out passwords in log files. If you
disable this option, the system displays the passwords in the log files using plaintext.
Advanced Performance Tuning options
The Presence XCP Controller’s Advanced configuration view displays the following three
options for router performance tuning.
Name
Description
Number of
threads devoted
to I/O
Enter the number of threads dedicated to I/O between the router and
external components. These threads handle all traffic from external
components. This option is used primarily for performance tuning. The
default value should be adequate in most circumstances.
The interval (in
seconds)
between
keepalive
packets
Enter the number of seconds between keepalives that are sent over the
network to ensure that the connection does not close at the TCP socket
layer. When two keepalives are missed, the connection is closed and
then restarted if possible.
Maximum
number of bytes
per Jabber ID
resource
You may want to set a maximum resource if you are using a custom
client that has a restriction. This value is the maximum number of bytes
(18 or greater) that your users can specify for the resource portion of
their Jabber ID.
Resources allow users to log on to multiple client sessions using the
same Jabber ID. For example, a user can log on as
[email protected]/one in one location and as [email protected]/two
in another location. One and two are the resource portions of the Jabber
ID .
The number of
hashtable
buckets for JID
lookups
Enter the number of hashtable buckets used for cashing Jabber IDs.
The setting of this parameter affects the core router’s memory usage
and performance. The higher this number is set, the more memory the
router uses, but the higher its performance.
Master Accept port
The core router uses the Master Accept port to accept connection requests from the Presence
XCP components that run behind your firewall. The Master Accept Port is ideal for internal
20
Administering Presence Services XCP Controller
August 2010
Global Router settings
components that connect to the router, since it removes the necessity of configuring router
connections for each individual component.
Important:
Components that run outside the firewall can be configured to allow the core router to
connect to them. This configuration mitigates the security risks that would exist if these
components were to connect to the router.
You can also enable StartTLS to configure secure socket layer settings to establish secure
component connections with the server on the Master Accept Port.
Changing the Master Accept port
If you change the Master Accept port option’s Port value in the Global Settings Configuration
page, all components that are connected to the Presence XCP router changes. You do not
need to change this value anywhere else.
Related topics:
Enabling StartTLS on page 21
Enabling StartTLS
The StartTLS Configuration option lets you configure secure socket layer settings to establish
a secure connection with the server.
Important:
The Presence Services server does not support private keys for SSL certificates that have
pass phrases. If you have a pass phrase or encrypt your private key, your private key/public
certificate pair does not load into Presence XCP
To enable TLS:
1. Change to the Presence XCP Controller Intermediate configuration view.
2. Select the StartTLS Configuration option.
3. Configure the parameters as follows:
Parameter
ssl-mode
Description
Select tls or tls-required from the list.
tls - Enables TLS (transport layer security). Clients that
support TLS can connect to the server securely over 5222.
Clients that do not support TLS can still connect to the
server. This mode does not require a secure connection.
tls-required - The same as the tls option, except that the
client must support TLS. Clients that do not support TLS
cannot connect to the server.
Administering Presence Services XCP Controller
August 2010
21
Router
Parameter
Description
Full path to SSL key Enter the full path to the location of the private key that is
file
used to establish a secure server connection. By default,
this is set to $JABBER_HOME/certs/hostkey.pem. If you want to use a different key, place the key
in the $JABBER_HOME/certs directory, and enter its full
path here. You can also use the ip-key.pem file if
preferred, which is located in the same directory.
Full path to SSL cert Enter the full path to the location of the certificate file. By
file
default, this path is set to the same value as the SSL Key,
$JABBER_HOME/certs/host-key.pem. If you
want to use a different certificate file, place the file in the
$JABBER_HOME/certs directory, and enter its full path
here. You can also use the ip-key.pem file if preferred,
which is located in the same directory.
Full path to root CA
cert file
Optionally, enter the full path to the CA certificate that is
used to verify incoming client certificates.
verify-depth
Enter the maximum depth for the certificate chain
verification to allow for incoming client connections.
enable-weakciphers
Select Yes if you want to allow SSL connections to use
cryptographically weak ciphers.
Database setup
The Database Setup option in the Global Settings Configuration page contains information
on the database that you are using to store Presence XCP data. If you configured settings for
Oracle, PostgreSQL, or DB2 when you installed the Presence Services server, the Database
Setup option is enabled, and the settings are displayed as illustrated in the following figure.
All components that require a database, use the database globallay; however, if necessary,
you can override the database settings in any component’s configuration.
Description of the basic Database Setup parameter.
22
Name
Description
Datasource
Name
For the PostgreSQL database, this is the name of the component’s
datasource as specified in the .odbc.ini file. For Oracle,
ORACLE_SID environment variable or in the tsnames.ora file specify
the datasource. For DB2, this is typically the database alias.
Database User
Name
Enter the username used to connect to the database.
Administering Presence Services XCP Controller
August 2010
Global Router settings
Name
Description
Database User’s
Password
Enter the password used to connect to the database.
Confirm
Password
Enter the password again to confirm it.
Database Type
Select the type of database you are using from the list.
Important:
If you select postgresql-odbc, you must add the line,
MaxVarcharSize=4000, to the datasource definition used in
the .odbc.ini file.
Enabling SNMP
The SNMP Configuration option allows you to enable the use of the Simple Network
Management Protocol for the Presence XCP core router. Network management systems use
SNMP to monitor network-attached devices for conditions that warrant administrative attention.
SNMP exposes management data in the form of variables on the managed systems, which
describe the system configuration. These variables can then be queried (and sometimes set)
by managing applications (http://en.wikipedia.org/wiki/
Simple_Network_Management_Protocol).
To enable SNMP for the core router
1. Select the SNMP Configuration option to enable the feature.
2. Configure the following parameters:
Parameters
Description
Enable SNMP
This option is set to Yes by default. Leave it as is.
Count errors
This option is set to No by default. Select Yes only if you
want to enable SNMP error counting.
This option takes a great deal of server resource; use
it with caution.
Administering Presence Services XCP Controller
August 2010
23
Router
Mutually Trusted TLS Host Names
Only Presence Server and the SIP Proxy component use this configuration option. If you are
not using these features, you can ignore the option.
Transport Layer Security (TLS) is a cryptographic protocol that provides secure
communications on the Internet for such things as Web browsing, e-mail, Internet faxing,
instant messaging, and other data transfers (from http://en.wikipedia.org/wiki/
Secure_Sockets_Layer). The Presence Server uses HTTP digest authentication to
authenticate SIP users who attempt to connect to the Presence Services server.
However, if you have a list of SIP hosts that you know use TLS, you can specify their host
names in the Presence Services server Core Router configuration. SIP clients on these hosts
can then connect to the Presence Services server using TLS without going through the HTTP
digest authentication process.
If you have multiple Presence Services servers running in the same cluster, you only have to
configure the list of trusted TLS hosts on one of the servers. The other servers in the cluster
can then reference the realm of that server, allowing them to use the list of trusted hosts as
well.
24
Administering Presence Services XCP Controller
August 2010
Chapter 3: Logging
Logging
T he XCP server provides a number of different logging options. By default, the server’s core
router is configured to log JSM and router data to syslog at the ’info’ log level. You can change
this default level as needed (as described in Setting the Log Level for Router-Generated
Packets ). Any level that you choose logs data at that level in addition to all the levels above
it. For example, when the log level is set to ’info’, data is logged at the ’warn’ and ’error’ levels
as well.
The current jabberd log level is recorded in the jabber.loglevel file, which is located in
xcpInstallDir /var/tmp. This file is updated any time someone changes the log level and restarts
the server.
If you require more logging than what occurs by default, you can configure the server to log
statistics and other types of JSM data, and to use file and stderr loggers in addition to syslog.
You can also configure syslog and stream loggers for each component.
Note:
Logging is an intermediate, and sometimes advanced, feature in the XCP controller. When
you configure Logging, make sure you are using the controller’s Intermediate or Advanced
configuration view.
Related topics:
Configuring Syslog for Red Hat Linux on page 26
Setting the Log Level for Router-Generated Packets on page 26
Jabberd Logger Configuration on page 28
JSM Logging on page 35
Message Archiver Logging on page 37
Statistics Logging on page 38
Component Logging (Jlog) on page 39
Presence Services logging on page 42
Changing logging levels on page 43
Collecting logs on page 44
Administering Presence Services XCP Controller
August 2010
25
Logging
Configuring Syslog for Red Hat Linux
Red Hat Linux sets its syslog level to *.info by default, which means that it logs at the info,
warn, and error levels (log levels are described in the following table). If you prefer to log
information at lower levels as well, such as debug , you must edit the syslog configuration file
on your Red Hat system, and set the syslog default to a value that is greater than or equal to
the XCP log level that you plan to use.
Related topics:
To configure syslog on page 26
To configure syslog
1. Change to the /etc directory on your Red Hat system.
2. Open the syslog.conf file in a text editor.
3. Locate the following lines:
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none
/var/log/messages
4. To log all information in Syslog, add *.debug in the third line as shown here:
*.info;*.debug;mail.none;authpriv.none;cron.none
/var/log/messages
5. Save and close the syslog.conf file.
Setting the Log Level for Router-Generated Packets
The log level specifies the severity of the data that is logged and determines the amount of
data that the server records; the lower the severity level, the more verbose the log. The core
router is configured by default to log packets at the info level and above, which means that log
packets are generated only for data that comes into the router at the ’info’, ’warn’, and ’error’
levels.
The log level that is set for the core router is the level at which the server starts. If needed, you
can temporarily change the level during runtime; however, the default level is restored when
you restart the server.
26
Administering Presence Services XCP Controller
August 2010
Logging
Log levels are described in the following table and are listed in the order of decreasing severity.
For example, the ’warn’ log level is less severe than the ’error’ log level. The lower the severity
level, the higher the log’s level of verbosity.
Severity
Level
Information logged...
error
System-generated errors such as the inability to create listen ports, server
configuration errors, failure to create the log files, etc.
warn
All ’error’ level data plus non-fatal errors such as bounced packets,
nonexistent user logging in, invalid recipient for a message, etc.
info
All ’error’ and ’warn’ level data plus information about socket connections and
all JSM logs (packet, session, and message)
verbose
All ’error’, warn’, and ’info’ level data plus every packet that is processed by
the server and JSM.
debug
All log-level data plus debug data.
Note:
The log level must be set to ’info’ or higher for the Presence Session Manager (JSM) log
types (message, packet, and session) to function properly. In addition, statistics data is not
available if the log’s verbosity level is set below ’info’.
Related topics:
To change the router’s default log level on page 27
To view the current log level on page 28
To increase the log’s verbosity level while the server is running on page 28
To decrease the log’s verbosity level while the server is running on page 28
To change the router’s default log level
1. In the Router area on the controller’s main page, click Edit beside Global Router
Settings .
2. In the Global Settings Configuration page, select the preferred level in the Level
of information to log list.
3. Scroll to the bottom of the page and click Submit to save your configuration.
Administering Presence Services XCP Controller
August 2010
27
Logging
To view the current log level
Enter the following command from the presenceInstallDir /bin directory:
./runjabber loglevel check
To increase the log’s verbosity level while the server is running
1. Enter the following command from the presenceInstallDir /bin directory to increase
the log level by one increment; for example, from ’warn’ to ’info’).
./runjabber loglevel increase
2. Repeat the command for each desired level increase.
To decrease the log’s verbosity level while the server is running
1. Enter the following command from the presenceInstallDir /bin directory to decrease
the log level by one increment; for example, from ’info’ to ’warn’).
./runjabber loglevel decrease
2. Repeat the command for each desired level decrease.
Jabberd Logger Configuration
The Jabberd Logger receives packets that are generated by the core router (jabberd ), by JSM,
and by any other plugin, and logs them to syslog, file, and/or stderr. The Jabberd Logger that
is installed by default is configured to capture information generated in the generic namespace,
jcs:log:default, and to log the information to syslog. You can edit the default logger, or you can
add new ones. In the Jabberd Logger Configuration page, you can select the namespaces for
other types of information that you want to log, and you can specify the names of the hosts
28
Administering Presence Services XCP Controller
August 2010
Logging
from which you want to log the information. You can also select the types of loggers that you
want to use, and the log level(s) used to log the information.
Note:
You can configure multiple Jabberd Loggers depending on how specific you want to your
logging to be. For example, if you want to log presence and session packets for host
alpha.example.com to a file logger, and message packets for host beta.example.com to
syslog, you would need to configure two Jabberd Loggers to handle the logging.
Related topics:
To add a Jabberd Logger on page 29
Selecting Namespaces on page 29
Specifying Host Filters on page 31
Configuring Loggers and Log Levels on page 31
Syslog logger on page 31
File logger on page 32
Standard error logger on page 33
Log Levels on page 33
Formatting Logs on page 34
To add a Jabberd Logger
1. Change to the controller’s Intermediate configuration view.
2. In the Router area on the controller’s main page, select Jabberd Logger from the
list, and then click Go .
3. Read the following sections for instructions on configuring the Jabberd Logger.
Selecting Namespaces
Namespaces are used to capture specific types of log packets that are generated by JSM
(mod_log) or the core router, jabberd . When these packets are generated, they are sent to
the Jabberd Logger. If they match the namespaces that are in the Namespace Filters list in
the Jabberd Logger Configuration page, the Jabberd Logger logs the information to the
configured log types (syslog, file, or stderr).
Related topics:
To select the namespaces for the data you want to log on page 30
Administering Presence Services XCP Controller
August 2010
29
Logging
To select the namespaces for the data you want to log
Delete the namespaces that you do not want to use from the Namespace Filters
list.
You can type in other namespaces, but you must have a custom logger that handles
them. The namespaces that are provided for logging are described in the following
table.
Namespace
This log captures...
jcs:log:default
Information from the router and from JSM. This namespace is
selected by default.
jcs:stats:jsm
System statistic information. You must select this namespace if
you plan to enable Statistics logging in the JSM configuration.
jcs:mod_log:ses Information about each user session that occurs on the server.
sion
You must select this namespace if you plan to enable session
packet logging in the JSM configuration.
jcs:mod_log:me
ssage:in
Incoming messages and file transfer requests as they are
received by the server. You must select this namespace if you
plan to enable incoming message logging in the JSM
configuration, and you want the Jabberd Logger to handle the
logging.
Note: If you prefer to use Message Archiver rather than the
Jabberd Logger to handle message packets, you do not have to
select the message namespaces here (see Message Archiver
Logging ).
jcs:mod_log:me
ssage:out
Outgoing messages and file transfer requests as they are sent
by the server. You must select this namespace if you plan to
enable outgoing message logging in the JSM configuration, and
you want the Jabberd Logger to handle the logging.
jcs:mod_log:pac Information about packets going into JSM.
ket:in
Note: Logging incoming and outgoing packets is not
recommended because of the massive load it places on the
router. This type of logging is usually reserved for debugging
purposes.
jcs:mod_log:pac Information about packets coming out of JSM.
ket:out
jcs:mod_log:pre
sence
30
Information about client users’ presence. You must select this
namespace if you plan to enable presence packet logging in the
JSM configuration.
Administering Presence Services XCP Controller
August 2010
Logging
Specifying Host Filters
In the Host Filters text box, you can specify the names of hosts from which you want to log the
selected packet types. For jcs:log:default packets, you should leave the asterisk (*), which will
log packets in that namespace from all hosts. However, for other namespace filters you can
either use the asterisk to indicate that you want to log these packet types from all hosts, or you
can list specific hosts only.
Configuring Loggers and Log Levels
In addition to the Syslog logger, which is enabled by default, you can configure a file logger
and a standard error logger. In addition, you can select one or more log levels at which to log
the information to these log types.
Syslog logger
The Syslog logger is enabled by default when you install the server. This logger logs
information from the router, and from JSM and other plugins to syslog. Syslog refers to the
logging daemon used to log messages generated by your operating system components.
Syslog also provides log rotation based on file age and size. It can be run locally or remotely
and does not require any additional hardware or software.
Related topics:
To configure the Syslog logger on page 31
To configure the Syslog logger
1. Under Configuration on the Jabberd Logger Configuration page, click Details
beside the Syslog Logger. The Syslog Logger Configuration page is displayed.
(If you prefer, you can add a new Syslog logger rather than modifying the existing
one.)
2. Configure the Syslog logger parameters as follows.
Paramete
r
Description
Identity
Identifies where the log information came from. The identity is
displayed in syslog next to the associated data. You can change the
default value if preferred.
Facility
Select the facility that you want to use from the list.
Administering Presence Services XCP Controller
August 2010
31
Logging
Paramete
r
Format
Description
Enter the formatters for the information that you want to log to syslog.
See Formatting Logs for more information.
3. Click Submit to save your configuration.
File logger
The File Logger lets you specify the name and location of a log file and various parameters for
the information that you want to log to it.
Related topics:
To configure the File logger on page 32
To configure the File logger
1. Under Configuration on the Jabberd Logger Configuration page, select File
Logger in the list, and then click Go . The File Logger Configuration page is
displayed.
2. Configure the File Logger parameters as follows.
Parameter
32
Description
Name and location
Enter the name and location of the log
file.
Memory buffer size (in bytes)
Enter the number of bytes in the
memory buffer used to store log
information. When the size limit is
reached, the logs are written to the
current log file. If you enter 0, the
messages are written to a log file
continuously.
Format
Enter the type of information that you
want to log to the file using any or all of
the log formatters. (See Formatting
Logs for more information.)
Size of file (in megabytes) after which
the log rotates
Enter the size of the log file in
megabytes after which the log rotates.
For example, if you enter 24, the log
rotates out every time the file reaches
a size of 24 megabytes.
Administering Presence Services XCP Controller
August 2010
Logging
Parameter
Description
If you enter a value both for this option
and the next, the log rotates when it
reaches either the size or the age
limit.
Number of hours after which the log
rotates
Enter the number of hours after which
you want the log to rotate. For example,
if you enter 24, the log rotates out every
24 hours.
Number of log files to keep after the log Enter the number of log files to keep
rotates
after they have been rotated. When this
number is reached, the oldest rotated
log file is deleted.
3. Click Submit to save your configuration.
Standard error logger
The Standard Error Logger lets you format information that is logged to stderr.
Related topics:
To configure the Standard Error logger on page 33
To configure the Standard Error logger
1. Under Configuration on the Jabberd Logger Configuration page, select
Standard Error Logger in the list, and then click Go .
2. In the Standard Error Logger Configuration page, enter the log formatters for the
type of information that you want to log. (See Formatting Logs for more
information.).
3. Click Submit to save your configuration.
Log Levels
You can select one or more log levels, which pertain to all of the loggers configured in this
particular instance of the Jabberd Logger plugin.
Related topics:
To select one or more log levels on page 34
Administering Presence Services XCP Controller
August 2010
33
Logging
To select one or more log levels
1. Under Configuration on the Jabberd Logger Configuration page, select Log
Levels in the list, and then click Go .
2. In the Log Levels Configuration page, select one or more log levels in the list;
hold down the ctrl key to select more than one. The logs that you select for this
particular Jabberd Logger configuration will each log at these levels.
3. Click Submit to save your configuration.
Formatting Logs
You can modify how log information is formatted using a number of attribute codes.
Related topics:
To format a log on page 34
To format a log
Add any or all of the attribute codes listed in the following table in a logger’s Format
text box to capture the desired data in your log.
Format
Tag
34
Description
%h
The point in the code where the log message was generated. In general,
this information is useful in debugging the server. It is usually not useful
when used with message and session logs.
%i
The thread number inside the server that generates the log message;
used for debugging.
%s
The information being logged.
%d
The Greenwich Mean Time and date when the log message was
generated.
%t
The log level of the message; for example, none, error, info, warn,
verbose, debug. This attribute does not work with message, packet, or
session logs.
Administering Presence Services XCP Controller
August 2010
Logging
JSM Logging
You can configure the logging of message, session, and presence packets in the Presence
Session Manager. These packets will be logged in addition to the JSM-generated packets that
are logged by default.
Related topics:
To configure JSM logging on page 35
Packet Logs on page 36
Session Logs on page 36
Message Logs on page 37
To configure JSM logging
1. Change to the controller’s Advanced configuration view.
2. In the Router area on the controller’s main page, click Edit beside Presence
Session Manager .
3. In the Presence Session Manager Configuration page, scroll down toward the
bottom of the page, and select the JSM Logging option.
4. Select Yes beside any of the packets that you want to log.
5. Select the Namespace Packets option if you want to log IQ packets for specific
namespaces. Enter the namespaces in the Namespace(s) box; for example:
jabber:iq:roster
jabber:iq:last
6. Select the Excluded Hosts option if you want to exclude specific hosts from packet
log generation. Enter the hostnames for each host in the Host(s) box. Hostname
exclusions apply to all logging parameters.
7. Click Submit to save your configuration. You are returned to the controller’s main
page.
8. In the Router area, click Edit beside Logger Plugin .
9. In the Jabberd Logger Configuration page, select or type the namespaces in the
Namespace Filters list that correspond to the packet types that you selected for
JSM logging. The namespaces correspond to the Presence Session Manager
packets as described in the following table. Packets generated by JSM in these
namespaces will be logged to the loggers that you have configured for the Jabberd
Logger.
Administering Presence Services XCP Controller
August 2010
35
Logging
Jabberd Logger
namespaces
JSM packet types
jcs:mod_log:sessi
on
Session Packets
jcs:mod_log:mess
age:in
Incoming message packets
jcs:mod_log:mess
age:out
Outgoing message packets
jcs:mod_log:packe Summarized packet data
t:in
jcs:mod_log:packe Summarized packet data
t:out
jcs:mod_log:prese
nce
Presence packets
10. Click Submit to save your configuration.
11. Restart your XCP system.
Packet Logs
Packet logs contain two types of data: non-IQ packets and IQ packets. A non-IQ packet records
whether the packet contained an IQ packet (designated by ’i’), presence information
(designated by ’p’), or subscription information (designated by ’s’). Non-IQ packet information
resembles the following:
An IQ packet contains all of the information that is saved for the non-IQ packet. It also includes
a numeric sub-type for the packet and the namespace from which the data came. Numeric
sub-types include: 5 for ’get’; 6 for ’set’, and 7 for ’result’.
Session Logs
Session logs contain information about each user session that occurs on the server. When the
user logs off or is disconnected, the server logs the timestamp of when the session ended, the
number of seconds the session lasted, and the full JID of the user associated with the session
(for example, user@host/resource). It also records the number of packets sent and
received.
36
Administering Presence Services XCP Controller
August 2010
Logging
Note:
The session log provides information only after a session has ended, and therefore does
not provide information about a user’s session while that user is logged in.
Message Logs
Message logs contain all messages. You may want to use the message log feature to archive
your message traffic. You may archive traffic through the server by writing the message logs
to a file and backing them up outside of the server.
Message Archiver Logging
You can send all inbound and outbound message packets to the Message Archiver component
for logging instead of, or in addition to, the Jabberd Logger. The Message Archiver handles
the message packets and stores them in the selected database.
Note:
If you do not select the message namespaces in the Jabberd Logger configuration, message
packets will be logged only through the Message Archiver component providing that you
have one configured.
Related topics:
To log message packets through Message Archiver on page 37
To log message packets through Message Archiver
1. Configure a Message Archiver component as described in Chapter 14.
2. Using the controller’s Intermediate configuration view, edit the Presence Session
Manager.
3. In the Presence Session Manager Configuration page under Optional
modules , select mod_message_archiver .
4. Scroll down toward the bottom of the page, and select the JSM Logging option.
5. Select Yes for one or both message packet options. The packets you enable here
must match the namespaces that you selected in the Message Archiver namespace
configuration.
Administering Presence Services XCP Controller
August 2010
37
Logging
6. Click Submit to save your configuration.
7. Restart your XCP system.
Statistics Logging
Statistics logging captures server statistics and logs the data to the log types that are
configured for the Jabberd Logger. Statistics logging is turned off by default when you install
the Presence XCP server; however, you can enable it in the JSM configuration and set the
time interval for capturing data.
Server statistics data includes the number of:
• Users who are currently online
• Successful logins in the last time-slice interval
• Successful logins since server startup
• Failed logins since server startup
• Offline messages stored in the last time-slice interval
• Total messages since server startup
• Presence packets since server startup
• IQ packets since server startup
Statistics data also includes information about:
• The length of time, in seconds, that the server has been running
• The average message size in the last time-slice interval
• The number of messages in the last time-slice interval
Related topics:
To enable server statistics logging on page 38
To enable server statistics logging
1. Change to the controller’s Intermediate configuration view.
2. In the Router area on the controller’s main page, select Jabberd Logger/Statistics
Logger in the list, and then click Go .
38
Administering Presence Services XCP Controller
August 2010
Logging
3. In the Jabberd Logger Configuration page in the Namespace Filters list, remove
all of the namespaces except for jcs:log:default and jcs:stats:jsm .
4. Click Submit to save your configuration. You are returned to the controller’s main
page.
5. In the Router area, click Edit beside Presence Session Manager .
6. In the Presence Session Manager Configuration page, select the Stats option.
7. If preferred, change the number of seconds that elapse before each capture of
server statistics.
8. Scroll to the bottom of the Presence Session Manager Configuration page, and
click Submit to save your configuration.
Component Logging (Jlog)
All XCP components can log to the Presence Logging Library, Jlog. Each component
configuration page has a Component Logging (Jlog) section, in which you can configure
Syslog and stream loggers that filter the information based on the selected log level. The
information that is logged varies by component.
The Syslog and stream loggers log information that is generated at or above the selected
severity level and drops messages that are below that level. For example, if you select the
warning level, warning and error messages are logged, and messages at the debug, verbose,
and info levels are dropped.
Note:
When a component is daemonized, logging to stderr or stdout is disabled; if you start a
component from the command line using the -P flag, it is daemonized.
Related topics:
To enable component logging on page 40
Configuring the Filtered Syslog Logger on page 40
Configuring the Filtered Stream Logger on page 41
Adding a New Custom Logger on page 42
Administering Presence Services XCP Controller
August 2010
39
Logging
To enable component logging
1. Change to the controller’s Intermediate or Advanced configuration view.
2. Select the check boxes beside Component Logging (Jlog) and Logger.
3. Select one or both filtered logger types and configure them as described in the
following sections.
Configuring the Filtered Syslog Logger
The Filtered Syslog Logger logs component information to syslog at the selected level.
Related topics:
To configure the Filtered Syslog Logger on page 40
To configure the Filtered Syslog Logger
1. Select the Filtered Syslog Logger option.
2. In the Level list, select the preferred severity level.
3. In the Pipe file box, enter the full path to a pipe file for this component.
Note:
If you are running the XCP server for Solaris or Linux, naming the file as
$JABBER_HOME/var/log/comp-id is suggested, where comp-id is the
component’s ID. If the pipe file does not already exist on your system, it will be
created.
You can send the file a pipe command of U (up) or D (down) to increase or decrease
the amount of data being logged from the component. For example, if your log level
is set to ’verbose’ and you send a pipe command of D, the log’s level of verbosity
is decreased to ’info’.
You can also use the echo C > pipe_file command to create an entry in syslog
indicating the current log level for the component. For pipe_file, enter the full or
relative path (including the pipe file’s name) to the location of the component’s pipe
file.
4. In the Facility list, select the facility that you want to use. Facilities are defined on
the syslog(3) mainpage.
40
Administering Presence Services XCP Controller
August 2010
Logging
5. In the Identity box, enter a term that identifies where the log information is coming
from. The identity is displayed in syslog next to the associated data. You can change
the default value as needed.
6. In the Formatter box, enter the formatters for the information that you want to log.
(See Formatting Logs.)
7. When you have finished configuring the loggers, click Submit to save your
configuration.
8. Restart your XCP system.
Configuring the Filtered Stream Logger
The Filtered Stream Logger logs information to stdout or to stderr at the selected level.
Related topics:
To configure the Filtered Stream Logger on page 41
To configure the Filtered Stream Logger
1. Select the Filtered Stream Logger option.
2. In the Level list, select the preferred severity level.
3. In the Pipe File box, enter the full path to a pipe file for this component.
Note:
If you are running the XCP server for Solaris or Linux, naming the file
$JABBER_HOME/var/log/comp-id , is suggested where comp-id is the
component’s ID. If the pipe file does not already exist on your system, it will be
created. (For more information about the pipe file, see step 3 in the previous
section.)
4. In the Stream list, select stderr or stdout .
5. In the Formatter box, enter the formatters for the information that you want to log.
(See Formatting Logs.)
6. When you have finished configuring the loggers, click Submit to save your
configuration.
7. Restart your XCP system.
Administering Presence Services XCP Controller
August 2010
41
Logging
Adding a New Custom Logger
If you have created a custom logger for logging component information using the libjcore library,
you can add it to your XCP server configuration.
Related topics:
To add a custom logger on page 42
To add a custom logger
1. Change to the controller’s Advanced configuration view.
2. Click Go beside Add a new custom logger .
The Custom Logger Configuration page is displayed.
3. Configure the parameters as follows.
Parameter
Description
Description
Enter a description for the custom
logger.
Custom Library
Enter the library used for this logger.
Load
Enter the library entry point function.
4. Click Submit to save your custom logger configuration. You are returned to the
component’s configuration page.
5. Click Submit again to return to the controller’s main page.
6. Restart your XCP system.
Presence Services logging
This section describes the various types of logs and alarms generated during the PS installation
and gives you the location where the information is stored.
Presence Core and Audit Log
PS provides an audit log file which stores before and after component configuration changes
made through the Presence XCP Controller:
/var/log/presence/presence_core.log
After completing the installation, the system displays the location of the log file, it should look
similar to the example below:
42
Administering Presence Services XCP Controller
August 2010
Logging
/opt/Avaya/Presence/ps_process_panel_2008_xxxx.log
Refer to this log file for errors and compare them to the known issues section for warnings.
This log also contains detailed logging information from core components that may be
truncated in:
/var/log/messages.
Backup and Restore Log
Shows the output from restores and backups run against the current installation.
/var/log/presence/backup.log
Database Log
By default, Postgres logging files are at
/var/lib/pgsql/data/pg_log
The PS installation installs a file, that controls Postgres logging, into /var/lib/pgsql/data
called “postgresql.conf”. The PS Administrator can change the location of these log files,
For more information about “PostgreSQL 8.2.13”, please refer to the documentation available
at http://www.pgostgresql.org web site.
Memory Usage Log
PS provides a memory log file which takes snapshots of the memory usage on the server every
hour. /var/log/presence/memory.log .
PS Core Start Stop log
If the scripts stop.sh and start.sh in /opt/Avaya/Presence/presence/bin folder are
used to stop and start the PS XCP Core and its components then the output from those scripts
are logged to/var/log/presence/stop_start.log
Changing logging levels
The Presence Service debug files are at /var/log/messages.
To change the log level permanently
1. In Presence XCP Controller, in Router section, click Edit for the Core Router.
2. Change the Configuration View to Advanced view.
3. Update Level of information to log to required level.
Administering Presence Services XCP Controller
August 2010
43
Logging
4. Click Submit.
5. Restart PS (go to /opt/Avaya/Presence/presence/bin/ for stop and start
commands).
Result
Note:
Core Router logs are stored in /var/log/presence/presence_core.log.
Related topics:
Component level logging examples on page 44
Component level logging examples
It is possible to set the log level of the some components dynamically (without restarting PS)
by using the updateLogLevel.sh script. To use this script, pass the parameters of the
component and the change required.
Example 1: To Increase log level
/opt/Avaya/Presence/jabber/xcp/bin/updateLogLevel.sh ACTIVE-DIR INCREASE increases
the log level of the Active Directory Component
Note:
The Component logging(Jlog) must be enabled in the AD component and the pipe file
entered must be /opt/Avaya/Presence/jabber/xcp/var/log/act-dir.pipe
Example 2: To decrease log level
/opt/Avaya/Presence/jabber/xcp/bin/updateLogLevel.sh CORE-ROUTER DECREASE
decreases log level of the Core Router
Example 3: To check the level of OCS Gateway
/opt/Avaya/Presence/jabber/xcp/bin/updateLogLevel.sh OCS-Communication Manager
CHECK checks the level of the OCS Gateway without changing it.
This does not update the static setting on the configuration page but the level of logging is
updated unless the component is restarted.
Collecting logs
A script is provided with PS to collect and compress the logs files.
44
Administering Presence Services XCP Controller
August 2010
Logging
/opt/Avaya/Presence/presence/bin/getpslogs.sh
The script by default will get the log files which have been updated in the last 7 days and save
them to a file in:
/home/craft/support-logs-<date&time>.zip
Important:
If you need the log file to contain information for more than the specified default value (default
value is 7), change the value by running the following command
/opt/Avaya/Presence/presence/bin/getpslogs.sh 14
System Manager Alarm and Logging
Viewing System Manager logs
You can see a Log Viewer and an Alarm Viewer on the System Manager Console interface.
The Log Viewer displays logs which were sent to the logging service.
The logs which are found in the Log Viewer can be found in /var/log/presence/
harvest.log locally on the PS machine.
Viewing SAL Agent log
The SAL Agent forwards logs to the System Manager Log Viewer, however it also has log
messages on the local server at $SPIRIT_HOME/logging/spirit.log. This file is also
collected when collecting PS logs as mentioned above with the tool $PRES_HOME/presence/
bin/getpslogs.sh.
To set the SAL Agent to debug logging, edit the file $SPIRIT_HOME/wrapper.config as
follows:
1. Change the field wrapper.debug=false to wrapper.debug=true.
2. Restart the spiritAgent with service spiritAgent restart.
Result
Important:
You will then see the debug logs in $SPIRIT_HOME/logging/wrapper.log
Administering Presence Services XCP Controller
August 2010
45
Logging
Viewing Log Harvester log
The log harvester logs to /var/log/presence/harvest.log.
To update the log level of the log harvester component itself by replacing INFO in
$PRES_HOME/presence/lib/path/log4j.properties at the property
log4j.logger.events.operational=INFO#com.avaya.common.loggging.client.LogLevel, with
other levels such as SPIRIT_FILE to FINE, FINER or FINEST in order of increasing
granularity.
Viewing System Manager Alarms
Alarms can be viewed in the System Manager Alarm Viewer. The SAL Agent has rules in
$SPIRIT_HOME/config/agent/IPS_2.0_0_EPBaseRules_orig.xml that define
filters for identifying which log messages should also be raised as Alarms.
By default all log messages of level ERROR or FATAL generate alarms.
Also when you install Presence Services on a server there is a successful start up alarm that
the system sends to the Alarm Viewer which says Successful installation of Presence Services
5.2, now available at: <IPAddress>.
46
Administering Presence Services XCP Controller
August 2010
Chapter 4: Presence Session Manager
(JSM)
The Presence Session Manager (JSM) controls all sessions on the Presence Services server. Each time
a client connects to the server, a new session is started; one session is opened for every client logged
onto the system. An operational Presence Session Manager is provided by default when you install the
Presence Services server. You can modify the configuration, enabling the JSM to handle additional
Presence Services server features as needed.
The following sections describe the features that are contained in the Presence Session Manager
Configuration page:
• Optional modules on page 48
• JSM hostnames on page 48
• Presence Administrators on page 49
• System limits on page 53
• System parameters on page 53
• Database setup option on page 54
• JSM features on page 56
• Stats on page 56
• Agents on page 57
• Legacy redirect to external components on page 57
• Static EventBroker events on page 57
• Configuring JDS on page 58
• Configuring Roster on page 59
• Configuring Sendmail on page 59
• Configuring Offline SMTP on page 60
• Configure The following parameters.
• Configuring Registration Requirements on page 61
• Authorization on page 62
• JSM Logging on page 62
• Configuring HTTP Digest Module on page 63
Administering Presence Services XCP Controller
August 2010
47
Presence Session Manager (JSM)
• Configuring personal eventing on page 63
• Configuring SNMP on page 64
Optional modules
The optional modules are used by the Presence Services server to enable specific features.
Many of the modules, once you enable them, must be configured in more detail further down
in the JSM configuration, or in a different component.
The Optional modules section in the Presence Session Manager Configuration page is shown
in the following figure in the Advanced configuration view so that all of the modules are visible.
As shown, some of the modules are selected by default.
See the online help for the Presence Session Manager Configuration page for descriptions of
the modules that display in each configuration view.
JSM hostnames
The Hostnames for this Component configuration section is available in the Presence XCP
Controller’s Intermediate configuration view. JSM handles packets from all of the hosts listed
here.
By default, the host name in the Host Filters field belongs to the server on which Presence
XCP is installed. You can enter the names or IP addresses of other hosts for which you want
this JSM to handle packets as well. To enable the JSM to handle packets from any host, enter
an asterisk (*).
A host filter must be a host name, or an IPv4 or IPv6 address.
Important:
If you configure SDNS to run in front of this JSM, leave the Host Filters field blank. Since
the host name for which this JSM handles packets must be specified in the SDNS
component’s configuration, if you add the host name in the JSM configuration as well, the
same packets will be sent to the host twice.
48
Administering Presence Services XCP Controller
August 2010
Presence Administrators
Presence Administrators
Important:
To use the Presence Administrator feature, select mod_admin under Optional modules.
The Presence Administrators configuration section is available in the Presence XCP
Controller’s Intermediate configuration view. You can add and delete Presence administrators
as needed.
By default, the Administrator(s) field contains the Jabber ID of the person who installed the
Presence Services server. You can add other Jabber IDs as necessary; separate each Jabber
ID with a line break.
The following sections describe tasks that Presence administrators can perform.
Related topics:
Unregistering users on page 49
Deleting Offline messages on page 50
Locating Inactive accounts on page 50
Broadcasting messages to all users on page 51
Unregistering users
Presence administrators can unregister any user who has an account on the Presence
Services server. To do this, the administrator must use a client that is capable of sending raw
XML to the server. Once a user has been unregistered, his or her account is deactivated, and
the Jabber ID is marked unavailable. Unregistered users are automatically removed from the
rosters of contacts on the same server who are subscribed to their presence. (They may not
be removed from the rosters of people who are on other Presence servers.)
To unregister a user:
1. Using a XMPP IM Client, display the console (or debug) pane.
SHIFT+F12:
In Presence Messenger, select Console in the View menu. In Jabber MomentIM,
press SHIFT+ F12.
2. In the text-entry area of the console pane, type the following XML:
<iq type='set' from='
[email protected]
'
to='
[email protected]
Administering Presence Services XCP Controller
August 2010
49
Presence Session Manager (JSM)
'>
<query xmlns='Presence:iq:register'><remove/></query></iq>
3. Modify the from and to attributes as needed, entering the Jabber ID of an
administrator and the Jabber ID of the user who is being unregistered.
4. Press ENTER to send the XML.
The server returns a type=result indicating that the user is unregistered. If the
server encounters a problem, it returns a type=error packet.
Deleting Offline messages
When a Presence user is unregistered, the user’s persistent data, such as preferences, JID,
off-line messages, remain stored in the system.
To delete offline messages sent to unregistered users
1. In the Presence Session Manager Configuration page, select mod_offline under
Optional modules.
This module enables Presence administrators to receive IM notifications when
unregistered users receive offline messages.
2. Delete the offline messages using the database or directory service tools for the
database where the messages are stored.
Locating Inactive accounts
Presence administrators can locate inactive user accounts by querying the
Presence:iq:last namespace. This namespace records the last information sent by users
when they log out of the system in a directory service or database. This information includes
the time and date that they last logged out. By using the directory service’s tools, the
administrator can query for users who have not used the system for a long period of time and
then remove these users from the system.
Administrators can also use the Presence:iq:last query with online users to see what their
last activity was and when it occurred.
To locate inactive accounts
1. Using a XMPP IM Client, display the console pane.
50
Administering Presence Services XCP Controller
August 2010
Presence Administrators
SHIFT+F12:
In Presence Messenger, select Console in the View menu. In Jabber MomentIM,
press SHIFT+F12.
2. In the text entry area of the Console tab, type the following XML.
The to attribute contains the Jabber ID of the user for whom you want to receive the
Presence:iq:last information.
<iq type='get' to='user@host'>
<query xmlns='Presence:iq:last'/>
</iq>
3. Press Enter to send the XML.
4. View the returned XML.
It should resemble the following
<iq type='result' from='user@host'>
<query xmlns='Presence:iq:last' seconds='903'/>
</iq>
5. Interpret the results using the following attribute descriptions
Attribute
Description
type
Indicates that the XML is the result of a query.
from
Contains the Jabber ID of the person or component sending the
data.
xmlns
Indicates that the XML is related to a Presence:iq:last query.
seconds
Contains the number of seconds since the user performed his or
her last action on the server. In the previous example, the user last
performed an action 15 minutes and 3 seconds ago.
Broadcasting messages to all users
Presence administrators can broadcast messages through an IM client to all users who are
connected to a specific Connection Manager.
To broadcast messages to all users on a Communication Manager
Administering Presence Services XCP Controller
August 2010
51
Presence Session Manager (JSM)
1. Change to the Presence XCP Controller’s Advanced configuration view.
2. Edit the Presence Session Manager and verify that the mod_admin module is
selected.
3. Edit the Connection Manager, and under Add a New Command Processor, click
Details beside jsmcp.
4. In the JSM Command Processor Configuration page, select Yes for the Enable
Broadcast to all online users connected to thisCommunication Manager
parameter.
5. Submit your configuration changes and restart the server.
6. Using a XMPP IM Client, display the console pane.
SHIFT+F12:
In Presence Messenger, select Console in the View menu. In Jabber MomentIM,
press SHIFT+ F12.
7. In the text-entry area of the Console pane, type the following XML.
The to attribute contains the resource to which you want the message sent. In the
following example, the message is sent to all users online at example.com. When
users receive the message, they see which Presence server the message came
from, but not the Jabber ID of the person who sent it.
<message to='example.com/announce/online'>
<body>Text of message here.</body>
</message>
8. Press ENTER to send the XML.
9. View the message sent out by the Presence Session Manager.
It resembles the following:
<route to='*@cm1'>
<message>Text of message here.</message>
</route>
Result
The message is sent to all Connection Managers that have users connected to the Presence
Services server.
52
Administering Presence Services XCP Controller
August 2010
System limits
System limits
The System Limits configuration section is available in the Presence XCP Controller’s
Advanced configuration view. This setting controls the usage of your Presence XCP system.
The System Limits parameter is described in the following table.
Name
Description
Maximum number of
sessions a single
user (Jabber ID) can
open at a time
Enter the maximum number of sessions a Presence user can have
on the server using the same Jabber ID and different resources. Each
time a Presence user logs into the server, a session is created. If the
same user logs on from two locations, that user has two sessions
active on the server.
By default, users may have an unlimited number of concurrent
sessions. You may want to limit this number to prevent overuse of
your Presence Services server.
System parameters
The System Parameters configuration section is available in the Presence XCP Controller’s
Advanced configuration view. These parameters control the Presence Services server use of
your system’s processor, and default values have been supplied based on average server
usage. If you want to change these values, we recommend that you call Presence Support for
help.
The System Parameters are described in the following table.
Name
Description
Number of threads
to use for
processing
Presence tasks
The number of threads that the Presence Services server should
create to process Presence tasks. We recommend that you use the
number of CPUs plus 1.
Creating more threads enables the Presence Services server to
process Presence tasks more quickly, but uses more of your system’s
processor.
Closed session
cache time (in
seconds)
The number of seconds that a user’s session is cached in memory after
he or she logs out.
The lower the number of seconds, the more time JSM must spend
trying to free memory. The higher the number of seconds, the fewer
times cleanup occurs.
Administering Presence Services XCP Controller
August 2010
53
Presence Session Manager (JSM)
Name
Description
User session
cache time (in
seconds)
The number of seconds that a user’s session resources are cached
after he or she has logged out from all sessions.
The lower the number of seconds, the more time JSM must spend
trying to free memory. The higher the number of seconds, the fewer
times cleanup occurs.
Timeout for XDB
requests
The number of seconds to wait before an XDB request that has been
sent to the router times out. This setting affects users; the higher the
setting, the slower the system runs.
If you are configuring JSM for the Redirect Events to External
Component feature, set this value to something greater than 0.
If you are using JDS, set this value to 120 seconds.
Timeout for IQ
requests
The number of seconds to wait before an IQ request that has been
sent to the router times out. This item is used only during the discovery
of other components, and its setting has no effect on users.
Maximum XDB
requests to allow
The number of XDB requests that can be sent to the JSM from the
Connection Manager (Communication Manager) at one time. When
this number is reached, the Presence XCP core router tells the
Communication Manager to stop listening on its socket.
Resume sockets
when XDB
requests drop
below
The number of XDB requests that JSM still must handle before
accepting them again from the Communication Manager. When this
number is reached, the Presence XCP core router tells the
Communication Manager to resume listening on its socket.
Maximum
The number of database requests that can be sent to the JSM at one
database requests time. When this number is reached, the Presence XCP core router tells
to allow
the Communication Manager to stop listening on its socket.
Resume sockets
when database
requests drop
below
The number of database requests that JSM still must handle before
accepting them again. When this number is reached, the Presence
XCP core router tells the Communication Manager to resume listening
on its socket.
Database setup option
The Database Setup configuration section is available in the Presence XCP Controller’s
Intermediate and Advanced configuration views. If you selected SQLite as your database
during Presence XCP installation, these parameters contain information about SQLite. If you
selected one of the databases, this option is dimmed.
Any database configured in this section is used only to store basic Presence IM data such as
usernames, passwords, rosters, vCard information, and offline messages.
54
Administering Presence Services XCP Controller
August 2010
Database setup option
Important:
If you use the SQLite database, make sure that mod_presence_mirror and
mod_message_archiver are not selected under Optional modules.
If you select the Oracle database, you must enable the mod_auth_plain and mod_auth_digest
modules.
The Database Setup parameters are described in the following table.
Name
Description
Datasource Name
Enter the name of the database’s datasource.
For the SQLite database, this is the database filename. For the
PostgreSQL database, this is the name of the component’s
datasource as specified in the .odbc.ini file. For Oracle, the
datasource is specified in the ORACLE_SID environment variable or
in the tsnames.ora file. For DB2, this is typically the database
alias.
Database User
Name
Enter the username used to connect to the database.
Database User’s
Password
Enter the password used to connect to the database.
Confirm Password
Enter the password again to confirm it.
Database Type
Select the type of database you are using from the list.
Important:
If you select postgresql-odbc, you must add the line,
MaxVarcharSize=4000, to the datasource definition used in
the .odbc.ini file.
Number of
connections to the
database
Enter the number of connections that you want the component to use
for processing requests.
Time in seconds
between database
connection
heartbeats
Enter the number of seconds after which the database connection
should refresh. Do not set this value to zero without contacting
Presence support.
Is database debug
logging enabled?
(Advanced view
only)
Select 1 to log database debug information. Database logging uses
the Presence XCP router’s logging facility, the jabberd Logger. The
log level must be set to debug for database logging to occur.
Administering Presence Services XCP Controller
August 2010
55
Presence Session Manager (JSM)
JSM features
The JSM Features configuration section is available in the Presence XCP Controller’s
Advanced configuration view. These parameters are used to enable and disable a number of
miscellaneous server features.
The JSM feature parameters are described in the following table.
Name
Description
Apply Single Domain
Name Support
semantics to local
user lookups
Select Yes if you are using Single Domain Name Support (SDNS)
for multiple JSMs. SDNS determines if a particular Jabber ID is a
local user when users are spread across multiple domains.
Allow invisible
presence
Select Yes if you want to allow users to set their presence to
Invisible so that they can be online with the Presence Services
server, but show up in their contacts’ rosters as offline.
Allow restrictive offline Select Yes if you want to prevent the server from off-lining bounced
messages that are empty. This setting affects message packets
only.
Automatically
provision new users
Select Yes if you want users who authenticate via SASL or x509 to
be created automatically in the JSM database when they create a
new session.
With the Yes setting, you will no longer have to provision users in
the JSM database as part of your new employee provisioning
process.
Stats
The Stats feature, available in the Presence XCP Controller’s Intermediate configuration view,
logs server statistics to the log types that are configured for the statistics logger. A Statistics
logger has been set up by default in the Presence Services server configuration and logs infolevel data to $JABBER_HOME/var/log/stats-logger.log. The Stats option has been
configured by default to capture data every 60 seconds. You can change the frequency if
preferred.
56
Administering Presence Services XCP Controller
August 2010
Agents
Agents
Agents display information relating to the corresponding component in the client interface. For
example, if you configure a Text Conferencing component, the Text Conferencing agent
enables the client to display the Text Conferencing interface to client users. To configure an
agent, you must first select mod_agents under Optional modules.
Important:
Unless you have components that do not support XEP-0030: Service Discovery, we strongly
recommend that you use the mod_disco module rather configuring agents. The mod_disco
module uses the Service Discovery protocol to discover components automatically;
therefore, with mod_disco, you do not have to configure agents.
If you are not using mod_disco, you must configure an agent for each component that you add
to your Presence Services server. The Agents configuration section is available in the
Presence XCP Controller’s Intermediate configuration view. To add an agent for a component,
select the agent in the list, and click Go.
Legacy redirect to external components
The Legacy Redirect to External Components configuration section is available in the
Presence XCP Controller’s Advanced configuration view. This feature allows you to redirect
packets to an external component. Before being redirected, packets are processed by the JSM
like any other packets.
This feature is still available in the JSM configuration to provide backwards compatibility for
Presence Services servers that do not have the newer, more interactive EventBroker
feature.
Important:
To use the Legacy Redirect feature, select mod_redirect under Optional modules.
Static EventBroker events
The EventBroker has replaced the Legacy Redirect to External Components feature, and is
more interactive than the legacy feature. Whereas the legacy feature simply sends a copy of
the packet to the external component, the EventBroker allows the component to send a
Administering Presence Services XCP Controller
August 2010
57
Presence Session Manager (JSM)
response back to the JSM. The response can specify whether to pass or handle the packet. It
can also change the contents of the packet; for example, it can remove sensitive information
from the message body.
Important:
To use the Static EventBroker Events feature, select mod_eventbroker under Optional
modules.
The Static EventBroker Events configuration section is available in the Presence XCP
Controller’s Advanced configuration view.
You can configure Static EventBroker Events to redirect packets from JSM to custom external
components that are written in any programming language. After processing the packets, the
component can send responses back to JSM as needed.
Configuring JDS
The JDS Configuration feature lets you configure how the JSM and the Jabber Directory
Component interact. You must enable this feature if you have configured, or plan to configure
a Jabber Directory Component on your server.
The JDS Configuration section is available in the Presence XCP Controller’s Basic and
Intermediate configuration views.
To configure JDS parameters
1. Select mod_jds under Optional modules.
2. Select the JDS Configuration option.
3. Configure the parameters as needed.
The parameters that you enable here must match the JDS commands that you
enable in the JDS Database configuration.
Important:
If you are configuring Active Directory, set the first two parameters to No.
Result
The JDS Configuration parameters are described in the following table, and the configuration
view in which each parameter appears is indicated below its name.
58
Administering Presence Services XCP Controller
August 2010
Configuring Roster
Parameter
Description
Digest Authentication Select Yes if you want to allow users to log onto the server using
Basic
digest authentication rather than plain-text authentication.
Important:
For digest authentication to work, the LDAP database must be
configured to use plaintext authentication. If LDAP uses hashed
passwords, you must not enable digest authentication.
Digest authentication is more secure than plaintext authentication.
When the client connects to the server, the Connection Manager
passes a session ID to it. The session ID is SHA-hashed with the
client’s password and returned to the server. The server
authenticates the client based on this value.
Community Groups
Basic
Select Yes if you want to allow users to access community groups
through the client software.
Offline SMTP
Basic
Select Yes if you want to redirect messages that are sent to offline
users to an email server.
VCard
Basic
Select Yes if you want to allow users to enter vCard information for
themselves and to query the vCard information of other users.
Use Proxy
Authentication
Intermediate
Select Yes if you want to enable proxy authentication, which allows
a user to bind to the LDAP database as one user and proxy as
another user. This feature enables UserA to pass a control that
assumes the rights of UserB for the duration of a database
operation.
Configuring Roster
The Roster Configuration section is available in the Presence XCP Controller’s Advanced
configuration view.
Select the Roster Configuration option if you want to change the default setting (150) for the
maximum number of items that users can have in their rosters. This feature limits how much
space rosters require on your Presence Services server. Roster items include contacts,
pending contacts, and any other item that appears in the roster.
Configuring Sendmail
The sendmail feature allows IM client users to send transcripts of chat and conference room
conversations via email. To use this feature, you must also configure a Connection Manager
Administering Presence Services XCP Controller
August 2010
59
Presence Session Manager (JSM)
with an SMTP command processor; if you do not have an appropriately configured
Communication Manager, the server ignores the sendmail parameters.
The Sendmail Configuration section is available in the Presence XCP Controller’s Basic
configuration view.
To configure the Sendmail feature
1. Configure a Connection Manager with an SMTP command processor.
2. In the Presence Session Manager Configuration page, select mod_sendmail
under Optional modules.
3. Select the Sendmail Configuration option, and configure the following
parameters.
Parameter
Description
Service ID of the
SMTP processor
Enter the ID of the SMTP command processor that will
send the mail.
Default reply
address for email
Enter a default email address to which replies should be
sent if the Presence Services server is unable to
determine the email address of the sender.
Configuring Offline SMTP
The offline SMTP feature redirects messages that are sent to offline users to an email server.
To use this feature, you must also configure a Connection Manager with an SMTP command
processor; if you do not have an appropriately configured Communication Manager, the server
ignores the offline SMTP parameters.
The Offline SMTP Configuration section is available in the Presence XCP Controller’s Basic
configuration view.
To configure the Offline SMTP feature
1. Configure a Connection Manager with an SMTP command processor.
2. In the Presence Session Manager Configuration page, select mod_offline_smtp
under Optional modules.
3. Select the Offline SMTP Configuration option.
4. Configure the following parameters.
60
Administering Presence Services XCP Controller
August 2010
Configuring Registration Requirements
Parameter
Description
Service ID of the
SMTP processor
Enter the ID of the SMTP command processor that you
configured to send the mail.
Default reply
address for email
Enter a default address to which any replies should be
sent. If the Presence Services server is unable to
determine the email address of the sender, it automatically
plugs in this address.
Configuring Registration Requirements
The Registration Requirements feature, which is enabled by default, lets client users create
accounts on the Presence Services server. It also lets you configure the information and
prompts that display in the client interface when users register.
Important:
If you are using the Jabber Directory Suite, clear the check box beside Registration
Requirements to disable the feature. The JSM Registration feature does not work with
JDS.
The Registration Requirements configuration section is available in the Presence XCP
Controller’s Basic and Intermediate configuration views.
To configure registration requirements
1. Change to the Presence XCP Controller’s Intermediate configuration view.
2. Select mod_register under Optional modules.
3. Under Registration Requirements, select the registration fields that you want to
display on the client.
4. Configure the following parameters as needed.
Parameter
Description
Anyone can register in When set to Yes, anyone can create an account on this
band with this server
server using Jabber (pre-XMPP) protocol. If you select
No, users cannot register in band.
Behavior when a user
unregisters
Administering Presence Services XCP Controller
Select the action the server should take when a user
unregisters. The default setting is remove, which
removes the user from the database. The disable option
disables the user’s account without removing them from
August 2010
61
Presence Session Manager (JSM)
Parameter
Description
the database. The not-allowed option prevents users
from unregistering.
Registration Message
The server uses these parameters to send an instant welcome message to newly
created accounts. If you want to change the wording of a message, you must
modify your dictionary file.
Type of message
Select normal, chat, or headline for the type of
registration message you want sent. The Presence
clients always use the chat type, which sends welcome
messages in a chat window.
You can select another message type if you are using a
custom client. For example, a headline type could be a
pop-up message, and a normal type could be a
message sent in a window containing a Reply button.
You must define these types as you plan to use them
with your custom client.
Enable welcome
messages
Select Yes if you want the server to send a welcome
message to users after they register.
Authorization
The Presence Services server provides authorization capabilities for instant messaging
through the Presence Session Manager, and for conference room participation through the
Text Conferencing component. To make use of these capabilities through Presence XCP, you
must provide your own custom component that provides authorization services. An
authorization component generally provides black- and white-listing capabilities by controlling
who can and cannot communicate with each other through the Presence Services server.
JSM Logging
The JSM Logging feature lets you log message, session, and presence packets in addition to
the JSM-generated packets that are logged by the server by default.
62
Administering Presence Services XCP Controller
August 2010
Configuring HTTP Digest Module
Configuring HTTP Digest Module
Select the Configuration for the HTTP digest module option if you are using a custom
component or the JDS component for authentication. All authentication requests will be sent
to the component that handles the http digest namespace. This feature is available in the
Presence XCP Controller’s Intermediate configuration view.
To configure the HTTP digest module
1. Change the Presence XCP Controller’s Intermediate configuration view.
2. Select mod_http_digest under Optional Modules.
3. Scroll to the bottom of the Presence Session Manager Configuration page, and
select Configuration for the HTTP digest module.
Configuring personal eventing
The Personal Eventing feature is an implementation of the protocols that are described in
XEP-0163: Personal Eventing via Pubsub (http://www.xmpp.org/extensions/xep-0163.html)
and in XEP-0115: Entity Capabilities (http://www.xmpp.org/extensions/xep-0115.html). The
Personal Eventing feature allows the broadcast of state change events that are associated
with an IM and presence account, and tailors the broadcast to the capabilities of the receiving
entity.
The Personal Eventing feature is available in the Presence XCP Controller’s Advanced
configuration view.
To configure the Personal Eventing feature
1. Change to the Presence XCP Controller’s Advanced configuration view.
2. Select mod_caps and the mod_pep under Optional modules.
The mod_caps module is enabled by default, and uses the Entity Capabilities
described in XEP-0115. The mod_pep module enables Personal Eventing through
PubSub, as described in XEP-0163.
3. Scroll to the bottom of the Presence Session Manager Configuration page, and
select the Personal Eventing Configuration feature.
Administering Presence Services XCP Controller
August 2010
63
Presence Session Manager (JSM)
Default values are provided.
4. If needed, change the default values.
Keep in mind that these values impact both memory (caching) and disk storage.
Result
The parameters are described in the following table.
Parameter
Description
Maximum number of
seconds a user’s nodes
are cached
Enter the maximum number of seconds that a user’s nodes are
cached in memory. After this time has elapsed with no activity
on the node, the node is deleted. The default value is 14400
seconds, or 4 hours.
Maximum number of
nodes per user
Enter the maximum number of nodes that each user can
create.
Maximum number of
items per node
Enter the maximum number of items that each node can
contain.
Maximum item size in
XML bytes
Enter the maximum size of each item in bytes.
Configuring SNMP
Select the SNMP Configuration option if you want to configure SNMP for the Presence Session
Manager. Configure the parameters as follows.
Parameter
64
Description
Enable SNMP
Intermediate
This parameter is set to Yes by default.
Count errors
Advanced
Select Yes only if you want to enable SNMP error counting. This option
takes a great deal of server resource; use it with caution.
Administering Presence Services XCP Controller
August 2010
Chapter 4:
Authorization
Authz Authorization
T he XCP Server provides authorization capabilities for instant messaging through the
Presence Session Manager (JSM), and for conference room participation through the Text
Conferencing (TC) component. To make use of these capabilities through XCP, you must
provide your own custom component that provides authorization services. An authorization
component generally provides black- and white-listing capabilities by controlling who can and
cannot communicate with each other through the XCP server. The protocol with which this
component must comply is described in Authorization Protocol .
Authorization allows you to track communication between users for various purposes, and to
block communications between unauthorized peers. For JSM, a list of permitted
communication peers is maintained within the context of a user’s session. For the TC
component, the same is true within the context of text conference rooms; users who are not
permitted to communicate cannot be in the same conference room concurrently.
Authz authorization is used only for controlling user-to-user requests and not user-to-domain
requests. When authz is enabled, an IQ request made by a user to the domain for his or her
roster will not go through authz. However, a request sent by a user to another user will go
through authz.
Related topics:
XCP Server Configuration on page 65
Authorization Protocol on page 69
Design Notes on page 72
Security Considerations on page 73
Authorization Manager Configuration on page 74
XCP Server Configuration
This section describes how to configure authorization for Presence Session Manager and for
Text Conferencing.
Enabling Authorization for the Presence Session Manager
You can enable and configure authorization in the JSM if you want to control who can and
cannot communicate via instant messaging through the XCP server.
Administering Presence Services XCP Controller
August 2010
65
Authorization
Related topics:
To configure authorization for JSM on page 66
Enabling Authorization for Text Conferencing on page 68
To configure authorization for JSM
1. Change to the controller’s Advanced configuration view.
2. In the Router area on the controller’s main screen, click Edit beside the Presence
Session Manager.
3. In the Presence Session Manager Configuration screen under Optional
Modules , click the check box beside mod_authz to enable the module.
4. Scroll down toward the bottom of the page and select the Authorization
Configuration option.
5. Configure the parameters as follows.
Parameter
66
Description
Jid matching rules
Select ’bare’ or ’full’ depending on whether you
want the authz module to authorize nodes based
on their bare (node@domain) or full
(node@domain/resource) JIDs.
The module will always try to send a JID that
corresponds to the option selected, but it cannot
ensure that a full JID will always be available.
Query local
Select ’in’ or ’out’ depending on when you want
authorization requests to be sent for stanzas that
originate from and are destined to a local node.
We recommend that you set this option to ’in’
whenever a full JID is preferred for authorization
requests.
Since a stanza from a local node to a local node
has only full JIDs available for both from and to
attributes when it enters a session, using the ’in’
option makes sense. If you set Query local
to ’out’, authorization requests are dispatched
when the stanza leaves the session of the from
attribute. Using the ’out’ option is more efficient;
however, it does not guarantee that the full JID
will be available for the to attribute on the
stanza.
Include original stanza in
request?
Select Yes or No depending on whether you want
to include the original stanza in the authorization
request.
Administering Presence Services XCP Controller
August 2010
Authz Authorization
Parameter
Description
Default behavior
Select ’pass’ or ’authorize’ depending on how you
want the authz module to handle authorization
requests by default.
A setting of ’pass’ causes the module to pass all
stanzas through without authorization except for
those that match what is configured in the
Exceptions to default handling area.
A setting of ’authorize’ causes the module to
authorize all stanzas except for those that match
what is configured Exceptions.
Time to live for authz
requests
Enter the number of seconds to cache results
from the custom authorization component. If you
set this option to ’0’, results are not cached unless
they explicitly contain expiration information.
Default permission
Select ’allow’, ’deny’, or ’force’ depending on how
you want the authz module to handle situations in
which an error response is received for the
authorization request.
The 'allow' option allows the packet to be sent to
the user, who can then accept or deny the
request.
The ’deny’ option blocks the delivery of all
packets when the module receives error
responses to its authorization requests.
The 'force' option allows an external mechanism
to handle the authorization. The user never sees
the packet.
Note:
If this option is set to ’deny’ and the server
stops, no messages or presence packets are
sent.
Force the use of default
values for all requests
Select Yes if you want the server to respond to all
client authentication requests using the default
values. This setting is useful when you do not
have a custom authentication component.
If you select No, the XCP server looks for an
external authentication component. If such a
component exists, the component sends a
response regarding the request. If an external
component does not exist, Jabberd must send a
response to JSM saying to use the default
values.
Exceptions to default
handling
Select this option if you want to configure
exceptions to the default settings.
Click Go beside an exception to configure it.
Administering Presence Services XCP Controller
August 2010
67
Authorization
Parameter
Description
Stanza Exception lets you set up exceptions for
certain stanza types, such as presence or iq.
JID Exception lets you enter JIDs for either from
or to attributes on a packet.
Namespace Exception lets you specify a
namespace to which the exception applies, and
to configure string-matching rules for message
subjects and bodies.
6. If you want to configure exceptions to the rules that you have set in the previous
parameters, select Exceptions to default handling .
7. Click Go beside the exception that you want to configure. These exceptions apply
to the Default behavior setting. For example, if you set the default behavior to
pass , all exceptions will be authorized. You can configure multiple exceptions in
each category.
Stanza Exception lets you set up exceptions to the default behavior for certain
stanza types, which include message , presence , or iq .
JID Exception lets you specify JIDs that are exempt from the JID matching rules
setting. If you selected bare for JID matching rules , you must enter a bare JID in
this screen. Likewise, if you selected full , you must enter a full JID in this screen.
If you leave the expression matching parameter set to false , authorization will be
based upon an exact match to the specified JID.
Namespace Exception lets you specify a namespace to which the exception
applies, and to configure string-matching rules for message subjects and bodies.
This exception is primarily used to except message events that have a blank body
and subject, as shown in the following figure. The ”jabber:x:event” namespace
applies to the ”is replying” message event.
8. Scroll to the bottom of the Presence Session Manager Configuration screen, and
click Submit to save your configuration.
Enabling Authorization for Text Conferencing
You can enable the Authorization Gear in the Text Conferencing component if you want to
control which users cannot be in the same text conference rooms at the same time. When you
enable this gear, everything that the TC component handles is checked by the custom
component.
Note:
Your Authorization component must be running before the Text Conferencing component
starts. If the component is not running, rooms will not load.
68
Administering Presence Services XCP Controller
August 2010
Authz Authorization
Text Conferencing does not pay attention to the time-to-live setting, which is the number of
seconds that the custom component’s results are cached.
Related topics:
To configure Authorization for TC on page 69
To configure Authorization for TC
1. Change to the controller’s Advanced configuration view.
2. In the Components area on the controller’s main screen, click Edit beside Text
Conferencing .
3. In the Text Conferencing Configuration screen, scroll down to the TC
Configuration area. The Authorization Gear is the first gear displayed under
Advanced TC Features .
4. Select the Authorization Gear option. You can enter a custom library if needed;
however, this is not necessary.
5. Scroll down to the bottom of the screen, and click Submit to save your
configuration.
6. Start your custom authorization component. If your component is not running when
you restart the TC component, no TC rooms will load.
7. Restart your system.
Authorization Protocol
This section describes the protocol with which your custom authorization component must
comply.
Related topics:
Authorization Flow on page 69
XDB Authorization Protocol on page 71
Cache Reset Protocol on page 72
Authorization Flow
Upon receiving a packet, JSM will dispatch an XDB request on behalf of the user to request
authorization for the attempted operation. A request can either be allowed or denied.
Administering Presence Services XCP Controller
August 2010
69
Authorization
Allowed
An allowed communication has the following flow:
1. [email protected] sends a <message> stanza to [email protected].
2. JSM receives message from [email protected].
3. JSM dispatches an <xdb type=’get’> to authorize communication between
[email protected] and [email protected].
4. External component dispatches <xdb type=’result’> to JSM that allows
communications between [email protected] and [email protected].
5. JSM allows <message> from [email protected] to be delivered to
[email protected].
Denied
A denied communication has the following flow:
1. [email protected] sends a <message> stanza to [email protected].
2. JSM receives message from [email protected].
3. JSM dispatches an <xdb type=’get’> to authorize communication between
[email protected] and [email protected].
4. External component dispatches <xdb type=’result’> to JSM that denies
communications between [email protected] and [email protected].
5. JSM bounces <message> back to [email protected], adding a type=’error’
attribute, and a <error code=’401’>Unauthorized</error> element.
Forced
A forced communication has the following flow:
1. [email protected] sends a <message> stanza to [email protected].
2. JSM receives message from [email protected].
3. JSM dispatches an <xdb type=’get’> to authorize communication between
[email protected] and [email protected].
4. External component dispatches <xdb type=’result’> to JSM expressing that the
communication between [email protected] and [email protected] should
be forced
5. JSM sets a ”forced” bit in the mapi_struct. This can be used by other modules to
know that the authorization component has asserted that no further authorization
is required. This allows other modules to process differently based on the value of
the flag.
70
Administering Presence Services XCP Controller
August 2010
Authz Authorization
XDB Authorization Protocol
Authorization Consumer requests authorization decision
The protocol that is used to request authorization is a XDB type=’get’ request.
<xdb type='get' id='01' ns='http://www.jabber.com/schemas/authz.xsd'>
<query xmlns='http://www.jabber.com/schemas/authz.xsd'>
<action>getAuthorization</action>
<operation>chat</operation>
<subject>
<jid>[email protected]</jid>
</subject>
<resources>
<item type='user'>[email protected]</item>
<item type='user'>[email protected]</item>
<item type='user'>[email protected]</item>
<item type='room'>[email protected]</item>
</resources>
</query>
</xdb>
The XDB request conforms to the standard for JDS requests. The <action/> element describes
the JDS action requested. For the authorization protocol, this MUST be ”getAuthorization”.
The <operation/> element describes the feature we’re requesting authorization for. For normal
one-to-one messaging, this will be described as ”chat”, but other features will have other values
for the <operation/> element. For example, conferencing may use the value ”enter” to query
whether a user is allowed to enter a room.
The <subject/> element refers to the subject of the system who is requesting authorization to
perform the specified operation. The requesting entity should be identified by a JID in a <jid/>
element inside the <subject/> element.
The <resources/> element contains a list of items that the subject is requesting authorization
to perform the operation on. Each <item/> should have a ”type” attribute that describes the
type of entity that the <subject/> is trying to communicate with. The contents of the <item/>
element should be the JID of the target.
In the previous example, the server is querying to find out if the entity [email protected]
is allowed to send messages (chat) with the nodes [email protected], [email protected]
and [email protected], and the chat room [email protected]. It is important to note that as
an implementation specific detail that where JIDs are used in the previous protocol, they can
be either host only (example.com), bare ([email protected]) or full ([email protected]/
resource) identifiers.
Authorization Service returns authorization decision
<xdb type='result' ns='http://www.jabber.com/schemas/authz.xsd'
id='01'>
<query xmlns='http://www.jabber.com/schemas/authz.xsd'>
<allow>
<item type='user'
expires='CCYY-MM-DDThh:mm:ssZ'>[email protected]</item>
<item type='room'
expires='CCYY-MM-DDThh:mm:ssZ'>[email protected]</item>
</allow>
<deny>
Administering Presence Services XCP Controller
August 2010
71
Authorization
<item type='user'
expires='CCYY-MM-DDThh:mm:ssZ'>[email protected]</item>
<item type='user'
expires='CCYY-MM-DDThh:mm:ssZ'>[email protected]</item>
</deny>
</query>
</xdb>
The response sent by the server should contain lists of items that the queried entity is allowed
(<allow/> element) and denied (<deny/> element) the ability to perform the provided
<operation/> with. In the previous example, the entity [email protected] is allowed to
send messages (chat) with the user [email protected] and the chat room
[email protected], but not the nodes [email protected] or [email protected].
The ”expires” attribute on the <item/> is the date at which the module is required to requery
authorization for this user. If it is not specified the module MAY use a default cache lifetime, or
request authorization for each operation. The component can force the module to always
request authorization for each operation by specifying the current date and time for
the ”expires” element.
Cache Reset Protocol
Administrator Resets a User’s Authorization Cache
Functionality may exist that allows an administrator to reset the authorization cache.
<iq type='set' id='authz01' to='tolkien.lit'>
<query xmlns='http://www.example.com/schemas/authz.xsd'>
<action>resetAuthz</action>
<list>
<jid>[email protected]</jid>
<jid>[email protected]</jid>
</list>
</query>
</iq>
Server Returns Success
<iq type='result' id='authz01' from='tolkien.lit'/>
Design Notes
The proposed implementation consists of a number of components which, through their
interaction, will prevent communication between Presence nodes without prior authorization.
JSM module
<message>, <presence>, and <iq> stanzas should be authorized before they are delivered.
Optionally, an implementation may use an in-memory cache of permitted and prohibited
communication peers. If a cache entry is not found, the JSM module will make the appropriate
authorization request to update the cache with the appropriate data. The packet will be
permitted or bounced based on the value of the permit/prohibit flag associated with the peer.
72
Administering Presence Services XCP Controller
August 2010
Authz Authorization
External authorization component
To provide authorization services for multiple components within the XCP system, an external
component that supports the xdb protocol defined in this document must be present.
Text conferencing authorization
Authorization rules could also apply to communications within Text Conference rooms. To
accomplish this goal, the authorization request callout could be modified to authorize a ”room
join” attempt using the XDB authentication protocol. This operation need only apply to the
presence packet sent to join a room, as barring entry to a room will be sufficient to prevent
communication between prohibited peers. The following rules could be used:
User join will be permitted only if the user may communicate with all nodes currently in the
room.
Billing and logging rules
Another use of this authorization protocol could be billing, or counting of communications
between two endpoints. Since all packets that pass through the JSM module could trigger an
XDB authorization request (provided caching was disabled), a smart external component could
make decisions on whether a packet is allowed to be delivered based on this information.
Consider the following rules:
• Local domain communications (from ’[email protected]/wireless’
to ’[email protected]/wired’) would require an outgoing check to the authorization
component. This would fall under the standard <operation/> of ”chat”.
• Messages originating from the local domain and destined for a remote domain
(from ’[email protected]/wireless’ to ’[email protected]/wired’), would require an
outgoing check to the authorization component. This would fall under the standard
<operation/> of ”chat”.
• Messages originating from a remote domain and destined for a local domain
(from ’[email protected]/wired’ to ’[email protected]/wireless’) would require an
incoming check to the authorization component. This would fall under the standard
<operation/> of ”chat-incoming”.
Using these rules, an external component should be able to determine if communication should
be allowed between the nodes, [email protected]/wireless, [email protected]/wired,
and [email protected]/wired, based on information stored in a database, and their JIDs. The
component could, for example, determine that ’[email protected]/wireless’ is not allowed
to receive messages from ’[email protected]/wired’ (as described previously in rule 3),
because [email protected]/wireless hasn’t sent enough messages to nodes with the
resource of ”wired”.
Security Considerations
The proposed implementation provides for authorization of <message>, <presence>, and <iq>
packets sent through JSM, as well as <presence> packets sent to the Text Conferencing
service to join a user to a TC room. Any services or functionality provided by a XCP installation
Administering Presence Services XCP Controller
August 2010
73
Authorization
that don’t meet these criteria will not be subject to authorization without additional integration
effort.
Authorization Manager Configuration
This section provides a reference for all of the parameters associated with the Authorization
Manager. The parameters are divided into subsections based on the configuration view in
which they display.
Basic Parameters
The following table describes the parameters that display in the controller’s Basic configuration
view. The basic parameters are sufficient to configure an operational Presence component.
Parameter
Description
Description
The description is displayed in the
Components area on the controller’s main
page and should help you distinguish
between components of the same type when
you have more than one configured. You can
change the description as needed.
ID
The component ID
Description
The component description
Intermediate Parameters
Parameters that display in the Presence component’s Intermediate configuration view.
Parameter
Description
Router Outbound Connection Information
Select this option only if you want the XCP router to connect to the component. For example,
if the component is running outside your firewall, this option allows the router to connect to
the component safely rather than introducing security risks by letting the component connect
to it. By default, components connect to the router using the router’s Master Accept Port.
Component IP
Enter the IP address or host name of the
system on which the component is
installed.
Port
Enter the port that the component uses for
communications.
Password
Enter the password that the router uses to
authenticate the component.
Execute an External Command
74
Administering Presence Services XCP Controller
August 2010
Authz Authorization
Parameter
Description
This option allows the router to start the component automatically. If you prefer to start the
component from a command line, disable this option.
Command line to run
A command that runs the component
automatically is provided by default. You can
modify it if needed.
Do not use the -B argument with this
component. Since the PS logger is already a
daemon process, its children must not be
daemons.
You should not redirect output, because all
output to STDOUT and STDERR will be
redirected to /dev/null.
Hostnames for this Component
This option specifies the hosts for which this component will handle packets. Specify a host
filter only if you want the component to be externally addressable; for example, if you want
clients and other components or programs to communicate with it. This is because the
mod_disco module in JSM uses host filters to return the component as something that
should be discoverable.
Host Filters
Enter the host names or IP addresses for
which you want this component to handle
packets. Separate each host name or
address with a line break.
Host filters must be host names, or IPv4 or
IPv6 addresses. If you use an IP address, the
packet address must also use this IP
address.
XDB Namespace Filters
Enter the namespaces for which you want
this component to handle xdb messages.
Separate each namespace with a line
break.
XDB Host Filters
Enter the host names or IP addresses for
which you want this component to handle
xdb requests. Separate each host name or
address with a line break.
Host filters must be host names, or IPv4 or
IPv6 addresses. If you use an IP address, the
packet address must also use this IP
address.
Advanced Parameters
The following table describes the parameters that are displayed in the ACL Pending Manager
component’s Advanced configuration view. Most of the advanced parameters are used for
adjusting the Presence server’s performance. Default values have been provided for these
parameters, and in most cases, these values are sufficient. We recommend contacting
technical Support if you want to change the values.
Administering Presence Services XCP Controller
August 2010
75
Authorization
Parameter
Description
Runlevel
Enter the order in which this component
shuts down. The runlevel must be an integer
value greater than or equal to 0. Component
shutdown is executed in reverse order of the
specified runlevel; components with the
highest level (typically 70) shut down first.
Do not change the runlevel unless you know
exactly what you are doing and understand
the effects that changing it will have. The
default runlevel is provided to help the
system shut down as smoothly as possible,
and is based on this component's
dependencies upon other components.
Timeout for shutdown
Enter the number of seconds that the server
waits to receive acknowledgement from the
component that the shutdown process has
completed. If the component has not shut
down by the time this time period has
elapsed, the router leaves the process in its
current state and continues shutting down
other processes.
Number of packets buffered when
component is down
Enter the number of packets bound for the
component that should be buffered if the
component goes down.
Bounce error packets to stderr
Select Yes if you want the router to send
warnings to stderr when the component is
down.
Router Outbound Connection Information
Select this option only if you want the XCP router to connect to the component. For example,
if the component is running outside your firewall, this option allows the router to connect to
the component safely rather than introducing security risks by letting the component connect
to it. By default, components connect to the router using the router’s Master Accept Port.
76
Buffer size in bytes for outgoing data
Enter the number of bytes the router should
buffer when it sends information to the
component. You may want to modify this
element when working on performance
enhancements.
Buffer size in bytes for incoming data
Enter the number of bytes the router should
buffer when it receives information from the
component. You may want to modify this
element when working on performance
enhancements.
Component IP
Enter the IP address or host name of the
system on which the component is
installed.
Administering Presence Services XCP Controller
August 2010
Authz Authorization
Parameter
Description
Port
Enter the port that the component uses for
communications.
Password
Enter the password that the router uses to
authenticate the component.
Execute an External Command
This option allows the router to start the component automatically. If you prefer to start the
component from a command line, disable this option.
Command line to run
A command that runs the component
automatically is provided by default. You can
modify it if needed.
Do not use the -B argument with this
component. Since the PS logger is already a
daemon process, its children must not be
daemons.
You should not redirect output, because all
output to STDOUT and STDERR will be
redirected to /dev/null.
Hostnames for this Component
This option specifies the hosts for which this component will handle packets. Specify a host
filter only if you want the component to be externally addressable; for example, if you want
clients and other components or programs to communicate with it. This is because the
mod_disco module in JSM uses host filters to return the component as something that
should be discoverable.
Host Filters
Enter the host names or IP addresses for
which you want this component to handle
packets. Separate each host name or
address with a line break.
Host filters must be host names, or IPv4 or
IPv6 addresses. If you use an IP address, the
packet address must also use this IP
address.
XDB Namespace Filters
Enter the namespaces for which you want
this component to handle xdb messages.
Separate each namespace with a line
break.
XDB Host Filters
Enter the host names or IP addresses for
which you want this component to handle
xdb requests. Separate each host name or
address with a line break.
Host filters must be host names, or IPv4 or
IPv6 addresses. If you use an IP address, the
packet address must also use this IP
address.
Administering Presence Services XCP Controller
August 2010
77
Authorization
Licensing
Licensing within Presence Services is used to restrict the number of users that can be
downloaded by the Presence Server. A License is installed on the System Managers WebLM
Server and user licenses are requested by Presence Services as required.
Licensing status can be monitored by the presstatus command line tool ($PRES_HOME/
presence/bin/presstatus) or by monitoring logs and alarms. See Command line tools
Validity
License validity is evaluated based on three criteria:
• Named feature (number of users)
• Version
• Expiration date
Named feature is a feature representing the number of allowed users. The version of the
product must match the allowed version of the installed license. The expiration date on the
license must not be exceeded.
For each criteria the status may be valid, grace or expired. Valid status means that licensing
is in a valid state and working normally. Grace means that the license is no longer valid, this
state may be sustained for 30 days. The Presence Services license must be in a valid state
for over 24 hours and the user must have made an attempt to request licenses from WebLM
before the 30 day count is reset. Expired means that the grace period is exceeded. If there is
no license installed or communication failed with the licensing server then the grace period
started.
Configuration
Licenses must be requested and installed on System Manager. Login to System Manager,
navigate to Licenses on the menu and select Server Properties. Copy the first MAC address
listed (Primary Host ID) and send it in the request indicating the maximum number of users
that may be required.
When a license file is received, use the licensing configuration page to install the license by
selecting the Install option, indicating the location of the license file. The license can now
be navigated using the menu when the Presence Services is operational by clicking on the
“Licensed Products” link. As licenses are acquired and dropped they are displayed at the
link.
Licensing within Presence Services is configured at installation time using the following
variables within the silent install file:
• LICENSING_POLL_INTERVAL=300
• LICENSING_RENEW_INTERVAL=300
• PANTHER_HOST=pantherhost.example.com
78
Administering Presence Services XCP Controller
August 2010
Licensing
The interval values should not be adjusted below 300, the PANTHER_HOST value is required
for multiple components.
Once installed, the above variables can be accessed from the “presence-container-1”
component (Presence Server) within the Web CM.
Administering Presence Services XCP Controller
August 2010
79
Authorization
80
Administering Presence Services XCP Controller
August 2010
Chapter 5:
Access
EventBroker
T his chapter describes how to configure the EventBroker, which redirects Presence Session
Manager (also known as the JSM) and Text Conferencing (TC) packets to external
components. For example, if you have your own authentication system, you may want to copy
all authentication packets to your system in addition to using the XCP server’s authentication
functionality. The EventBroker can be configured as a module in the JSM and as a gear in the
TC component.
Important:
To configure the EventBroker, you must installed the XCP extras installation package.
The EventBroker is more interactive than the ”Legacy Redirect to External Components”
feature. Whereas the legacy redirect feature simply sends a copy of the packet to the external
component, this EventBroker allows the component to respond to JSM or TC. The response
can specify whether to pass or handle the packet. It can also change the contents of the packet;
for example, it can remove sensitive information from the message body.
Redirected packets are not copies of the packets that are sent to TC or JSM. Rather, when TC
and JSM receive packets, they send them on to the external component. The external
component processes the packets and sends them back to TC or to JSM, which then handles
the packets as needed.
If enabled, the following modules will always process the packet before the external
component:
• mod_log
• mod_authz
• mod_eventbroker
Related topics:
Configuring the EventBroker for the Presence Session Manager on page 82
Configuring the EventBroker for Text Conferencing on page 83
OpenPort Configuration on page 84
Example Component on page 85
Protocol: Event Access from External Components on page 89
Administering Presence Services XCP Controller
August 2010
81
Access
Configuring the EventBroker for the Presence Session Manager
This section describes how to configure the EventBroker for the Presence Session Manager.
Related topics:
To configure the EventBroker for JSM on page 82
To configure the EventBroker for JSM
1. Change to the Controller’s Advanced configuration view.
2. In the Router area on the controller’s main page, click the Edit link beside Presence
Session Manager .
3. In the Presence Session Manager Configuration page under Optional
modules , select mod_eventbroker .
4. You must specify a timeout interval to wait for the external component to respond
after a request has been sent. To do this, scroll down to the System Parameters
section, and change the setting for Timeout for XDB requests to a value greater
than '0'.
When the timeout interval expires, JSM sends the request either to the next external
component or to the next module that might handle the event.
5. Scroll further down, and select the Static EventBroker Events option.
6. Click Go to display the EventBroker Event Configuration page.
7. Configure an event as follows:
a. Select an Event and a Type in the corresponding drop-down lists. (Events and
types are described in the online help.)
b. If you selected a Type of ”iq”, you can enter an iq namespace in the IQ
Namespaces text box; for example, jabber:iq:register . IQ packets that are sent
to the external component will be filtered on this namespace. If you leave this
box blank, all IQ packets will be sent to the component.
c. In the JID(s) text box, enter the ID and realm (in the format ID.realm ) of at least
one external component to which the selected event will be redirected.
d. For Event/Error handling , select whether to bounce error packets or to pass
them to the external component.
e. For Fire and Forget? , leave the default setting of No if you want to include the
event as part of the chain. If this is a fire-and-forget event, select Yes .
82
Administering Presence Services XCP Controller
August 2010
EventBroker
f. Click Submit to save your configuration. You are returned to the Presence
Session Manager Configuration page. You can add more events as
needed.
8. If you want to add events that are not included in the Event list in the EventBroker
Event Configuration page, enter the names of configuration elements that contain
redirection rules in the External redirection rules box. The contents of these
elements must match the schema for what is expected in the mod_external.jig
file.
9. Configure an OpenPort component for your external component as described in
OpenPort Configuration . If you plan to configure redirection for TC as well, you can
use the same OpenPort for both JSM and TC.
Configuring the EventBroker for Text Conferencing
In the Text Conferencing configuration, you can configure the EventBroker gear to redirect a
number of event packets to one or more external components.
Related topics:
To configure the EventBroker for Text Conferencing on page 83
To configure the EventBroker for Text Conferencing
1. Change to the Controller’s Advanced configuration view.
2. In the Components area on the controller’s main page, click Edit beside Text
Conferencing .
3. In the Text Conferencing Configuration page, scroll down to the Advanced TC
Features area, and select EventBroker Gear .
4. Click Go to access the EventBroker Event Configuration page.
5. Configure an event as follows:
a. Select an Event in the drop-down list. Events are described in the online
help.
b. In the JID(s) text box, enter the ID and realm (in the format ID.realm ) of at least
one external component to which the event will be redirected.
c. For EventError handling, select bounce or pass . This option determines the
action that the TC component will take if the external component returns an
error or does not respond.
Administering Presence Services XCP Controller
August 2010
83
Access
d. For Fire and Forget?, leave the default setting of No if you want to include the
event as part of the chain. If this is a fire-and-forget event, select Yes.
e. When you have finished, click Submit to save your configuration.
6. Configure an OpenPort component for your external component.
OpenPort Configuration
In addition to configuring EventBroker events in JSM and TC, you must configure an OpenPort
for each external component that you have. You can use the same OpenPort for both JSM and
TC; however, you can configure separate OpenPorts if you prefer. The important thing to
remember is that you must configure a separate OpenPort for each external component.
Related topics:
To configure an OpenPort on page 84
To configure an OpenPort
1. In the Components area on the controller’s main page, select OpenPort in the list,
and then click Go .
2. At the prompt, enter the external component’s ID as the ID of the OpenPort, and
click OK . Do not enter the realm.
Note:
The OpenPort ID must match the JID you entered in the JID(s) text box in the
EventBroker Event Configuration page.
3. In the OpenPort Configuration page, click the check box beside Router
Outbound Connection Information , and enter the Component IP , Port , and
Password for the listening socket.
4. Scroll down and select the XDB option.
5. Do the following:
a. In the Namespace Filters textbox, enter the XDB namespaces for the events
you are redirecting to this component. For example, if event e-session is being
redirected, enter jsm:e_SESSION .
The namespace that you entered in the TC or JSM EventBroker Event
Configuration page does not go here. The namespaces that you can enter here
are defined in the ”Event Access from External Components” protocol described
84
Administering Presence Services XCP Controller
August 2010
EventBroker
in the following section. The event types and their associated namespaces are
listed in the section, Event Types .
b. In the Host Filters textbox, enter the JID of the external component. This must
match the JID that you entered for the component in the EventBroker Event
Configuration page.
6. Click Submit at the bottom of the page to save your configuration.
7. Restart the XCP system.
8. Start the external component so that it connects with IPS logger on the OpenPort.
The Component IP, Port, Password, and ID of the component must match the values
configured for the OpenPort.
Example Component
This section contains an example component, eventbroker.java, which illustrates external
component redirection by changing the phrase ”foo” to ”f**”. The component’s code is provided
in EventBroker.java , and the protocol that it uses is described in Protocol: Event Access from
External Components .
Related topics:
Initial Setup on page 85
To configure a redirect instance and an OpenPort on page 85
EventBroker.java on page 87
Initial Setup
Some initial setup is required before you can run the EventBroker component. You must
configure your redirect instance and an OpenPort component before you can run the
EventBroker component.
To configure a redirect instance and an OpenPort
1. Change to the Controller’s Advanced configuration view.
2. Edit the Presence Session Manager. and select the mod_eventbroker module.
3. In the Presence Session Manager Configuration page under Optional
modules , select mod_evenbroker .
Administering Presence Services XCP Controller
August 2010
85
Access
4. Scroll down, and select the Static EventBroker Events option.
5. Click Go to display the EventBroker Event Configuration page.
6. Configure the event as follows:
a. In the Event list, select es_out .
b. In the Type list, select message .
c. In the JID(s) box, enter eventbroker.jabber (assuming you used the default
values when installing XCP and selected ’presence’ as the realm).
d. Set Event/Error handling to bounce .
e. Leave Fire and Forget? set to No .
7. Click Submit to save your configuration. You are returned to the Presence Session
Manager Configuration page.
8. Click Submit again to return to the Controller’s main page.
9. Add an OpenPort component as described in OpenPort Configuration . Enter
EventBroker for the ID.
10. In the OpenPort Configuration page, select the XDB option, and do the following:
a. Enter jsm:es_OUT in the Namespace Filters box.
b. Enter * in the Host Filters text box.
11. Click Submit to save your configuration.
12. Restart the XCP system.
Next steps
Be sure to perform the EventBroker final tasks and to do the EventBroker component testing
Related topics:
Final tasks on page 86
Component testing on page 87
Final tasks
You must perform the following tasks before you can run the EventBroker component:
1. Make sure that ’.’ and all of the JAR files in $JABBER_HOME/lib are in your
classpath.
2. Compile the source using the following command:
javac -g eventbroker.java
3. Run the EventBroker component using the following command:
86
Administering Presence Services XCP Controller
August 2010
EventBroker
java eventbroker -h localhost -n eventbroker.jabber -p 9000 s test -d debug
The OpenPort component that you configured for the EventBroker should display
a green status of ”Running” on the Controller’s main page.
Component testing
You can test your EventBroker component as follows:
1. Log into the client using two separate users.
2. Send the message ”bar” from one user to the other. The other user should receive
the message, ”bar.”
3. Now send the message ”foo” from one user to the other. The other user should
receive the message, ”f**.”
EventBroker.java
package com.jabber.jcore.example;
import
import
import
import
import
import
import
org.jdom.Element;
com.jabber.jcore.jax.Component;
com.jabber.jcore.jax.Connection;
com.jabber.jcore.jax.ConfigException;
com.jabber.jcore.util.XMPPUtil;
com.jabber.jcore.util.DOMUtil;
com.jabber.jcore.util.logging.Jlog;
/**
* An example EventBroker component that blocks unwanted words.
*/
class EventBroker extends Component {
/**
* Constructor.
*/
public EventBroker() {
super("1.0.0", Component.PROTOCOL_1_0);
}
/**
* This method is used to configure the component.
*
* @param conn
*
The router connection.
* @param config
*
The config element sent by the router.
* @throws ConfigException
*
Thrown when the component configuration is not suitable for
*
configuration. Note that the router connection is closed when
Administering Presence Services XCP Controller
August 2010
87
Access
*
a component fails to configure.
*/
public void onConfig(Connection conn, Element config) throws ConfigException
{
Jlog.debug("EventBroker.onConfig:\n" + DOMUtil.domToString(config));
// Nothing to do here
}
/**
* This method is invoked for each stanza addressed to this component.
*
* @param conn
*
The router connection.
* @param packet
*
An XMPP stanza.
*/
public void onPacket(Connection conn, Element packet)
{
// make sure to configure this component as an XDB component!
/*
* <xdb type="get" to="EventBroker.jabber" from="jsm-1.jabber"
* ns="jsm:es_OUT" id="8"> <event> <original> <message
* from="[email protected]/Exodus" id="jcl_41"
* to="[email protected]" type="chat">
* <thread>34f9cff25302c09a86336c3146eea9129af9d306</thread> <body>some
* food for thought</body> </message> </original> </event> </xdb>
*/
Jlog.debug("EventBroker received packet:\n" +
DOMUtil.domToString(packet));
Element event = packet.getChild("event", packet.getNamespace());
Element original = event.getChild("original", event.getNamespace());
Element message = original.getChild("message", original.getNamespace());
XMPPUtil.swapToFrom(packet);
packet.setAttribute("type", "result");
packet.removeContent(event);
// clean up existing contents, we'll
// replace.
// just pass along, by default
Element res = new Element("response", packet.getNamespace());
res.setAttribute("type", "PASS");
packet.addContent(res);
Element body = message.getChild("body", message.getNamespace());
if (body != null) {
String bodyText = body.getText();
if (bodyText.matches(".*foo.*")) {
// modify the message if it contains
/*
* <xdb type="result" from="EventBroker.jabber"
* to="jsm-1.jabber" ns="jsm:es_OUT" id="19"> <response
* type="PASS"> <original> <message
* from="[email protected] id="jcl_41"
* to="[email protected]" type="chat">
* <thread>34f9cff25302c09a86336c3146eea9129af9d306</
* <body>some f**d for thought</body> </message> </original>
* </response> </xdb>
*/
bodyText = bodyText.replaceAll("foo", "f**");
body.setText(bodyText);
}
}
88
// copy in the modified message.
Element o = new Element("original", res.getNamespace());
o.addContent((Element)message.clone());
res.addContent(o);
Administering Presence Services XCP Controller
August 2010
EventBroker
}
conn.send(packet);
/**
* Called by the framework when the component by the router or some
* asynchronous
*/
protected void _shutdown() {
Jlog.debug("EventBroker._shutdown invoked");
// Nothing to do here
}
/**
* Run the EventBroker Component.
*/
public static void main(String argv[]) {
EventBroker comp = new EventBroker();
// The application blocks here for
int retval = comp.run(argv);
Jlog.debug("EventBroker exited with " +
((retval == 0) ? "SUCCESS" : "ERROR"));
System.exit(retval);
}
} /* EventBroker class */
Protocol: Event Access from External Components
The EventBroker protocol, ”Event Access from External Components,” can be used by the
JSM mod_eventbroker module or by the TC EventBroker gear to talk to XCP server
components, enabling those components to accomplish most of what a JSM module or a TC
gear can do.
Important:
The protocol still contains references to ”ecr”.
Related topics:
Terms on page 90
Requirements on page 90
Use Cases on page 90
Response Types on page 93
XDB Protocol on page 96
Dynamic Event Registration/Unregistration on page 101
Example JSM Event Flows on page 108
Error Codes on page 109
Security Considerations on page 109
IANA Considerations on page 109
Presence Registrar Considerations on page 109
Notes on page 109
Administering Presence Services XCP Controller
August 2010
89
Access
Terms
The following terms are used in this protocol:
JSM
The Presence Session Manager
TC
Text Conferencing
Components Extensions to XCP that can connect directly to the IPS logger router. In this
context, they are components that are listening for this protocol.
Events
Both TC and JSM are event based components, generating events for items
of interest such as initial login, room creation, sending an outgoing message,
and so on.
PASS
Event processing should continue in the originating component (TC or JSM).
HANDLE
Event processing should cease in the originating component (TC or JSM).
fire-forget
Event processing will continue in router non-blocked. The router will not expect
a response from consumer.
chain
Event processing will block in router and a response will be expected for nonerror conditions.
Requirements
• Components must be able to return PASS or HANDLE for any event.
• Some events have a stanza associated with them. For example, a new user registration
event is associated with a stanza which may contain that user's username, email address,
and so on. Components must be able to modify the stanza associated with any event,
such that subsequent event handlers get the modified version.
• It must be possible to have multiple different components registered for the same event,
with a well-defined order of execution.
• Event types should be extensible, so that, for example, the Text Conferencing component
could use the same protocol to be extended externally.
Use Cases
These use cases all show events having associated stanzas. Not all event types will include
a stanza, however.
90
Administering Presence Services XCP Controller
August 2010
EventBroker
Related topics:
Event is passed through on page 91
Event is passed through with a modified stanza on page 91
Event is handled on page 92
Event is passed through with a modified stanza and extra stanzas on page 92
Event is passed through
The component wants to PASS to the next event handler. Perhaps the component is providing
access control, and has determined that this event may continue to be processed. The event
type is passed along so the that consumer is not required to preserve knowledge of
registrations.
JSM makes a request
<xdb type='get'
to='component'
from='jsm1.capulet.com'
ns='jsm:es_OUT'
id='1'>
<event type='chain'>
<original>
<message from='[email protected]/balcony'
to='[email protected]/garden'
type='chat'>
<body>Wherefore art thou, Romeo?</body>
</message>
</original>
<event>
</xdb>
Component returns result
<xdb type='result'
from='component'
to='jsm1.capulet.com'
ns='jsm:es_OUT'
id='1'>
<response type='PASS'/>
</xdb>
Event is passed through with a modified stanza
If the component wants to modify the stanza before passing it along, it includes the modified
stanza in the result
Component returns result with modified stanza
<xdb type='result'
from='component'
to='jsm1.capulet.com'
ns='jsm:es_OUT'
id='1'>
<response type='PASS'>
<original>
<message from='[email protected]/balcony'
to='[email protected]/garden'
Administering Presence Services XCP Controller
August 2010
91
Access
type='chat'>
<body>Dude, where's my Romeo?</body>
</message>
</original>
</response>
</xdb>
Event is handled
If the component wants to block further processing of this event, it returns a type of
HANDLE.
Component returns result to block further processing of this event
<xdb type='result'
from='component'
to='jsm1.capulet.com'
ns='jsm:es_OUT'
id='1'>
<response type='HANDLE'/>
</xdb>
Considerations
Handled responses should not contain a modified original element. The original element will
be discarded by the JSM module.
Event is passed through with a modified stanza and extra stanzas
If the component wants to include more stanzas to be sent on behalf of the user associated
with the event, it may send them directly through the IPS logger router. In this case, the
component should inform JSM that it should not continue processing of the original stanza.
Otherwise ordering issues may arise.
Component takes over handling of the stanza in order to add additional
messages
<xdb type='result'
from='component'
to='jsm1.capulet.com'
ns='jsm:es_OUT'
id='1'>
<response type='HANDLE'/>
</xdb>
<message xmlns='jabber:client'
from='[email protected]/balcony'
to='[email protected]/garden'
type='chat'>
<body>[WARNING] Never give out sensitive information.</body>
</message>
<message from='[email protected]/balcony'
to='[email protected]/garden'
type='chat'>
<body>Wherefore art thou, Romeo?</body>
</message>
<message xmlns='jabber:client'
from='[email protected]/balcony'
to='[email protected]/garden'
type='chat'>
92
Administering Presence Services XCP Controller
August 2010
EventBroker
<body>[WARNING] This user has not been verified.</body>
</message>
Considerations
It should be noted that sending these new messages will generate events, thus making it
possible to configure the system with infinite loops. If, for example, a component registers for
the normal stanza delivery event and uses that event to inject a new stanza, it should be
prepared to receive the new stanza back as part of a later normal stanza delivery event.
With careful use, however, the ability to inject new stanzas into the xmpp stream is quite
powerful.
Response Types
• PASS : continue processing
• HANDLE : stop processing
Event Types
JSM
Master event types
jsm:e_SESSION
after initial authentication, signals the final creation of a session. The
only valid response is PASS.
jsm:e_OFFLINE
tanza arriving for a user who is currently offline.
jsm:e_SERVER
stanza addressed to the server itself.
jsm:e_DELIVER
called for all stanzas sent from one user to another user.
jsm:e_AUTH
user is authenticating.
jsm:e_REGISTER
called immediately prior to new user registration.
jsm:e_REG_CB
called immediately after successful new user registration.
jsm:e_STATS
called periodically to collect statistics. The only valid response is
PASS.
jsm:e_DISCOFEAT gather disco features from each module.
jsm:e_PRISESSION called to determine the primary/default session used in delivery.
Session event types
jsm:es_IN
for packets coming into the session
jsm:es_OUT
for packets originating from the session
Administering Presence Services XCP Controller
August 2010
93
Access
jsm:es_END
when a session ends
Text conferencing
For all of the onAfter events defined below, the only valid and acceptable response is PASS
since these are simply notifications of something that has already taken place. In case of
violation of this rule by the external component, the action taken by the TC external gear is left
to the implementation. Any modification to original stanza requested by external component
as part of the response to these events will not have any effect.
Service event types
tc:onServicePacket
This event is fired when the system receives a packet from the
router which is either addressed directly to the tc service itself
(tc.foo.com) or to a room which does not currently exist in the
system.
tc:onBeforeRoomCreate A gear is attempting to create a room in the system.
tc:onAfterRoomCreate
A room has been successfully created in the system. The only
valid response is PASS with no modification to original stanza.
tc:onServiceDiscoInfo
This method is called when an entity has sent a disco#info packet
to the service itself. The only valid response is PASS.
tc:onServiceReconfig
The method called when the TC service receives a signal to
reconfigure itself. The only valid response is PASS with no
modification to original stanza.
tc:onBeforeChangeUser A change has been requested of either a user role, nickname, or
presence. This includes on entry, exit, nick change, availability
change, or any role change (granting/revoking voice, moderator
privilege)
Room event types
94
tc:onDestroy
The room owner has decided to close the room. The only
valid response is PASS with no modification to original
stanza.
tc:onClose
A gear makes a request to close the room.
tc:onPacket
A new XML stanza is received directed at a room or
participant within a room.
tc:onMetaInfoGet
Report configuration information available. The only valid
response is PASS.
tc:onBeforeMetaInfoSet
About to modify configuration based on options chosen by
the user
tc:onAfterMetaInfoSet
Modified configuration based on options chosen by the user.
The only valid response is PASS with nothing in it.
Administering Presence Services XCP Controller
August 2010
EventBroker
tc:onExamineRoom
A Presence entity requests information (via browse, or
disco) to the room in question. The only valid response is
PASS.
tc:onAfterChangeUser
A user has changed. The only valid response is PASS with
nothing in it.
tc:onBeforeChangeAffiliation User affiliation about to change.
tc:onAfterChangeAffiliation
User affiliation changed. The only valid response is PASS
with nothing in it.
tc:onBeforeRemoveAffiliation An affiliation is about to be removed
tc:onAfterRemoveAffiliation
An affiliation should go away. The only valid response is
PASS with no modification to original stanza.
tc:onBeforeJoin
A user is about to join the room
tc:onAfterJoin
A user has joined the room. The only valid response is PASS
with nothing in it.
tc:onLeave
A user has left the room. The only valid response is PASS
with no modification to original stanza.
tc:onBeforeSubject
The subject is about to change
tc:onAfterSubject
The subject has changed. The only valid response is PASS
with nothing in it.
tc:onBeforeInvite
A user is about to be invited
tc:onAfterInvite
A user has been invited. The only valid response is PASS
with nothing in it.
tc:onHistory
History has been requested. The only valid response is
PASS with no modification to original stanza.
tc:onBeforeSend
Message is about to be sent
tc:onBeforeBroadcast
Message is about to be broadcast
S2S event types
Support for these events may be added in a future release, but is not planned for version 4.2
of XCP. More analysis is needed to determine if these are the correct events for S2S, since
S2S does not support events at this time.
Service event types
s2s:s_onBeforeConnect
S2S is about to connect to an external domain.
s2s:s_onAfterConnect
S2S has connected to an external domain.
s2s:s_onBeforeAccept
S2S is about to allow a connection from an external domain.
s2s:s_onAfterAccept
S2S has allowed a connection from an external domain.
Administering Presence Services XCP Controller
August 2010
95
Access
Connection event types
s2s:c_onBeforeSend
About to send a stanza out an S2S connection.
s2s:c_onAfterSend
Sent a stanza out an S2S connection.
s2s:c_onBeforeReceive
About to receive a stanza from an S2S connection.
s2s:c_onAfterReceive
Received a stanza from an S2S connection.
XDB Protocol
The xdb protocol is documented and explained in this section. First the outline is presented,
followed by information specific to events.
Related topics:
Outline on page 96
JSM event info on page 96
TC event info on page 98
Outline
The general protocol is for the xdb request to contain one element named <event/>. The event
element in turn contains two optional elements named <original/> and <info/>. The original
element, if present, contains the stanza that caused this event to be triggered. Note that in
some cases, there is no explicit stanza associated with an event. The info element, if present,
contains additional information about the event. This element should be used in cases where
the stanza alone is not enough for the external component to make a decision on processing
of the event. The info element provides the event context information in such cases. The info
element has an xmlns attribute that uniquely identifies the schema for the element.
The stanza inside the original element is the presence, iq, message or route element that
triggered this event. The contents of the info element shall depend on the particular event type,
and is documented in the following sub-sections.
JSM event info
The JSM events for which the info tag is defined are the es_END and e_PRISESSION
events.
es_END
For this event, there is no associated original stanza so the relevant information is sent as part
of info tag. The xmlns for the info tag is http://www.jabber.com/eventinfo/jsm/
session. Here is an example of an es_END event.
<xdb type='get'
from='jsm1.capulet.com'
to='component'
ns='jsm:es_END'
id='1'>
<event type='fire-forget'>
96
Administering Presence Services XCP Controller
August 2010
EventBroker
<info xmlns="http://www.jabber.com/eventinfo/jsm/session">
<session-jid>[email protected]/83F0838</session-jid>
<physical-jid>[email protected]/12F1FD948</physical-jid>
<logical-jid>[email protected]/balcony</logical-jid>
</info>
</event>
</xdb>
e_PRISESSION
There is also no associated original stanza for the e_PRISESSION event. The relevant
information must then be sent with the info tag. The associated namespace for this info tag is
http://www.jabber.com/eventinfo/jsm/prisession. There is also a response
necessary as this is considered a query for the suggested primary session.
JSM Primary Session selection info
<xdb type='get'
from='jsm1.capulet.com'
to='component'
ns='jsm:e_PRISESSION'
id='1'>
<event type='chain'>
<info xmlns='http://www.jabber.com/eventinfo/jsm/prisession">
<sessions type='get'>
<session logical-jid='[email protected]/JM'
physical-jid='[email protected]/11DEF3B21'
session-jid='[email protected]/82DC0E8'
priority='5'>
<presence from='[email protected]/JM'>
<priority>5</priority>
<x from='[email protected]/JM'
stamp='20061006T19:30:53'
xmlns='jabber:x:delay'/>
</presence>
</session>
<session logical-jid='[email protected]/JM2'
physical-jid='[email protected]/22ABF4E01'
session-jid='[email protected]/81410DF'
priority='10'>
<presence from='[email protected]/JM2'>
<priority>10</priority>
<x from='[email protected]/JM2'
stamp='20061006T20:12:34'
xmlns='jabber:x:delay'/>
</presence>
</session>
</sessions>
</info>
</event>
</xdb>
Possible answers to this query can be an error condition, a selection of no session, a selection
of one of the provided sessions in the info tag, or simply passing on the event with the previously
described PASS response. Unless passing to use the default session, all responses must be
of type HANDLE.
Error condition
<xdb type='result'
to='jsm1.capulet.com'
from='component'
ns='jsm:e_PRISESSION'
Administering Presence Services XCP Controller
August 2010
97
Access
id='1'>
<response type='HANDLE'>
<info xmlns='http://www.jabber.com/eventinfo/jsm/prisession">
<sessions type='error'/>
</info>
</response>
</xdb>
Note:
The session tags are not required in this error response, and it is good practice to remove
them, but it is not required.
Selection of NULL session (offline storage)
<xdb type='result'
to='jsm1.capulet.com'
from='component'
ns='jsm:e_PRISESSION'
id='1'>
<response type='HANDLE'>
<info xmlns='http://www.jabber.com/eventinfo/jsm/prisession">
<sessions type='result'/>
</info>
</response>
</xdb>
Selection of provided valid session
<xdb type='result'
to='jsm1.capulet.com'
from='component'
ns='jsm:e_PRISESSION'
id='1'>
<response type='HANDLE'>
<info xmlns='http://www.jabber.com/eventinfo/jsm/prisession">
<sessions type='result'>
<session logical-jid='[email protected]/JM'
physical-jid='[email protected]/11DEF3B21'
session-jid='[email protected]/82DC0E8'
priority='5'>
<presence from='[email protected]/JM'>
<priority>5</priority>
<x from='[email protected]/JM'
stamp='20061006T19:30:53'
xmlns='jabber:x:delay'/>
</presence>
</session>
</sessions>
</info>
</response>
</xdb>
Note:
It is the first child to the sessions element that will be used as the valid session.
TC event info
The info tag is used to convey additional context information for the following TC events.
98
Administering Presence Services XCP Controller
August 2010
EventBroker
TC service events
For proper handling of TC service events, information about the actor (user who initiated this
event) needs to be included in the xdb request. The information that needs to be sent includes
the full jid of the user and whether the user is an admin for the TC service. The xmlns for the
info tag is ”r;http://www.jabber.com/eventinfo/muc/service”. The syntax is shown below.
TC Service Event actor info
<xdb type='get'
from='jsm1.capulet.com'
to='component'
ns='tc:onBeforeRoomCreate'
id='1'>
<event type='chain'>
<original>
....
</original>
<info xmlns="http://www.jabber.com/eventinfo/muc/service">
<actor jid='[email protected]/balcony' admin='no'/>
</info>
</event>
</xdb>
TC room events
For proper handling of TC room events, information about the actor (user who initiated this
event) needs to be included in the xdb request. The information that needs to be sent includes
the full jid of the user, the nick jid, the affiliation with the room, current role, and whether the
user is an admin for the TC service. The xmlns for the info tag is ”r;http://www.jabber.com/
eventinfo/muc/room”. The syntax is given below. The room events that use a different event
info namespace are defined in the following sub-sections.
TC Room Event actor info
<xdb type='get'
from='jsm1.capulet.com'
to='component'
ns='tc:onBeforeJoin'
id='1'>
<event type='chain'>
<original>
....
</original>
<info xmlns="http://www.jabber.com/eventinfo/muc/room">
<actor jid='[email protected]/balcony' admin='no'
nick='damsel' role='member' affiliation='member'/>
</info>
</event>
</xdb>
TC room events - onBeforeChangeUser and onAfterChangeUser
These events are generated when the corresponding TC protocol iq is received from the client.
A single iq can contain requests for changing multiple users and an event is generated for each
user. It does not make sense to send the entire iq for each event. Hence there is a need to
come up with a xml structure to send the relevant information as part of the event. For the
events onBeforeChangeUser and onAfterChangeUser, the information that needs to be sent
is: user being changed, the TC room, new nick, new role, old nick, old role and current affiliation
Administering Presence Services XCP Controller
August 2010
99
Access
of the user to the room. The xmlns defined for event info is ”r;http://www.jabber.com/eventinfo/
muc/room/ChangeUser”. The syntax is given below.
TC Room Event ChangeUser info
<xdb type='get'
from='jsm1.capulet.com'
to='component'
ns='tc:onBeforeChangeUser'
id='1'>
<event type='fire-forget'>
<info xmlns="http://www.jabber.com/eventinfo/muc/room/ChangeUser">
<actor jid='[email protected]/balcony' admin='no'
nick='damsel' role='member' affiliation='member'/>
<changeuser jid='[email protected]/garden'
room='[email protected]'
affiliation='member'>
<old nick='macho' role='member'/>
<new nick='adonis' role='moderator'/>
</changeuser>
</info>
</event>
</xdb>
TC room events - onBeforeChangeAffiliation and onAfterChangeAffiliation
These events are generated when the corresponding TC protocol iq is received from the client.
A single iq can contain requests for changing multiple users and an event is generated for each
user. It does not make sense to send the entire iq for each event. Hence there is a need to
come up with a xml structure to send the relevant information as part of the event. For events
onBeforeChangeAffiliation and onAfterChangeAffiliation, the information that needs to be sent
is: user being changed, the TC room, old affiliation and new affiliation. The xmlns defined
is ”r;http://www.jabber.com/eventinfo/muc/room/ChangeAffiliation”. The syntax is given
below.
TC Room Event ChangeAffiliation info
<xdb type='get'
from='jsm1.capulet.com'
to='component'
ns='tc:onBeforeChangeAffiliation'
id='1'>
<event type='chain'>
<info xmlns="http://www.jabber.com/eventinfo/muc/room/
ChangeAffiliation">
<actor jid='[email protected]/balcony' admin='no'
nick='damsel' role='member' affiliation='member'/>
<changeaffiliation jid='[email protected]'
room='[email protected]'
oldaffiliation='member'
newaffiliation='moderator'/>
</info>
</event>
</xdb>
TC room events - onBeforeRemoveAffiliation and onAfterRemoveAffiliation
These events are generated when the corresponding TC protocol iq is received from the client.
A single iq can contain requests for changing multiple users and an event is generated for each
user. It does not make sense to send the entire iq for each event. Hence there is a need to
100
Administering Presence Services XCP Controller
August 2010
EventBroker
come up with a xml structure to send the relevant information as part of the event. For events
onBeforeRemoveAffilation and onAfterRemoveAffiliation, the information that needs to be sent
is: user jid, the TC room and the current affiliation. The xmlns for event info is ”r;http://
www.jabber.com/eventinfo/muc/room/RemoveAffiliation”. The syntax is given below.
TC Room Event RemoveAffiliation info
<xdb type='get'
from='jsm1.capulet.com'
to='component'
ns='tc:onBeforeRemoveAffiliation'
id='1'>
<event type='fire-forget'>
<info xmlns="http://www.jabber.com/eventinfo/muc/room/
RemoveAffiliation">
<actor jid='[email protected]/balcony' admin='no'
nick='damsel' role='member' affiliation='member'/>
<removeaffiliation jid='[email protected]'
room='[email protected]'
affiliation='member'/>
</info>
</event>
</xdb>
Dynamic Event Registration/Unregistration
An event consumer can register for inclusion to the event chain. The registration may be one
of only two types. A fire and forget registration, and a traditional insertion to the event chain.
If the type is not that of ’r;chain’ or ’r;fire-forget’ a (BAD_REQUEST) will be returned. Fire and
forget registration implies that the consumer will not respond to the event. Behavior in this case
may be that of PASS or HANDLE. Inclusion to the event chain will suspend processing until
consumer responds with a result, error, or a timeout threshold is achieved. The error behavior
in this case can again be that of PASS or HANDLE. A consumer can further filter on packet
type (message, presence, iq, subscription, all) and in the case of iq packet type a namespace
filter can be added. If not a packet type of iq the namespace attribute will be ignored. If no
packet type is included in registration then ’r;all’ is assumed. Current protocol does not support
multiple register/unregister children per single iq request. Only the first child per iq will be
handled and processed.
Supported Events
Event Name
Purpose
jsm:e_SESSION
Register for e_SESSION event
jsm:e_OFFLINE
Register for e_OFFLINE event
jsm:e_SERVER
Register for e_SERVER event
jsm:e_DELIVER
Register for e_DELIVER
jsm:e_AUTH
Register for e_AUTH
Administering Presence Services XCP Controller
August 2010
101
Access
Event Name
102
Purpose
jsm:e_REGISTER
Register for e_REGISTER
jsm:e_STATS
Register for e_STATS
jsm:e_DISCOFEAT
Register for e_DISCOFEAT
jsm:es_IN
Register for es_IN
jsm:es_OUT
Register for es_OUT
jsm:es_END
Register for es_END
tc:onServicePacket
Register for onServicePacket
tc:onBeforeRoomCreate
Register for onBeforeRoomCreate
tc:onAfterRoomCreate
Register for onAfterRoomCreate
tc:onServiceDiscoInfo
Register for onServiceDiscoInfo
tc:onServiceReconfig
Register for onServiceReconfig
tc:onDestroy
Register for onDestroy
tc:onClose
Register for onClose
tc:onPacket
Register for onPacket
tc:onMetaInfoGet
Register for onMetaInfoGet
tc:onBeforeMetaInfoSet
Register for onBeforeMetaInfoSet
tc:onAfterMetaInfoSet
Register for onAfterMetaInfoSet
tc:onExamineRoom
Register for onExamineRoom
tc:onBeforeChangeUser
Register for onBeforeChangeUser
tc:onAfterChangeUser
Register for onAfterChangeUser
tc:onBeforeChangeAffiliation
Register for onBeforeChangeAffiliation
tc:onAfterChangeAffiliation
Register for onAfterChangeAffiliation
tc:onBeforeRemoveAffiliation
Register for onBeforeRemoveAffiliation
tc:onAfterRemoveAffiliation
Register for onAfterRemoveAffiliation
tc:onBeforeJoin
Register for onBeforeJoin
tc:onAfterJoin
Register for onAfterJoin
tc:onLeave
Register for onLeave
tc:onBeforeSubject
Register for onBeforeSubject
tc:onAfterSubject
Register for onAfterSubject
tc:onBeforeInvite
Register for onBeforeInvite
tc:onAfterInvite
Register for onAfterInvite
Administering Presence Services XCP Controller
August 2010
EventBroker
Event Name
Purpose
tc:onHistory
Register for onHistory
tc:onBeforeSend
Register for onBeforeSend
tc:onBeforeBroadcast
Register for onBeforeBroadcast
Supported packet filters
Packet Type
Filter Created
message
Filter on JPACKET_MESSAGE
presence
Filter on JPACKET_PRESENCE
iq
Filter on JPACKET_IQ
subscription
Filter on JPACKET_S10N
all
No packet filtering; default behavior is
JPACKET_ALL
Related topics:
Server disco#info response on page 103
Registration for event on page 104
Unregistration for event on page 105
Event consumer requests registered events on page 107
Server disco#info response
Server responds to disco#info request with dynamic EventBroker information
Registerable events communicated with service discovery extensions (XEP-0128)
<iq type='get'
from='consumer.capulet.com'
to='capulet.com'
id='001'>
<query xmlns='http://jabber.org/protocol/disco#info'/>
</iq>
<iq type='result'
from='capulet.com'
to='consumer.capulet.com'
id='001'>
<query xmlns='http://jabber.org/protocol/disco#info'>
<feature var='http://www.jabber.com/schemas/dynamic-ecr.xsd'/>
<x xmlns='jabber:x:data' type='result'>
<field var='FORM_TYPE' type='hidden'>
<value>http://www.jabber.com/schemas/dynamic-ecr.xsd</value>
</field>
<field var='http://www.jabber.com/schemas/dynamic-ecr.xsd'>
<value>jsm:e_SESSION</value>
<value>jsm:e_OFFLINE</value>
<value>jsm:e_SERVER</value>
<value>jsm:e_DELIVER</value>
<value>jsm:e_AUTH</value>
<value>jsm:e_REGISTER</value>
<value>jsm:e_STATS</value>
Administering Presence Services XCP Controller
August 2010
103
Access
<value>jsm:e_DISCOFEAT</value>
<value>jsm:es_IN</value>
<value>jsm:es_OUT</value>
<value>jsm:es_END</value>
</field>
</x>
</query>
</iq>
Registration for event
Consumer attempts to register for e_DELIVER event
Request for inclusion to event chain with an error behavior of HANDLE.
<iq type='set'
from='consumer.capulet.com'
to='capulet.com'
id='001'>
<query xmlns='http://www.jabber.com/schemas/dynamic-ecr.xsd'>
<register event='jsm:e_DELIVER'
type='chain'
behavior='HANDLE'/>
</query>
</iq>
Consumer attempts to register for e_DELIVER event
Request for fire and forget with an event behavior of PASS.
<iq type='set'
from='consumer.capulet.com'
to='capulet.com'
id='001'>
<query xmlns='http://www.jabber.com/schemas/dynamic-ecr.xsd'>
<register event='jsm:e_DELIVER'
type='fire-forget'
behavior='PASS'/>
</query>
</iq>
Consumer attempts to register for e_OFFLINE event
Request for inclusion to event chain and a JPACKET_MESSAGE filter.
<iq type='set'
from='consumer.capulet.com'
to='capulet.com'
id='001'>
<query xmlns='http://www.jabber.com/schemas/dyanmic-ecr.xsd'>
<register event='jsm:e_OFFLINE'
type='chain'
packet-type='message'
behavior='HANDLE'/>
</query>
</iq>
Registration is successful – result is returned
<iq type='result'
id='001'
to='consumer.capulet.com'
from='capulet.com'/>
104
Administering Presence Services XCP Controller
August 2010
EventBroker
Registration unsuccessful – already registered
The consumer already registered for this event and possible filter combination.
<iq type='error'
to='consumer.capulet.com'
from='capulet.com'
id='001'>
<error code='409' type='cancel'>
<conflict xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
</error>
</iq>
Registration unsuccessful – iq request unsupported
The; iq request contained an unsupported event, unsupported behavior, unsupported type,
unsupported packet-type, or some other unexpected xml.
<iq type='error'
to='consumer.capulet.com'
from='capulet.com'
id='001'>
<error code='400' type='modify'>
<bad-request xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
</error>
</iq>
Registration unsuccessful – jid not in component list
The sending jid is not contained in the component list. Presence users/admins cannot register
for event consumption, request must be sent from consuming component.
<iq type='error'
to='consumer.capulet.com'
from='capulet.com'
id='001'>
<error code='401' type='cancel'>
<not-authorized xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
</error>
</iq>
Unregistration for event
An event consumer can unregister for registered events. This will remove the consumer from
inclusion in the event chain. If no additional filters are given then all events for sending jid will
be removed. If packet type filter of iq is used then and additional attribute of namespace can
be added to further restrict search.
Consumer attempts to unregister for concerned event
<iq type='set'
to='capulet.com'
from='consumer.capulet.com'
id='002'>
<query xmlns='http://www.jabber.com/schemas/dynamic-ecr.xsd'>
<unregister event='jsm:e_DELIVER'/>
</query>
</iq>
Consumer attempts to unregister for event with specific filter match
<iq type='set'
to='capulet.com'
Administering Presence Services XCP Controller
August 2010
105
Access
from='consumer.capulet.com'
id='002'>
<query xmlns='http://www.jabber.com/schemas/dynamic-ecr.xsd'>
<unregister event='jsm:e_OFFLINE'
packet-type='message'/>
</query>
</iq>
Consumer attempts to unregister for event with specific filter match of packet
type and namespace
<iq type='set'
to='capulet.com'
from='consumer.capulet.com'
id='002'>
<query xmlns='http://www.jabber.com/schemas/dynamic-ecr.xsd'>
<unregister event='jsm:e_DELIVER'
packet-type='iq'
namespace='jabber:iq:version'/>
</query>
</iq>
Unregistration is successful – consumer will no longer be notified of event
<iq type='result'
to='consumer.capulet.com'
from='capulet.com'
id='002'/>
Unregistration unsuccessful – consumer not registered for event
The consumer has not previously registered for this event and filter combination.
<iq type='error'
to='consumer.capulet.com'
from='capulet.com'
id='002'>
<error code='404' type='cancel'>
<item-not-found xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
</error>
</iq>
Unregistration unsuccessful – unsupported event or packet type
The consumer has requested unregistration for unsupported event, unsupported packet type,
or has sent some other unexpected xml.
<iq type='error'
to='consumer.capulet.com'
from='capulet.com'
id='002'>
<error code='400' type='modify'>
<bad-request xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
</error>
</iq>
Unregistration unsuccessful – jid not in component list
The sending jid is not contained in the component list. Presence users/admins cannot register
for event consumption; therefore, cannot unregister for any events.
<iq type='error'
to='consumer.capulet.com'
from='capulet.com'
id='002'>
106
Administering Presence Services XCP Controller
August 2010
EventBroker
<error code='401' type='cancel'>
<not-authorized xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
</error>
</iq>
Event consumer requests registered events
An event consumer can request a list of events that the entity has been successfully
registered.
Consumer requests list of registered events
<iq type='get'
to='capulet.com'
from='consumer.capulet.com'
id='003'>
<query xmlns='http://www.jabber.com/schemas/dynamic-ecr.xsd'/>
</iq>
Server responds with registered list
<iq type='result'
to='consumer.capulet.com'
from='capulet.com'
id='003'>
<query xmlns='http://www.jabber.com/schemas/dynamic-ecr.xsd'/>
<registered event='jsm:es_END'
type='fire-forget'
behavior='PASS'/>
<registered event='jsm:e_DELIVER'
type='chain'
packet-type='message'
behavior='HANDLE'/>
<registered event='jsm:e_SESSION'
type='chain'
packet-type='all'
behavior='PASS'/>
<registered event='jsm:e_DISCOFEAT'
type='chain'
packet-type='iq'
behavior='PASS'/>
</query>
</iq>
Request unsuccessful – consumer not contained in component list
<iq type='error'
from='capulet.com'
to='consumer.capulet.com'
id='003'>
<error code='401' type='cancel'>
<not-authorized xmlns='urn:ieft:params:xml:ns:xmpp-stanzas'/>
</error>
</iq>
Administering Presence Services XCP Controller
August 2010
107
Access
Example JSM Event Flows
Message sent between two local online users
1. Romeo sends a message to Juliet.
2. As the message leaves Romeo's session, it generates an es_OUT event.
3. If all handlers pass on the event, it next generates an e_DELIVER event.
4. If all handlers pass on the event, it generates an es_IN event as it enters Juliet’s
session.
5. Juliet receives the message.
Message sent from a local user to an offline local user
1. Romeo sends a message to Juliet, who is sleeping.
2. As the message leaves Romeo’s session, it generates an es_OUT event.
3. If all handlers pass on the event, it next generates an e_DELIVER event.
4. If all handlers pass on the event, after detecting that Juliet is offline, it generates an
e_OFFLINE event.
5. If all previous handlers pass on the event, mod_offline, registered for e_OFFLINE,
stores the message for later retrieval.
Message sent from remote user to a local user
1. Romeo sends a message to Juliet from afar.
2. If S2S events are implemented, a s2s:c_onBeforeReceive event is fired.
3. If S2S events are implemented, a s2s:c_onAfterReceive event is fired.
4. Since Romeo’s session is managed on a foreign server, no es_OUT event is fired
in JSM.
5. The first event generated in JSM is an e_DELIVER event.
6. If all handlers pass on the event, it generates an es_IN event as it enters Juliet’s
session.
7. Juliet receives the message.
User requests roster
1. Romeo sends a roster retrieval request.
2. As the request leaves Romeo’s session, it generates an es_OUT event.
3. mod_roster, registered for es_OUT, retrieves user’s roster and sends it to Romeo.
4. As the result enters Romeo’s session, it generates an es_IN event.
5. Romeo receives his roster.
108
Administering Presence Services XCP Controller
August 2010
EventBroker
Error Codes
Error code 409 (conflict) is used on registration failure when consumer registers for an event
that is already registered under its name. Error code 400 (bad request) is used to signify bad
protocol and/or bad values for an unsuccessful registration attempt. Error code 401 (not
authorized) is used to signify requesting agent is not recognized as a component by the system.
Error code 404 (item not found) is used for unsuccessful unregistration when the requested
event has not been previously registered.
Security Considerations
Non-trusted sources cannot send XDB requests or responses.
IANA Considerations
No interaction with the Internet Assigned Numbers Authority (IANA) [1] is required.
Presence Registrar Considerations
No interaction with Presence Registrar [2] is required.
Notes
Internet Assigned Numbers Authority (IANA)
The IANA is the central coordinator for the assignment of unique parameter values for Internet
protocols. For further information, see http://www.iana.org.
Reserved Presence namespaces
The Presence Registrar maintains a list of reserved Presence namespaces as well as a registry
of parameters used in the context of XEPs approved by the JSF. For further information, see
http://www.xmpp.org/registrar.
Administering Presence Services XCP Controller
August 2010
109
Access
Category Configuration
An InfoBroker category is a high-level data organizer that contains nodes of information to
which users can publish and subscribe.
Configuring a Category
Perform the configuration described in this section first. Then, if you want to fine-tune your
configuration, configure the parameters described in Advanced Configuration parameters .
1. Change to the Controller's Intermediate configuration view.
2. Configure the following parameters:
Node prefix for this
category
Enter the name of the category.
InfoBroker driver
Leave this field blank unless you are using a custom
driver.
Load function
The load function loads the driver. Select a function from
the drop-down list. ps_memdriver stores published
items in memory; ps_databasedriver writes published
items to a database.
Note:
When you select ps_databasedriver , nodes
contained in the category are not deleted from the
database when you delete the category through the
Controller.
Deliver published
items with
notification?
Select Yes if you want details to accompany the
notification that something has been published. If you
select No , only the notification is sent to users.
Notify subscribers
when items are
deleted?
Select Yes to notify subscribers when items in the
category are deleted.
Allow anyone to
Select Yes to allow any user to subscribe to nodes in this
subscribe to nodes in category. If you select No , only InfoBroker administrators
this category?
can subscribe to nodes in the category.
Allow anyone to
create nodes in this
category?
110
Select Yes to allow any user to create nodes in this
category. If you select No , only InfoBroker administrators
can create nodes in the category.
Administering Presence Services XCP Controller
August 2010
Category Configuration
3. Select the Database Setup option if you want to configure a database that is
different than the one configured for the Core Router in the Global Settings
Configuration screen.
Database Setup Parameters
Datasource Name
For the PostgreSQL database, this is the name of the
component's datasource as specified in the .odbc.ini file.
For Oracle, the datasource is specified in the
ORACLE_SID environment variable or in the
tsnames.ora file. For DB2, this is typically the database
alias.
Database User
Name
Enter the username used to connect to the database.
Database User's
Password
Enter the password used to connect to the database.
Confirm Password
Enter the password again to confirm it.
Database Type
Select the type of database you are using from the pulldown list.
Important:
If you select postgresql-odbc, you must add the line,
"MaxVarcharSize=4000" to the datasource definition
used by the Message Archiver in the .odbc.ini file.
Number of
connections tothe
database
Enter the number of connections that you want the
component to use for processing requests.
Time in seconds
between database
connection
heartbeats
Enter the number of seconds after which the database
connection should refresh. Do not set this value to 0
without contacting technical support.
4. Click Submit to save your configuration. You are returned to the InfoBroker
Configuration screen.
Advanced Configuration Parameters
The parameters described in this section display in the Controller's Advanced configuration
view. They allow you to configure more advanced category features.
Category
Only send notifications to
subscribers who are online?
Select Yes to if you do not want users who are offline to
receive notifications of new or changed information in this
Administering Presence Services XCP Controller
August 2010
111
Access
category. Selecting Yes makes the category presenceenabled.
If you select No , notifications are sent to everyone who is
subscribed to nodes in this category regardless of whether
they are online.
Presence IDs for Proxy Entities
Presence ID(s)
Enter one or more Presence IDs of the users whom you
want to administer this particular category.
Node Configuration
Maximum items for each node Enter the maximum number of items that can be contained
in each node in the category.
Maximum subscriptions for
each node
Enter the maximum number of subscriptions that can occur
for each node in the category.
Maximum affiliations for each
node
Enter the maximum number of users who can be affiliated
with the node. Affiliations include Owner, Publisher, None,
and Outcast.
Database Setup
Is database debug logging
enabled?
Select 1 to log database debug information.
InfoBroker
Important:
To get the InfoBroker component up and running, follow the instructions in Configuring the
InfoBroker. Then, if you want to fine tune your configuration, you can configure the
parameters in the Controller's Advanced configuration view.
The InfoBroker is an enabling technology, which means that you must write an application that
uses its functionality. (See the InfoBroker chapter in the XCP Server Developer Guide for more
information.) The InfoBroker allows you to organize different types of information into
categories that are accessible by users of your application. Users can create, publish to, and
subscribe to nodes within categories. With XCP 5.2, the InfoBroker also supports the use of
extended stanza addressing, which enables XMPP stanzas to specify multiple recipients or
sub-addresses. (See XEP-0060 and XEP-0033 for more information about the InfoBroker,
which is also known as "Publish Subscribe" and its ability to use extended stanza addressing.)
112
Administering Presence Services XCP Controller
August 2010
InfoBroker
Note:
To install the InfoBroker package, you must first purchase a license.
Configuring the InfoBroker
Perform the configuration described in this section first.
This section provides instructions for getting the InfoBroker component up and running quickly
by configuring the parameters provided in the Controller's Intermediate configuration view. The
parameters provided in the Intermediate view are sufficient to configure an operational
InfoBroker component.
1. Change to the Controller's Intermediate configuration view.
2. Select the Router Outbound Connection Information option only if you want to
configure parameters that allow the router to connect to the component.
For example, if the component is installed on a system that is running outside your
firewall, this option allows the XCP router to connect to the component safely rather
than introducing security risks by having the component connect to the router. (If
you do not configure this option, the component will connect to the router using the
Master Accept Port that is configured for the Core Router.)
Router Outbound Connection Parameters
Component IP
Enter the IP address or hostname of the system on which
the component is installed.
Port
Enter the port that the component uses for
communications.
Password
Enter the password that the router uses to authenticate
the component. A default is provided if the command
configuration is used. You can change this value as
needed.
3. The Execute an External Command option is enabled by default and allows the
component to be started automatically by the router.
If you prefer to start the component from a command line, disable this option.
Command line to run
A command that runs the component automatically is provided by default. You can
modify it if needed.
Caution:
Do not use the -B argument with this component. Since the IPS logger is already
a daemon process, its children must not be daemons.
Administering Presence Services XCP Controller
August 2010
113
Access
You should not redirect output, because all output to STDOUT and STDERR will
be redirected to /dev/null.
4. Under Hostnames for this Component, specify a Host Filter only if you want the
component to be externally addressable
For example, if you want clients and other components or programs to communicate
with it. This is because the mod_disco module in JSM uses host filters to return the
component as something that should be discoverable.
Host Filters
By default, the XCP server's hostname prepended by "info-broker" is provided in
the textbox.
Enter the hostnames or IP addresses for which you want this component to handle
packets. Separate each hostname or address with a line break. By default, this field
contains the hostname of the system on which the XCP server is installed
prepended by "info-broker"; for example:
info-broker.example.com
Enter an asterisk (*) in the textbox to enable the component to handle data from
any host.
Caution:
If you configure SDNS to run in front of this component, leave this field blank.
Because the hostname for which this component handles packets must be
specified in the SDNS component's configuration, if you add the hostname in this
configuration as well, the same packets are sent to the host twice.
Note:
Host filters must be hostnames, or IPv4 or IPv6 addresses. If an IP address is
used, the packet address must also use this IP address.
5. ForInfoBroker Administrators, type the IDs of users who can administer
categories and nodes; for example, [email protected].
Separate each ID with a line break. InfoBroker administrators can create, configure,
and delete categories and nodes by sending appropriate protocol stanzas to the
InfoBroker component.
6. For Default category , enter the node prefix of the category that acts as the default
when a user adds a node without specifying a particular category.
An InfoBroker category is a name that is used as a prefix for organizing nodes of
information. You can create multiple categories, each of which can contain many
nodes. You can also specify whether or not users can create and publish to nodes
within each particular category. You should always have at least one category.
7. To add a new category, click the Go button to access the Category Configuration
screen.
114
Administering Presence Services XCP Controller
August 2010
InfoBroker
Note:
Nodes contained in the category are not deleted from the database when you
delete the category through the Controller.
8. If you want to configure logging for the component, see Component Logging (Jlog)
for parameter descriptions.
9. If you want to enable SNMP , click the checkbox next to the SNMP Configuration
option.
10. When you have finished, click Submit to save your configuration.
11. Restart your system.
Advanced Configuration Parameters
Configuration parameters that are provided in the Controller's Advanced configuration view
are described below in their respective sections. These parameters let you configure advanced
settings such as runlevel, buffer sizes, thread counts, and custom loggers. They require a more
advanced level of XCP server knowledge and can be used for fine tuning your XCP system
on a granular level. Default values have been provided for required Advanced parameters.
Runlevel
The order in which this component shuts down. The runlevel must be an integer value greater
than or equal to 0. (Component shutdown is executed in reverse order of the specified runlevel;
components with the highest level (typically 70) shut down first.)
Caution:
Do not change the runlevel unless you know exactly what you are doing and understand the
effects that changing it will have. The default runlevel is provided to help the system shut
down as smoothly as possible, and is based on this component's dependencies upon other
components.
Timeout for Shutdown
The number of seconds that the server waits to receive acknowledgement from the component
that the shutdown process has completed.
Note:
If the component has not shut down by the time this time period has elapsed, the XCP core
router leaves the process in its current state and continues shutting down other
processes.
Component Properties
Select the Component Properties option if you want to configure the number of packets that
are buffered when the component is down and whether to send error packets to stderr.
Administering Presence Services XCP Controller
August 2010
115
Access
Number of packets buffered Enter the number of packets bound for the component that
when component is down
should be buffered if the component goes down.
Bounce error packets to
stderr
Select Yes if you want the router to send warnings to stderr
when the component is down.
Router Outbound Connection Information
Buffer size in bytes for
outgoing data
Enter the number of bytes the router should buffer when it
sends information to the component. You may want to modify
this element when working on performance enhancements.
Buffer size in bytes for
incoming data
Enter the number of bytes the router should buffer when it
receives information from the component. You may want to
modify this element when working on performance
enhancements.
Keep-alive interval in
seconds
Enter the number of seconds after which the router sends a
keep-alive to the component. The keep-alive helps prevent
firewalls from dropping an unused connection to the
component. If this option is set to 0 or left empty, keep-alives
are disabled.
Log delivery of packets to
this component
Select Yes if you want the data that the router delivers to the
component to be logged. The information is logged to the
logger(s) you set up during IPS Logger configuration (syslog,
file, or stderr).
Socket-level logging happens only at the debug level.
Execute an External Command
Maximum interval in
seconds to wait before
restarting component
Enter the maximum number of seconds after which the router
tries to restart the component.
If the component goes down, the router tries to restart it after
1 second. If the component is not running yet, the router
multiplies the wait time by 1.5, and retires after the longer time.
Once the maximum time interval that you specify in this field
is reached, the router continues to retry after waiting this
amount of time.
Maximum number of times
to restart component
Enter the total number of restarts allowed. The default setting,
-1, means unlimited.
Note:
If you want to be able to kill the component from the
command line and prevent it from starting again
automatically, you must set this number to something other
than -1. For example, if you set it to 1, the component will
not restart once you have killed it; if you set it to 2, the
component will only restart once, and so on.
116
Administering Presence Services XCP Controller
August 2010
InfoBroker
Interval in seconds at which The number of seconds that the component has been up and
to reset this value to 1
running, after which to set the restart time back to 1 second.
second
Path to Binary
The directory path to the shell that launches the component.
You can change the default setting if needed.
InfoBroker Configuration
Number of threads to
Enter the number of threads that you want to have processing
dedicate to InfoBroker tasks tasks in the component. Increasing this value enables
InfoBroker to handle more tasks at a time. However, it spends
more time scheduling the tasks as this number goes up.
We recommend that you set this number to one more than the
number of processors on your system.
Number of managed
queues to dedicate to
InfoBroker tasks
Enter the number of queues that you want the InfoBroker
component to use. This number reflects the concurrent
number of anticipated InfoBroker nodes divided by 20.
Enable stanza optimization
support
Click the checkbox to enable stanza optimization support for
the component.
Number of publish
recipients to trigger an
extended address stanza
Enter the number of recipients required to cause an extended
address stanza to be used rather than individual packets.
Multiple optimizer address
threshold
Important:
This option is to be used mainly for fine-tuning your system.
The default value that is supplied should be sufficient in
most cases.
Enter the number of recipients per found stanza optimizer to
warrant separating a single packet into many. Take the
following scenario, for example:
• Three stanza optimizers are found for
domain.example.com.
• This stanza optimizer receives a packet with 400 recipients
to domain.example.com.
• The optimizer address threshold is set to 100.
In this case, each stanza optimizer would handle
approximately 133 recipients, warranting three extended
stanza packets rather than one.
Using the same scenario but with only 200 recipients, each
optimizer would then handle approximately 66 recipients
each. This situation does not warrant splitting the packet.
Therefore, only one packet will be sent to one optimizer for
local delivery.
Administering Presence Services XCP Controller
August 2010
117
Access
Probe presence for all
subscribers at startup?
Select Yes if, upon component startup, you want the system
to query the presence status of all entities that are subscribed
to nodes under presence-enabled categories. Also, select
Yes if you are starting the component or system after an
extended period of downtime, in order to refresh the presence
information.
Add a new custom logger
Click the Go button to access the Custom Logger Configuration screen, in which you can
specify the library and library entry point function for a custom logger.
SNMP Configuration
Count errors
Select Yes only if you want to enable SNMP error counting.
This option takes a great deal of server resource; use it with
caution.
InfoBroker
The InfoBroker is an enabling technology, which means that you must write an application that
uses its functionality. The InfoBroker allows you to organize different types of information into
categories that are accessible by users of your application. Users can create, publish to, and
subscribe to nodes within categories.
Some of the ways you can implement the InfoBroker include:
• Broadcasting messages to text conferencing rooms
• Notifying users of certain events
• Pushing news content
• Enabling extended presence attributes that are popular in wireless communication (for
example, storing user location data)
The InfoBroker is XEP-60 compliant..
The InfoBroker also supports the use of extended stanza addressing, which enables XMPP
stanzas to specify multiple recipients or subaddresses. See XEP-0033: Extended Stanza
Addressing for more information about the InfoBroker and its ability to use extended stanza
addressing.
Related topics:
Planning Your Deployment on page 119
InfoBroker Configuration on page 119
Creating and Publishing to Nodes on page 122
118
Administering Presence Services XCP Controller
August 2010
InfoBroker
Data Drivers on page 123
XEP-60 Compliance on page 124
Example Implementations on page 126
InfoBroker Parameter Reference on page 128
Category Parameter Reference on page 132
Planning Your Deployment
If you have a small deployment, you can configure the InfoBroker service as a single
component. However, if your deployment is larger, you should add multiple InfoBroker
components using the Single Domain Name Support functionality to spread the load over
multiple machines as shown in Figure 21 .
You can redirect InfoBroker stanzas based on the node identifier. This means that any given
InfoBroker instance handles a subset of the total number of InfoBroker nodes in the system.
How large a subset it handles is determined by how many nodes are in the system and how
many InfoBroker instances are available to share the load.
InfoBroker Configuration
This section provides instructions for configuring the InfoBroker component and categories
using the parameters provided in the controller’s Intermediate configuration view. These
parameters are sufficient to configure an operational InfoBroker.
Related topics:
Configuring the InfoBroker Component on page 119
Configuring Categories on page 120
To configure a category on page 121
Configuring the InfoBroker Component
The following instructions describe only the intermediate parameters that are specific to the
InfoBroker component. For descriptions of all of the parameters associated with the
component, see InfoBroker Parameter Reference .
Related topics:
To configure the InfoBroker component on page 120
Administering Presence Services XCP Controller
August 2010
119
Access
To configure the InfoBroker component
1. Change to the controller’s Intermediate configuration view.
2. In the Components area on the controller’s main page, select InfoBroker in the
list, and then click Go .
3. In the InfoBroker Configuration page, scroll down to the InfoBroker
Configuration area.
4. Configure the parameters as follows.
Parameter
Description
InfoBroker
Administrators
Enter the JIDs of users who can administer categories and
nodes; for example, [email protected]. Separate each
ID with a line break.
Default category
An InfoBroker category is a name that is used as a prefix for
organizing nodes of information. Enter the node prefix of the
category that acts as the default when a user adds a node
without specifying a particular category. You can create
multiple categories, each of which can contain many nodes.
You should always have at least one category.
5. Click Go beside Add a new Category to configure a category. Instructions for
configuring categories are provided in the next section.
6. When you have finished configuring the component and one or more categories,
click Submit to save your configuration.
Configuring Categories
A category is a prefix on the name of an InfoBroker node and is used conceptually to organize
the flat (non-hierarchical) nature of nodes. All nodes in a single category have the same
configuration. The InfoBroker places a hierarchy on node identifiers as defined in XEP-60 .
The following instructions describe only the intermediate parameters that are specific to
InfoBroker categories. For descriptions of the advanced parameters associated with
categories, see Category Parameter Reference .
120
Administering Presence Services XCP Controller
August 2010
InfoBroker
To configure a category
1. On the InfoBroker Configuration page, click Go beside Add a New Category .
The Category Configuration page is displayed.
2. Configure the first seven parameters as follows.
Parameter
Description
Node prefix for this
category
Enter a name for the category.
InfoBroker Driver
Leave this box blank unless you are using a custom
driver.
Load function
The load function loads the driver. Select a function in
the list. The ps_memdriver function stores published
items in memory; The ps_databasedriver function
writes published items to a database.
When you select the ps_databasedriver function,
nodes contained in the category are not deleted from
the database when you delete the category through the
controller.
Deliver published items Select Yes if you want details to accompany the
with notification?
notification that something has been published. If you
select No, only the notification is sent to users.
Notify subscribers
when items are
deleted?
Select Yes to notify subscribers when items in the
category are deleted.
Allow anyone to
subscribe to nodes in
this category?
Select Yes to allow any user to subscribe to nodes in
this category. If you select No, only InfoBroker
administrators can subscribe to nodes in the category.
Allow anyone to create Select Yes to allow any user to create nodes in this
nodes in this category? category. If you select No, only InfoBroker
administrators can create nodes in the category.
3. The InfoBroker requires a database—Oracle, PostgreSQL, or DB2. If you
configured one of these database when you installed the XCP server, you do not
have to configure one here. However, if you want to use a different database for the
InfoBroker, or if you selected SQLite during installation, select the Database Setup
option and configure the parameters.
The database parameters are described as follows.
Administering Presence Services XCP Controller
August 2010
121
Access
Parameter
Description
Datasource Name
For the PostgreSQL database, this is the name of the
component’s datasource as specified in the .odbc.ini
file. For Oracle, the datasource is specified in the
ORACLE_SID environment variable or in the
tsnames.ora file. For DB2, this is typically the database
alias.
Database User Name
Enter the username used to connect to the database.
Database User’s
Password
Enter the password used to connect to the database.
Confirm Password
Enter the password again to confirm it.
Database Type
Select the type of database you are using from the list.
Note:
If you select postgresql-odbc, you must add the line,
MaxVarcharSize=4000 to the datasource
definition used in the .odbc.ini file.
Number of
connections to the
database
Enter the number of connections that you want the
component to use for processing requests.
Time in seconds
Enter the number of seconds after which the database
between database
connection should refresh. Do not set this value to zero
connection heartbeats without contacting technical support.
4. Click Submit to save your configuration.
Creating and Publishing to Nodes
A node is a virtual location to which information can be published and from which event
notifications and/or payloads can be received. An application that is created to use the
InfoBroker feature should allow its users to create nodes and to publish to nodes on the XCP
server. Three methods are available for doing this:
• XMPP sent from a client
• XMPP sent from a custom component
• A request sent through a Web Services application
The XMPP that must be sent from a client or a custom component to the XCP server to create
or publish to a node is explained in detail in XEP-60 .
InfoBroker is one of three XCP services that have been made available through a Web Services
component and API. You can develop a Web Services application that allows users to create
122
Administering Presence Services XCP Controller
August 2010
InfoBroker
and publish to nodes on the XCP server. (See the Web Services API Development Guide for
more information.)
Data Drivers
The InfoBroker component has a driver interface for the storage of data. As requests come in,
the InfoBroker controller hands them off to the correct driver based upon the category to which
the information is being published. This enables published information to be placed in a data
store that is appropriate for that type of information. Transient data may be stored in memory
whereas persistent data may be stored in a relational database. There are two generic drivers
—one for memory storage and one for database storage.
RDBMS Driver
An RDBMS data driver provides the ability to store the XML payload of a publish request as a
large object (LOB) only. No attempt is made to parse out the contents of the payload or to map
the contents into a customer’s existing schema. The RDBMS driver is written using DBI
libraries, and can use Oracle or PostgreSQL databases.
Memory Drivers
The memory driver stores information in physical RAM. All data is lost when the InfoBroker
component is shut down. This driver provides a high-speed alternative to the RDBMS driver
when using the InfoBroker service for notification only or for when the data integrity provided
by the RDBMS driver is not essential.
Custom Drivers
You may provide your own drivers that take advantage of knowledge of the format of the item
being published to a particular category. For example, you may provide your own RDBMS
driver for geolocation information that breaks the fields apart into longitude, latitude, and
altitude. Doing so may provide another service the ability to search based on published
information.
Subscription Storage
An RDBMS subscription driver will provide the ability to store subscriptions to a specific
schema. No in-memory driver is provided.
Limitations
Given that a great deal of state information is stored in InfoBroker, attention has been given to
speed and reliability first, with simplicity in design and implementation a secondary design goal.
A survey of popular InfoBroker systems (Sienna, Gryphon, Elvin, and JMS) reveals that all
such systems have subtle race conditions. For example, in a distributed environment, both
Elvin and the JMS InfoBroker interface do not guarantee that transient subscriptions will
receive information published immediately following the initial subscription request. These
types of race conditions are an accepted market standard, and also exist in the the Presence
implementation.
Administering Presence Services XCP Controller
August 2010
123
Access
XEP-60 Compliance
This section describes how the of the InfoBroker component deviates from the protocol and
specifications laid out in XEP-60 . XEP-60 defines the XMPP Standards Foundation protocol
for generic InfoBroker systems. The current implementation includes all must implement
features defined in the XEP. Several should and may implement features have not yet been
implemented. The sections in the Presence implementation differs from the XEP match the
following headings.
Related topics:
Requirements on page 124
Affiliations on page 124
Subscription States on page 124
Entity Use Cases on page 125
Owner Use Cases on page 125
Implementation Notes on page 125
Requirements
Presence implementation does not support the following:
• Direct Node Addressing – This is defined as a may implement part of the specification.
• Dynamic Node Configuration – This is defined as a may implement part of the
specification.
• Configurable options for each subscriber – This is defined as a may implement part of the
specification.
Affiliations
Presence implementation does not support the affiliation of “ outcast.” This is not defined as a
must implement part of the specification. All other affiliations are supported.
Subscription States
Presence implementation allows the following subscription states:
• Subscribed: The entity will receive event notifications (and possibly payloads) when a
new item is published to the node.
• Pending: The entity is allowed to subscribe. During category configuration (see
“ Configuring Categories” on page 42 ), you can allow anyone to subscribes to nodes
124
Administering Presence Services XCP Controller
August 2010
InfoBroker
within the category. This is how Presence has implemented “ white-list” node functionality.
Presence implementation does not implement any subscription approval process.
• Unsubscribed: The entity is not receiving event notifications.
Entity Use Cases
The following Entity Use Cases are optional and are not currently implemented:
• Approving and Denying Subscription Requests
• Configure Subscription Options
• Discover Nodes
• Discover Items for a Node
Create a new node
Presence implementation currently does not support “ instant nodes,” where an entity requests
a new node without providing a node identifier. This is a may implement feature.
Presence implementation currently does not support sending an initial item to publish with the
node creation request. This is a should implement feature.
Subscribe
Presence implementation does not deliver any items when a user subscribes to a node. They
must perform the “ Get Items” use case to fetch the current items. This is a may implement
feature.
Delete items
Presence implementation does not allow nodes to be configured to send notification messages
when items are deleted. This is a may implement feature.
Owner Use Cases
The following use case is optional and not currently implemented:
Configure a Node
Implementation Notes
Categories
Presence implementation places a hierarchy on node identifiers. The system allows the
administrator to configure multiple categories. All nodes in a single category have the same
configuration.
Administering Presence Services XCP Controller
August 2010
125
Access
Disco support
The InfoBroker component responds to disco#info and disco#item requests. The response to
disco#items is a list of the configured categories. Each category responds to a disco#info
request with the configured features.
Meta-nodes
Presence implementation does not support Meta-Nodes. This is a should implement feature.
Example Implementations
This section describes some ways in which you can implement the InfoBroker functionality
Related topics:
Protocols for Extended Presence on page 126
Creating a Node Hierarchy for Extended Presence on page 126
Protocols for Extended Presence
The following lists current work in the XMPP Standards Foundation to define acceptable
protocols for some extended presence attributes using the InfoBroker protocol.
• XEP-080 – User Geolocation
• XEP-084 – User Avatar
• XEP-107 – User Mood
• XEP-108 – User Activity
• XEP-118 – User Tune
Note:
The protocols outlined in these XEPs have not been standardized. However, the XEPs
describe possible ways in which you can implement these protocols using the InfoBroker
technology.
Creating a Node Hierarchy for Extended Presence
This section describes a possible implementation of extended presence functionality using
InfoBroker. It is intended as an example of how to structure categories in InfoBroker for
handling a particular application.
126
Administering Presence Services XCP Controller
August 2010
InfoBroker
Problem statement
Create a hierarchy of InfoBroker categories that:
• Provides extended presence attributes for network connectivity, geolocation, and mood
• Provides different access controls for different attributes
Network connectivity may be globally accessible whereas geolocation is available only to
allowed subscribers.
Permits discovery of supported attributes for a given user of the system
For example, a user may access more features of the system through a PC-based client than
through a cell-phone client. It must be possible to discover which features that client
supports.
Categories
The configuration for each attribute is likely to be the same among users of that particular
feature; therefore, the categories are created hierarchically based first on the extended
presence attribute and then on the particular MSISDN using that feature. The following node
identifiers illustrate how you may structure the information for Users A and B:
/Wireless/Network/UserA/Wireless/Network/UserB/Wireless/Geoloc/UserA/Wireless/Geoloc/
UserB/Wireless/Mood/UserA/Wireless/Mood/UserB
Network presence is made available to anyone, stores only the last published item so that it
can be queried to retrieve the last availability information, allows publishing only by the network
service, and allows only administrators to create new nodes. Geolocation is available only to
subscribers, and stores the last two items (the user’s current and previous location). Mood is
not considered an essential function, so this category stores only the last item in memory rather
than storing it in a database.
In addition to these three categories, a meta-category is created to permit searching for
supported features. Read access is granted to everyone for this category:
/UserData/UserA/UserData/UserB
Process flow
The process flow is provided as follows:
1. UserA has been using the mood service for awhile. When the user was added to
the system, items were published to the UserData node to indicate which services
he or she is using. UserA has the following nodes:
/Wireless/Mood/UserA (happy)/Wireless/Network/UserA (online)/UserData/UserA
(/Wireless/Mood) (/Wireless/Network)
2. UserA decides to activate the geolocation service.
3. The geolocation service creates the following node:
/Wireless/Geoloc/UserA
4. The geolocation service also publishes to the UserData node to reflect that UserA
is using an additional service:
Administering Presence Services XCP Controller
August 2010
127
Access
/UserData/UserA (Wireless/Mood) (Wireless/Network) (Wireless/Geoloc)
5. The geolocation service publishes to the Geoloc node:
/Wireless/Geoloc/UserA (denver)
Anyone who wants to discover what nodes are available for UserA may simply send an
InfoBroker ’get’ request to UserData/UserA.
InfoBroker Parameter Reference
This section describes the parameters associated with the InfoBroker component. The
parameters are divided into subsections based on the configuration view in which they
display.
Related topics:
Intermediate Parameters on page 128
Advanced Parameters on page 130
Intermediate Parameters
The following table describes the parameters that are displayed in the controller’s Intermediate
configuration view. These parameters are sufficient to configure an operational InfoBroker
component.
Parameter
Description
Description
The description is displayed in the Components area on the controller’s
main page and should help you distinguish between components of the
same type when you have more than one configured. You can change
the description as needed.
Router Outbound Connection Information
Select this option only if you want the XCP router to connect to the component. For example,
if the component is running outside your firewall, this option allows the router to connect to
the component safely rather than introducing security risks by letting the component connect
to it. By default, components connect to the router using the router’s Master Accept Port.
Component IP
Enter the IP address or host name of the system on which the
component is installed.
Port
Enter the port that the component uses for communications.
Password
Enter the password that the router uses to authenticate the
component.
Execute an External Command
This option allows the router to start the component automatically. If you prefer to start the
component from a command line, disable this option.
128
Administering Presence Services XCP Controller
August 2010
InfoBroker
Parameter
Command line to
run
Description
A command that runs the component automatically is provided by
default. You can modify it if needed.
Note:
Do not use the -B argument with this component. Since IPS logger
is already a daemon process, its children must not be daemons.
You should not redirect output, because all output to STDOUT and
STDERR will be redirected to /dev/null.
Hostnames for this Component
This option specifies the hosts for which this component will handle packets. Specify a host
filter only if you want the component to be externally addressable; for example, if you want
clients and other components or programs to communicate with it. This is because the
mod_disco module in JSM uses host filters to return the component as something that
should be discoverable.
Host Filters
By default, the XCP server’s host name prepended by “ info-broker” is
provided in the textbox.
Enter the host names or IP addresses for which you want this
component to handle packets. Separate each host name or address
with a line break.
Host filters must be host names, or IPv4 or IPv6 addresses. If you use
an IP address, the packet address must also use this IP address.
Note:
If you configure SDNS to run in front of this component, leave this
field blank. Because the host name for which this component handles
packets must be specified in the SDNS component’s configuration, if
you add the host name in this configuration as well, the same packets
are sent to the host twice.
InfoBroker Configuration
InfoBroker
Administrators
InfoBroker administrators can create, configure, and delete categories
and nodes by sending appropriate protocol stanzas to the InfoBroker
component.
Enter the JIDs of users who can administer categories and nodes; for
example, [email protected]. Separate each ID with a line break.
InfoBroker Categories
Default category
An InfoBroker category is a name that is used as a prefix for organizing
nodes of information. Enter the node prefix of the category that acts as
the default when a user adds a node without specifying a particular
category. You can create multiple categories, each of which can contain
many nodes. You should always have at least one category.
Component Logging (Jlog)
Select the Component Logging (Jlog) option only if you want to configure filtered level
loggers that log messages to syslog and to a stream (stderr or stdout). You can enable either
or both the syslog and stream loggers. These parameters are displayed in the controller’s
Intermediate and Advanced configuration views.
Administering Presence Services XCP Controller
August 2010
129
Access
Parameter
Description
For descriptions of Component Logging parameters, see “ Component Logging (Jlog)” on
page 407.
SNMP Configuration
Select this option if you want to configure SNMP for the component.
Enable SNMP
Leave this parameter set to Yes.
Advanced Parameters
The following table describes the parameters that are displayed in the controller’s Advanced
configuration view. Advanced parameters are used for adjusting the performance of the XCP
system. We recommend that you call technical Support if you need to change these parameter
settings.
Parameter
Description
Runlevel
Enter the order in which this component shuts down. The runlevel must
be an integer value greater than or equal to zero. Component shutdown
is executed in reverse order of the specified runlevel; components with
the highest level (typically 70) shut down first.
Do not change the runlevel unless you know exactly what you are doing
and understand the effects that changing it will have. The default
runlevel is provided to help the system shut down as smoothly as
possible, and is based on this component’s dependencies upon other
components.
Timeout for
shutdown
Enter the number of seconds that the server waits to receive
acknowledgement from the component that the shutdown process has
completed. If the component has not shut down by the time this time
period has elapsed, the router leaves the process in its current state and
continues shutting down other processes.
Component Properties
Number of
Enter the number of packets bound for the component that should be
packets buffered buffered if the component goes down.
when component
is down
Bounce error
packets to stderr
Select Yes if you want the router to send warnings to stderr when the
component is down.
Router Outbound Connection Information
Buffer size in
Enter the number of bytes the router should buffer when it sends
bytes for outgoing information to the component. You may want to modify this element
data
when working on performance enhancements.
130
Administering Presence Services XCP Controller
August 2010
InfoBroker
Parameter
Description
Buffer size in
bytes for
incoming data
Enter the number of bytes the router should buffer when it receives
information from the component. You may want to modify this element
when working on performance enhancements.
Send keepalives
Select Yes if you want the router to send keep-alives to the component.
The keep-alive helps prevent firewalls from dropping an unused
connection to the component. If this option is set to No, keep-alives are
disabled.
Log the delivery
of packets to this
component
Select Yes if you want to log the data that the router delivers to the
component. The information is logged to the logger(s) you set up during
IPS Logger configuration (syslog, file, or stderr). Socket-level logging
happens only at the debug level.
Execute an External Command
Maximum interval
in seconds to wait
before restarting
component
Enter the maximum number of seconds after which the router tries to
restart the component. If the component goes down, the router tries to
restart it after one second. If the component does not start, the router
multiplies the wait time by 1.5, and tries again. Once the maximum time
interval that you specify for this parameter is reached, the router
continues to retry after waiting this amount of time.
Maximum
number of times
to restart
component
Enter the total number of restarts allowed. The default setting, -1, means
unlimited.
Interval in
Enter the number of seconds that the component has been up and
seconds at which running, after which to set the restart time back to one second.
to reset this value
to 1 second
Path to binary
Enter the directory path to the shell that launches the component. You
can change the default setting if needed.
InfoBroker Configuration
Number of
threads to
dedicate to
InfoBroker tasks
Enter the number of threads that you want to have processing tasks in
the component. Increasing this value enables the component to handle
more tasks at a time. However, it spends more time scheduling the tasks
as this number increases.
We recommend that you set this number to one more than the number
of processors on your system.
Number of
Enter the number of queues that you want this component to use. This
managed queues number reflects the concurrent number of anticipated InfoBroker nodes
to dedicate to
divided by 20.
InfoBroker tasks
Enable stanza
Select this option to enable stanza optimization support for the
optimization
component.
support (XEP-33)
Administering Presence Services XCP Controller
August 2010
131
Access
Parameter
Description
Number of
Enter the number of recipients required to cause an extended address
publish recipients stanza to be used rather than individual packets.
to trigger an
extended
address stanza
Multiple optimizer
address
threshold
Note:
This option is to be used mainly for fine-tuning your system. The
default value that is supplied should be sufficient in most cases.
Enter the number of recipients per found stanza optimizer to warrant
separating a single packet into many. Take the following scenario, for
example:
In this case, each stanza optimizer would handle approximately 133
recipients, warranting three extended stanza packets rather than one.
Using the same scenario but with only 200 recipients, each optimizer
would then handle approximately 66 recipients each. This situation does
not warrant splitting the packet. Therefore, only one packet will be sent
to one optimizer for local delivery.
Probe presence
Select Yes if, upon component startup, you want the system to query
for all subscribers the presence status of all entities that are subscribed to nodes under
at startup?
presence-enabled categories. Also, select Yes if you are starting the
component or system after an extended period of downtime in order to
refresh the presence information.
Component Logging (Jlog)
Add a new
custom logger
If you have created a custom logger for logging component information
using the libjcore library, click Go to access the Custom Logger
Configuration page.
SNMP Configuration
Count errors
Select Yes only if you want to enable SNMP error counting. This option
takes a great deal of server resource, so use it with caution.
Category Parameter Reference
This section describes the parameters associated with InfoBroker categories. The parameters
are divided into subsections based on the configuration view in which they display.
Related topics:
Intermediate Parameters on page 133
Advanced Parameters on page 134
132
Administering Presence Services XCP Controller
August 2010
InfoBroker
Intermediate Parameters
The following table describes the parameters that are displayed in the controller’s Intermediate
configuration view.
Parameter
Description
Node prefix for
this category
Enter a name for the category.
InfoBroker driver
Leave this box blank unless you are using a custom driver.
Load function
The load function loads the driver. Select a function in the list. The
ps_memdriver function stores published items in memory; The
ps_databasedriver function writes published items to a database.
When you select the ps_databasedriver function, nodes contained in
the category are not deleted from the database when you delete the
category through the controller.
Deliver published Select Yes if you want details to accompany the notification that
items with
something has been published. If you select No, only the notification is
notification?
sent to users.
Notify
Select Yes to notify subscribers when items in the category are
subscribers when deleted.
items are
deleted?
Allow anyone to
subscribe to
nodes in this
category?
Select Yes to allow any user to subscribe to nodes in this category. If
you select No , only InfoBroker administrators can subscribe to nodes
in the category.
Allow anyone to
create nodes in
this category?
Select Yes to allow any user to create nodes in this category. If you
select No , only InfoBroker administrators can create nodes in the
category.
Database Setup
Select this option if you want to configure a database that is different from the one configured
for the core router in the Global Settings Configuration page.
Datasource
Name
For the PostgreSQL database, this is the name of the component’s
datasource as specified in the .odbc.ini file. For Oracle, the datasource
is specified in the ORACLE_SID environment variable or in the
tsnames.ora file. For DB2, this is typically the database alias.
Database User
Name
Enter the username used to connect to the database.
Database User’s
Password
Enter the password used to connect to the database.
Confirm
Password
Enter the password again to confirm it.
Administering Presence Services XCP Controller
August 2010
133
Access
Parameter
Database Type
Description
Select the type of database you are using from the list.
Note:
If you select postgresql-odbc, you must add the line,
“ MaxVarcharSize=4000” to the datasource definition used in
the .odbc.ini file.
Number of
Connections to
the database
Enter the number of connections that you want the component to use
for processing requests.
Time in seconds
between
database
connection
heartbeats
Enter the number of seconds after which the database connection
should refresh. Do not set this value to zero without contacting technical
support.
Advanced Parameters
The following table describes the parameters that are displayed in the controller’s Advanced
configuration view.
Parameter
Description
Only send
notifications to
subscribers who
are online?
Select Yes to if you do not want users who are offline to receive
notifications of new or changed information in this category. Selecting
Yes presence-enables the category.
If you select No, notifications are sent to everyone who is subscribed to
nodes in this category regardless of whether they are online.
JIDs for Proxy
Entities
Enter the JIDs of the users whom you want to administer this particular
category.
Maximum items
for each node
Enter the maximum number of items that can be contained in each node
in the category.
Maximum
subscriptions for
each node
Enter the maximum number of subscriptions that can occur for each
node in the category.
Maximum
affiliations for
each node
Enter the maximum number of users who can be affiliated with the node.
Affiliations include Owner, Publisher, None, and Outcast.
Database Setup
Is database
debug logging
enabled?
134
Select ’1’ to log database debug information. Database logging uses the
XCP router’s logging facility, the IPS Logger. The log level must be set
to debug for database logging to occur.
Administering Presence Services XCP Controller
August 2010
InfoBroker
Administering Presence Services XCP Controller
August 2010
135
Access
136
Administering Presence Services XCP Controller
August 2010
Chapter 7:
Connection managers
The Connection Manager (Communication Manager) enables IM clients to connect to the Presence
Services server. You can configure an additional instance of the Communication Manager to increase the
number of connections your server can handle.
When you install the Presence Services server, one Connection Manager is already configured for
handling XMPP connections from XMPP IM clients. You may want to configure another Communication
Manager to increase the scalability of your system.
Each Communication Manager has a maximum number of connections that it can handle. The XMPP
client Communication Manager can handle only 10,000 concurrent client connections. Your system can
handle more client connections (up to 20,000 connections) if you add an additional Communication
Manager to also handle XMPP client connections.
Important:
10,000 connections is a practical limit for a Communication Manager. There is nothing preventing you
from configuring more; however, more connections may cause performance to suffer.
Note:
In this chapter when we refer to a Communication Manager component we specifically mean a
Communication Manager component that is configured to handle incoming XMPP client connections.
If you have chosen to perform a full installation at install time, (for example, you have chosen to install
the OCS Gateway to allow integration with a Microsoft Office Communication Manager (OCS) domain)
then a Communication Manager component (called OCS Connection Manager) with a different type of
configuration has been added for this purpose. In this case the Connection Manager component is
essentially configured as a SIP Gateway to allow communication with a Microsoft OCS domain. This
type of Communication Manager should not be confused with a Communication Manager for handling
XMPP connections as discussed in this chapter.
This Chapter consists of the following topics:
• Verifying Connection Manager certificates on page 137
• Adding and configuring an additional Connection Manager on page 138
Verifying Connection Manager certificates
Before adding an additional Communication Manager verify that the appropriate certificates to
be used by the Communication Manager have been successfully created during installation of
the Presence Services server. The certificates would failed to have been created at installation
Administering Presence Services XCP Controller
August 2010
137
Connection managers
time if the System Manager Trust Management (TM) Service was not available. If the
appropriate certificates do not exist then they must be created.
To verify whether the certificates exist:
1. Open a terminal into the Presence Services server and change directory to
$PRES_HOME/jabber/xcp/certs.
2. Enter the 'ls' command in this directory.
3. If the list of files includes Avaya-host-key.pem and Avaya-ip-key.pem in addition to
files similar to export-123123123.pem, export-123123123.pem.jabber,
export-123123123.pem.private and export-123123123.trusts then it can be
assumed that the files were successfully created at installation time.
Result
If the certificates do not exist, follow the steps to create the certificate:
1. $PRES_HOME/presence/bin/prescert reconfigureAll.
2. Restart PS by running the $PRES_HOME/presence/bin/stop.sh script followed by
running the $PRES_HOME/presence/bin/start.sh script.
3. Verfiy that the certificates listed above have been created in the $PRES_HOME/
jabber/xcp/certs directory.
Adding and configuring an additional Connection Manager
This section describes how to add and configure an additional Connection Manager
component. Adding an additional Communication Manager allows the system to handle more
client connections than can be supported by a single Communication Manager (i.e. > 10,000
connections). The configuration parameters of the second Communication Manager must be
the similar to the first Communication Manager except for the listening ports of the directors
associated with each Communication Manager. Each Communication Manager director must
have its own independent listening port.
The following instructions describe how to configure the Connection Manager using the
parameters provided in the Presence XCP Controller’s Advanced configuration view. For
descriptions of all of the Communication Manager parameters, see the Connection Manager
Configuration page’s online help.
To configure an additional Communication Manager
138
Administering Presence Services XCP Controller
August 2010
Adding and configuring an additional Connection Manager
1. Change to the Presence XCP Controller’s Advanced configuration view.
2. In the Components area on the Presence XCP Controller’s main page, click Go to
add a Connection Manager.
3. In the Connection Manager Configuration page, change the Description so that it
describes this particular Communication Manager, e.g.
Connection Manager 2.
4. In the Connection Manager Configuration page, under the Connection Manager
Configuration section change the Maximum number of sockets to be 10000.
5. To enable logging for the Communication Manager, select the Component Logging
(Jlog) option;select the Logger option and then select the Filtered Syslog Logger
option.
The Level should default to INFO. Specify the pipe file to be written in the Pile file
field (For example, /opt/Avaya/Presence/jabber/xcp/var/log/xmppcm2.pipe) and provide an identifier in the Identity field (For example, XMPPCM2).
6. Under Add a New Command Processor, select the JSM Command Processor in
the list, and then click Go.
7. In the JSM Command Processor Configuration page, click Details beside the first
XMPP Director.
8. On the XMPP Director Configuration page change the value in the Port field from
the default value of 5222 to some other port number that is not currently in use (for
example, 6222).
This port will be used to listen for incoming connections on the second
Communication Manager.
9. On the SSL Settings section, you need to clear and then re-select SSL Settings (this
is in order to enable certain sub-fields under SSL Setting).
10. In the SSL Settings section set both the Full path to SSL key file field and the Full
path to SSL cert file field to /opt/Avaya/Presence/jabber/xcp/certs/
Avaya-host-key.pem.
11. Set the Full path to root CA cert file field to point to the the CA cert file.
The format of the path is /opt/Avaya/Presence/jabber/xcp/certs/<CAcert-file> where the appropriate value to use for <CA-cert-file> can be
determined by locating a file of the form export-xxx.trusts in the /opt/
Avaya/Presence/jabber/xcp/certs/ directory (The xxx is a numeric string
specific to your particular installation).
12. Scroll to the bottom of the page and set Enable XMPP Stream Compression to
No.
13. Click Submit to save the director’s configuration.
Administering Presence Services XCP Controller
August 2010
139
Connection managers
You are returned to the JSM Command Processor Configuration page.
14. Under Director Configuration, click Details beside the second XMPP director, and
repeat the previous six steps (that is from step 8 to step 13) with the following
proviso: The Port field of the second XMPP director must be set to a port value that
is not currently in use (For example, 6223).
15. Click Submit on each configuration page until you have returned to the Presence
XCP Controller’s main page.
16. Restart the Presence XCP system.
Result
Note:
If you are using Active Directory for user authentication and you have configured Kerberos
on the first Communication Manager then follow steps 10-16 from Kerberos authentication
and Microsoft Active Directory on page 215 to configure kerberos for the Communication
Manager that has just been added.
140
Administering Presence Services XCP Controller
August 2010
Chapter 8:
File Transfer Proxy
T he File Transfer Proxy component allows you to enable server-based file transfer capabilities via a
SOCKS5 proxy. The component acts as a SOCKS5 proxy server, and allows byte streams to be
transferred between your XCP server and Presence clients that are external to your system.
Figure 22 illustrates how the external Presence clients communicate with the File Transfer Proxy
component. During configuration, you must specify the IP addresses of both the firewall router and the
host on which the File Transfer Proxy component is installed. You must also specify the port on which
connections are made to the component.
Configuring the Basic File Transfer Proxy
This section describes how to configure the File Transfer Proxy component using the
parameters provided in the controller’s Basic configuration view. These parameters are
sufficient to configure a functional File Transfer Proxy. To see descriptions of all of the
parameters, see File Transfer Proxy Parameter Reference .
Related topics:
To configure the File Transfer Proxy on page 141
To configure the File Transfer Proxy
1. Change to the controller’s Basic configuration view.
2. In the Components area on the controller’s main page, select File Transfer Proxy
in the list, and then click Go .
3. On the File Transfer Proxy Configuration page, configure the Basic parameters
using the descriptions provided in the ”Basic Parameters” section.
4. Click Submit to save your configuration.
Administering Presence Services XCP Controller
August 2010
141
File Transfer Proxy
File Transfer Proxy Parameter Reference
This section describes the parameters associated with the File Transfer Proxy component. The
parameters are divided into subsections based on the configuration view in which they
display.
Related topics:
Basic Parameters on page 142
Intermediate Parameters on page 143
Advanced Parameters on page 144
Basic Parameters
The following table describes the parameters that are displayed in the controller’s Basic
configuration view. These parameters are sufficient to configure an operational File Transfer
Proxy component.
Parameter
Description
Description
The description is displayed in the Components area on the controller’s
main page and should help you distinguish between components of the
same type when you have more than one configured. You can change
the description as needed.
File Transfer Proxy Configuration
SOCKS5 server
host
Enter the external IP address on which external systems can connect
to the XCP server.
Is Server Behind
a NAT firewall?
Select this option if your XCP server is behind a firewall that is
performing Network Address Translation (NAT).
Host or address
Enter the host name or IP address of the host on which the File Transfer
bound to physical Proxy component is installed.
interface
SOCKS5 server
listen port
142
Enter the port on which connections are made to the File Transfer Proxy
component.
If you are using a NAT firewall, it should forward bytes streams to this
port.
Administering Presence Services XCP Controller
August 2010
File Transfer Proxy Parameter Reference
Intermediate Parameters
The following table describes the parameters that are displayed in the controller’s Intermediate
configuration view.
Parameter
Description
Router Outbound Connection Information
Select this option only if you want the XCP router to connect to the component. For example,
if the component is running outside your firewall, this option allows the router to connect to
the component safely rather than introducing security risks by letting the component connect
to it. By default, components connect to the router using the router’s Master Accept Port.
Component IP
Enter the IP address or host name of the system on which the
component is installed.
Port
Enter the port that the component uses for communications.
Password
Enter the password that the router uses to authenticate the
component.
Execute an External Command
This option allows the router to start the component automatically. If you prefer to start the
component from a command line, disable this option.
Command line to
run
A command that runs the component automatically is provided by
default. You can modify it if needed.
Note:
Do not use the -B argument with this component. Since IPS logger
is already a daemon process, its children must not be daemons.
You should not redirect output, because all output to STDOUT and
STDERR will be redirected to /dev/null.
Hostnames for this Component
This option specifies the hosts for which this component will handle packets. Specify a host
filter only if you want the component to be externally addressable; for example, if you want
clients and other components or programs to communicate with it. This is because the
mod_disco module in JSM uses host filters to return the component as something that
should be discoverable.
Host Filters
Enter the host names or IP addresses for which you want this
component to handle packets. Separate each host name or address
with a line break.
Host filters must be host names, or IPv4 or IPv6 addresses. If you use
an IP address, the packet address must also use this IP address.
Component Logging (Jlog)
Select the Component Logging (Jlog) option only if you want to configure filtered level
loggers that log messages to syslog and to a stream (stderr or stdout). You can enable either
or both the syslog and stream loggers. These parameters are displayed in the controller’s
Intermediate and Advanced configuration views.
Administering Presence Services XCP Controller
August 2010
143
File Transfer Proxy
Parameter
Description
SNMP Configuration
Select this option if you want to configure SNMP for the component.
Enable SNMP
Leave this parameter set to Yes.
Advanced Parameters
The following table describes the parameters that are displayed in the controller’s Advanced
configuration view. Advanced parameters are used for adjusting the performance of the XCP
system. We recommend that you call technical Support if you need to change these parameter
settings.
Parameter
Description
Runlevel
Enter the order in which this component shuts down. The runlevel must
be an integer value greater than or equal to zero. Component shutdown
is executed in reverse order of the specified runlevel; components with
the highest level (typically 70) shut down first.
Do not change the runlevel unless you know exactly what you are doing
and understand the effects that changing it will have. The default
runlevel is provided to help the system shut down as smoothly as
possible, and is based on this component’s dependencies upon other
components.
Timeout for
shutdown
Enter the number of seconds that the server waits to receive
acknowledgement from the component that the shutdown process has
completed. If the component has not shut down by the time this time
period has elapsed, the router leaves the process in its current state and
continues shutting down other processes.
Component Properties
Number of
Enter the number of packets bound for the component that should be
packets buffered buffered if the component goes down.
when component
is down
Bounce error
packets to stderr
Select Yes if you want the router to send warnings to stderr when the
component is down.
Router Outbound Connection Information
Buffer size in
Enter the number of bytes the router should buffer when it sends
bytes for outgoing information to the component. You may want to modify this element
data
when working on performance enhancements.
Buffer size in
bytes for
incoming data
144
Enter the number of bytes the router should buffer when it receives
information from the component. You may want to modify this element
when working on performance enhancements.
Administering Presence Services XCP Controller
August 2010
File Transfer Proxy Parameter Reference
Parameter
Description
Send keepalives
Select Yes if you want the router to send keep-alives to the component.
The keep-alive helps prevent firewalls from dropping an unused
connection to the component. If this option is set to No, keep-alives are
disabled.
Log the delivery
of packets to this
component
Select Yes if you want to log the data that the router delivers to the
component. The information is logged to the logger(s) you set up during
IPS Logger configuration (syslog, file, or stderr). Socket-level logging
happens only at the debug level.
Execute an External Command
Maximum interval
in seconds to wait
before restarting
component
Enter the maximum number of seconds after which the router tries to
restart the component. If the component goes down, the router tries to
restart it after one second. If the component does not start, the router
multiplies the wait time by 1.5, and tries again. Once the maximum time
interval that you specify for this parameter is reached, the router
continues to retry after waiting this amount of time.
Maximum
number of times
to restart
component
Enter the total number of restarts allowed. The default setting, -1, means
unlimited.
Interval in
Enter the number of seconds that the component has been up and
seconds at which running, after which to set the restart time back to one second.
to reset this value
to 1 second
Path to binary
Enter the directory path to the shell that launches the component. You
can change the default setting if needed.
File Transfer Proxy Configuration
Number of
threads to
dedicate to file
transfer proxy
tasks
Enter the number of threads that you want the component to use.
Maximum
number of
connections
Enter the maximum number of connections that can be made to this
component at one time.
Duration of
inactivity for
connection
timeout
(seconds)
Enter the number of seconds that the XCP server waits for a response
from external systems before timing out.
Component Logging (Jlog)
Administering Presence Services XCP Controller
August 2010
145
File Transfer Proxy
Parameter
Add a new
custom logger
Description
If you have created a custom logger for logging component information
using the libjcore library, click Go to access the Custom Logger
Configuration page.
SNMP Configuration
Count errors
146
Select Yes only if you want to enable SNMP error counting. This option
takes a great deal of server resource, so use it with caution.
Administering Presence Services XCP Controller
August 2010
Chapter 9:
OCS Gateway
The OCS gateway allows the exchange of messages and presence between XMPP users and users of
Microsoft Office Communications Server. The gateway does not require XMPP client users to have
authorization on remote systems; from a user’s perspective, it is completely transparent.
Using the gateway, XMPP users can add OCS contacts to their rosters in the same way they add XMPP
contacts. OCS contact IDs use the same format as Jabber contacts; for example, [email protected].
At installation time, if “Complete” installation has been chosen then the OCS Gateway will already be
configured as the components (OCS Connection Manager and OCS Open Port). Only if OCS Connection
Manager and OCS Open Port components does not exist, you should proceed adding the components
as described in this chapter.
.
This Chapter consists of the following topics:
• Verifying OCS Gateway certificates on page 147
• Configuring a Server-to-Server Connection Manager on page 148
• Configuring the OCS Gateway on page 149
• Adding an Outgoing Connection Attempt Rule in the S2SCP on page 152
• Configuring an OpenPort connection on page 153
• Configuring Jabber administrators on page 153
Verifying OCS Gateway certificates
Before proceeding to add the OCS Gateway it is important to verify that the appropriate
certificates to be used by the OCS Communication Manager have been successfully created
during installation of the Presence Services server. The certificates would failed to have been
created at installation time if the System Manager Trust Management Service was not
available. If the appropriate certificates do not exist then they must be created.
To verify whether the certificates exist:
Administering Presence Services XCP Controller
August 2010
147
OCS Gateway
1. Open a terminal into the Presence Services server and change directory to
$PRES_HOME/jabber/xcp/certs.
2. Enter the 'ls' command in this directory.
3. If the list of files includes Avaya-host-key.pem and Avaya-ip-key.pem in addition to
files similar to export-123123123.pem, export-123123123.pem.jabber,
export-123123123.pem.private and export-123123123.trusts then it can be
assumed that the files were successfully created at installation time.
Result
If the certificates do not exist, follow the steps to create the certificate:
1. $PRES_HOME/presence/bin/prescert reconfigureAll.
2. Restart PS by running the $PRES_HOME/presence/bin/stop.sh script followed by
running the $PRES_HOME/presence/bin/start.sh script.
3. Verfiy that the certificates listed above have been created in the $PRES_HOME/
jabber/xcp/certs directory.
Configuring a Server-to-Server Connection Manager
To configure the S2S Connection Manager
1. Access the Presence XCP controller on the Presence Services server on which the
OCS Gateway is to be added.
2. Change to the controller’s Intermediate configuration view.
3. In the Components area on the controller’s main page, click Go to add a new
Connection Manager.
4. In the Connection Manager Configuration page, change the Description so that it
describes this particular Communication Manager, (For example, OCS Connection
Manager).
5. In the Connection Manager Configuration page, under the Connection Manager
Configuration section change the Maximum number of sockets to be 5000.
6. To enable logging for the Communication Manager, select the Component
Logging (Jlog) option; select the Logger option and then select the Filtered
Syslog Logger option.
The Level should default to INFO. Specify the pipe file to be written in the Pile file
field (For example, /opt/Avaya/Presence/jabber/xcp/var/log/ocs-
148
Administering Presence Services XCP Controller
August 2010
Configuring the OCS Gateway
cm.pipe) and provide an identifier in the Identity field (For example, OCSCommunication Manager)
7. Under Add a New Command Processor, select S2S Command Processor in the
list, and then click Go.
8. On the S2S Command Processor Configuration page, remove the two default
XMPP directors.
9. Under Outgoing Connection Attempt Rules, remove the three default rules.
10. Add and configure the OCS gateway as described in the next section.
Configuring the OCS Gateway
The OCS gateway is configured within the S2S Command Processor as a SIP/SIMPLE
Gateway director.
To configure the gateway:
1. In the S2S Command Processor Configuration page under Director Configuration,
select SIP/SIMPLE Gateway in the list, and then click Go.
2. In the SIP/SIMPLE Gateway Configuration page, make a note of the ID.
You will need to use this ID later on in the gateway’s configuration.
3. Configure a SIP host as follows:
a. Ensure you are in the controller’s Intermediate configuration view.
b. Select Local Configuration, and then click Go to display the SIP Host
Configuration page.
c. In the SIP Host Configuration page, configure the following parameters.
Table 2: SIP Host Configuration parameters
Parameter
Description
Remote server hostname
Enter the FQDN of the OCS Access
Edge Server to which the gateway is
connecting; for example:
ocsproxy.example.com
Server Type
Select ocs in the list.
Hostname Mapping
Enter the host names that map to the
remote server hostname. You should
Administering Presence Services XCP Controller
August 2010
149
OCS Gateway
Parameter
Description
enter the Enterprise SIP domain of
the OCS server here.
d. When you have finished configuring the SIP Host, click Submit.
You are returned to the SIP/SIMPLE Gateway Configuration page.
4. Under Add a new SIP Transport, select TLS transport in the list, and then click
Go.
5. In the TLS Transport Configuration page, configure the transport using the
parameter descriptions provided in the following table.
Table 3: The TLS transport parameters
Parameter
Description
Hostname of external interface
Enter the primary Jabber XCP server’s
JSM hostname. This is the JID domain of
the PS server, for example, example.com
IP Address
Enter the IP address of the server on which
this component is running. SIP servers will
use this address to connect to the
component.
Port
Enter the port on which this component
listens for connections from SIP
connectors.
Use this transport by default for TLS This should be set to Yes.
requests
Domain used for TLS certificate
Enter the domain used when creating the
certificate. This value is contained in the
common name field in the certificate. This
should be set to the FQDN of the Presence
Services server, for example,
chat.example.com.
Full path to certificate file
Enter the full path to the location of the
certificate file. The path will take the form /
opt/Avaya/Presence/jabber/
xcp/certs/<Cert-file> where the
appropriate value to use for <Cert-file> can
be determined by locating a file of the form
export-xxx.pem.jabber in the /
opt/Avaya/Presence/jabber/
xcp/certs/ directory.
Note:
xxx is a numeric string specific to your
particular installation.
150
Administering Presence Services XCP Controller
August 2010
Configuring the OCS Gateway
Parameter
Full path to the CA certificate file
Description
Enter the full path to the CA certificate file
that is used to verify incoming client
certificates. The path will take the form /
opt/Avaya/Presence/jabber/
xcp/certs/<CA-cert-file>
where the appropriate value to use for
<CA-cert-file> can be determined by
locating a file of the form exportxxx.trusts in the /opt/Avaya/
Presence/jabber/xcp/certs/
directory.
Note:
xxx is a numeric string specific to your
particular installation.
Routes for this Transport
You do not need to add a route in this TLS
transport configuration.
6. Perform the following configuration:
a. Change to the controller’s Advanced configuration view.
b. Define an external contact for SIP servers to use to contact this transport by
configuring the following two parameters:
Table 4: Define an external contact for SIP servers
Parameter
Description
External hostname that SIP servers
will use for contact
Enter the fully qualified domain name
of the local system on which the
gateway is running, for example,
chat.example.com.
External port that SIP servers will use Enter the port on which the firewall is
for contact
listening for incoming traffic. For
example, 5061.
7. When you have finished configuring the transport, click Submit to save your
configuration.
You are returned to the SIP/SIMPLE Gateway Configuration page.
8. On the S2S Command Processor Configuration page set TLS connection strict
checking of hostname to No, set TLS connection strict certificate usage to
No, set Enable logging of SIP packets to Yes and set Enable full SIP stack
logging to Yes.
9. Click Submit again to return to the S2S Command Processor Configuration
page.
Administering Presence Services XCP Controller
August 2010
151
OCS Gateway
Adding an Outgoing Connection Attempt Rule in the
S2SCP
On the S2S Command Processor Configuration page, you must add an outgoing connection
attempt rule that is specific to your gateway.
To add an outgoing connection attempt rule
1. On the S2S Command Processor Configuration page, scroll down to the Outgoing
Connection Attempt Rules area.
Important:
The S2SCP configuration includes three XMPP rules by default. If you have not
done so already, remove each existing rule before adding the new rule.
2. Click Go to display the Rule Configuration page.
3. Configure the following parameters:
Table 5: Rule Configuration parameters
Parameter
Director ID
Description
Enter the gateway director’s ID without
the realm; for example:
cm-1_s2scp-1_sipsd-1
The director's ID to be specified here
was recorded as part of step 3 in the
Configuring the OCS Gateway section
above.
DNS SRV lookup to use
Enter any string; for example:
abcdefg
4. Click Submit to save the rule.
You are returned to the S2S Command Processor Configuration page.
5. Click Submit to save your configuration. You are returned to the Connection
Manager Configuration page.
6. Click Submit to save your configuration.
152
Administering Presence Services XCP Controller
August 2010
Configuring an OpenPort connection
Configuring an OpenPort connection
You must add an OpenPort connection to allow the S2S Command Processor to connect to
the router.
Tip:
In the steps below the ID of the gateway’s S2S Command Processor is needed. If you do
not know the ID, access the gateway’s XCP controller, and click the Edit link beside 'OCS
Connection Manager'. The entry that appears in the Name column under Add a New
Command Processor is of the form 'ID.realm' (e.g. cm-1_s2scp-1.presence) where the ID
part is the ID of the gateway’s S2S Command Processor.
To configure an OpenPort:
1. Using the controller on the gateway’s computer, change to the Intermediate
configuration view.
2. In the Components area on the controller’s main page, select OpenPort in the list,
and click Go.
3. When you are asked for the ID of the OpenPort, enter the ID of the gateway’s S2S
Command Processor without the realm; for example:
cm-1_s2scp-1
4. Click OK.
5. On the OpenPort Configuration page, enter a new Description, for example, OCS
Open Port.
6. Enter an asterisk (*) in the Host Filters box.
7. Click Submit to save your configuration.
You are returned to the controller’s main page.
Configuring Jabber administrators
To add the S2SCP as a Jabber administrator
Administering Presence Services XCP Controller
August 2010
153
OCS Gateway
1. On your primary Jabber XCP server, change to the controller’s Intermediate
configuration view.
2. In the Router area on the controller’s main page, click Edit beside Jabber Session
Manager.
3. In the Optional Modules section on the Jabber Session Manager Configuration
page, make sure that the check box beside mod_admin is checked.
4. Scroll down to the Jabber Administrators section, and enter the ID and realm of the
OCSgateway’s S2S Command Processor in the Administrator(s) text box.
For example:
cm-1_s2scp-1.presence
Tip:
If you do not know the gateway server’s realm, access the gateway’s controller,
and click the Edit link beside Global router settings in the Router area. The Realm
is the second parameter on the Global Settings Configuration page.
5. Scroll to the bottom of the Jabber Session Manager Configuration page, and click
Submit to save your configuration.
6. Restart your Presence Services system.
154
Administering Presence Services XCP Controller
August 2010
Chapter 10: Server-to-Server connections
The Server-to-Server connection manager (S2S Communication Manager) enables Presence Services
servers to communicate with remote servers across domains. It also supports the Presence dialback
protocol, which determines whether or not to trust a connection from another server. The following figure
illustrates the S2S Connection Manager configuration.
This Chapter consists of the following topics:
• Configuring the Basic S2S Connection Manager on page 155
• Configuring the OpenPort connection on page 156
• Configuring the dialback password on page 157
• Blacklisting and Whitelisting Hosts and IP Addresses on page 158
• Discovery Protocol for Querying the S2S Command Processor on page 159
Configuring the Basic S2S Connection Manager
The S2S Connection Manager is configured with an S2S Command Processor, which contains
an XMPP incoming director and an XMPP outgoing director for XMPP server-to-server
communications. These directors allow you to black-list and white-list specific hosts that are
inside or outside of your Presence XCP system. The incoming director handles incoming
packets that are being sent to the Presence XCP router from remote servers; the outgoing
director handles packets that are being sent from the router to remote servers. The figure
illustrates the handling of packets that are sent to or received from blacklisted hosts.
We recommend that you configure a new separate server-to-server connection manager in
order to maximize the efficiency with which the Presence Services server can handle S2S
communication.
To configure the basic S2S Communication Manager
1. Change to the Presence XCP Controller’s Basic configuration view.
2. In the Components area on the Presence XCP Controller’s main page, click Go to
add a new Connection Manager.
3. On the Connection Manager Configuration page under Add a New Command
Processor, select S2S Command Processor in the list, and click Go.
4. An outgoing director and an incoming director have been provided by default.
Administering Presence Services XCP Controller
August 2010
155
Server-to-Server connections
The outgoing director handles packets that are being sent from the core router to
remote servers. The incoming server director handles packets being sent to the
router from remote servers.
5. Three Outgoing Connection Attempt Rules have been provided by default.
These rules specify the order and DNS lookup properties for each outbound director.
By default, these three rules are configured with the ID of the XMPP outgoing server
director and the DNS SRV lookup or port to use for the connection.
The default rules are configured as follows, where n is the number of the
Communication Manager.
Director ID
DNS SRV lookup
cm-n_s2scp-1_xmppsoutd-1
_xmpp-server._tcp
cm-n_s2scp-1_xmppsoutd-1
_Presence._tcp
cm-n_s2scp-1_xmppsoutd-1
Port
5269
Each time a new outbound connection is required, the S2SCP goes through the
rules asking the specified director to attempt the outgoing connection. If a director
successfully establishes a connection, then that director will always handle stanzas
bound for that particular host. Otherwise, the S2SCP asks the next director (using
the defined rules) to attempt an outbound connection for the host.
You only need to add a new rule if you want to change how the DNS lookups happen
for outbound servers.
Configuring the OpenPort connection
You must configure an OpenPort connection to enable the S2S command processor to connect
to the Presence XCP router.
To configure the OpenPort connection
1. Change to the Presence XCP Controller’s Intermediate configuration view.
2. In the Components area on the Presence XCP Controller’s main page, select
OpenPort in the list, and click Go.
3. Enter the S2S Command Processor’s ID, without the realm, as the ID of the
OpenPort.
for example: cm-2_s2scp-1
156
Administering Presence Services XCP Controller
August 2010
Configuring the dialback password
4. The OpenPort must use the opposite connection type than that used by the S2S
command processor.
If you used the default connection type of connect for the S2S command processor,
skip to step 5 on page 0 .
If you configured the S2S command processor with an accept connection type, you
must select the Router Outbound Connection Information option for the
OpenPort, and specify the same Component IP, Port, and Password that you
used for the command processor.
5. Under Hostnames for this Component, enter a host filter to allow packets destined
for external domains to reach the S2S command processor.
In most cases, you should enter an asterisk (*) in the Host Filters field.
6. Click Submit to save your configuration.
7. Restart your Presence XCP system.
Configuring the dialback password
The S2S Communication Manager supports the Presence dialback protocol, which determines
whether or not to trust a connection from another server.
To configure the dialback password
1. Change to the Presence XCP Controller’s Basic configuration view.
2. In the Components area on the Presence XCP Controller’s main page, click Go to
add a new Connection Manager.
3. On the Connection Manager Configuration page under Add a New Command
Processor, select S2S Command Processor in the list, and click Go.
4. In the Dialback secret field, enter the password used to prove the authenticity of
another server.
By default, the dialback secret is set to the Presence XCP router’s password.
If you have multiple S2S command processors in your Presence XCP system, they
must all have the same dialback secret.
Administering Presence Services XCP Controller
August 2010
157
Server-to-Server connections
Blacklisting and Whitelisting Hosts and IP Addresses
If you want to blacklist and whitelist certain hosts and IP addresses from sending and receiving
packets, you can configure one or more of the authorized outgoing and incoming, to and from
addresses. These four configuration options, which are displayed in the Presence XCP
Controller’s Intermediate configuration view, allow you to specify exactly which hosts and IP
addresses may or may not send or receive incoming or outgoing packets.
Each authorization option has a Default behavior parameter, which controls how you want your
system to handle packets for all hosts or IPs except for those listed under Host Filters and IP
addresses. Specified hosts and IP addresses will behave in a manner opposite the default
behavior.
To blacklist and whitelist hosts and IP addresses
1. Change to the Presence XCP Controller’s Intermediate configuration view.
2. Configure one or more of the following authorization options:
Result
• Authorized Outgoing From Addresses - lets you specify the hosts and IP addresses within
your organization from which outgoing packets can be sent. If you set the default behavior
to allow, all hosts and IPs except for those listed are allowed to send outgoing packets.
If you set the default behavior to deny, only the listed hosts and IPs can send outgoing
packets. Outgoing from addresses are usually paired with incoming to addresses.
• Authorized Outgoing To Addresses - lets you specify the hosts and IP addresses to which
users within your organization can send outgoing packets. If you set the default behavior
to allow, users can send packets to all hosts and IPs except for those listed. If you set
the default behavior to deny, users can send packets only to the hosts and IPs listed.
Outgoing to addresses are usually paired with incoming from addresses.
• Authorized Incoming From Addresses - lets you specify the hosts and IP addresses from
which incoming packets can be received by users in your organization. If you set the
default behavior to allow, users can receive packets from all hosts and IPs except for
those listed. If you set the default behavior to deny, users can receive packets only from
the hosts and IPs listed. Incoming from addresses are usually paired with outgoing to
addresses.
• Authorized Incoming To Addresses - lets you specify which hosts and IP addresses within
your organization can receive incoming packets. If you set the default behavior to allow,
all hosts and IPs except for those listed can receive packets. If you set the default behavior
to deny, only the listed hosts and IPs can receive packets. Incoming to addresses are
usually paired with outgoing from addresses.
158
Administering Presence Services XCP Controller
August 2010
Discovery Protocol for Querying the S2S Command Processor
Discovery Protocol for Querying the S2S Command
Processor
Following are XMPP protocol examples, based on XEP-0030: Service Discovery, of how to
disco the inbound and outbound S2S connections. See XEP-0030 for more information.
Related topics:
Example: Querying the S2SCP for information on page 159
Example: Querying for outbound and inbound lists on page 159
Example: Querying S2CP for all items on page 160
Example: Querying the S2SCP for information
The following XMPP query asks for information about the S2SCP whose ID is
cm-2_s2scp-1.jabber:
<iq id='disco-info-10' to='cm-2_s2scp-1.jabber' type='get'>
<query xmlns='
http://jabber.org/protocol/disco#info
'/>
</iq>
The following response from the server identifies the S2SCP as a component of type s2s.
<iq xmlns='Presence:client' from='cm-2_s2scp-1.jabber'
id='disco-info-10'
to='
[email protected]
/Presence Messenger Desktop Corp'
type='result' xml:lang='en'>
<query xmlns='
http://jabber.org/protocol/disco#info
'>
<identity category='component' type='s2s'/>
</query>
</iq>
Example: Querying for outbound and inbound lists
<iq id='disco-info-10' to='cm-2_s2scp-1.jabber' type='get'>
<query xmlns='
http://jabber.org/protocol/disco#items'
node='-outbound'/>
</iq>
<iq id='disco-info-10' to='cm-2_s2scp-1.jabber' type='get'>
Administering Presence Services XCP Controller
August 2010
159
Server-to-Server connections
<query xmlns='
http://jabber.org/protocol/disco#items'
node='-inbound'/>
</iq>
Example: Querying S2CP for all items
The following XMPP query asks for a list of all items associated with the S2SCP:
<iq id='disco-info-10' to='cm-2_s2scp-1.jabber' type='get'>
<query xmlns='
http://jabber.org/protocol/disco#items'/
>
</iq>
The following response received from the server lists the items, which include an inbound node
and an outbound node:
<iq xmlns='Presence:client' from='cm-2_s2scp-1.jabber'
id='disco-info-10'
to='
[email protected]
/Presence Messenger Desktop Corp'
type='result' xml:lang='en'>
<query xmlns='
http://jabber.org/protocol/disco#items
'>
<item jid='cm-2_s2scp-1.jabber'
name='Inbound Connections' node='-inbound'/>
<item jid='cm-2_s2scp-1.jabber'
name='Outbound Connections' node='-outbound'/>
</query>
</iq>
160
Administering Presence Services XCP Controller
August 2010
Chapter 11:
Active Directory
This chapter provides information about setting up the Active Directory component. This component has
been preconfigured to provide most of the settings that you need for setting up the Presence Services
server to work with Active Directory.
Important:
If you are using OpenLDAP for user authentication, see Chapter 9. Jabber Directory and LDAP for
instructions on configuring the Presence Services server to work with LDAP. Chapter 9. Jabber Directory
and LDAP also contains information about Jabber LDAP objectClasses and Attributes.
This Chapter consists of the following topics:
• Configuring the Jabber Directory component on page 167
• Configuring the JSM to use the Jabber Directory Component on page 172
Note:
After configuring the Active Directory component as detailed in this chapter, if you wish to set up
Kerberos to enable more secure authentication then you should refer to Kerberos authentication and
Microsoft Active Directory on page 215
Configuring the Active Directory component
To enable the Presence Services server to use Microsoft Active Directory, you must first
configure the Active Directory component, which contains a directory server and a database.
After you have configured the Active Directory component, you must then configure the
Presence Session Manager (JSM) to use it.
To configure the Active Directory component
1. Change to the Presence XCP Controller’s Intermediate configuration view.
2. In the Components area on the Presence XCP Controller’s main page, select
Active Directory Component in the list, and then click Go.
3. In the Active Directory Component Configuration page, scroll down to the XDB
Filters section.
Administering Presence Services XCP Controller
August 2010
161
Active Directory
The namespaces that are most commonly used by the Active Directory component
are selected by default.
4. Under Hostnames for this Component, ldapsearch.yourJIDDomain (for
example, ldapsearch.example.com) is provided by default, which configures the
Active Directory component to accept user search requests.
You can add other hostnames as needed for hosts that will handle non-XDB
packet.
Related topics:
Configuring a Directory Server to work with Active Directory on page 162
Configuring a database on page 163
Configuring a Directory Server to work with Active Directory
You must now configure the connection to your directory server.
To configure the directory server
1. Make sure you are still using the Presence XCP Controller’s Intermediate
configuration view.
2. In the Active Directory Component Configuration page, scroll down to the JDS
Configuration area and click Detail under Add a new Directory Server.
The Directory Server Configuration page is shown in the following figure.
3. In the Directory Server Configuration page, configure the following parameters:
Parameter
162
Description
Directory server
hostname
Enter the fully qualified domain name of the Active
Directory server.
Directory server port
Port 3268 is the standard port used for Active
Directory.
Read-only
Select Yes if you want only read operations to be
performed on the Active Directory server.
A setting of Yes disables community group
subscriptions.
This option is used typically in master/slave
configurations where the slave is a read-only copy of the
master.
Follow Referrals
Select Yes if you want to enable referrals, which allow
Active Directory servers to reference each other for
information.
Administering Presence Services XCP Controller
August 2010
Configuring the Active Directory component
Parameter
Description
In large networks, enabling this option can cause
problems with time-outs due to excessive server
chaining.
Directory Server user
Enter the distinguished name for a AD user, e.g.
cn=presenceuser,cn=users,dc=example,dc=com, to
allow the Presence Server to access user account
details on the Active Directory server. If your directory
server has security enabled and requires authentication,
enter the distinguished name of the administration
account for the Active Directory server.
Password for directory Enter the password associated with the user account
service user
specified as the Directory Server
user.
Confirm Password
Enter the password again to confirm it.
4. Use the online help in the Directory Server Configuration page to configure the
remaining parameters if needed.
5. Click Submit to save your configuration.
You are returned to the Active Directory Component Configuration page.
Configuring a database
You must now configure the Active Directory database. In the Database Configuration page,
many default values have been supplied for Active Directory.
To configure the LDAP Database
1. In the JDS Configuration area under Databases, click Detail under Add a new
Database.
2. In the Database Configuration page, the default directory server, ads-1_server-1,
has already been added.
If you have multiple directory servers configured for this database, click Go to add
each server, supplying its ID in the Server Configuration page.
Administering Presence Services XCP Controller
August 2010
163
Active Directory
Important:
The system automatically fails over to a working directory server. If you have
multiple directory servers configured for this database, the first one listed is used
by default. If that server fails, the next one in the list is used, and so on.
3. On the Database Configuration page under Jabber User Configuration, configure
the Base context for this LDAP class parameter.
Default values have been supplied for the other parameters.
The following table describes the parameters for the LDAP object class..
Parameter
Description
LDAP object class for
users
The LDAP object class that represents a user. For Active
Directory, this value is: user
Base context for this
LDAP class
Enter the top level of the LDAP tree that contains user
entries. For example:
cn=users,dc=example,dc=com
LDAP attribute to use
for the Jabber display
name
Enter the LDAP attribute used to display each user’s
name in the Jabber client interfaces. For Active
Directory, this value is: displayName
Static User JID
This option is used for Active Directory, since the
schema contains a host attribute that can be used for all
Jabber IDs.
User Attribute - SamAccountName is the name of the
user attribute for Active Directory.
Host - The JID domain of your Presence Services server
is supplied by default; for example: example.com
4. Scroll down to view the JDS Command Definitions section if you want.
Several commands have been preconfigured for Active Directory. They are
described as follows:
• The Authentication command has been selected and set to Plain-Text
Authentication.
• The Register Check command has been selected, which enables the
Active Directory component to validate Jabber users.
• The ldapSearchcommand has been selected, and four search attributes for
Active Directory have been configured. This command enables Jabber users
to search for other users. (This is not the same thing as vCard information.)
5. Click Submit on the Database Configuration page to save your configuration.
You are returned to the Active Directory Component Configuration page.
6. Click Submit on the Active Directory Component Configuration page to save your
configuration and return to the Presence XCP Controller’s main page.
164
Administering Presence Services XCP Controller
August 2010
Configuring the JSM to use the Active Directory component
Configuring the JSM to use the Active Directory
component
You must now configure the Presence Session Manager to use the Active Directory
component.
To configure the Presence Session Manager
1. Change to the Presence XCP Controller’s Basic configuration view.
2. In the Router area on the Presence XCP Controller’s main page, click Edit beside
Presence Session Manager.
3. Under Optional modules, select the mod_jds module, and clear the check boxes
next to mod_auth_plain and mod_auth_digest.
These settings enable the Active Directory component for authentication and
disable the default authentication.
4. Select the JDS Configuration option.
Make sure that both Digest Authentication and Community Groups are set to
No.
5. Scroll down to the Registration Requirements option and clear the check box to
disable it.
6. Click Submit to save your configuration.
7. Restart your Presence Services system.
Result
Important:
The Troubleshooting information for diagnosing issues with the Active Directory
configuration is available in the Presence Services 5.2 Troubleshooting Guide in the chapter
Active Directory Checklist. Please perform the diagnostic tests outlined there before
escalating any issue on Active Directory configuration.
Administering Presence Services XCP Controller
August 2010
165
Active Directory
166
Administering Presence Services XCP Controller
August 2010
Chapter 12: Jabber Directory and LDAP
This chapter provides instructions for setting up the Presence Services XCP server to use OpenLDAP.
You do this by configuring the Jabber Directory Component. See Appendix B. Configuring OpenLDAP
Schema for details on adding some Jabber specific user, and object classes to your schema.
Important:
If you are using Microsoft Active Directory, see Appendix 8. Active Directory for instructions on
configuring the Presence Services server to work with AD.
Note:
We do not provide installation instructions for LDAP directory servers. See the directory server’s product
documentation for this information.
This Chapter consists of the following topics:
• Configuring the Jabber Directory component on page 167
• Configuring the JSM to use the Jabber Directory Component on page 172
• Jabber LDAP objectClasses and Attributes on page 173
• Directory Server optimization on page 174
Configuring the Jabber Directory component
To enable the Presence Services server to use LDAP, you must first configure the Jabber
Directory Component, which contains a directory server and an LDAP database. After you
have configured the Jabber Directory Component, you must then configure the Presence
Session Manager (JSM) to use it.
To configure the Jabber Directory Component
1. Change to the Presence XCP Controller’s Intermediate configuration view.
2. In the Components area on the Presence XCP Controller’s main page, select
Jabber Directory Component in the list, and then click Go.
3. In the Jabber Directory Component Configuration page, scroll down to the XDB
Filters section, and select the namespaces that are appropriate for your directory
server.
Administering Presence Services XCP Controller
August 2010
167
Jabber Directory and LDAP
The most commonly used namespaces for directory servers are jabber:iq:auth,
jabber:iq:register, and http://www.jabber.com/schemas/jds.xsd.
4. Under Hostnames for this Component, enter the host names or IP addresses for
which you want the Jabber Directory Component to handle non-XDB packets.
Separate each host name or address with a line break.If you want the Jabber
Directory component to accept user search requests then you should add
ldapsearch.yourJIDDomain, for example, ldapsearch.example.com
Related topics:
Configuring a Directory Server on page 168
Configuring an LDAP Database on page 169
Configuring a Directory Server
You must now configure the connection to your directory server.
To configure the directory server
1. Make sure you are still using the Presence XCP Controller’s Intermediate
configuration view.
2. In the Jabber Directory Component Configuration page, scroll down to the JDS
Configuration area and click Go beside Add a new Directory Server.
3. In the Directory Server Configuration page, make a note of the Unique server ID.
You will need to use this value in the next section when you configure the LDAP
database. If the Unique server ID is not already specified then enter one, (For
example, jds-1_server-1) and note this value.
4. Configure the following parameters.
Parameter
168
Description
Directory server
hostname
Enter the fully qualified domain name of the LDAP
server.
Directory server port
Port 389 is the standard port used for LDAP with TLS. If
you are using LDAPS, change the port to 636.
Read-only
Select Yes if you want only read operations to be
performed on the LDAP server.
A setting of Yes disables community group
subscriptions.
This option is used typically in master/slave
configurations where the slave is a read-only copy of the
master.
Administering Presence Services XCP Controller
August 2010
Configuring the Jabber Directory component
Parameter
Follow Referrals
Description
Select Yes if you want to enable referrals, which allow
LDAP servers to reference each other for information.
Important:
In large networks, enabling this option can cause
problems with time-outs due to excessive server
chaining.
Directory Server user
If your directory server requires authentication, enter the
distinguished name of the administration account for the
LDAP server.
Password for directory Enter the password of the administration account for the
service user
LDAP server.
Confirm Password
Enter the password again to confirm it.
5. Use the online help to configure the remaining parameters if needed.
6. Click Submit to save your configuration.
You are returned to the Jabber Directory Component Configuration page.
Configuring an LDAP Database
You must now configure your LDAP database.
To configure the LDAP Database
1. In the JDS Configuration area under Databases, click Go beside Add a new
Database.
2. In the Database Configuration page, click Go beside Add a new Server.
3. In the Server Configuration page, enter the unique server ID of the directory server
that you configured in the previous section.
For example: jds-1_server-1
Important:
The system automatically fails over to a working directory server. If you have
multiple directory servers configured for this database, the first one listed is used
by default. If that server fails, the next one in the list is used, and so on.
4. Click Submit to save your configuration.
You are returned to the Database Configuration page.
Administering Presence Services XCP Controller
August 2010
169
Jabber Directory and LDAP
5. On the Database Configuration page under Jabber User Configuration, configure
the parameters to specify your LDAP setup.
The parameters are described as follows.
Parameter
Description
LDAP object class for
users
Enter the LDAP object class that represents a user. For
example: inetOrgPerson
Base context for this
LDAP class
Enter the top level of the LDAP tree that contains user
entries. For example:
cn=users,dc=example,dc=com
LDAP attribute to use
for the Presence
display name
Enter the LDAP attribute used to display each user’s
name in the Presence client interfaces; for example, cn
6. Select one of the options to define how the Jabber Directory Component will build
your Jabber IDs.
The parameters are described as follows.
Parameter
Full JID
Description
Select this option if your schema contains an attribute
that can be used as the full Jabber ID.
Attribute - Enter the name of the attribute to use as the
Jabber ID; for example: jabberID
Note:
This attribute must be of the form of a full Jabber ID,
e.g. [email protected], where the
domain associated with the attribute must be the JID
domain of the Presence Services server.
Static User ID
Select this option if your schema contains a host attribute
that can be used for all Jabber IDs.
User Attribute - Enter the name of the user attribute; for
example: uid
Host - Enter the JID domain of your Presence Services
server; for example: example.com
User Host JID
Select this option if user Jabber IDs must be constructed
from two separate LDAP attributes.
User attribute - Enter the name of the user attribute; for
example: uid
Host attribute - Enter the name of the attribute that
contains the JID domain of your Presence Services
server.
7. If your LDAP schema contains an attribute whose value signifies a valid Presence
user, you can configure the Jabber Active Attribute option.
When this attribute exists in your schema and has been configured in the Jabber
Directory Component, you can disable a user’s account by modifying its value for
170
Administering Presence Services XCP Controller
August 2010
Configuring the Jabber Directory component
that user in your schema. Users whose accounts have been disabled can no longer
log into the Presence Services server.
To configure the Jabber Active Attribute:
a. Select the Jabber Active Attribute option.
b. Configure the parameters as follows.
Parameter
Description
Type
Select positive if the value you specify in the Value field
must be in your LDAP schema for the user to be
considered a valid Presence user. If you select
negative, the Value you specify must not be in your
LDAP schema.
Attribute
Enter the name of the LDAP attribute that contains the
value that ensures a user is a valid Presence user; for
example:jabberActive
Value
Enter the value that the LDAP attribute must or must
not contain for a user to be a valid Presence user; for
example:true
8. Scroll down to the JDS Command Definitions section, and select the Authentication
command.
9. Select the option that you want to use for authentication.
10. If you want the Jabber Directory Component to validate Presence users, select the
Register Check check box..
11. If you want to enable Presence users to search for other users, select ldapSearch
command.
(This is not the same thing as vCard information.)
Note:
To allow user search requests you must add an entry under Hostnames for this
Component on the Jabber Directory Component Configuration page (for
example, ldapsearch.example.com) as described earlier.
12. Configure searchable LDAP attributes as follows:
• Click Go to display the Searchable LDAP Attribute Configuration page.
• Add an LDAP attribute and its description. Do not enter spaces in the
description.
• Click Submit. You are returned to the Database Configuration page, from
which you can add additional attributes as needed.
Administering Presence Services XCP Controller
August 2010
171
Jabber Directory and LDAP
Note:
It may be useful to configure multiple rules. The following 3 rules are provided for
example:
• Description:lastname, LDAP attribute:sn
• Description:fullname, LDAP attribute:cn
• Description:email, LDAP attribute:mail
The LDAP attributes that are specified in the rules should be indexed appropriately
for searching in the slapd.conf file in the /etc/openldap directory (for example, index
cn,mail,sn eq,pres,sub).
13. Click Submit on the Database Configuration page to save your configuration.
You are returned to the Jabber Directory Component Configuration page.
14. Click Submit on the Jabber Directory Component Configuration page to save your
configuration and return to the Presence XCP Controller’s main page.
Configuring the JSM to use the Jabber Directory
Component
You must now configure the Presence Session Manager to use the Jabber Directory
Component.
To configure the Presence Session Manager
1. Change to the Presence XCP Controller’s Basic configuration view.
2. In the Router area on the Presence XCP Controller’s main page, click Edit beside
Presence Session Manager.
3. Under Optional modules, select the mod_jds module, and clear the check boxes
next to mod_auth_plain, mod_auth_digest, and mod_register.
These settings enable the Jabber Directory Component for authentication and
disable the default authentication.
4. Select the JDS Configuration option.
Make sure that both Digest Authentication and Community Groups are set to
No.
5. Scroll down to the Registration Requirements option and clear the check box to
disable it.
172
Administering Presence Services XCP Controller
August 2010
Jabber LDAP objectClasses and Attributes
6. Click Submit to save your configuration.
7. Restart your Presence XCP system.
Jabber LDAP objectClasses and Attributes
See Appendix B. Configuring OpenLDAP Schema for details on adding some Jabber specific
user attributes, and object classes to your schema. The following information is also provided
in the jabber.schema file. The following information is also provided in the jabber.schema
file, which is located in $JABBER_HOME/schemas/ldap.
Jabber LDAP objectClasses
objectClass: jabberperson
description: Jabber user
OID: 1.3.6.1.4.1.13466.2.2.1.2
objectClass: jabbercggroup
description: Jabber community group
OID: 1.3.6.1.4.1.13466.2.2.1.3
Jabber LDAP Attributes
attribute: jabberID
description: Jabber Identifier
OID: 1.3.6.1.4.1.13466.2.1.2.18
attribute: jabberActive
description: flag to determine if a Jabber user is active
OID: 1.3.6.1.4.1.13466.2.1.2.21
attribute: jabberHost
description: Jabber ID host mapping
OID: 1.3.6.1.4.1.13466.2.1.2.25
attribute: jabberCGSubscriber
description: Jabber community group subscriber
OID: 1.3.6.1.4.1.13466.2.1.2.3
attribute: jabberCGGroupcast
description: Groupcast permission flag
OID: 1.3.6.1.4.1.13466.2.1.2.7
attribute: jabberCGViewMembers
description: View community group members permission flag
OID: 1.3.6.1.4.1.13466.2.1.2.8
attribute: jabberCGPresence
Administering Presence Services XCP Controller
August 2010
173
Jabber Directory and LDAP
description: Jabber community group presence permission flag
OID: 1.3.6.1.4.1.13466.2.1.2.9
attribute: jabberCGSubscribe
description: Jabber community group subscribe permission flag
OID: 1.3.6.1.4.1.13466.2.1.2.24
Directory Server optimization
For large installations, we recommend that you index several attributes to improve LDAP
performance with the Jabber Directory Component. Here it is assumed that you have updated
your schema to include the jabberID and jabberActive attributes as indicated in Appendix B.
Configuring OpenLDAP Schema.
• For all large installations, you should index the jabberID attribute for equality (not for
substring).
• jabberActive should be indexed for presence & equality
Your LDAP directory service should contain tools to enable you to perform this indexing, for
example the slapindex command line tool is typically available with OpenLDAP installations
under Linux - please consult the slapindex documentation for using this tool as you may need
to stop your LDAP service before using the tool in order to protect the integrity of the LDAP
directory.
174
Administering Presence Services XCP Controller
August 2010
Chapter 13: LaunchBroker
T he LaunchBroker component integrates with the WebEx and Adobe Acrobat Connect Professional
collaboration applications. The component also allows you to add your own custom commands. For
example, you could create a command to allow users to request vacation time or to enter timecard
information, or even to perform user administration. Commands that you create must comply with
XEP-0050: Ad-Hoc Commands .
Configuring the LaunchBroker Component
The parameters provided in the controller’s Basic configuration view are sufficient to configure
the LaunchBroker component’s WebEx Collaboration command and the Adobe Acrobat
Connect Professional command For descriptions of all of the parameters associated with the
component, see LaunchBroker Parameter Reference .
Related topics:
To configure the LaunchBroker component on page 175
To configure the LaunchBroker component
1. Change to the controller’s Basic configuration view.
2. In the Components area on the controller’s main page, select LaunchBroker in
the list, and then click Go .
The LaunchBroker Configuration page is displayed
3. To configure the WebEx Collaboration command, follow the instructions in
Configuring the WebEx Collaboration Command .
4. To configure the Adobe Acrobat Connect Professional command, follow the
instructions in Configuring the Adobe Acrobat Connect Professional Command .
5. If you want to configure a custom command, follow the instructions in Configuring
a Custom LaunchBroker Command .
Administering Presence Services XCP Controller
August 2010
175
LaunchBroker
Configuring the WebEx Collaboration Command
This section describes how to configure the WebEx Collaboration Command feature, which
allows Presence client users to create WebEx meetings and to send meeting invitations to
contacts. The WebEx collaboration command sends two jabber:x:data forms to the user. The
first form requests the user’s WebEx username and password, and the second form requests
the meeting topic and the list of JIDs of those to invite to the meeting.
Related topics:
To configure the WebEx Collaboration Command on page 176
To configure the WebEx Collaboration Command
Prerequisites
Before you can configure the WebEx command, you must have the following in place:
• You must be provisioned by WebEx.
• You must have the following information from WebEx: Hostname prefix, WebEx PID, Site
ID, Default meeting type.
• Port 443 must be open on your firewall, since the WebEx command makes an outbound
connection to https://<host_prefix >/webex.com:443.
These steps describe how to perform a basic configuration of the WebEx Collaboration
Command.
1. In the LaunchBroker Configuration page, select WebEx Collaboration
Command to activate the parameters.
2. Configure the basic WebEx parameters using the following descriptions.
Parameter
Node
Description
Enter a unique identifier for the command.
The following options require information that you receive from WebEx.
Hostname prefix Enter the host prefix used to access the WebEx server. The
WebEx command makes an outbound connection to https://
[hostname_prefix ].webex.com:443.
176
WebEx PID
Enter your WebEx partner ID.
Site ID
Enter your site ID.
Administering Presence Services XCP Controller
August 2010
Configuring the Adobe Acrobat Connect Professional Command
Parameter
Default Meeting
Type
Description
Enter the numeric code that denotes the meeting type. The
default value or '3' indicates WebEx Meeting Center Pro.
3. Click Submit to save your configuration.
Configuring the Adobe Acrobat Connect Professional
Command
This section describes how to configure the Adobe Acrobat Connect Professional Command
feature, which allows Jabber Messenger 3.x users to locate and create online meetings on the
Adobe Connect server. To integrate Adobe Acrobat Connect Professional with the XCP server,
you must be running Adobe Connect, version 6.03.
Related topics:
Setting up Adobe Connect Server on page 177
To configure the Adobe Acrobat Connect Professional command on page 178
Setting up Adobe Connect Server
These steps set up your Adobe Connect server for external authentication via HTTP header.
1. On your Adobe Connect server, change to the AdobeConnect_InstallDir \appserv
\conf\WEB_INF directory.
2. Open the web.xml file in a text editor.
3. Locate the HeaderAuthenticationFilter section, and add comment delimiters around
the <init-param> entry as shown here:
<!-<init-param>
<param-name>ignore-pattern-0</param-name>
<param-value>/api/</param-value>
</init-param>
-->
4. Add comment delimiters around the <filter-mapping> entry as shown here:
Administering Presence Services XCP Controller
August 2010
177
LaunchBroker
<!-<filter-mapping>
<filter-name>NtlmAuthenticationFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
-->
5. Verify that the remainder of the HeaderAuthenticationFilter section is not
commented, and save the web.xml file.
6. Change to the AdobeConnect_InstallDir directory.
7. Open the custom.ini file in a text editor.
8. Add the following attribute at the end of the file:
HTTP_AUTH_HEADER=<header_name>
where <header_name> is the name of the HTTP header populated by your external
authentication system when a successful login has occurred; for example:
HTTP_AUTH_HEADER=X-User-Id
9. Save the custom.ini file.
10. Restart your Adobe Connect server.
To configure the Adobe Acrobat Connect Professional command
1. In the LaunchBroker Configuration page, select Adobe Acrobat Connect
Professional to activate the parameters.
2. Configure the Basic parameters using the following descriptions.
Parameter
178
Description
Node
Enter a unique identifier for the
command.
Adobe Connect SML API URL
Enter the URL for the Adobe Connect
XML API. For example:
http://adobeconnect.server/api/xml
Adobe Connect Admin User
Enter the Adobe Connect administrator
account. For example:
[email protected]
Administering Presence Services XCP Controller
August 2010
Configuring a Custom LaunchBroker Command
Parameter
Description
Admin Password
Enter the Adobe Connect
administrator’s password.
Confirm Password
Enter the password again to confirm it.
3. Click Submit to save your configuration.
Configuring a Custom LaunchBroker Command
The LaunchBroker allows you to add your own custom commands. For example, you could
create a command to allow users to request vacation time or to enter timecard information, or
even to perform user administration. Commands that you create must comply with
XEP-0050:Ad-Hoc Commands.
Related topics:
To configure a custom command on page 179
To configure a custom command
1. Change to the controller’s Advanced configuration view.
2. Click Go beside Add a new Custom LaunchBroker Command .
3. In the Custom LaunchBroker Command Configuration page, configure the
following parameters.
Parameter
Description
Custom library
Enter the name of the library for the custom command.
Load
Enter the load function for the command’s library.
Node
Enter a unique identifier for the command.
Custom
command
configuration
Add additional XML configuration for the custom command
within the <config/> tag as needed. Do not change the toplevel configuration element.
4. Click Submit to save your configuration.
Administering Presence Services XCP Controller
August 2010
179
LaunchBroker
LaunchBroker Parameter Reference
This section describes the parameters associated with the LaunchBroker component. The
parameters are divided into subsections based on the configuration view in which they
display.
Related topics:
Basic Parameters on page 180
Intermediate Parameters on page 181
Advanced Parameters on page 182
Basic Parameters
The following table describes the parameters that are displayed in the controller’s Basic
configuration view. These parameters are sufficient to configure an operational LaunchBroker
component.
Parameter
Description
Description
The description is displayed in the Components area on the
controller’s main page and should help you distinguish between
components of the same type when you have more than one
configured. You can change the description as needed.
WebEx Collaboration Command
The WebEx Collaboration command allows Presence client users to create WebEx
meetings and to send meeting invitations to contacts. The WebEx collaboration command
sends two jabber:x:data forms to the user. The first form requests the user’s WebEx
username and password, and the second form requests the meeting topic and the list of
JIDs of those to invite to the meeting.
Node
Enter a unique identifier for the command.
Hostname prefix
Enter the host prefix used to access the WebEx server. The WebEx
command makes an outbound connection to https://
[hostname_prefix ].webex.com:443.
WebEx PID
Enter your WebEx partner ID.
Site ID
Enter your site ID.
Default Meeting
Type
Enter the numeric code that denotes the meeting type. The default
value, 3, indicates WebEx Meeting Center Pro.
Adobe Acrobat Connect Professional
The Adobe Acrobat Connect Professional Command allows Jabber Messenger 3.x users
to locate and create online meetings on the Adobe Connect server.
180
Administering Presence Services XCP Controller
August 2010
LaunchBroker Parameter Reference
Parameter
Description
Node
Enter a unique identifier for the command.
Adobe Connect
XML API URL
Enter the URL for the Adobe Connect XML API. For example:
http://adobeconnect.server/api/xml
Adobe Connect
Admin User
Enter the Adobe Connect administrator account. For example:
[email protected]
Admin Password
Enter the Adobe Connect administrator’s password.
Confirm Password
Enter the password again to confirm it.
Intermediate Parameters
The following table describes the parameters that are displayed in the controller’s Intermediate
configuration view.
Parameter
Description
Router Outbound Connection Information
Select this option only if you want the XCP router to connect to the component. For example,
if the component is running outside your firewall, this option allows the router to connect to
the component safely rather than introducing security risks by letting the component connect
to it. By default, components connect to the router using the router’s Master Accept Port.
Component IP
Enter the IP address or host name of the system on which the
component is installed.
Port
Enter the port that the component uses for communications.
Password
Enter the password that the router uses to authenticate the
component.
Execute an External Command
This option allows the router to start the component automatically. If you prefer to start the
component from a command line, disable this option.
Command line to
run
A command that runs the component automatically is provided by
default. You can modify it if needed.
Note:
Do not use the -B argument with this component. Since jabberd is
already a daemon process, its children must not be daemons.
You should not redirect output, because all output to STDOUT and
STDERR will be redirected to /dev/null.
Hostnames for this Component
This option specifies the hosts for which this component will handle packets. Specify a host
filter only if you want the component to be externally addressable; for example, if you want
clients and other components or programs to communicate with it. This is because the
Administering Presence Services XCP Controller
August 2010
181
LaunchBroker
Parameter
Description
mod_disco module in JSM uses host filters to return the component as something that
should be discoverable.
Host Filters
By default, the XCP server’s host name prepended by ”eci” is
provided.
Enter the host names or IP addresses for which you want this
component to handle packets. Separate each host name or address
with a line break.
Host filters must be host names, or IPv4 or IPv6 addresses. If you use
an IP address, the packet address must also use this IP address.
WebEx Collaboration Command
HTTP Proxy
Select this option if you want all WebEx traffic to go through an HTTP
proxy.
Host
Enter the proxy’s IP address or FQDN.
Port
Enter the proxy’s port number.
Adobe Acrobat Connect Professional
HTTP Proxy
Select this option if you want all Adobe Connect traffic to go through
an HTTP proxy.
Host
Enter the proxy’s IP address or FQDN.
Port
Enter the proxy’s port number.
Component Logging (Jlog)
Select the Component Logging (Jlog) option only if you want to configure filtered level
loggers that log messages to syslog and to a stream (stderr or stdout). You can enable either
or both the syslog and stream loggers. These parameters are displayed in the controller’s
Intermediate and Advanced configuration views.
SNMP Configuration
Select this option if you want to configure SNMP for the component.
Enable SNMP
Leave this parameter set to Yes.
Advanced Parameters
The following table describes the parameters that are displayed in the controller’s Advanced
configuration view. Advanced parameters are used for adjusting the performance of the XCP
system. We recommend that you call Technical Support if you need to change these parameter
settings.
Parameter
Runlevel
182
Description
Enter the order in which this component shuts down. The runlevel
must be an integer value greater than or equal to zero. Component
Administering Presence Services XCP Controller
August 2010
LaunchBroker Parameter Reference
Parameter
Description
shutdown is executed in reverse order of the specified runlevel;
components with the highest level (typically 70) shut down first.
Do not change the runlevel unless you know exactly what you are
doing and understand the effects that changing it will have. The default
runlevel is provided to help the system shut down as smoothly as
possible, and is based on this component’s dependencies upon other
components.
Timeout for
shutdown
Enter the number of seconds that the server waits to receive
acknowledgement from the component that the shutdown process has
completed. If the component has not shut down by the time this time
period has elapsed, the router leaves the process in its current state
and continues shutting down other processes.
Component Properties
Number of packets Enter the number of packets bound for the component that should be
buffered when
buffered if the component goes down.
component is down
Bounce error
packets to stderr
Select Yes if you want the router to send warnings to stderr when the
component is down.
Router Outbound Connection Information
Buffer size in bytes Enter the number of bytes the router should buffer when it sends
for outgoing data
information to the component. You may want to modify this element
when working on performance enhancements.
Buffer size in bytes Enter the number of bytes the router should buffer when it receives
for incoming data
information from the component. You may want to modify this element
when working on performance enhancements.
Send keepalives
Select Yes if you want the router to send keep-alives to the
component. The keep-alive helps prevent firewalls from dropping an
unused connection to the component. If this option is set to No, keepalives are disabled.
Log the delivery of
packets to this
component
Select Yes if you want to log the data that the router delivers to the
component. The information is logged to the logger(s) you set up
during Jabberd Logger configuration (syslog, file, or stderr). Socketlevel logging happens only at the debug level.
Execute an External Command
Maximum interval
in seconds to wait
before restarting
component
Enter the maximum number of seconds after which the router tries to
restart the component. If the component goes down, the router tries
to restart it after one second. If the component does not start, the
router multiplies the wait time by 1.5, and tries again. Once the
maximum time interval that you specify for this parameter is reached,
the router continues to retry after waiting this amount of time.
Administering Presence Services XCP Controller
August 2010
183
LaunchBroker
Parameter
Description
Maximum number
of times to restart
component
Enter the total number of restarts allowed. The default setting, -1,
means unlimited.
Interval in seconds
at which to reset
this value to 1
second
Enter the number of seconds that the component has been up and
running, after which to set the restart time back to one second.
Path to binary
Enter the directory path to the shell that launches the component. You
can change the default setting if needed.
LaunchBroker Configuration
Number of threads
to dedicate to
LaunchBroker
tasks
Enter the number of threads that you want to have processing tasks
in the component. Increasing this value enables the component to
handle more tasks at a time. However, it spends more time scheduling
the tasks as this number increases.
We recommend that you set this number to one more than the number
of processors on your system.
WebEx Collaboration Command
Command time-out Enter the number of seconds that the LaunchBroker should wait for
form results before timing out.
Adobe Acrobat Connect Command
Command time-out Enter the number of seconds that the LaunchBroker should wait for
form results before timing out.
Should new Adobe
Connect users be
created
Select Yes or No depending on whether you want the LaunchBroker
to create new user accounts when it services requests from nonexistent users.
HTTP header for
effective ID
Enter the HTTP header name that is used to set the effective user
during proxy authentication requests. This field contains ”X-User-Id”
by default, and should match the configuration of the Adobe Connect
server.
Local host
Enter the names of one or more hosts that are treated as local to the
server and for which accounts may be automatically created. By
default, this field contains the host name of the server on which the
XCP server is installed.
Component Logging (Jlog)
Add a new custom
logger
If you have created a custom logger for logging component
information using the libjcore library, click Go to access the Custom
Logger Configuration page.
SNMP Configuration
Count errors
184
Select Yes only if you want to enable SNMP error counting. This option
takes a great deal of server resource, so use it with caution.
Administering Presence Services XCP Controller
August 2010
Chapter 14: Message Archiver
The Message Archiver component stores all inbound and outbound messages to a Presence-supported
database where they can be indexed and searched. It also logs file transfer requests, although it does not
log the transferred files themselves.
Shutting down the Message Archiver may require several minutes. This is especially true if there is a
queue of messages waiting to be stored in the database. The Message Archiver attempts to ensure that
all messages are written before the system shuts down. To determine whether it is still storing pending
messages after you have shut it down, check to see if the archiver threads are still busy. If the threads
are running, the Message Archiver is still working.
Important:
This chapter provides information about how to add and configure a message archiver component, and
provide instructions to allow you to retrieve archived messages from the database. A message archiver
component has been automatically pre-installed and configured with the Presence Server installation.
So, you need not necessary have to follow the detailed procedure for adding or configuring the message
archiver component but the information may be useful if you wish to customize the message archiver
to your needs
This Chapter consists of the following topics:
• Configuring Message Archive on page 185
• Configuring the Presence Session Manager on page 186
• Retrieving Message Archiver Data on page 187
Configuring Message Archive
To configure the Message Archiver component, you must use at least the Presence XCP
Controller’s Intermediate configuration view. The Intermediate parameters are sufficient to
configure an operational Message Archiver.
The following instructions describe only the intermediate parameters that are specific to the
Message Archiver component. For descriptions of all of the parameters associated with the
component, see the online help provided in the Message Archiver Configuration page’s online
help.
To configure the Message Archiver
Administering Presence Services XCP Controller
August 2010
185
Message Archiver
1. Change to the Presence XCP Controller’s Intermediate configuration view.
2. In the Components area on the Presence XCP Controller’s main page, select
Message Archiver in the list, and then click Go.
3. In the Message Archiver Configuration page under Log, select one or both
Namespace(s).
Message Archiver will log the messages associated with the namespace(s) that you
choose. The jcs:mod_log:message:in namespace logs incoming messages and file
transfer requests as they are received by the server. The jcs:mod_log:message:out
namespace logs outgoing messages and file transfer requests as they are sent by
the server. The Message Archiver ignores namespaces that are not selected
here.
Important:
If you select both namespaces, each message and file transfer request will be
logged twice, once as they are sent by the server and once as they are received
by the server.
4. If you want the Message Archiver to log message packets from specific hosts only,
enter their host names or IP addresses in the Host Filters field.
The asterisk (*) is used to log message packets from every host.
Note:
Separate each host name or address with a line break. Host filters must be host
names, or IPv4 or IPv6 addresses. If an IP address is used, the packet address
must also use this IP address.
5. The Message Archiver requires a database; Oracle, PostgreSQL, or DB2.
If you configured one of these databases when you installed the Presence Services
server, you do not have to configure one here. However, if you want to use a different
database for the Message Archiver, or if you selected SQLite during installation,
select the Database Setup option, under the Message Archiver Configuration
section and configure the parameters. Descriptions of the database parameters are
provided in the Message Archiver Configuration page’s online help.
6. Click Submit to save your configuration.
Configuring the Presence Session Manager
In addition to configuring the Message Archiver component, you must configure the Presence
Session Manager as described in this section.
186
Administering Presence Services XCP Controller
August 2010
Retrieving Message Archiver Data
To configure the Presence Session Manager
1. Make sure you are still using the Presence XCP Controller’s Intermediate
configuration view.
2. In the Router area on the Presence XCP Controller’s main page, click Edit beside
Presence Session Manager.
3. In the Presence Session Manager Configuration page, ensure that
mod_message_archiver check box is cleared under Optional modules.
The mod_message_archiver module is an independent archival mechanism that
always logs messages to the local database when enabled. If the
mod_message_archiver module is enabled while the message archiver component
is also running (and configured to log to the local database) then both mechanisms
will log messages to the local database. However, if the message archiver
component is configured to log to a remote database then the
mod_message_archiver module when enabled can be used to log to the local
database.
4. Scroll down toward the bottom of the page, and select JSM Logging.
5. Select Yes for one or both types of message packets.
The options you choose here must match the namespaces that you choose in the
Message Archiver configuration (step 3 in the previous section).
6. Click Submit to save your configuration.
7. Restart your Presence XCP system.
Retrieving Message Archiver Data
The following command can be used at a terminal to access messages that have been archived
to the local database (assuming that the default configuration has not been modified to archive
the message to a different database).
psql -U postgres -d xcp -c "select * from jm"
Note:
For a co-resident installation, use the following command:
psql -U postgres -d xcp -c "select * from public.jm"
Administering Presence Services XCP Controller
August 2010
187
Message Archiver
Note:
The jm table is not purged automatically. The System Administrator needs to administer this
table and perform backups or purges of the information as approapriate to ensure that the
table does not grow without limit.
A tool is provided to assist in this process - see Chapter 13:IM Database Management Tool
The following information describes the fields used in the jm database table, this may be useful
for forming SQL statements to retrieve specific conversations involving a particular user. This
information details the following cases:
• Incoming and Outgoing Messages
• File Transfer Requests
Important:
In the tables below the message 'direction' field indicates whether a message is Incoming
(I) or Outgoing (O). An Incoming message is a message on the path from the Presence
Server to a particular client - the message is incoming from the client's perspective. An
Outgoing message is a message on the path from a particular client to the Presence Server
- the message is outgoing from the client's perspective.
When the OCS Gateway is used to allow Jabber XMPP clients to communicate with
Microsoft Office Communicator clients certain messages are not recorded by the message
archiver component (or module). Assuming that both Incoming and Outgoing messages are
configured to be recorded then the following messages will not be logged to the database:
• For a message from a Microsoft Office Communicator client to a Jabber client the
message on the path from the Microsoft Office Communicator client to the Presence
Server is not logged, though the same message on the path from the Presence Server
to the Jabber client is logged. That is the Outgoing message is not logged.
• For a message from a Jabber client to a Microsoft Office Communicator client the
message on the path from the Jabber client to the Presence Server is logged, but the
message on the path from the Presence Server to the Microsoft Office Communicator
client is not logged. That is the Incoming message is not logged.
• However, all Incoming and Outgoing messages between two Jabber clients are logged
to the database. Specifically, when a Jabber client sends a message to another Jabber
client then both an Incoming and Outgoing entry should be logged to the database for
the message in question.
Related topics:
Incoming and outgoing messages on page 188
Files transfer requests on page 189
Incoming and outgoing messages
The following information pertaining to incoming and outgoing messages is stored in the JM
table.
188
Administering Presence Services XCP Controller
August 2010
Retrieving Message Archiver Data
Column
Description
to_jid
Stores the Jabber ID of the person who is receiving the message. This
field cannot be left blank.
from_jid
Stores the Jabber ID of the person from whom the message was sent.
This field cannot be left blank.
subject
Stores the subject line of the message, if available.
thread_id
Stores the thread ID of the message, if available.
sent_date
Stores the date on which the Presence server received the message.
This field cannot be left blank.
msg_type
Stores the type of the message. C indicates that the message is a Chat,
while G indicates that it is a Group message. Presence protocol supports
additional message types. These types are indicated with an N for
normal.
direction
Stores an indicator that tells where the message was generated. I
indicates inbound messages, while O indicates outbound messages.
body_len
Stores the number of characters in the message’s body. The system uses
this field to determine whether to store the text of the message in
body_text or body_string.
body_text
If the length (body_len) is greater than 4000 characters, the text of the
message body is stored in body_text.
body_string
If the length (body_len) is less than or equal to 4000, the text of the
message body is stored in body_string.
message_len
The message fields store the entire XML packet of the message. Custom
clients may include things that are not in the body’s text. This captures
everything, even if it cannot be indexed.
It stores the number of characters in the message. The system uses this
field to determine whether to store the text of the message in
message_text or message_string.
message_text
If the length (message_len) is greater than 4000 characters, the text of
the entire message is stored in message_text.
message_string
If the length (message_len) is less than or equal to 4000, the text of the
entire message is stored in message_string.
Files transfer requests
File transfer requests are also stored in the JM table with the following differences.
Column
subject
Description
Stores the URL of the message, if available.
Administering Presence Services XCP Controller
August 2010
189
Message Archiver
Column
Description
thread_jid
Stores the thread ID of the message, if available.
sent_date
Stores the date on which the Presence server received the message.
This field cannot be left blank.
body_len
Stores the number of characters in the message body. The system uses
this field to determine whether to store the text of the message in
body_text or body_string.
body_text
If the length (body_len) is greater than 4000 characters, the text of the
message is stored in body_text.
body_string
If the length (body_len) is less than or equal to 4000, the text of the
message is stored in body_string.
message_len
The message fields store the entire XML packet of the message.
Custom clients may include things that are not in the body’s text. This
captures everything, even if it cannot be indexed.
It stores the number of characters in the message. The system uses this
field to determine whether to store the text of the message in
message_text or message_string.
message_text
If the length (message_len) is greater than 4000 characters, the text of
the message is stored in message_text.
message_string
If the length (message_len) is less than or equal to 4000, the text of the
message is stored in message_string.
Either body_text or body_string contains the message bodies, depending on the length of the
messages. If the message body was greater than 4000 characters in length, it is stored in
body_text; otherwise it is in body_string. Whichever of these two fields is not used is set to
null.
The entire message packet in raw form is stored in message_string or message_text field
of the JM table.
190
Administering Presence Services XCP Controller
August 2010
Chapter 15: OpenPort
To get the OpenPort up and running, follow the instructions in Configuring the OpenPort . Then, if you
want to fine tune your configuration, you can configure the parameters displayed in the Controller's
Intermediate and Advanced configuration views.
The OpenPort component allows you to configure a custom component or a component used for testing
purposes.
Configuring the OpenPort
Perform the configuration described in this section first.
This section provides instructions for getting the OpenPort component up and running quickly
by configuring the parameters provided in the Controller's Basic configuration view. The
parameters provided in the Basic view are sufficient to configure an operational component.
1. Change to the Controller's Basic configuration view.
2. Change the Description to something specific for this OpenPort.
3. Click Submit to save your configuration.
Intermediate Configuration Parameters
Configuration parameters that are provided in the Controller's Intermediate configuration view
are described below in their respective sections. These parameters allow you to refine your
configuration to some degree, and provide logging configuration capabilities. Default values
have been provided for required parameters.
Router Outbound Connection Information
Select the Router Outbound Connection Information option only if you want to configure
parameters that allow the router to connect to the component. For example, if the component
is installed on a system that is running outside your firewall, this option allows the XCP router
to connect to the component safely rather than introducing security risks by having the
component connect to the router. (If you do not configure this option, the component will
connect to the router using the Master Accept Port that is configured for the Core Router.)
Administering Presence Services XCP Controller
August 2010
191
OpenPort
Component IP
Enter the IP address or hostname of the system on which the
component is installed.
Port
Enter the port that the component uses for communications.
Password
Enter the password that the router uses to authenticate the
component.
Execute an External Command
This option is enabled by default, and allows the router to start the component. Disable the
option if you prefer to start the component from a command line.
Command line to run
A command that runs the component automatically is provided
by default. You can modify it if needed.
Caution:
Do not use the -B argument with this component. Since the
PS logger is already a daemon process, its children must not
be daemons.
You should not redirect output, because all output to STDOUT
and STDERR will be redirected to /dev/null.
Hostnames for this Component
Specify a host filter only if you want the component to be externally addressable; for example,
if you want clients and other components or programs to communicate with it. This is because
the mod_disco module in JSM uses host filters to return the component as something that
should be discoverable.
This option specifies the hosts for which the component will handle packets.
Important:
If you are configuring this open port for an S2SCP, you must specify a Host Filter so that
packets destined for external domains reach the S2S component. In most cases, you should
enter an asterisk (*) in the text box.
Host Filters
Enter the hostnames or IP addresses for which you want this
component to handle packets. Separate each hostname or
address with a line break.
Enter an asterisk (*) in the textbox to enable the component to
handle data from any host.
Note:
Host filters must be hostnames, or IPv4 or IPv6 addresses. If
an IP address is used, the packet address must also use this
IP address.
192
Administering Presence Services XCP Controller
August 2010
Advanced Configuration Parameters
Advanced Configuration Parameters
Configuration parameters that are provided in the Controller's Advanced configuration view
are described below in their respective sections. These parameters let you configure advanced
settings such as runlevel, buffer sizes, thread counts, and custom loggers. They require a more
advanced level of XCP server knowledge and can be used for fine tuning your XCP system.
Runlevel
The order in which this component shuts down. The runlevel must be an integer value greater
than or equal to 0. (Component shutdown is executed in reverse order of the specified runlevel;
components with the highest level (typically 70) shut down first.)
Caution:
Do not change the runlevel unless you know exactly what you are doing and understand the
effects that changing it will have. The default runlevel is provided to help the system shut
down as smoothly as possible, and is based on this component's dependencies upon other
components.
Timeout for Shutdown
The number of seconds that the server waits to receive acknowledgement from the component
that the shutdown process has completed.
Note:
If the component has not shut down by the time this time period has elapsed, the XCP core
router leaves the process in its current state and continues shutting down other
processes.
Component Properties
Select the Component Properties option if you want to configure the number of packets that
are buffered when the component is down and whether to send error packets to stderr.
Number of packets
buffered when
component is down
Enter the number of packets bound for the component that
should be buffered if the component goes down.
Bounce error packets to
stderr
Select Yes if you want the router to send warnings to stderr when
the component is down.
Router Outbound Connection Information
Buffer size in bytes for
outgoing data
Enter the number of bytes the router should buffer when it sends
information to the component. You may want to modify this
element when working on performance enhancements.
Administering Presence Services XCP Controller
August 2010
193
OpenPort
Buffer size in bytes for
incoming data
Enter the number of bytes the router should buffer when it
receives information from the component. You may want to
modify this element when working on performance
enhancements.
Keep-alive interval in
seconds
Enter the number of seconds after which the router sends a
keep-alive to the component. The keep-alive helps prevent
firewalls from dropping an unused connection to the component.
If this option is set to 0 or left empty, keep-alives are disabled.
Log delivery of packets
to this component
Select Yes if you want the data that the router delivers to the
component to be logged. The information is logged to the
logger(s) you set up during IPS Logger configuration (syslog, file,
or stderr).
Socket-level logging happens only at the debug level.
Execute an External Command
Maximum interval in
seconds to wait before
restarting component
Enter the maximum number of seconds after which the router
tries to restart the component.
If the component goes down, the router tries to restart it after 1
second. If the component is not running yet, the router multiplies
the wait time by 1.5, and retires after the longer time. Once the
maximum time interval that you specify in this field is reached,
the router continues to retry after waiting this amount of time.
Maximum number of
times to restart
component
Enter the total number of restarts allowed. The default setting,
-1, means unlimited.
Note:
If you want to be able to kill the component from the command
line and prevent it from starting again automatically, you must
set this number to something other than -1. For example, if
you set it to 1, the component will not restart once you have
killed it; if you set it to 2, the component will only restart once,
and so on.
Interval in seconds at
which to reset this value
to 1 second
The number of seconds that the component has been up and
running, after which to set the restart time back to 1 second.
Path to Binary
The directory path to the shell that launches the component. You
can change the default setting if needed.
XDB
Select the XDB option if you want to set this component up to receive XDB packets.
Namespace Filters
194
Enter an asterisk (*) to indicate that this XDB will handle the
namespaces that are not handled by another XDB plugin. If you
want the XDB to handle specific namespaces only, enter them
Administering Presence Services XCP Controller
August 2010
Advanced Configuration Parameters
in the textbox separating each with a line break. All other
namespaces will be ignored.
Caution:
You can specify an asterisk for only one XDB plugin.
Host Filters
Enter the hostnames for which you want this XDB instance to
handle XDB packets. Separate each hostname with a line
break.
Enter an asterisk (*) in the textbox to enable this XDB instance
to handle XDB packets from any host.
Log
Select the Log option if you want to set this component up to receive log packets.
Namespace Filters
Leave the namespaces for which you want data to be logged by
this component. Remove those that you do not wish to use.
Note:
You can delete or modify any of the namespaces in the list,
and you can add namespaces at the bottom of the list if
needed.
Host Filters
Enter the hostnames for which you want this OpenPort
component to handle packets. Separate each hostname with a
line break.
Enter an asterisk (*) in the textbox to enable the component to
handle data from any host.
OpenPort Configuration
By default, the OpenPort configuration field contains an empty <config/> element in the openport namespace. Do not change the top-level configuration element. You can add any
additional XML configuration for the open port; for example, a configuration for SNMP. When
you add an element, the string "xmlns="http://www.jabber.com/config" is added inside the
tag.
Adding additional XML is helpful when you are creating an open port for a custom component
that does not have a .jig or an .xsd file.
Administering Presence Services XCP Controller
August 2010
195
OpenPort
196
Administering Presence Services XCP Controller
August 2010
Chapter 16: Presence Mirror
The Presence Mirror component, which is installed with the “extras” installation package, stores a copy
of all of the presence packets that the XCP server sends to IM users in your database. The server uses
the Blind Carbon Copy feature to send presence packets to the database. Each packet includes the user’s
JID, presence status, and a status message. In addition to configuring the Presence Mirror component,
you must also configure some settings in the presence Session Manager.
Note:
To retrieve a user’s presence from the database, you must use your standard database tools.
Configuring the Presence Mirror Component
To configure the Presence Mirror component, you must use at least the controller’s
Intermediate configuration view. The Intermediate parameters are sufficient to configure an
operational Presence Mirror.
The following instructions describe only the intermediate parameters that are specific to the
Presence Mirror component. For descriptions of all of the parameters associated with the
component, see Presence Mirror Parameter Reference .
Related topics:
To configure the Presence Mirror on page 197
To configure the Presence Mirror
1. Change to the controller’s Intermediate configuration view.
2. In the Components area on the controller’s main page, select Presence Mirror in
the list, and then click Go .
3. Write down the Presence Mirror component’s ID and keep it near by. You will need
to use the ID when you configure the Presence Session Manager to use the
Presence Mirror.
4. The Presence Mirror requires a database —Oracle, PostgreSQL, or DB2. If you
configured one of these databases when you installed the Presence XCP server,
you do not have to configure one here. However, if you want to use a different
Administering Presence Services XCP Controller
August 2010
197
Presence Mirror
database for the Presence Mirror, or if you selected SQLite during installation, select
the Database Setup option and configure the parameters.
Descriptions of the database parameters are provided in the Database Setup
section in the “ Intermediate Parameters” table provided in Presence Mirror
Parameter Reference .
5. Click Submit to save your configuration.
Configuring the Presence Session Manager
In addition to configuring the Presence Mirror, you must configure the Presence Session
Manager as described in this section.
Related topics:
To configure the Presence Session Manager on page 198
To configure the Presence Session Manager
1. Make sure you are still in the controller’s Intermediate configuration view.
2. In the Router area on the controller’s main page, click Edit beside Presence
Session Manager .
3. In the Presence Session Manager Configuration page under Optional
Modules , select mod_presence_bcc . This module sends presence packets to
the Presence Mirror so that it can store them in the database using the Blind Carbon
Copy (BCC) feature.
4. Scroll down toward the bottom of the page, and select Mirroring Presence .
5. Enter the ID of the Presence Mirror component. For example:
presence-mirror-1.presence
6. Click Submit to save your configuration.
7. Restart your XCP system.
198
Administering Presence Services XCP Controller
August 2010
Presence Mirror Parameter Reference
Presence Mirror Parameter Reference
This section describes the parameters associated with the Presence Mirror component. The
parameters are divided into subsections based on the configuration view in which they
display.
Related topics:
Intermediate Parameters on page 199
Advanced Parameters on page 201
Intermediate Parameters
The following table describes the parameters that are displayed in the controller’s Intermediate
configuration view. These parameters are sufficient to configure an operational Presence
Mirror component.
Parameter
Description
Description
The description is displayed in the Components area on the controller’s
main page and should help you distinguish between components of the
same type when you have more than one configured. You can change
the description as needed.
Router Outbound Connection Information
Select this option only if you want the XCP router to connect to the component. For example,
if the component is running outside your firewall, this option allows the router to connect to
the component safely rather than introducing security risks by letting the component connect
to it. By default, components connect to the router using the router’s Master Accept Port.
Component IP
Enter the IP address or host name of the system on which the
component is installed.
Port
Enter the port that the component uses for communications.
Password
Enter the password that the router uses to authenticate the
component.
Execute an External Command
This option allows the router to start the component automatically. If you prefer to start the
component from a command line, disable this option.
Command line to
run
A command that runs the component automatically is provided by
default. You can modify it if needed.
Administering Presence Services XCP Controller
August 2010
199
Presence Mirror
Parameter
Description
Note:
Do not use the -B argument with this component. Since the IPS
logger is already a daemon process, its children must not be
daemons.
You should not redirect output, because all output to STDOUT and
STDERR will be redirected to /dev/null.
Hostnames for this Component
This option specifies the hosts for which this component will handle packets. Specify a host
filter only if you want the component to be externally addressable; for example, if you want
clients and other components or programs to communicate with it. This is because the
mod_disco module in JSM uses host filters to return the component as something that
should be discoverable.
Host Filters
Enter the host names or IP addresses for which you want this
component to handle packets. Separate each host name or address
with a line break.
Host filters must be host names, or IPv4 or IPv6 addresses. If you use
an IP address, the packet address must also use this IP address.
Database Setup
Select this option if you want to configure a database that is different from the one configured
for the core router in the Global Settings Configuration page.
Datasource Name For the PostgreSQL database, this is the name of the component’s
datasource as specified in the .odbc.ini file. For Oracle, the datasource
is specified in the ORACLE_SID environment variable or in the
tsnames.ora file. For DB2, this is typically the database alias.
Database User
Name
Enter the username used to connect to the database.
Database User’s
Password
Enter the password used to connect to the database.
Confirm Password Enter the password again to confirm it.
Database Type
Select the type of database you are using from the list.
If you select postgresql-odbc, you must add the line,
“ MaxVarcharSize=4000” to the datasource definition used in
the .odbc.ini file.
Number of
Enter the number of connections that you want the component to use
connections to the for processing requests.
database
Time in seconds
Enter the number of seconds after which the database connection
between database should refresh. Do not set this value to zero without contacting
connection
technical support.
heartbeats
Component Logging (Jlog)
200
Administering Presence Services XCP Controller
August 2010
Presence Mirror Parameter Reference
Parameter
Description
Select the Component Logging (Jlog) option only if you want to configure filtered level
loggers that log messages to syslog and to a stream (stderr or stdout). You can enable either
or both the syslog and stream loggers. These parameters are displayed in the controller’s
Intermediate and Advanced configuration views.
SNMP Configuration
Select this option if you want to configure SNMP for the component.
Enable SNMP
Leave this parameter set to Yes.
Advanced Parameters
The following table describes the parameters that are displayed in the controller’s Advanced
configuration view. Advanced parameters are used for adjusting the performance of the XCP
system. We recommend that you call technical Support if you need to change these parameter
settings.
Parameter
Description
Runlevel
Enter the order in which this component shuts down. The runlevel must
be an integer value greater than or equal to zero. Component shutdown
is executed in reverse order of the specified runlevel; components with
the highest level (typically 70) shut down first.
Do not change the runlevel unless you know exactly what you are doing
and understand the effects that changing it will have. The default
runlevel is provided to help the system shut down as smoothly as
possible, and is based on this component’s dependencies upon other
components.
Timeout for
shutdown
Enter the number of seconds that the server waits to receive
acknowledgement from the component that the shutdown process has
completed. If the component has not shut down by the time this time
period has elapsed, the router leaves the process in its current state and
continues shutting down other processes.
Component Properties
Number of
Enter the number of packets bound for the component that should be
packets buffered buffered if the component goes down.
when component
is down
Bounce error
packets to stderr
Select Yes if you want the router to send warnings to stderr when the
component is down.
Router Outbound Connection Information
Administering Presence Services XCP Controller
August 2010
201
Presence Mirror
Parameter
Description
Buffer size in
Enter the number of bytes the router should buffer when it sends
bytes for outgoing information to the component. You may want to modify this element
data
when working on performance enhancements.
Buffer size in
bytes for
incoming data
Enter the number of bytes the router should buffer when it receives
information from the component. You may want to modify this element
when working on performance enhancements.
Send keepalives
Select Yes if you want the router to send keep-alives to the component.
The keep-alive helps prevent firewalls from dropping an unused
connection to the component. If this option is set to No, keep-alives are
disabled.
Log the delivery
of packets to this
component
Select Yes if you want to log the data that the router delivers to the
component. The information is logged to the logger(s) you set up during
IPS Logger configuration (syslog, file, or stderr). Socket-level logging
happens only at the debug level.
Execute an External Command
Maximum interval
in seconds to wait
before restarting
component
Enter the maximum number of seconds after which the router tries to
restart the component. If the component goes down, the router tries to
restart it after one second. If the component does not start, the router
multiplies the wait time by 1.5, and tries again. Once the maximum time
interval that you specify for this parameter is reached, the router
continues to retry after waiting this amount of time.
Maximum
number of times
to restart
component
Enter the total number of restarts allowed. The default setting, -1, means
unlimited.
Interval in
Enter the number of seconds that the component has been up and
seconds at which running, after which to set the restart time back to one second.
to reset this value
to 1 second
Path to binary
Enter the directory path to the shell that launches the component. You
can change the default setting if needed.
Database Setup
Is database
debug logging
enabled?
Select ’1’ to log database debug information. Database logging uses the
XCP router’s logging facility, the IPC Logger. The log level must be set
to debug for database logging to occur.
Component Logging (Jlog)
Add a new
custom logger
If you have created a custom logger for logging component information
using the libjcore library, click Go to access the Custom Logger
Configuration page.
SNMP Configuration
202
Administering Presence Services XCP Controller
August 2010
Presence Mirror Parameter Reference
Parameter
Count errors
Description
Select Yes only if you want to enable SNMP error counting. This option
takes a great deal of server resource, so use it with caution.
Administering Presence Services XCP Controller
August 2010
203
Presence Mirror
204
Administering Presence Services XCP Controller
August 2010
Chapter 17: Presence Configuration
Reference
This section provides a reference for all of the parameters associated with the Presence component. The
parameters are divided into subsections based on the configuration view in which they display.
Basic Parameters
The following table describes the parameters that display in the controller’s Basic configuration
view. The basic parameters are sufficient to configure an operational Presence component.
Parameter
Description
Description
The description is displayed in the Components area on the
controller’s main page and should help you distinguish between
components of the same type when you have more than one
configured. You can change the description as needed.
Metrics File (full path) The full path to a file to which the IPS Publisher will write metrics
values pertaining to the operational activity within the server
Metrics enabled
Boolean indicator to turn on or off metrics reporting
Metrics Reporting
Interval
The time interval, in seconds, at which metrics reporting will take
place
Default AES
Username
The default username used when logging into an AES. This field
must be filled in. When the IPS connects to an AES to monitor an
extension it will use this username unless an Override by AES item
has been created for the AES, in which case the username supplied
on the Override By AES page will be used.
Default AES
Password
The default password used when logging into an AES. This field
must be filled in. When the IPS connects to an AES to monitor an
extension it will use this password unless an Override by AES item
has been created for the AES, in which case the password supplied
on the Override By AES page will be used.
User Name
The User Name used by the RTC Collector when subscribing to
Microsoft Office Clients
SIP Domain
The SIP Domain used by the RTC Collector when subscribing to
Microsoft Office Clients
Administering Presence Services XCP Controller
August 2010
205
Presence Configuration Reference
Parameter
Description
Transport
Transport (TCP or TLS) used by the RTC collector
Port
Port the RTC Collector listens on for Notifications
Expires
Expires value for a Subscription from the RTC Collector
Subscription Failure
Retry
The time to wait before attempting another subsription to a Microsoft
client when the previous subscription failed
Server Failure Retry
The period used by the RTC Collector to check failed connections
to the Enterprise domain (Domain of the MOC clients)
SES Transport
Transport (TCP or TLS) used by the SES collector
SES Port
This is the port the SES collector listens on for communications
WS Host
Hostname on which the UMS server is running
WS Port
Port number for UMS
WS Service
The service name URL for the UMS
JMS Host
JMS broker hostname
JMS Port
JMS broker port
Login
Login user id for UMS service
Password
Login password for UMS service
Secure connection
Boolean indicator to enable or disable secure (TLS) communications
Page Size
The number of records in a response message.
Resync
interval(seconds)
Time period for which the UMC will perform a resync to the UMS
Retry
interval(seconds)
UMC connection retry period to UMS
Intermediate Parameters
The following table describes the parameters that display in the Presence component’s
Intermediate configuration view.
Parameter
Description
Router Outbound Connection Information
Select this option only if you want the XCP router to connect to the component. For example,
if the component is running outside your firewall, this option allows the router to connect to
the component safely rather than introducing security risks by letting the component connect
to it. By default, components connect to the router using the router’s Master Accept Port.
206
Administering Presence Services XCP Controller
August 2010
Advanced Parameters
Parameter
Description
Buffer size in bytes
for outgoing data
Enter the number of bytes the router should buffer when it sends
information to the component. You may want to modify this element
when working on performance enhancements.
Buffer size in bytes
for incoming data
Enter the number of bytes the router should buffer when it receives
information from the component. You may want to modify this
element when working on performance enhancements.
Component IP
Enter the IP address or host name of the system on which the
component is installed.
Port
Enter the port that the component uses for communications.
Password
Enter the password that the router uses to authenticate the
component.
Execute an External Command
This option allows the router to start the component automatically. If you prefer to start the
component from a command line, disable this option.
Command line to run A command that runs the component automatically is provided by
default. You can modify it if needed.
Note:
Do not use the -B argument with this component. Since the IPS
logger is already a daemon process, its children must not be
daemons.
You should not redirect output, because all output to STDOUT and
STDERR will be redirected to /dev/null.
Hostnames for this Component
This option specifies the hosts for which this component will handle packets. Specify a host
filter only if you want the component to be externally addressable; for example, if you want
clients and other components or programs to communicate with it. This is because the
mod_disco module in JSM uses host filters to return the component as something that
should be discoverable.
Host Filters
Enter the host names or IP addresses for which you want this
component to handle packets. Separate each host name or address
with a line break.
Host filters must be host names, or IPv4 or IPv6 addresses. If you
use an IP address, the packet address must also use this IP
address.
Advanced Parameters
The following table describes the parameters that are displayed in the Presence component’s
Advanced configuration view. Most of the advanced parameters are used for adjusting the
Presence server’s performance. Default values have been provided for these parameters, and
Administering Presence Services XCP Controller
August 2010
207
Presence Configuration Reference
in most cases, these values are sufficient. We recommend contacting technical Support if you
want to change the values.
Parameter
Description
Runlevel
Enter the order in which this component shuts down. The runlevel
must be an integer value greater than or equal to 0. Component
shutdown is executed in reverse order of the specified runlevel;
components with the highest level (typically 70) shut down first.
Do not change the runlevel unless you know exactly what you are
doing and understand the effects that changing it will have. The
default runlevel is provided to help the system shut down as
smoothly as possible, and is based on this component's
dependencies upon other components.
Timeout for
shutdown
Enter the number of seconds that the server waits to receive
acknowledgement from the component that the shutdown process
has completed. If the component has not shut down by the time this
time period has elapsed, the router leaves the process in its current
state and continues shutting down other processes.
Number of packets
buffered when
component is down
Enter the number of packets bound for the component that should
be buffered if the component goes down.
Bounce error packets Select Yes if you want the router to send warnings to stderr when
to stderr
the component is down.
Presence Components
208
Publish DND Status
DND or Do Not Disturb feature (the feature button on CM is called
SendAllCalls) can be configured for extensions on the Avaya
Communication Manager. If an extension is configured so that it has
the use of the feature 'SendAllCalls' it may toggle the 'SendAllCalls'
button to turn on and off DND status.
If 'Publish DND status' is set to 'No' then no DND information will be
published in the phone tuple by IPS for any extension regardless of
whether 'SendAllCalls' is on or off. If 'Publish DND status' is set to
'Yes' and if 'SendAllCalls' is set to 'on' for an extension IPS will
publish the DND activity element and the basic status would be set
to 'closed' for that extension.
You need AES = 4.1 and CM = 5.0 to guarantee DND updates from
AES. Deployments with versions of AES or CM earlier than this
should leave 'Publish DND Status' set to the default 'No'.
If a deployment with earlier versions of either AES or CM has 'Publish
DND status' set to 'Yes' then what may happen is IPS might for
example get an initial DND status of 'on' for an extension, publish
this information and set the basic status for it to 'closed'. Now if a
user updates the 'SendAllCalls' and sets it to 'off' IPS will not be
updated and continue to publish DND as on and a basic status of
'closed'
Default TSAPI.PRO
File
Name of an optional text file for configuring Avaya’s JTAPI library. If
the name of a file is supplied here, it will apply by default to all IPS
Administering Presence Services XCP Controller
August 2010
Advanced Parameters
Parameter
Description
to AES connections. Note that a TSAPI.PRO-like file specified in
these pages differs from the traditional TSAPI.PRO file in the
following respects: It does not need to be called “TSAPI.PRO”, it can
be located anywhere in the local file system, and, though lines of the
form “<AES IP address>=450” can be entered into it, they will be
ignored. Otherwise, Avaya’s JTAPI library will handle the file just as
it handles the traditional TSAPI.PRO file.
A separate TSAPI.PRO-like file can be configured, or not, for each
IPS to AES connection. To use this feature, create an Override by
Tlink item and fill in, or don’t, the “TSAPI.PRO file” item on that page.
The “TSAPI.PRO file” setting on the override page will determine
whether the connection identified by the tlink uses a TSAPI.PROlike file and, if it does, what the file’s name is. The “Default
TSAPI.PRO file” setting on this page will apply to those connections
for which a tlink override has not been created.
Note that these pages do not help you create or maintain
TSAPI.PRO-like files.
Static Routes
If needed static routes can be added for the RTC Collector. Each
static route should be added on its own line. Static routes take the
form "Domain Next-Hop Next-Hop-Port" so an example would be
"mydomain.com destmachine 5061" or an IP address may be used
as a Next-Hop "mydomain.com 10.0.0.100 5071"
Administering Presence Services XCP Controller
August 2010
209
Presence Configuration Reference
210
Administering Presence Services XCP Controller
August 2010
Chapter 18: Intra-Domain (Clustered)
federation using Single Domain
Name Support
Clustered federation using Single Domain Name Support
(SDNS)
This chapter provides instructions for configuring intra-domain federation for a clustered
environment using the Single Domain Name Support (SDNS) component. In an intra-domain
federated cluster a number of PS instances inter-connect to provide Presence and Instant
Messaging services for a single JID domain (for example, example.com). In an intra-domain
setup each PS instance should be installed with a unique 'Router Realm' (for example,
presence1, presence2, etc), while the 'Router Service Name' should be common across all
instances (for example, example.com). The 'Router Service Name' determines the JID domain
that is used by the users when logging on, for example, [email protected].
This Chapter consists of the following topics:
• Overview on page 0
• Configuring SDNS for Intra-Domain (Clustered) Federation
Overview
Single Domain Name Support (SDNS) provides a method for distributing the load for a single
domain over multiple, equivalent components (for example, multiple JSM components). The
SDNS component accomplishes this by allowing you to deploy a single domain name across
a network of Presence XCP routers and components on different computers. SDNS allows two
components with equivalent capabilities to act side by side, thereby reducing performance
bottlenecks and increasing the number of concurrent users that are supported on each system.
SDNS is thus useful for customers with demanding scalability requirements.
SDNS allows a number of PS instances to service a single user domain. The users may
connect to any server in the cluster (by specifying its FQDN or IP address) with a modulo
hashing algorithm then being used to home the user to a specific instance. Due to the nature
of the modulo algorithm the user is always homed on the same server in the cluster
independent of which server they connect to.
It may also be useful to set up DNS SRV records so that the client does not need to specify
the host to connect to (this option is only applicable if the use of automatic host and port
Administering Presence Services XCP Controller
August 2010
211
Intra-Domain (Clustered) federation using Single Domain Name Support
discovery is supported by One-X agent.). See Configuring DNS SRV records for XMPP Clients
to perform load balancing in Appendix A for details on how to do this.
The following gives an example of a cluster containing 2 servers (chat1.example.com and
chat2.example.com), where the domain of the users is example.com and the SRV records
have equal weighting (i.e. 50/50) to perform load balancing of the client connections:
_xmpp-client._tcp.example.com has SRV record 0 50 5222 chat1.example.com.
_xmpp-client._tcp.example.com has SRV record 0 50 5222 chat2.example.com.
Configuring SDNS for Intra-Domain (Clustered) Federation
Configuring JSM
In order to work correctly with SDNS, the Presence Session Manager configurations on all
routers must not contain any host names. The host name that would ordinarily be entered in
the JSM configuration is, instead, entered in the SDNS configuration. The following steps need
to be performed for all PS instances in the cluster.
To configure the JSM plug-ins
1. In the Router area on the Presence XCP Controller’s main page, click Edit beside
Presence Session Manager.
The Presence Session Manager Configuration page is displayed.
2. In the Presence Session Manager Configuration page, scroll down to the
Hostnames for this Component area and remove the host name.
3. Scroll down to the JSM Features area, and select Yes beside Apply Single Domain
Name Support semantics to local user lookups.
4. Click Submit to save your configuration.
5. Repeat this procedure for the JSM on all the other routers i.e.
PS instances.
Configuring SDNS for JSM
You must configure an SDNS component on each router. Here the SDNS components are
configured using the modulo mapping algorithm.
212
Administering Presence Services XCP Controller
August 2010
Configuring SDNS for Intra-Domain (Clustered) Federation
To configure SDNS components for JSM
1. In the Components area of the Presence XCP Controller’s main page, select Single
Domain Name Support from the list, and click Go.
2. Ensure that the Advanced view is selected.
In the Single Domain Name Support Configuration page, scroll down to the
Hostnames for this Component area. Enter the JSM host name (for example, the
JID domain of your users); for example; example.com.
3. Scroll down to the Single Domain Name Support Configuration area, and select the
Database Mapping Algorithm option.
Note:
The id.realms must be entered in the same order in each cooperating SDNS
component’s configuration.
4. Click Submit to save your configuration.
5. Repeat this procedure for the SDNS component on the other routers, i.e.
PS instances.
Configuring an R2R connection
Finally, you need to add Router-to-Router (R2R) connections to inter-connect the PS
instances. If there are two PS instances in the cluster then you only need to add a Router-toRouter (R2R) Connection on one of the PS instances - in this case you must configure a Routerto-Router (R2R) Connection on the router that you want to make the outbound connection. For
the case where there are n PS instances in the cluster you will need to add n-1 Router-toRouter (R2R) Connections to inter-connect all PS instances. Below we configure a single
Router-to-Router (R2R) Connection on the server with the presence1 realm to connect to the
server with the presence2 realm.
To configure the Router-to-Router Connection on the “presence1” router
1. Change to the Presence XCP Controller’s Advanced configuration view.
2. In the Components area on the Presence XCP Controller’s main page, select
Router-to-Router Connection in the list, and then click Go.
The Router-to-Router Connection Configuration page is displayed.
3. In the Router-to-Router Connection Configuration page, configure the following
parameters.
Administering Presence Services XCP Controller
August 2010
213
Intra-Domain (Clustered) federation using Single Domain Name Support
Parameter
Description
Component IP
Enter the presence2 router’s IP address.
Port
Enter the port specified for the presence2 router’s
Master Accept Port.
Password
Enter the password specified for the presence2 router’s
Master Accept Port.
Connection Weight
Enter a small integer, such as 1.
4. Click Submit to save your configuration.
214
Administering Presence Services XCP Controller
August 2010
Chapter 19: Kerberos authentication and
Microsoft Active Directory
This chapter provides instructions for configuring the Presence Services server to use Kerberos
authentication with Microsoft Active Directory.
Important:
For Kerberos authentication to succeed, reasonable clock synchronization between the Active Directory
Server, the Presence Services server and the client machines is critical due to the checking that is
performed on kerberos ticket timestamps. This can achieved by synchronizing all machines against an
NTP server.
This Chapter consists of the following topics:
• Active Directory setup on page 215
• Configuring Kerberos for the Presence Services Server on page 215
Active Directory setup
Presence XCP users must be set up in Active Directory as follows:
• All Presence XCP users must have a user entry in Active Directory.
• All Presence XCP users must be in the same Active Directory forest, and none of the
users can be the Active Directory forest root domain.
Configuring Kerberos for the Presence Services Server
To configure Kerberos authentication
Note:
In the steps below we assume the following environment for illustration purposes:
FQDN of Presence Server services: chat.example.com
ROUTER_SERVICE_NAME (that is JID domain): example.com
Administering Presence Services XCP Controller
August 2010
215
Kerberos authentication and Microsoft Active Directory
Active Directory Realm: CORP.EXAMPLE.COM
User created in Active Directory: psuser (with password=mypassword)
1. Create an Active Directory user for the Presence Services server.
Keep the account options as simple as possible. Make sure that the user’s password
does not expire and that the user is not forced to change it the next time user logs
in.
2. On the Active Directory server, use the KTPASS utility to generate a keytab for the
Presence XCP user as follows:
ktpass -princ xmpp/FQDN_of_PS@AD_REALM -pass XCP_PASSWORD out krb5.keytab -mapuser XCP_USERNAME -ptype
KRB5_NT_PRINCIPAL
Example
ktpass -princ xmpp/[email protected] -pass
mypassword -out krb5.keytab -mapuser psuser -ptype KRB5_NT_PRINCIPAL
To use the ktpass command, you must first download and install Windows Server
2003 R2 support tools (or download a version that matches your server) from the
Microsoft web site.
The ktpass command is set in the path after installation. You can run the ktpass
command from the DOS prompt.
The variables are described in the following table.
Variable
Description
FQDN_of_PS
The FQDN of the Presence Services server, e.g.
chat.example.com.
AD_REALM
The Windows realm that your Active Directory server
supports. The realm should be specified in Uppercase and
not lowercase.
XCP_PASSWORD
The password for the user you created in step 1.
XCP_USERNAME
The user you created in step 1.
3. Move the generated keytab file to the Presence Services server in the following
locations:
For Linux installations, /etc/krb5.keytab
4. On the Presence Services server create the Kerberos configuration file as shown
below.
[libdefaults]
default_realm = AD_REALM
rnds = false
[domain_realm]
FQDN_of_PS = AD_REALM
216
Administering Presence Services XCP Controller
August 2010
Configuring Kerberos for the Presence Services Server
For example:
[libdefaults]
default_realm = CORP.EXAMPLE.COM
rnds = false
[domain_realm]
chat.example.com = CORP.EXAMPLE.COM
Note:
For Linux installations, save the file as /etc/krb5.conf.
5. On the Presence Services server create the xmpp.conf file containing the
following line:
mech_list: gssapi
Note:
For Linux installations, save the file in $JABBER_HOME/lib/sasl2.
6. Change to the Presence XCP Controller’s Advanced configuration view.
7. In the Router area on the Presence XCP Controller’s main page, click Edit beside
the Presence Session Manager.
8. In the Presence Session Manager Configuration page, scroll down to the
Hostnames for this Component area, and make sure that the name specified in the
Host Filters field matches the JID domain (for example, example.com).
9. Click Submit (or Cancel if you made no changes) to return to the Presence XCP
Controller’s main page.
10. In the Components area on the Presence XCP Controller’s main page, click Edit
beside the first Connection Manager.
11. In the Connection Manager Configuration page under Add a New Command
Processor, click Details to edit the JSM Command Processor.
12. In the JSM Command Processor Configuration page under Director Configuration,
click Details beside the first XMPP director.
13. Scroll to the bottom of the XMPP Director Configuration page, and select SASL
Settings.
Specify the AD_REALM from the krb5.conf file in the SASL Realm field.
The SASL realm must be entered using uppercase characters.
14. Click Submit to save the director’s configuration.
You are returned to the JSM Command Processor Configuration page.
15. Under Director Configuration, click Details beside the second XMPP director, and
repeat the previous two steps.
16. Click Submit on each configuration page until you have returned to the Presence
XCP Controller’s main page.
Administering Presence Services XCP Controller
August 2010
217
Kerberos authentication and Microsoft Active Directory
Note:
If you have added an additional Communication Manager component to handle
additional XMPP client connections as detailed in Connection managers on
page 137 then you should repeat steps 10-16 for this additional Communication
Manager.
17. Restart the Presence XCP system.
218
Administering Presence Services XCP Controller
August 2010
Chapter 17: Services
Stanza Optimizer
The Stanza Optimizer component implements Extended Stanza Addressing, which is
described in XEP-0033 . You can configure the Stanza Optimizer component to work in
conjunction with the InfoBroker and Text Conferencing components in order to optimize stanza
traffic between XCP servers, thus providing a higher degree of scalability for large numbers of
users. This feature allows a single stanza to be sent to multiple recipients rather than separate
stanzas being sent to each recipient.
Extended stanza addressing is used when packets are being sent to remote domains.
However, it is not used when all communication is occurring within the same domain, although
multiple stanza optimizers within a domain can split up the packets that are being sent. For
example, if four XCP servers are running in the same domain, each configured with a Stanza
Optimizer component, and the InfoBroker component sends 1000 packets, each router will
then handle 250 packets. The following figure illustrates a XCP system in which four routers
share the same cluster. A Stanza Optimizer component has been configured on each router.
When the InfoBroker service delivers a stanza to 2000 subscribers, the stanza traffic is
distributed evenly between all or the Stanza Optimizer components and then between the XCP
routers.
Related topics:
Configuring the Stanza Optimizer Component on page 219
Configuring Text Conferencing for Stanza Optimization on page 221
Configuring the InfoBroker for Stanza Optimization on page 221
Stanza Optimizer Parameter Reference on page 222
Configuring the Stanza Optimizer Component
The Stanza Optimizer component’s configuration parameters display in the controller’s
Advanced configuration view. The following instructions describe how to configure only the
parameters that are specific to the Stanza Optimizer. For descriptions of all of the parameters,
see Stanza Optimizer Parameter Reference.
You must configure a Stanza Optimizer component for each of your XCP routers if you want
to extend XMPP stanzas to multiple recipients.
Administering Presence Services XCP Controller
August 2010
219
Services
Related topics:
To configure the Stanza Optimizer component on page 220
To configure the Stanza Optimizer component
1. Change to the controller’s Advanced configuration view.
2. In the Components area on the controller’s main page, select Stanza Optimizer
in the list, and click Go .
3. On the Stanza Optimizer Configuration page, scroll down to the Stanza
Optimizer Configuration area, and configure the following parameters.
Parameter
Description
Number of threads to
dedicate to stanza
optimizer tasks
Enter the number of threads that you want to have
processing tasks in the component. Increasing this value
enables the component to handle more tasks at a time.
However, it spends more time scheduling the tasks as
this number increases.
We recommend that you set this number to one more
than the number of processors on your system.
Timeout (in seconds)
for XEP-033 disco
attempts
Enter the number of seconds to wait for the server to
determine if non-local domains can handle stanza
optimization. If a non-local domain cannot handle stanza
optimization, one packet is sent per recipient.
Disco Cache Timeout
(in minutes)
Enter the number of minutes that a discovery answer
(positive or negative) should exist. The maximum
number of minutes that you can specify is 1440 (24
hours).
Multiple optimizer
address threshold
This parameter is to be used mainly for fine tuning your
system. In most cases, the default value should be
sufficient.
The threshold refers to the number of recipients who are
located in a remote domain. The value is the maximum
number of recipients required for extended stanza
addressing to take effect.
List of local domains
Enter the list of local domains. The Stanza Optimizer
dynamically determines which domains are local, but
you can enter them here to short circuit this discovery
process. The Stanza Optimizer does not send optimized
packets to local domains.
4. Click Submit to save your configuration.
220
Administering Presence Services XCP Controller
August 2010
Stanza Optimizer
Configuring Text Conferencing for Stanza Optimization
If you want to extend the XMPP stanzas to multiple recipients in a conference room, you must
enable the Stanza Optimizer option in the Text Conferencing component.
Related topics:
To enable the Stanza Optimizer option on page 221
To enable the Stanza Optimizer option
1. Change to the controller’s Advanced configuration view.
2. In the Components area on the controllers’ main page, click Edit beside Text
Conferencing .
3. In the Text Conferencing Configuration page, scroll down to the TC
Configuration section, and select Enable stanza optimizer support
(XEP-033) .
4. For Number of room members to trigger an extended address stanza , enter
the minimum number of room members.
5. Use the default value for Multiple optimizer address threshold . This parameter
is intended only for advanced system tuning, and in most cases, the default value
should not be changed.
6. Click Submit to save your configuration.
7. Restart your XCP system.
Configuring the InfoBroker for Stanza Optimization
If you want to extend the XMPP stanzas to multiple subscribers of an InfoBroker service, you
must enable the Stanza Optimizer option in the InfoBroker component.
Related topics:
To enable the Stanza Optimizer option on page 222
Administering Presence Services XCP Controller
August 2010
221
Services
To enable the Stanza Optimizer option
1. Change to the controller’s Advanced configuration view.
2. In the Components area on the controllers’ main page, click Edit beside
InfoBroker .
3. In the InfoBroker Configuration page, scroll down to the InfoBroker
Configuration section, and select Enable stanza optimizer support
(XEP-033) .
4. For Number of publish recipients to trigger an extended address stanza , enter
the minimum number of InfoBroker subscribers.
5. Use the default value for Multiple optimizer address threshold . This parameter
is intended only for advanced system tuning, and in most cases, the default value
should not be changed.
6. Click Submit to save your configuration.
7. Restart your XCP system.
Stanza Optimizer Parameter Reference
This section describes the parameters associated with the Stanza Optimizer component. The
Stanza Optimizer parameters are available only in the controller’s Advanced configuration
view.
Parameter
222
Description
Description
The description is displayed in the Components area on the controller’s
main page and should help you distinguish between components of the
same type when you have more than one configured. You can change
the description as needed.
Runlevel
Enter the order in which this component shuts down. The runlevel must
be an integer value greater than or equal to zero. Component shutdown
is executed in reverse order of the specified runlevel; components with
the highest level (typically 70) shut down first.
Do not change the runlevel unless you know exactly what you are doing
and understand the effects that changing it will have. The default
runlevel is provided to help the system shut down as smoothly as
possible, and is based on this component’s dependencies upon other
components.
Administering Presence Services XCP Controller
August 2010
Stanza Optimizer
Parameter
Timeout for
shutdown
Description
Enter the number of seconds that the server waits to receive
acknowledgement from the component that the shutdown process has
completed. If the component has not shut down by the time this time
period has elapsed, the router leaves the process in its current state and
continues shutting down other processes.
Component Properties
Number of
Enter the number of packets bound for the component that should be
packets buffered buffered if the component goes down.
when component
is down
Bounce error
packets to stderr
Select Yes if you want the router to send warnings to stderr when the
component is down.
Router Outbound Connection Information
Select this option only if you want the XCP router to connect to the component. For example,
if the component is running outside your firewall, this option allows the router to connect to
the component safely rather than introducing security risks by letting the component connect
to it. By default, components connect to the router using the router’s Master Accept Port.
Component IP
Enter the IP address or host name of the system on which the
component is installed.
Port
Enter the port that the component uses for communications.
Password
Enter the password that the router uses to authenticate the
component.
Buffer size in
Enter the number of bytes the router should buffer when it sends
bytes for outgoing information to the component. You may want to modify this element
data
when working on performance enhancements.
Buffer size in
bytes for
incoming data
Enter the number of bytes the router should buffer when it receives
information from the component. You may want to modify this element
when working on performance enhancements.
Send keepalives
Select Yes if you want the router to send keep-alives to the component.
The keep-alive helps prevent firewalls from dropping an unused
connection to the component. If this option is set to No, keep-alives are
disabled.
Log the delivery
of packets to this
component
Select Yes if you want to log the data that the router delivers to the
component. The information is logged to the logger(s) you set up during
Jabberd Logger configuration (syslog, file, or stderr). Socket-level
logging happens only at the debug level.
Execute an External Command
This option allows the router to start the component automatically. If you prefer to start the
component from a command line, disable this option.
Maximum interval Enter the maximum number of seconds after which the router tries to
in seconds to wait restart the component. If the component goes down, the router tries to
restart it after one second. If the component does not start, the router
Administering Presence Services XCP Controller
August 2010
223
Services
Parameter
Description
before restarting
component
multiplies the wait time by 1.5, and tries again. Once the maximum time
interval that you specify for this parameter is reached, the router
continues to retry after waiting this amount of time.
Maximum
number of times
to restart
component
Enter the total number of restarts allowed. The default setting, -1, means
unlimited.
Interval in
Enter the number of seconds that the component has been up and
seconds at which running, after which to set the restart time back to one second.
to reset this value
to 1 second
Path to binary
Enter the directory path to the shell that launches the component. You
can change the default setting if needed.
Command line to
run
A command that runs the component automatically is provided by
default. You can modify it if needed.
Note:
Do not use the -B argument with this component. Since jabberd is
already a daemon process, its children must not be daemons.
You should not redirect output, because all output to STDOUT and
STDERR will be redirected to /dev/null.
Hostnames for this Component
This option specifies the hosts for which this component will handle packets. Specify a host
filter only if you want the component to be externally addressable; for example, if you want
clients and other components or programs to communicate with it. This is because the
mod_disco module in JSM uses host filters to return the component as something that
should be discoverable.
Host Filters
By default, the XCP server’s host name prepended by ”stanzaoptimizer” is provided.
Enter the host names or IP addresses for which you want this
component to handle packets. Separate each host name or address
with a line break.
Host filters must be host names, or IPv4 or IPv6 addresses. If you use
an IP address, the packet address must also use this IP address.
Stanza Optimizer Configuration
224
Number of
threads to
dedicate to
stanza optimizer
tasks
Enter the number of threads that you want to have processing tasks in
the component. Increasing this value enables the component to handle
more tasks at a time. However, it spends more time scheduling the tasks
as this number increases.
We recommend that you set this number to one more than the number
of processors on your system.
Timeout (in
seconds) for
Enter the number of seconds to wait for the server to determine if nonlocal domains can handle stanza optimization. If a non-local domain
cannot handle stanza optimization, one packet is sent per recipient.
Administering Presence Services XCP Controller
August 2010
Stanza Optimizer
Parameter
Description
XEP-033 disco
attempts
Disco Cache
Timeout (in
minutes)
Enter the number of minutes that a discovery answer (positive or
negative) should exist. The maximum number of minutes that you can
specify is 1440 (24 hours).
Multiple optimizer This parameter is to be used mainly for fine tuning your system. In most
address
cases, the default value should be sufficient.
threshold
The threshold refers to the number of recipients who are located in a
remote domain. The value is the maximum number of recipients
required for extended stanza addressing to take effect.
List of local
domains
Enter the list of local domains. The Stanza Optimizer dynamically
determines which domains are local, but you can enter them here to
short circuit this discovery process. The Stanza Optimizer does not send
optimized packets to local domains.
Database Setup
Datasource
Name
For the PostgreSQL database, this is the name of the component’s
datasource as specified in the .odbc.ini file. For Oracle, the datasource
is specified in the ORACLE_SID environment variable or in the
tsnames.ora file. For DB2, this is typically the database alias.
Database User
Name
Enter the username used to connect to the database.
Database User’s
Password
Enter the password used to connect to the database.
Confirm
Password
Enter the password again to confirm it.
Database Type
Select the type of database you are using from the list.
If you select postgresql-odbc, you must add the
line, ”MaxVarcharSize=4000” to the datasource definition used in
the .odbc.ini file.
Number of
connections to
the database
Enter the number of connections that you want the component to use
for processing requests.
Time in seconds
between
database
connection
heartbeats
Enter the number of seconds after which the database connection
should refresh. Do not set this value to zero without contacting Technical
support.
Is database
debug logging
enabled?
Select ’1’ to log database debug information. Database logging uses the
XCP router’s logging facility, the Jabberd Logger. The log level must be
set to debug for database logging to occur.
Component Logging (Jlog)
Administering Presence Services XCP Controller
August 2010
225
Services
Parameter
Description
Select the Component Logging (Jlog) option only if you want to configure filtered level
loggers that log messages to syslog and to a stream (stderr or stdout). You can enable either
or both the syslog and stream loggers. These parameters are displayed in the controller’s
Intermediate and Advanced configuration views.
Add a new
custom logger
If you have created a custom logger for logging component information
using the libjcore library, click Go to access the Custom Logger
Configuration page.
SNMP Configuration
Select this option if you want to configure SNMP for the component.
Enable SNMP
Leave this parameter set to Yes.
Count errors
Select Yes only if you want to enable SNMP error counting. This option
takes a great deal of server resource, so use it with caution.
Text Conferencing
The Text Conferencing (TC) component allows Prexence users to chat in online conference
rooms. In addition to chatting, users can search for and join existing rooms, create new rooms,
manage members and configurations of the rooms they create, and invite other users to rooms.
The TC component also supports the use of extended stanza addressing, which enables
XMPP stanzas to specify multiple recipients or sub-addresses. (See XEP-0045 and XEP-0033
for more information about text conferencing (also known as “ Multi-User Chat” ) and its ability
to use extended stanza addressing.)
An operational Text Conferencing component is set up by default when you install the XCP
server. It is configured to handle basic text conferencing using ad hoc (or temporary)
conference rooms, which are deleted from the system when the last user leaves the room.
Other features are also enabled by default, including room membership, presence, occupancy,
invitations, passwords, messages, room moderation, and message history.
This chapter describes how to configure the features displayed in the controller’s Basic
configuration view. These features include persistent rooms, which remain in existence even
when all users have left the room, and text conferencing system administrators, who have
ownership privileges for every room in your system. For descriptions of the gears that you can
configure in other configuration views, see Text Conferencing Gears . For descriptions of all of
the text conferencing parameters, see Text Conferencing Parameter Reference .
Related topics:
Configuring Persistent Conference Rooms on page 227
Configuring Text Conferencing Administrators on page 227
Conference Room User Roles on page 228
226
Administering Presence Services XCP Controller
August 2010
Text Conferencing
Text Conferencing Gears on page 229
Text Conferencing Parameter Reference on page 232
Configuring Persistent Conference Rooms
This section describes how to configure the persistent conference room feature. Persistent
rooms remain in existence on your system even after all users have left the room, as opposed
to ad hoc rooms, which are removed from the system when the last user leaves. The persistent
room feature also enables users to search for rooms.
Related topics:
To configure persistent conference rooms on page 227
To configure persistent conference rooms
1. Change to the controller’s Basic configuration view.
2. In the Components area on the controller’s main page, click Edit beside Text
Conferencing .
The Text Conferencing Configuration page is displayed.
3. Select the Persistent Gear option to enable the use of persistent conference
rooms.
Persistent rooms require one of XCP’s supported databases—Oracle, PostgreSQL,
or DB2 (not SQLite). If you configured one of these databases when you installed
the server, you are finished configuring the Persistent Gear.
4. If you want to use a different database for persistent rooms, or if you selected SQLite
during installation, select the Database Setup option and configure the
parameters.
Descriptions of the database parameters are provided in the Persistent Gear
section in the “ Basic Parameters” table provided in Text Conferencing Parameter
Reference .
5. Click Submit to save your configuration.
Configuring Text Conferencing Administrators
Text Conferencing system administrators automatically become owners of every conference
room in your system.
Administering Presence Services XCP Controller
August 2010
227
Services
Related topics:
To configure text conferencing administrators on page 228
To configure text conferencing administrators
1. Change to the controller’s Basic configuration view.
2. In the Components area on the controller’s main page, click Edit beside Text
Conferencing .
3. In the Text Conferencing Configuration page, select the Sysadmin Gear .
4. Click Go . The TC Administrator Configuration page is displayed.
5. Configure the parameters as follows.
Parameter
Description
Description
Enter a description for this administrator.
JID
Enter the full JID for the administrator. For example,
[email protected].
Nickname
Enter a nickname for the administrator. Administrators are
identified in rooms by this nickname unless they specify a
different name within the room.
6. Click Submit to save your configuration. You are returned to the Text Conferencing
Configuration page.
7. Add more administrators if needed.
8. When you have finished, click Submit to save your configuration.
Conference Room User Roles
The privileges that users have when participating in conference rooms depend on their roles
in the room. These roles are listed below, and the privileges associated with them are provided
in the table.
Visitor – a room user who has no voice in the room (cannot chat or send private
messages).
Participant – a room user who has voice (can chat and send private messages).
228
Administering Presence Services XCP Controller
August 2010
Text Conferencing
Moderator – a room user who has voice, can kick other users, and can grant and revoke voice
from other users.
The following table describes the privileges associated with the room user roles:
Privilege
Visitor
Participant
Moderator
Enter the room
Yes
Yes
Yes
Receive messages from others in the room
Yes
Yes
Yes
Change availability status in the room
Yes
Yes
Yes
Change nickname in the room
Yes
Yes
Yes
Send private messages to others in the room Yes*
Yes
Yes
Invite others to the room
Yes*
Yes*
Yes
Send messages to everyone in the room
No
Yes
Yes
Change the room’s subject
No
Yes*
Yes
Kick participants and visitors from the room
No
No
Yes
Grant voice
No
No
Yes
Revoke voice from room participants
No
No
Yes
* This is the default setting, but configuration settings may further restrict this privilege.
Text Conferencing Gears
The text conferencing features that you can configure are referred to as “ gears” in the Text
Conferencing Configuration page. The following table describes the gears and indicates
which configuration view you must use to configure them.
Gear
Description
Configuration Views
Persistent
Enables your users to configure persistent
conference rooms for your TC system.
Persistent rooms remain in existence on your
system even after all users have left the room.
To use persistent rooms, you must have a
supported database installed.
You must configure the persistent gear if you
want to enable users to search for rooms.
Sysadmin
Enables the use of text conferencing
Basic, Intermediate,
administrators. TC administrators have the
Advanced
same privileges as room owners for all rooms on
the system.
Administering Presence Services XCP Controller
Basic, Intermediate,
Advanced
August 2010
229
Services
Gear
230
Description
Configuration Views
Member
The Member Gear lets you configure rules for
membership in text conference rooms. The
Member Gear controls aspects of TC room
membership such as whether members of
members-only rooms can invite others to the
room, and whether membership in a room is
restricted or open. This gear is enabled by
default.
Message
The Message Gear controls who can change
Intermediate, Advanced
the subject in a TC room, who can send private
messages in the room, and whether to remove
XHTML formatting from room messages. This
gear is enabled by default, and cannot be
disabled.
Moderation
The Moderation Gear allows conference rooms Intermediate, Advanced
to have moderators. A conference room
moderator is a room user who has voice
(meaning he or she can send messages in the
room), can kick other users from the room, and
can grant and revoke voice from other users in
the room. This gear is enabled by default.
History
The History Gear lets you set the maximum
Intermediate, Advanced
number of previous messages that are
displayed in a TC room. This gear is enabled by
default.
Authorization
The Authorization Gear allows you to use a
Advanced
custom authorization component to control who
can and cannot chat with each other in TC
rooms. When you enable this gear, everything
that the TC component handles goes through
the custom component.
Your custom authorization component must be
running before TC starts. If it is not running,
rooms will not load.
TC does not pay attention to the time-to-live
setting, which is the number of seconds that the
results of the custom component are cached.
EventBroker
The EventBroker Gear allows you to redirect
Advanced
packets from the Text Conferencing component
to one or more external components that have
been written in any language. When the TC
component receives the packet, it sends it to the
external component. After processing the
packet, the component can send responses
back to TC as needed. When TC receives a
packet back from the component, it decides
Administering Presence Services XCP Controller
Intermediate, Advanced
August 2010
Text Conferencing
Gear
Description
Configuration Views
whether to cancel the event or to pass it on to
the next gear.
The protocol used for communication between
the external component and TC is described in
the“ EventBroker” chapter in the XCP Server
Configuration Guide .
Room
The Room Gear controls the total number of
conference rooms (including both ad hoc and
persistent) that can exist in your TC system.
Config
The Config Gear lets you define generic
Advanced
configuration fields that will display in the Room
Configuration dialog box on the client.
This gear complies with XEP-0004: Data
Forms , which defines a protocol for data forms
and generic data description in XMPP.
Presence
The Presence Gear controls how room users’
Advanced
presence is handled in TC rooms. For example,
it controls whether rooms can contain
anonymous users (users whose presence is
indicated only by nicknames). It also controls
whether unavailable users display in a room,
and whether users of older software versions
(1.0 protocol) can participate in TC rooms. This
gear is enabled by default and cannot be
disabled.
Occupancy
The Occupancy Gear lets you configure room Advanced
occupancy limits. (This gear is enabled by
default, and sets the maximum number of users
to 50.) The Occupancy Gear lets you restrict the
number of users who can be in any given TC
room at one time. You can also use this gear to
allow room owners to configure the maximum
number of users who may be in the rooms they
create. This gear is enabled by default.
Invite
The Invite Gear controls who can invite other
users to a conference room. This gear is
enabled by default and cannot be disabled.
Advanced
Password
The Password Gear enables room owners to
password-protect the rooms they create. This
gear is enabled by default.
Advanced
Log
The Log Gear logs conference room transcripts Advanced
in HTML format. You can then post room logs to
a web site.
The log gear is typically not used for enterprisegrade archiving. For true, archival logging of text
Administering Presence Services XCP Controller
Advanced
August 2010
231
Services
Gear
Description
Configuration Views
conferencing, you should add the Message
Archiving component to your server
configuration.
The Log Gear has very restrictive file
permissions, since the information being logged
is sensitive. In order for Apache to be able to
retrieve the logs, it should be run as
user ’jabber’.
A style sheet named style.css, which is located
in xcpInstallDir /support/tc, is referenced by the
HTML files that the Log gear generates. You
must copy this file to the directory that contains
the logs that are generated. You can modify the
file to suit your needs using standard CSS rules
and syntax.
Text Conferencing Parameter Reference
This section describes the parameters associated with the Text Conferencing component. The
parameters are divided into subsections based on the configuration view in which they
display.
Related topics:
Basic Parameters on page 232
Intermediate Parameters on page 233
Advanced Parameters on page 236
Basic Parameters
The following table describes the parameters that display in the controller’s Basic configuration
view. The basic parameters are sufficient to configure an operational Text Conferencing
component.
Parameter
Description
Description
The description is displayed in the Components area on the controller’s
main page and should help you distinguish between components of the
same type when you have more than one configured. You can change
the description as needed.
Persistent Gear
Select this gear if you want to use persistent text conference room. Persistent rooms remain
in existence on your system even when all users have left the room. You must also select
this gear if you want users to be able to search the system for existing rooms.
232
Administering Presence Services XCP Controller
August 2010
Text Conferencing
Parameter
Database Setup
Description
The Persistent Gear requires a database—Oracle, PostgreSQL, or
DB2—to store persistent room information. Select this option if you
want to configure a database that is different from the one configured
for the core router in the Global Settings Configuration page.
Datasource Name For the PostgreSQL database, this is the name of the component’s
datasource as specified in the .odbc.ini file. For Oracle, the datasource
is specified in the ORACLE_SID environment variable or in the
tsnames.ora file. For DB2, this is typically the database alias.
Database User
Name
Enter the username used to connect to the database.
Database User’s
Password
Enter the password used to connect to the database.
Confirm Password Enter the password again to confirm it.
Database Type
Select the type of database you are using from the list.
If you select postgresql-odbc, you must add the line,
“ MaxVarcharSize=4000” to the datasource definition used in
the .odbc.ini file.
Sysadmin Gear
Select this gear if you want to use Text Conferencing administrators. TC administrators have
the same privileges as room owners for all rooms on the system.
Add a new TC
Administrator
Click Go to access the TC Administrator Configuration page.
Intermediate Parameters
The following table describes the parameters that display in the controller’s Intermediate
configuration view.
Parameter
Description
Router Outbound Connection Information
Select this option only if you want the XCP router to connect to the component. For example,
if the component is running outside your firewall, this option allows the router to connect to
the component safely rather than introducing security risks by letting the component connect
to it. By default, components connect to the router using the router’s Master Accept Port.
Component IP
Enter the IP address or host name of the system on which the
component is installed.
Port
Enter the port that the component uses for communications.
Password
Enter the password that the router uses to authenticate the
component.
Administering Presence Services XCP Controller
August 2010
233
Services
Parameter
Description
Execute an External Command
This option allows the router to start the component automatically. If you prefer to start the
component from a command line, disable this option.
Command line to
run
A command that runs the component automatically is provided by
default. You can modify it if needed.
Note:
Do not use the -B argument with this component. Since jabberd is
already a daemon process, its children must not be daemons.
You should not redirect output, because all output to STDOUT and
STDERR will be redirected to /dev/null.
Hostnames for this Component
This option specifies the hosts for which this component will handle packets. Specify a host
filter only if you want the component to be externally addressable; for example, if you want
clients and other components or programs to communicate with it. This is because the
mod_disco module in JSM uses host filters to return the component as something that
should be discoverable.
Host Filters
By default, the host name of the XCP server prepended by
“ conference” is provided.
Enter the host names or IP addresses for which you want this
component to handle packets. Separate each host name or address
with a line break.
Host filters must be host names, or IPv4 or IPv6 addresses. If you use
an IP address, the packet address must also use this IP address.
Persistent Gear
234
Number of
connections to the
database
Enter the number of connections that you want the component to use
for processing requests.
Time in seconds
between database
connection
heartbeats
Enter the number of seconds after which the database connection
should refresh. Do not set this value to zero without contacting
Technical support.
Archive all room
joins and exits?
Select Yes if you want to archive all instances of users joining and
exiting rooms in the database. This option activates the TC_TIMELOG
table in your database.
Archive all room
messages?
Select Yes if you want to archive all messages that were sent in the
room.
How many
messages can be
retrieved from the
archive at once?
Enter the number of messages that can be retrieved from the archive
at one time.
How many
messages display
Enter the default number of previous messages that should display in
a room.
Administering Presence Services XCP Controller
August 2010
Text Conferencing
Parameter
Description
in the room by
default?
Timeout value for
persistent rooms
(minutes)
Enter the number of minutes that can occur with no activity before a
persistent room is deleted. The default setting of ’0’ disables this
feature, preventing room cleanup.
Member Gear
The Member Gear lets you configure rules for membership in text conference rooms. The
Member Gear controls aspects of TC room membership such as whether members of
members-only rooms can invite others to the room, and whether membership in a room is
restricted or open.
Are rooms for
members only by
default?
Select Yes only if you want all rooms that are created to be for
members only by default.
Can room owners
change this setting
when configuring a
room?
Select Yes to enable room owners to configure this option.
Only moderators
Select Yes if you want moderators to be the only ones who can invite
can invite people to others to members-only rooms. If you select No, any user can invite
members-only
others.
rooms?
Can users add
themselves to
rooms as
members?
Select Yes if you want to let users add themselves to conference
rooms as members.
Message Gear
The Message Gear controls who can change the subject in a TC room and who can send
private messages in the room.
What is the lowest
participation level a
user can have to
change a room's
subject?
Select the default privilege level that users must have to change the
subject in a room. The choices are:
Participant - a room user who has voice (can chat in the room).
Moderator - a room user who has voice, can kick other users, and
can grant and revoke voice from other users.
Can room owners
change this setting
when configuring a
room?
Select Yes to enable room owners to configure this option.
What is the lowest
participation level a
user can have to
send a private
message from
within the room?
Visitor - a room user who has no voice in the room (cannot chat in the
room).
Participant - a room user who has voice (can chat in the room).
Moderator - a room user who has voice, can kick other users, and
can grant and revoke voice from other users.
Administering Presence Services XCP Controller
August 2010
235
Services
Parameter
Description
Remove all XHTML Select Yes if you want to remove formatting from the messages sent
formatting from
in TC rooms.
messages?
Moderation Gear
The Moderation Gear enables the use of moderators in conference rooms. A moderator is
a room user who has voice, meaning he or she can send messages in the room. The
moderator can also remove other users from the room, and can grant and revoke voice from
other users in the room.
Are rooms
moderated by
default?
Select Yes if you want to allow rooms to have moderators by default.
Can room owners
change this setting
when configuring a
room?
Select Yes if you want to let room owners enable or disable moderation
for the rooms they create.
History Gear
The History Gear lets you set the maximum number of previous messages that are displayed
in a TC room.
How many previous Enter the maximum number of messages that can display in the
messages can
message history for any room on your system.
display in a room?
How many previous Enter the number of messages that appear in the message history of
messages display a room by default.
in a room by
default?
Can room owners
change this setting
when configuring a
room?
Select Yes if you want to let room owners set the number of messages
that appear in the message history for the rooms they create. Room
owners cannot set a number larger than the one you configured
above.
Component Logging (Jlog)
Select the Component Logging (Jlog) option only if you want to configure filtered level
loggers that log messages to syslog and to a stream (stderr or stdout). You can enable either
or both the syslog and stream loggers. These parameters are displayed in the controller’s
Intermediate and Advanced configuration views.
SNMP Configuration
Select this option if you want to configure SNMP for the component.
Enable SNMP
Leave this parameter set to Yes.
Advanced Parameters
The following table describes the parameters that are displayed in the controller’s Advanced
configuration view. Advanced parameters are used for adjusting the performance of the XCP
236
Administering Presence Services XCP Controller
August 2010
Text Conferencing
system. We recommend that you call Technical Support if you need to change these parameter
settings.
Parameter
Description
Runlevel
Enter the order in which this component shuts down. The runlevel
must be an integer value greater than or equal to zero. Component
shutdown is executed in reverse order of the specified runlevel;
components with the highest level (typically 70) shut down first.
Do not change the runlevel unless you know exactly what you are
doing and understand the effects that changing it will have. The default
runlevel is provided to help the system shut down as smoothly as
possible, and is based on this component’s dependencies upon other
components.
Timeout for
shutdown
Enter the number of seconds that the server waits to receive
acknowledgement from the component that the shutdown process has
completed. If the component has not shut down by the time this time
period has elapsed, the router leaves the process in its current state
and continues shutting down other processes.
Component Properties
Number of packets Enter the number of packets bound for the component that should be
buffered when
buffered if the component goes down.
component is down
Bounce error
packets to stderr
Select Yes if you want the router to send warnings to stderr when the
component is down.
Router Outbound Connection Information
Buffer size in bytes Enter the number of bytes the router should buffer when it sends
for outgoing data
information to the component. You may want to modify this element
when working on performance enhancements.
Buffer size in bytes Enter the number of bytes the router should buffer when it receives
for incoming data
information from the component. You may want to modify this element
when working on performance enhancements.
Send keepalives
Select Yes if you want the router to send keep-alives to the
component. The keep-alive helps prevent firewalls from dropping an
unused connection to the component. If this option is set to No, keepalives are disabled.
Log the delivery of
packets to this
component
Select Yes if you want to log the data that the router delivers to the
component. The information is logged to the logger(s) you set up
during Jabberd Logger configuration (syslog, file, or stderr). Socketlevel logging happens only at the debug level.
Execute an External Command
Maximum interval
in seconds to wait
before restarting
component
Enter the maximum number of seconds after which the router tries to
restart the component. If the component goes down, the router tries
to restart it after one second. If the component does not start, the
router multiplies the wait time by 1.5, and tries again. Once the
Administering Presence Services XCP Controller
August 2010
237
Services
Parameter
Description
maximum time interval that you specify for this parameter is reached,
the router continues to retry after waiting this amount of time.
Maximum number
of times to restart
component
Enter the total number of restarts allowed. The default setting, -1,
means unlimited.
Interval in seconds
at which to reset
this value to 1
second
Enter the number of seconds that the component has been up and
running, after which to set the restart time back to one second.
Path to binary
Enter the directory path to the shell that launches the component. You
can change the default setting if needed.
TC Configuration
Number of threads
to dedicate to TC
tasks
Enter the number of database update threads that you want the TC
component to use.
Number of
managed queues
to dedicate to TC
tasks
Enter the number of queues that you want the TC component to use.
This number reflects how many expected rooms there will be on a
system divided by 20. The recommendation is one queue for every 20
rooms.
Timeout (in
seconds) for XDB
requests
Enter the number of seconds to wait before an XDB request that has
been sent to the router times out.
This setting affects users; the higher the setting, the slower the system
runs.
Enable Stanza Optimizer Support (XEP-033)
Select this option to enable stanza optimization support for the component.
Number of room
members to trigger
an extended
address stanza
Enter the number of recipients required to cause an extended address
stanza to be used rather than individual packets.
Multiple optimizer
address threshold
This option is to be used mainly for fine-tuning your system. The
default value that is supplied should be sufficient in most cases.
Enter the number of recipients per found stanza optimizer to warrant
separating a single packet into many. Take the following scenario, for
example:
In this case, each stanza optimizer would handle approximately 133
recipients, warranting three extended stanza packets rather than
one.
Using the same scenario but with only 200 recipients, each optimizer
would handle approximately 66 recipients each. This situation does
not warrant splitting the packet. Therefore, only one packet will be sent
to one optimizer for local delivery.
Authorization Gear
238
Administering Presence Services XCP Controller
August 2010
Text Conferencing
Parameter
Description
Enable the Authorization Gear if you want to use a custom authorization component to
control who can and cannot chat with each other in TC rooms. When you enable this gear,
everything that the TC component handles goes through the custom component.
Note:
Your custom authorization component must be running before TC starts. If it is not
running, rooms will not load.
TC does not pay attention to the time-to-live setting, which is the number of seconds that
the results of the custom component are cached.
EventBroker Gear
EventBroker configuration features are available only if you have installed the XCP extras
package. The EventBroker Gear allows you to redirect packets from Text Conferencing to
one or more external components that have been written in any language. When the TC
component receives the packet, it sends it to the external component. After processing the
packet, the component can send responses back to TC as needed. When TC receives a
packet back from the component, it decides whether to cancel the event or to pass it on to
the next gear.
The protocol used for communication between the external component and TC is described
in the “ EventBroker” chapter in the XCP Server Configuration Guide .
Library
Leave the default setting (ExternalGear) in this field unless you want
to use a custom external gear.
Add a new
EventBroker Event
Click Go to access the EventBroker Event Configuration screen.
Persistent Gear
Is database debug
logging enabled?
Select ’1’ to log database debug information. Database logging uses
the XCP router’s logging facility, the Jabberd Logger. The log level
must be set to debug for database logging to occur.
Restrict persistent Select Yes if you want only TC administrators to be able to create
room creation to TC persistent rooms. If you select No, all users can create persistent
administrators
rooms.
only?
How many
messages can be
retrieved from the
archive at once?
Enter the maximum number of archived messages that a client can
retrieve at once.
What is the
Enter the maximum number of persistent conference rooms that can
maximum number exist on your TC system.
of persistent rooms
allowed?
Room Gear
The Room Gear controls the total number of conference rooms (including both ad hoc and
persistent) that can exist on your TC system.
Custom library
Leave this box blank unless you want to use a custom Room gear.
Administering Presence Services XCP Controller
August 2010
239
Services
Parameter
How many rooms
can exist on your
system?
Description
Enter the maximum number of conference rooms that can exist on
your TC system.
Config Gear
The Config Gear lets you define generic configuration fields that will display in the Room
Configuration dialog on the client.
This gear complies with XEP-0004: Data Forms , which defines a protocol for data forms
and generic data description in XMPP.
Custom library
Leave this box blank unless you want to use a custom Config gear.
Generic Config
Fields
Select this option, and then click Go to add a configuration field.
Member Gear
Custom library
Leave this box blank unless you want to use a custom Member
gear.
Presence Gear
The Presence Gear controls how room users’ presence is handled in TC rooms. For
example, it controls whether rooms can contain anonymous users (users whose presence
is indicated only by nicknames). It also controls whether unavailable users display in a room,
and whether users of older software versions (1.0 protocol) can participate in TC rooms.
Custom library
Leave this box blank unless you want to use a custom Presence
gear.
Should members
Select Yes if you want conference room members and administrators
and administrators who are currently not in a room to be visible, displaying a presence
who are not in a
indicator of unavailable.
room still be visible
in the room?
Can room owners
change this setting
when configuring a
room?
Select Yes to enable room owners to configure this option.
Should rooms be
backwardscompatible with
older clients?
Select Yes if you want to allow users of older clients (group chat 1.0
protocol) to participate in TC rooms.
Should rooms be
anonymous by
default?
Select Yes if you want to make all TC rooms anonymous by default.
Anonymous rooms allow users to participate using nicknames; other
users in the room cannot see anonymous users’ JIDs.
Occupancy Gear
The Occupancy Gear lets you configure room occupancy limits. (This gear is enabled by
default, and sets the maximum number of users to 50.) The Occupancy Gear lets you restrict
the number of users who can be in any given TC room at one time. You can also use this
240
Administering Presence Services XCP Controller
August 2010
Text Conferencing
Parameter
Description
gear to allow room owners to configure the maximum number of users who may be in the
rooms they create.
Custom library
Leave this box blank unless you want to use a custom Occupancy
gear.
How many users
Enter the maximum number of users who can be in any given
can be in a room at conference room on your TC system at one time.
one time?
A room owner can still join a room even when the maximum number
of users has been reached.
How many hidden
users can be in a
room?
Enter the maximum number of hidden occupants who can be in any
given conference room on your system.
Hidden occupants are those who are filtering on a room but are not in
the room. The number of hidden occupants in a room is included in
the total number of room occupants.
You must set this number to 1 or greater. Setting it to 0 causes an
error.
What is the default
maximum
occupancy for a
room?
Enter the default maximum number of users who can be in a
conference room. This number is displayed as the default in the Room
parameters window in the clients’ TC interface.
Can room owners
change this setting
when configuring a
room?
Select Yes if you want to let room owners specify the maximum
number of users who can be in a room at one time.
Invite Gear
The Invite Gear controls who can invite other users to a conference room.
Custom library
Leave this box blank unless you want to use a custom Invite gear.
What is the lowest
participation level a
user can have to
invite others to the
room?
Select the default privilege level that users must have to invite others
to a room. The choices are:
Visitor – a room user who has no voice in the room (cannot chat in
the room).
Participant – a room user who has voice (can chat in the room).
Moderator – a room user who has voice, can kick other users, and
can grant and revoke voice from other users.
Can room owners
change this setting
when configuring a
room?
Select Yes if you want to allow room owners to choose the privilege
level that users must have to invite others to a room.
Password Gear
The Password Gear enables room owners to password-protect the rooms they create.
Custom library
Leave this box blank unless you want to use a custom Password
gear.
Message Gear
Administering Presence Services XCP Controller
August 2010
241
Services
Parameter
Custom library
Description
Leave this box blank unless you want to use a custom Message
gear.
Moderation Gear
Custom library
Leave this box blank unless you want to use a custom Moderation
gear.
History Gear
Custom library
Leave this box blank unless you want to use a custom History gear.
Log Gear
The Log Gear logs conference room transcripts in HTML format. You can then post room
logs to a web site. This gear is typically not used for enterprise-grade archiving. For true,
archival logging of text conferencing, you should add the Message Archiving component to
your server configuration.
Note:
The Log Gear has very restrictive file permissions, since the information being logged is
sensitive. In order for Apache to be able to retrieve the logs, it should be run as user
'jabber'.
Library
This value is read-only.
Location of file
where room
messages are
logged
Enter the directory path of the file where messages are logged.
Base URL where
users can view
room logs
Enter the URL at which users can view the room logs. The URL should
contain a trailing slash (/).
This URL is displayed in a text conference room when the log gear is
enabled, and the user enters the following in a room: ?? log
You can specify a file:/// type URL, but these work only if log files are
stored on the local machine.
Buffer size to use
when writing to the
logs
Enter the size in bytes of the buffer that you want to use for writing
logs.
Sysadmin Gear
Custom library
Leave this box blank unless you want to use a custom Sysadmin
gear.
Component Logging (Jlog)
Add a new custom
logger
If you have created a custom logger for logging component
information using the libjcore library, click Go to access the Custom
Logger Configuration page.
SNMP Configuration
Count errors
242
Select Yes only if you want to enable SNMP error counting. This option
takes a great deal of server resource, so use it with caution.
Administering Presence Services XCP Controller
August 2010
Wait List Service
Wait List Service
This chapter describes how to configure the Wait List Service component. The Wait List Service
allows an IM user to place a contact on a waiting list by specifying information about the contact.
The Wait List Service uses this information to “ track” the contact and to notify the Presence
user when the contact creates an IM account.
To implement the Wait List Service, you must create a library that uses the Wait List interface
to enable communication between the IM service and other services. The library must retrieve
contact information (in a URI scheme) from the service’s datastore, such as telephone number
or email address.
Note:
The Wait List service’s specification is defined in XEP-0130 . The library that you write must
conform to XEP-0130.
Related topics:
Configuring the Wait List Service Component on page 243
Wait List Service Parameter Reference on page 244
The Wait List Interface on page 248
Creating a JIG File on page 249
Configuring the Wait List Service Component
The Wait List Service component’s configuration parameters display in the controller’s
Advanced configuration view. The following instructions describe how to configure only the
parameters that are specific to the Wait List Service. For descriptions of all of the parameters,
see Wait List Service Parameter Reference .
Related topics:
To configure the Wait List Service component on page 243
To configure the Wait List Service component
1. Change to the Controller’s Advanced configuration view.
2. In the Components area on the controller’s main screen, select Wait List Service
in the list, and then click Go .
Administering Presence Services XCP Controller
August 2010
243
Services
3. In the Wait List Service Configuration page, scroll down to the Wait List
component config section.
4. Configure the parameters as follows.
Parameter
Configuration
Number of threads to
Enter the number of threads that you want to have
dedicate to WaitList tasks processing tasks in the component. Increasing this
value enables the component to handle more tasks
at a time. However, it spends more time scheduling
the tasks as this number increases.
We recommend that you set this number to one more
than the number of processors on your system.
Seconds before IQ
requests time out
Enter the number of seconds to wait before iq
requests that are sent to remote service providers
time out.
List of Local Service
Providers
Enter the local domains of the service providers with
which the XCP server is communicating; for example,
corp.example.com and example.com.
List of Interop Partners
Enter the domains of the service providers’ Interop
partners.
Service Provider Library
Enter the name of the library that you created using
the Wait List Service API, described in the “ Wait List
Service API” chapter in the XCP Server Developer
Guide.
5. The Wait List Service requires a database —Oracle, PostgreSQL, or DB2. If you
configured one of these databases when you installed the XCP server, you do not
have to configure one here. However, if you want to use a different database for the
Wait List Service, or if you selected SQLite during installation, select the Database
Setup option and configure the parameters.
Descriptions of the database parameters are provided under Database Setup in
the table provided the following section.
6. When you have finished configuring the Wait List Service component, click Submit
to save your configuration.
Wait List Service Parameter Reference
This section describes the parameters associated with the Wait List Service component. The
Wait List Service parameters are available only in the controller’s Advanced configuration
view.
244
Administering Presence Services XCP Controller
August 2010
Wait List Service
Parameter
Description
Description
The description is displayed in the Components area on the controller’s
main page and should help you distinguish between components of the
same type when you have more than one configured. You can change
the description as needed.
Runlevel
Enter the order in which this component shuts down. The runlevel must
be an integer value greater than or equal to zero. Component shutdown
is executed in reverse order of the specified runlevel; components with
the highest level (typically 70) shut down first.
Do not change the runlevel unless you know exactly what you are doing
and understand the effects that changing it will have. The default
runlevel is provided to help the system shut down as smoothly as
possible, and is based on this component’s dependencies upon other
components.
Timeout for
shutdown
Enter the number of seconds that the server waits to receive
acknowledgement from the component that the shutdown process has
completed. If the component has not shut down by the time this time
period has elapsed, the router leaves the process in its current state
and continues shutting down other processes.
Component Properties
Number of
packets buffered
when component
is down
Enter the number of packets bound for the component that should be
buffered if the component goes down.
Bounce error
packets to stderr
Select Yes if you want the router to send warnings to stderr when the
component is down.
Router Outbound Connection Information
Select this option only if you want the XCP router to connect to the component. For example,
if the component is running outside your firewall, this option allows the router to connect to
the component safely rather than introducing security risks by letting the component connect
to it. By default, components connect to the router using the router’s Master Accept Port.
Component IP
Enter the IP address or host name of the system on which the
component is installed.
Port
Enter the port that the component uses for communications.
Password
Enter the password that the router uses to authenticate the
component.
Buffer size in bytes Enter the number of bytes the router should buffer when it sends
for outgoing data information to the component. You may want to modify this element
when working on performance enhancements.
Buffer size in bytes Enter the number of bytes the router should buffer when it receives
for incoming data information from the component. You may want to modify this element
when working on performance enhancements.
Administering Presence Services XCP Controller
August 2010
245
Services
Parameter
Send keepalives
Description
Select Yes if you want the router to send keep-alives to the component.
The keep-alive helps prevent firewalls from dropping an unused
connection to the component. If this option is set to No, keep-alives are
disabled.
Log the delivery of Select Yes if you want to log the data that the router delivers to the
packets to this
component. The information is logged to the logger(s) you set up during
component
Jabberd Logger configuration (syslog, file, or stderr). Socket-level
logging happens only at the debug level.
Execute an External Command
This option allows the router to start the component automatically. If you prefer to start the
component from a command line, disable this option.
Maximum interval
in seconds to wait
before restarting
component
Enter the maximum number of seconds after which the router tries to
restart the component. If the component goes down, the router tries to
restart it after one second. If the component does not start, the router
multiplies the wait time by 1.5, and tries again. Once the maximum time
interval that you specify for this parameter is reached, the router
continues to retry after waiting this amount of time.
Maximum number Enter the total number of restarts allowed. The default setting, -1,
of times to restart means unlimited.
component
Interval in seconds Enter the number of seconds that the component has been up and
at which to reset
running, after which to set the restart time back to one second.
this value to 1
second
Path to binary
Enter the directory path to the shell that launches the component. You
can change the default setting if needed.
Command line to
run
A command that runs the component automatically is provided by
default. You can modify it if needed.
Note:
Do not use the -B argument with this component. Since jabberd is
already a daemon process, its children must not be daemons.
You should not redirect output, because all output to STDOUT and
STDERR will be redirected to /dev/null.
Hostnames for this Component
This option specifies the hosts for which this component will handle packets. Specify a host
filter only if you want the component to be externally addressable; for example, if you want
clients and other components or programs to communicate with it. This is because the
mod_disco module in JSM uses host filters to return the component as something that
should be discoverable.
Host Filters
246
By default, the XCP server’s host name prepended by “ waitlist” is
provided.
Administering Presence Services XCP Controller
August 2010
Wait List Service
Parameter
Description
Enter the host names or IP addresses for which you want this
component to handle packets. Separate each host name or address
with a line break.
Host filters must be host names, or IPv4 or IPv6 addresses. If you use
an IP address, the packet address must also use this IP address.
Wait List Configuration
Number of threads Enter the number of threads that you want to have processing tasks in
to dedicate to
the component. Increasing this value enables the component to handle
WaitList tasks
more tasks at a time. However, it spends more time scheduling the
tasks as this number increases.
We recommend that you set this number to one more than the number
of processors on your system.
Wait List Tracker
Settings
Enter the number of seconds to wait before iq requests that are sent to
remote service providers time out.
List of Local
Service Providers
Enter the local domains of the service providers with which the XCP
server is communicating; for example, corp.example.com and
example.com.
List of Interop
Partners
Enter the domains of the service providers’ Interop partners.
Service Provider
Library
Enter the name of the library that you created using the Wait List
Service API, described in the “ Wait List Service API” chapter in the
XCP Server Developer Guide.
Database Setup
Datasource Name For the PostgreSQL database, this is the name of the component’s
datasource as specified in the .odbc.ini file. For Oracle, the datasource
is specified in the ORACLE_SID environment variable or in the
tsnames.ora file. For DB2, this is typically the database alias.
Database User
Name
Enter the username used to connect to the database.
Database User’s
Password
Enter the password used to connect to the database.
Confirm Password Enter the password again to confirm it.
Database Type
Select the type of database you are using from the list.
If you select postgresql-odbc, you must add the line,
“ MaxVarcharSize=4000” to the datasource definition used in
the .odbc.ini file.
Number of
Enter the number of connections that you want the component to use
connections to the for processing requests.
database
Administering Presence Services XCP Controller
August 2010
247
Services
Parameter
Description
Time in seconds
Enter the number of seconds after which the database connection
between database should refresh. Do not set this value to zero without contacting
connection
Technical support.
heartbeats
Is database debug Select ’1’ to log database debug information. Database logging uses
logging enabled? the XCP router’s logging facility, the Jabberd Logger. The log level must
be set to debug for database logging to occur.
Component Logging (Jlog)
Select the Component Logging (Jlog) option only if you want to configure filtered level
loggers that log messages to syslog and to a stream (stderr or stdout). You can enable either
or both the syslog and stream loggers. These parameters are displayed in the controller’s
Intermediate and Advanced configuration views.
Add a new custom If you have created a custom logger for logging component information
logger
using the libjcore library, click Go to access the Custom Logger
Configuration page.
SNMP Configuration
Select this option if you want to configure SNMP for the component.
Enable SNMP
Leave this parameter set to Yes.
Count errors
Select Yes only if you want to enable SNMP error counting. This option
takes a great deal of server resource, so use it with caution.
The Wait List Interface
The ISPLibrary.hpp file (located in xcpInstallDir /include/wlservice) provides the interface
around which you must create your Wait List library. It contains the following declarations:
• virtual ~ISPLibrary() – The base destructor for ISPLibrary implementations.
• virtual bool isValidURI – Checks to make sure that the URI sent from the SP is valid.
• virtual jid::Jid *findJidFromURI – Checks to see if the SP user already has a JID in the
SP’s datastore.
• virtual judo::Element *getDomainsForURI – Retrieves a list of domains that have
knowledge of the URI.
• virtual judo::Element *getNotification – Gets the notification when a wait-listed contact
creates an IM account.
• virtual char *getPushBody – Gets the body of the message that is sent to the Presence
user when a contact creates an IM account.
The library that you write must use all of the declarations in the ISPLibrary.hpp file. An example
implementation is provided in the splibrarytemplate.cpp file (located in xcpInstallDir /include/
wlservice).
248
Administering Presence Services XCP Controller
August 2010
Web Services
Creating a JIG File
You must create a JIG file named splib.jig that defines the configuration options for your service
provider library. The splib.jig file is referenced in waitlist.jig , which is located in xcpInstallDir /
schemas/jig/config/waitlist. The following line in waitlist.jig includes splib.jig in the Wait List
Service Configuration page:
<xi:include xi:href="${JABBER_HOME}/schemas/jig/config/waitlist/splib.jig"/>
If you name your JIG file something else, make sure you change the file name referenced in
this line.
Related topics:
To create the splib.jig file on page 249
To create the splib.jig file
1. Follow the instructions provided in the “ Custom Component Integration” chapter in
the XCP Server Developer Guide .
2. Save the file as xcpInstallDir /schemas/jig/config/waitlist/splib.jig.
Web Services
T he Web Services component enables custom-built Web Services applications and custom
components to access and use the XCP services messaging, roster/presence, and infobroker.
Applications communicate with the server via SOAP over HTTP, and custom components
communicate with the server via SOAP over XMPP as specified in XEP-72 .
Related topics:
Configuring Web Services on page 250
Web Services Parameter Reference on page 254
Service-Specific Configurations on page 257
Invoking Services from a SOAP-over-HTTP Client on page 259
Web Services Definition Language Files on page 260
Administering Presence Services XCP Controller
August 2010
249
Services
Configuring Web Services
This section describes how to configure Web Services to run in your XCP environment. The
configuration involves the following steps:
• Configuring the Web Services Component
• Configuring a Web Services Connection Manager
• Adding Web Services as a Presence Administrator
• Configuring a Web Services Administrator
Related topics:
Configuring the Web Services Component on page 250
Configuring a Web Services Connection Manager on page 251
Adding Web Services as a Presence Administrator on page 253
Configuring a Web Services Administrator on page 253
Configuring the Web Services Component
The following instructions describe how to configuring the Web Services component using the
parameters provided in the controller’s Intermediate configuration view. These parameters are
sufficient to configure an operational component. For descriptions of all of the Web Services
parameters, see Web Services Parameter Reference .
Related topics:
To configure the Web Services component on page 250
To configure the Web Services component
1. Change to the controller’s Intermediate configuration view.
2. In the Components area on the controller’s main page, select Web Services from
the list, and then click Go .
3. In the Web Services Configuration page, note the ID of the component. You will
need to use this ID later in the configuration.
4. Scroll down to the Services section, and click Go beside Add a New Service .
The Service Configuration page is displayed.
5. Configure the parameters as follows:
250
Administering Presence Services XCP Controller
August 2010
Web Services
Parameter
Configuration
Namespace for this service Enter the namespace that you want to use for this
service. You must use one of the following:
http://jabber.com/webservices/
Messaging
http://jabber.com/webservices/
RosterPresence
http://jabber.com/webservices/
InfoBroker
Note:
These namespaces are built into the
WebServices API and are the only ones
currently supported. Do not modify them.
Service library
Leave this option blank unless you want to use a
custom service library.
Service load function
Depending on the namespace you specified
above, enter one of the following corresponding
functions:
ws_messaging
ws_rosterpresence
ws_infobroker
6. Click Submit to save your configuration. You are returned to the Web Services
Configuration page.
7. On the Web Services Configuration page, add more services if needed.
8. When you have finished, click Submit to save your configuration.
Configuring a Web Services Connection Manager
Note:
In order to facilitate high performance for Web Services, we recommend that you configure
a separate Connection Manager for each Web Services component that you add to your
XCP configuration.
The Web Services Connection Manager is configured with a Web Command Processor
(WebCP), which has a SOAPHandler. The WebCP SOAPHandler is used when Web Services
applications send SOAP-over-HTTP requests to the XCP server. It provides the ability to map
a URL to a dynamically-loaded handler. The SOAPHandler is responsible for taking the SOAPover-HTTP request, authenticating it, and translating it into SOAP over XMPP so that it can be
routed to the Web Services Component. When a response comes in from the Web Services
Administering Presence Services XCP Controller
August 2010
251
Services
component, the WebCP SOAPHandler translates it back into SOAP over HTTP, and writes the
result back to the requesting application.
Related topics:
To configure a Web Services Connection Manager on page 252
To configure a Web Services Connection Manager
1. Change to the controller’s Advanced configuration view.
2. In the Components area on the controller’s main page, click Go to add a new
Connection Manager.
3. In the Connection Manager Configuration page under Add a New Command
Processor , select Web Command Processor in the list, and click Go .
4. In the Web Command Processor Configuration page under Director
Configuration , click Go to add an HTTP director.
5. Use the parameter descriptions in the online help to configure the HTTP Director,
or use the default settings.
Note:
The default port number of the director’s external channel is 7335, which
implements an HTTP server on port 7335 to serve incoming SOAP requests. You
can change the port number if necessary.
6. Click Submit to save the HTTP Director configuration. You are returned to the Web
Command Processor Configuration page.
7. On the Web Command Processor Configuration page under Handlers , select
Web Services Handler in the list, and click Go .
The Web Services Handler enables the Web Command Processor to communicate
with the XCP core router.
8. In the Web Services Handler Configuration page, make note of the handler’s
ID . You will need to use it later when you configure the Web Services
administrator.
9. In the HTTP URI Paths Handled text box, enter the path, /soap as shown in the
following figure. This path is referenced in the WSDL.
10. Click Submit to save your configuration. You are returned to the Web Command
Processor Configuration page.
11. Click Submit in each page until you return to the controller’s main page.
252
Administering Presence Services XCP Controller
August 2010
Web Services
Adding Web Services as a Presence Administrator
You must add the ID of the Web Services component as a Presence administrator in the
Presence Session Manager.
Related topics:
To edit the JSM configuration on page 253
To edit the JSM configuration
1. Change to the controller’s Interm3ediate configuration view.
2. In the Router area on the controller’s main page, click Edit beside Presence
Session Manager .
3. On the Presence Session Manager Configuration page, scroll down to the JSM
Configuration section.
4. Add the ID of the Web Services component in the Presence Administrators box.
For example:
web-services-1.jabber
5. Click Submit to save your configuration.
Configuring a Web Services Administrator
The Web Services component must be able to authorize requests coming in from the Web
Services Handler. For this to happen, the Web Services Handler must be added as an
administrator in the Web Services configuration.
Related topics:
To configure the Web Services administrator on page 253
To configure the Web Services administrator
1. In the Components area on the controller’s main page, click Edit beside Web
Services .
2. In the Web Services Configuration page, scroll down to the Web Services
Administrators section.
Administering Presence Services XCP Controller
August 2010
253
Services
3. Add the ID of the Web Services Handler as an administrator. For example:
cm-2_webcp-1_websvch-1
4. Click Submit to save your configuration.
Web Services Parameter Reference
This section describes the parameters associated with the Web Services component. The
parameters are divided into subsections based on the configuration view in which they
display.
Related topics:
Intermediate Parameters on page 254
Advanced Parameters on page 256
Intermediate Parameters
The following table describes the parameters that are displayed in the controller’s Intermediate
configuration view. These parameters are sufficient to configure an operational Web Services
component.
Parameter
Description
Description
The description is displayed in the Components area on the controller’s
main page and should help you distinguish between components of the
same type when you have more than one configured. You can change
the description as needed.
Router Outbound Connection Information
Select this option only if you want the XCP router to connect to the component. For example,
if the component is running outside your firewall, this option allows the router to connect to
the component safely rather than introducing security risks by letting the component connect
to it. By default, components connect to the router using the router’s Master Accept Port.
Component IP
Enter the IP address or host name of the system on which the
component is installed.
Port
Enter the port that the component uses for communications.
Password
Enter the password that the router uses to authenticate the
component.
Execute an External Command
This option allows the router to start the component automatically. If you prefer to start the
component from a command line, disable this option.
254
Administering Presence Services XCP Controller
August 2010
Web Services
Parameter
Command line to
run
Description
A command that runs the component automatically is provided by
default. You can modify it if needed.
Note:
Do not use the -B argument with this component. Since jabberd is
already a daemon process, its children must not be daemons.
You should not redirect output, because all output to STDOUT and
STDERR will be redirected to /dev/null.
Hostnames for this Component
This option specifies the hosts for which this component will handle packets. Specify a host
filter only if you want the component to be externally addressable; for example, if you want
clients and other components or programs to communicate with it. This is because the
mod_disco module in JSM uses host filters to return the component as something that
should be discoverable.
Host Filters
By default, the XCP server’s host name prepended by ”webservices”
is provided.
Enter the host names or IP addresses for which you want this
component to handle packets. Separate each host name or address
with a line break.
Host filters must be host names, or IPv4 or IPv6 addresses. If you use
an IP address, the packet address must also use this IP address.
Web Services Configuration
ID of the
InfoBroker
component
An ID for the InfoBroker component is supplied by default. If you plan
to use Web Services with the InfoBroker, you must configure the
InfoBroker component.
Administrator(s)
Enter the ID and realm of the Web Services Handler; for example:
cm-2_webcp-1_websvch-1.jabber
(The Web Services Handler is configured in a Web Services
Connection Manager.)
Services
Click Go to configure a Web service that you want to make available
through the Web Services component. You must configure at least one
service.
Component Logging (Jlog)
Select the Component Logging (Jlog) option only if you want to configure filtered level
loggers that log messages to syslog and to a stream (stderr or stdout). You can enable either
or both the syslog and stream loggers. These parameters are displayed in the controller’s
Intermediate and Advanced configuration views.
SNMP Configuration
Select this option if you want to configure SNMP for the component.
Enable SNMP
Leave this parameter set to Yes.
Administering Presence Services XCP Controller
August 2010
255
Services
Advanced Parameters
The following table describes the parameters that are displayed in the controller’s Advanced
configuration view. Advanced parameters are used for adjusting the performance of the XCP
system. We recommend that you call Technical Support if you need to change these parameter
settings.
Parameter
Description
Runlevel
Enter the order in which this component shuts down. The runlevel must
be an integer value greater than or equal to zero. Component shutdown
is executed in reverse order of the specified runlevel; components with
the highest level (typically 70) shut down first.
Do not change the runlevel unless you know exactly what you are doing
and understand the effects that changing it will have. The default
runlevel is provided to help the system shut down as smoothly as
possible, and is based on this component’s dependencies upon other
components.
Timeout for
shutdown
Enter the number of seconds that the server waits to receive
acknowledgement from the component that the shutdown process has
completed. If the component has not shut down by the time this time
period has elapsed, the router leaves the process in its current state
and continues shutting down other processes.
Component Properties
Number of
packets buffered
when component
is down
Enter the number of packets bound for the component that should be
buffered if the component goes down.
Bounce error
packets to stderr
Select Yes if you want the router to send warnings to stderr when the
component is down.
Router Outbound Connection Information
Buffer size in bytes Enter the number of bytes the router should buffer when it sends
for outgoing data information to the component. You may want to modify this element
when working on performance enhancements.
Buffer size in bytes Enter the number of bytes the router should buffer when it receives
for incoming data information from the component. You may want to modify this element
when working on performance enhancements.
Send keepalives
Select Yes if you want the router to send keep-alives to the component.
The keep-alive helps prevent firewalls from dropping an unused
connection to the component. If this option is set to No, keep-alives are
disabled.
Log the delivery of Select Yes if you want to log the data that the router delivers to the
packets to this
component. The information is logged to the logger(s) you set up during
component
256
Administering Presence Services XCP Controller
August 2010
Web Services
Parameter
Description
Jabberd Logger configuration (syslog, file, or stderr). Socket-level
logging happens only at the debug level.
Execute an External Command
Maximum interval
in seconds to wait
before restarting
component
Enter the maximum number of seconds after which the router tries to
restart the component. If the component goes down, the router tries to
restart it after one second. If the component does not start, the router
multiplies the wait time by 1.5, and tries again. Once the maximum time
interval that you specify for this parameter is reached, the router
continues to retry after waiting this amount of time.
Maximum number Enter the total number of restarts allowed. The default setting, -1,
of times to restart means unlimited.
component
Interval in seconds Enter the number of seconds that the component has been up and
at which to reset
running, after which to set the restart time back to one second.
this value to 1
second
Path to binary
Enter the directory path to the shell that launches the component. You
can change the default setting if needed.
Web Services Configuration
Number of threads Enter the number of threads that you want to have processing tasks in
to dedicate to Web the component. Increasing this value enables the component to handle
Services tasks
more tasks at a time. However, it spends more time scheduling the
tasks as this number increases.
We recommend that you set this number to one more than the number
of processors on your system.
Component Logging (Jlog)
Add a new custom If you have created a custom logger for logging component information
logger
using the libjcore library, click Go to access the Custom Logger
Configuration page.
SNMP Configuration
Count errors
Select Yes only if you want to enable SNMP error counting. This option
takes a great deal of server resource, so use it with caution.
Service-Specific Configurations
This section describes the extra steps that are required to configure broadcast messages,
offline messages, and the InfoBroker service.
Administering Presence Services XCP Controller
August 2010
257
Services
Related topics:
Broadcast Messages on page 258
Offline Messaging on page 258
InfoBroker on page 259
Broadcast Messages
The broadcast message function is part of the Messaging service. To enable this function, you
must modify the JSM Command Processor’s configuration.
Related topics:
To enable broadcast messages on page 258
To enable broadcast messages
1. Change to the controller’s Advanced configuration view
2. In the Components area on the controller’s main page, click Edit beside the
Connection Manager component that is configured with a JSM Command
Processor. The CM component that is installed by default with the XCP server
contains a JSM Command Processor.
Note:
If you have multiple Connection Manager components that are configured with a
JSM Command Processor, you must perform this procedure for each one.
3. In the Connection Manager Configuration page under Add a new Command
Processor , click Details beside jsmcp .
4. In the lower portion of the JSM Command Processor Configuration page, select
Yes beside Enable Broadcast to all online users connected to this CM .
5. Click Submit to save your configuration.
Offline Messaging
To enable offline messaging to work correctly with Web Services, the mod_offline_pop
module in the JSM configuration must be enabled. The module is enabled by default, and is
required for XEP-0013: Flexible Offline Message Retrieval functionality. Do not change this
setting without first consulting Technical support.
Related topics:
To verify that the mod_offline_pop module is enabled on page 259
258
Administering Presence Services XCP Controller
August 2010
Web Services
To verify that the mod_offline_pop module is enabled
1. Change to the controller’s Advanced configuration view.
2. In the Router area on the controller’s main page, click Edit beside Presence
Session Manager .
3. In the JSM Configuration page, under Optional modules , ensure that the
mod_offline_pop module is enabled as shown in the following figure:
4. If you made any changes, click Submit to save your configuration.
InfoBroker
The InfoBroker service can create a node and publish information to a node on behalf of a
user. To use this service, you must have an InfoBroker component in your XCP server
configuration.
Related topics:
To configure the InfoBroker for Web Services on page 259
To configure the InfoBroker for Web Services
1. Change to the controller’s Intermediate configuration view.
2. In the Components area on the controller’s main page, click Edit beside
InfoBroker .
3. In the InfoBroker Configuration page under InfoBroker Administrators , type
the ID and realm of the Web Services component in the Administrator(s) box. For
example:
web-services-1.jabber
4. Click Submit to save your configuration.
Invoking Services from a SOAP-over-HTTP Client
To invoke Web services from a SOAP-over-HTTP client, the user sends a SOAP-over-HTTP
message to the WebCP SOAPHandler; for example, http://user:[email protected]:7336/
soap. User and password must match the username and password that were specified for Web
Administering Presence Services XCP Controller
August 2010
259
Services
Services during the package’s installation. The username and password are stored in
$JABBER_HOME/etc/.websvc_passwd.
Note:
You can modify the password if needed by using the admin password command to access
the websvc_passwd file.
The WebCP SOAPHandler performs HTTP basic authentication on the message and, if
passed, forwards the message to the Web Services component.
Web Services Definition Language Files
Three Web Service Definition Language (WSDL) files are provided with the Web Services
package installation. The WSDL files provide all of the information that a client development
environment needs in order to generate the framework to invoke the services. The files are
located at:
• $JABBER_HOME/htdocs/wsdl/web-services/Messaging.wsdl
• $JABBER_HOME/htdocs/wsdl/web-services/RosterPresence.wsdl
• $JABBER_HOME/htdocs/wsdl/web-services/InfoBroker.wsdl
Assuming that the controller is running and listening on port 7300, you can access these files
via HTTP by pointing your browser to, for example:
https://server.com:7300/wsdl/web-services/Messaging.wsdl
If you have trouble accessing the files through your browser, make sure that you have
permissions to access them.
260
Administering Presence Services XCP Controller
August 2010
Chapter 20: System Manager
Presence
Presence administration
The presence administration pages of Avaya Aura ™ System Manager allow the administrator
to manage:
• Presence configuration properties
• Presence classes
• Presence access levels
Presence configuration properties
Administering Presence configuration properties
1. Log in to the Avaya Aura ™ System Manager web interface as an administrator.
2. Click Elements > Presence > Configuration in the left navigation pane.
You can review all global presence configuration properties on this page.
Next steps
Modifying a configuration property:
1. Click Edit.
2. Change the value of the property.
3. Click Save.
Administering Presence Services XCP Controller
August 2010
261
System Manager
Related topics:
Domain substitution rule on page 262
Domain substitution rule
Configuration properties that are currently defined for Domain Substitution Rule.
The Domain Substitution Rule defines how to convert a user's Login Name into their Presence
Name.
The algorithm works as follows:
• A user's Login Name is taken and all instances ofDomain Substitution Rule From string
are replaced with Domain Substitution Rule To string. So, for example, a rule with @global
as Domain Substitution Rule From and @pres as Domain Substitution Rule To will convert
a Login Name of [email protected] into Presence Name of
[email protected].
• If Domain Substitution Rule Default is defined then all users without a domain in their
Login Name will be assigned to this default domain. So, for example, a rule with
@default.example.com as Domain Substitution Rule Default will convert a Login Name
of mike into Presence Name of [email protected].
Note:
Domain Substitution Rule Default can never overlap with Domain Substitution Rule To
because the rule must be reversible.
Classes
Presence classes
Presence classes are essentially types of presence information sources. For example, all
presence updates from desktop phones are assigned to class Phone, all presence updates
from enterprise IM (Instant Messaging) clients are assigned to class Enterprise IM, and so
on.
The presence classes, once defined, can then be used to define presence access control rules,
presence aggregation rules, and so on.
Normally, the system comes with a pre-configured set of supported presence classes.
However, as new devices are integrated, it might be necessary to add new presence
classes.
262
Administering Presence Services XCP Controller
August 2010
Presence
Viewing Presence classes
1. Log in to the Avaya Aura ™ System Manager web interface as an administrator.
2. Click Elements > Presence > Classes in the left navigation pane.
The page displays all currently defined presence classes.
Creating Presence classes
1. Log in to the Avaya Aura ™ System Manager web interface as an administrator.
2. Click Elements > Presence > Classes in the left navigation pane.
3. Click Add.
4. Fill in the name of the new class.
5. Click Save.
Modifying Presence classes
1. Log in to the Avaya Aura ™ System Manager web interface as an administrator.
2. Click Elements > Presence > Classes in the left navigation pane.
3. Select a row with the class that you want to modify.
4. Click Edit.
5. Change the name of the class.
6. Click Save.
Administering Presence Services XCP Controller
August 2010
263
System Manager
Deleting Presence classes
1. Log in to the Avaya Aura ™ System Manager web interface as an administrator.
2. Click Elements > Presence > Classes in the left navigation pane.
3. Select a row with the class that you want to delete.
4. Click Delete.
Access Levels
Presence access levels
Presence access levels are defined in terms of presence classes. An access level can contain
a single presence class or a set of classes. Access rules defined in the Presence ACLs (Access
Control Lists) then apply to all classes in an access level.
Presence information is partitioned into several areas called presence access levels for the
purpose of access control. Examples of presence access levels:
• Instant Messaging Presence
• Calendar Presence
• Telephony
• All
The All access level is always defined and always includes complete Presence information.
Other access levels can be created by administrators as necessary.
An access level can also contain an inversion of a set of classes for convenience. In other
words, it can be defined to contain all classes that are not in the selected set of classes. This
makes it easier to define access levels such as all classes except Phone.
Viewing Presence access levels
1. Log in to the Avaya Aura ™ System Manager web interface as an administrator.
2. Click Elements > Presence > Access Levels in the left navigation pane.
264
Administering Presence Services XCP Controller
August 2010
Presence
The page displays all currently defined presence access levels.
Creating Presence access levels
1. Log in to the Avaya Aura ™ System Manager web interface as an administrator.
2. Click Elements > Presence > Access Levels in the left navigation pane.
3. Click Add.
4. Fill in details of the new access level.
5. Click Save.
Modifying Presence access levels
1. Log in to the Avaya Aura ™ System Manager web interface as an administrator.
2. Click Elements > Presence > Access Levels in the left navigation pane.
3. Select a row with the access level that you want to modify.
4. Click Edit.
5. Change details of the access level.
6. Click Save.
Note:
Access level All is predefined and cannot be modified or deleted.
Deleting Presence access levels
1. Log in to the Avaya Aura ™ System Manager web interface as an administrator.
2. ClickElements > Presence > Access Levels in the left navigation pane.
Administering Presence Services XCP Controller
August 2010
265
System Manager
3. Select a row with the access level that you want to delete.
4. Click Delete.
Note:
Access level All is predefined and cannot be modified or deleted.
Presence access level field descriptions
The following fields are defined for a presence access level.
Name
Description
Label
Unique name of the access level.
Classes
A set of presence classes that are included
in this access level.
Adding, removing Presence classes to access level
To add presence classes to the access level:
1. Select the new classes in the Available Classes list.
2. Click [>] to include them in the Selected Classes list.
Next steps
To remove presence classes from the access level:
1. Select the classes in the Selected Classes list.
2. Click [<] to remove them.
Note:
If you select Match any class but the specified classes then the access level will be
assumed to contain all classes that are not in the Selected Classes list.
266
Administering Presence Services XCP Controller
August 2010
Access Levels
Presence server status
Viewing Presence server status
1. Log in to the Avaya Aura ™ System Manager web interface as an administrator.
2. Click Elements > Inventory > Manage Elements in the left navigation pane.
3. Click on the name of the Presence server that you want to check the status of.
Next steps
• Click Presence Controller: Open to launch the Presence controller GUI for this server
(in a separate window).
• Click Status: Show to view detailed runtime status information.
Access Levels
Presence access levels
Presence access levels are defined in terms of presence classes. An access level can contain
a single presence class or a set of classes. Access rules defined in the Presence ACLs (Access
Control Lists) then apply to all classes in an access level.
Presence information is partitioned into several areas called presence access levels for the
purpose of access control. Examples of presence access levels:
• Instant Messaging Presence
• Calendar Presence
• Telephony
• All
The All access level is always defined and always includes complete Presence information.
Other access levels can be created by administrators as necessary.
Administering Presence Services XCP Controller
August 2010
267
System Manager
An access level can also contain an inversion of a set of classes for convenience. In other
words, it can be defined to contain all classes that are not in the selected set of classes. This
makes it easier to define access levels such as all classes except Phone.
Viewing Presence access levels
1. Log in to the Avaya Aura ™ System Manager web interface as an administrator.
2. Click Elements > Presence > Access Levels in the left navigation pane.
The page displays all currently defined presence access levels.
Creating Presence access levels
1. Log in to the Avaya Aura ™ System Manager web interface as an administrator.
2. Click Elements > Presence > Access Levels in the left navigation pane.
3. Click Add.
4. Fill in details of the new access level.
5. Click Save.
Modifying Presence access levels
1. Log in to the Avaya Aura ™ System Manager web interface as an administrator.
2. Click Elements > Presence > Access Levels in the left navigation pane.
3. Select a row with the access level that you want to modify.
4. Click Edit.
5. Change details of the access level.
6. Click Save.
Note:
268
Administering Presence Services XCP Controller
August 2010
Access Levels
Access level All is predefined and cannot be modified or deleted.
Deleting Presence access levels
1. Log in to the Avaya Aura ™ System Manager web interface as an administrator.
2. ClickElements > Presence > Access Levels in the left navigation pane.
3. Select a row with the access level that you want to delete.
4. Click Delete.
Note:
Access level All is predefined and cannot be modified or deleted.
Presence access level field descriptions
The following fields are defined for a presence access level.
Name
Description
Label
Unique name of the access level.
Classes
A set of presence classes that are included
in this access level.
Adding, removing Presence classes to access level
To add presence classes to the access level:
1. Select the new classes in the Available Classes list.
2. Click [>] to include them in the Selected Classes list.
Next steps
To remove presence classes from the access level:
Administering Presence Services XCP Controller
August 2010
269
System Manager
1. Select the classes in the Selected Classes list.
2. Click [<] to remove them.
Note:
If you select Match any class but the specified classes then the access level will be
assumed to contain all classes that are not in the Selected Classes list.
Classes
Presence classes
Presence classes are essentially types of presence information sources. For example, all
presence updates from desktop phones are assigned to class Phone, all presence updates
from enterprise IM (Instant Messaging) clients are assigned to class Enterprise IM, and so
on.
The presence classes, once defined, can then be used to define presence access control rules,
presence aggregation rules, and so on.
Normally, the system comes with a pre-configured set of supported presence classes.
However, as new devices are integrated, it might be necessary to add new presence
classes.
Viewing Presence classes
1. Log in to the Avaya Aura ™ System Manager web interface as an administrator.
2. Click Elements > Presence > Classes in the left navigation pane.
The page displays all currently defined presence classes.
270
Administering Presence Services XCP Controller
August 2010
Classes
Creating Presence classes
1. Log in to the Avaya Aura ™ System Manager web interface as an administrator.
2. Click Elements > Presence > Classes in the left navigation pane.
3. Click Add.
4. Fill in the name of the new class.
5. Click Save.
Modifying Presence classes
1. Log in to the Avaya Aura ™ System Manager web interface as an administrator.
2. Click Elements > Presence > Classes in the left navigation pane.
3. Select a row with the class that you want to modify.
4. Click Edit.
5. Change the name of the class.
6. Click Save.
Deleting Presence classes
1. Log in to the Avaya Aura ™ System Manager web interface as an administrator.
2. Click Elements > Presence > Classes in the left navigation pane.
3. Select a row with the class that you want to delete.
4. Click Delete.
Administering Presence Services XCP Controller
August 2010
271
System Manager
272
Administering Presence Services XCP Controller
August 2010
Index
A
access level field descriptions ...........................266, 269
access level fields .............................................266, 269
access rules ......................................................264, 267
accounts
disabling .............................................................169
Active Directory ........................................................161
Active Directory setup ...............................................215
adding an Outgoing Connection Attempt Rule in the
S2SCP .........................................................152
adding and configuring an additional Connection
Manager ......................................................138
adding Presence classes to access level ..........266, 269
administring Presence ..............................................261
Advanced Performance Tuning options .....................20
attribute reference ....................................................173
Authorization ..............................................................62
Authorization Manager ...............................................74
B
blacklisting and whitelisting Hosts and IP Addresses 158
C
categories .................................................................110
changing logging levels ..............................................43
cluster .........................................................................17
cnfiguring the OpenPort connection .........................156
Collecting logs ............................................................44
Component level logging examples ...........................44
configuration
views in the controller ...........................................11
configuring a database .............................................163
configuring a Directory Server ..................................168
configuring a Directory Server to work with Active
Directory ......................................................162
configuring a Server-to-Server Connection Manager 148
configuring an OpenPort connection ........................153
configuring HTTP Digest Module ...............................63
configuring Jabber administrators ............................153
configuring Kerberos for the Presence Services Server
......................................................................215
configuring SNMP ......................................................64
configuring the Active Directory component .............161
Administering Presence Services XCP Controller
configuring the Basic S2S Connection Manager ......155
configuring the dialback password ...........................157
configuring the Jabber Directory component ............167
configuring the JSM to use the Active Directory
component ...................................................165
configuring the JSM to use the Jabber Directory
Component ..................................................172
configuring the OCS Gateway ..................................149
Connection Managers ..............................................137
controller
Component area on main page ...........................13
configuration views ...............................................11
Router area on main page ...................................13
creating access levels .......................................265, 268
creating classes ................................................263, 271
creating Presence classes ................................263, 271
D
Database setup ..........................................................22
deleting access levels .......................................265, 269
deleting classes .................................................264, 271
deleting Presence classes ................................264, 271
directory servers
optimizing ...........................................................174
Discovery Protocol for querying the S2S Command
Processor ....................................................159
domain substitution rule ............................................262
downloading license ...................................................78
E
enabling SNMP ..........................................................23
enabling StartTLS .......................................................21
EventBroker ................................................................57
example
querying for outbound and inbound lists ............159
querying S2CP for all items ................................160
querying the S2SCP for information ...................159
F
files transfer requests ...............................................189
August 2010
273
G
K
global router settings ..................................................16
Kerberos Authentication and Microsoft Active Directory
......................................................................215
I
L
incoming and outgoing messages ............................188
InfoBroker ..........................................................112, 213
configuring for SDNS .........................................213
InfoBroker Category ..................................................110
InfoBroker component ..............................................112
InfoBroker Configuration ...........................................112
Information Broker Configuration ..............................112
Intra-Domain (Clustered) federation using Single
Domain Name Support ................................211
J
M
Jabber administrators .................................................49
Jabber Directory and LDAP ......................................167
Jabber LDAP
attributes ............................................................173
objectClasses .....................................................173
Jabber Session Manager ...........................................47
See also JSM .......................................................47
JDS
configuration in JSM ............................................58
JSM
agents ..................................................................57
configuring for Message Archiver .......................186
configuring for Presence Mirror ..........................186
configuring for SDNS .........................................212
database setup ....................................................54
features ................................................................56
general configuration ...........................................47
hostnames ...........................................................48
Jabber administrators ..........................................49
JDS configuration .................................................58
legacy redirect to external components ...............57
logging ................................................................186
mirroring presence ...............................................60
optional modules ..................................................48
registration requirements ................................61, 63
roster configuration ..............................................59
sendmail configuration .........................................59
static EventBroker events ....................................57
stats .....................................................................56
system limits ........................................................53
system parameters ..............................................53
JSM Logging ..............................................................62
274
LDAP
schema
object class and attribute reference .............173
legacy redirection to external components .................57
Licensing Presence Services .....................................78
locating inactive accounts ..........................................50
log level ......................................................................19
logging
stats .....................................................................56
through Message Archiver .................................185
Administering Presence Services XCP Controller
Master Accept port .....................................................20
MDNS .........................................................................18
Message Archiver .....................................................185
mirroring presence .....................................................60
Mirroring Presence option ........................................186
mod_admin ...........................................................49, 51
mod_agents ................................................................57
mod_auth_digest ........................................................54
mod_auth_plain ..........................................................54
mod_caps ...................................................................63
mod_disco ..................................................................57
mod_eventbroker .......................................................57
mod_jds ......................................................................58
mod_message_archiver ......................................54, 186
mod_offline .................................................................50
mod_offline_smtp .......................................................60
mod_pep ....................................................................63
mod_presence_bcc module .....................................186
mod_presence_mirror ................................................54
mod_redirect ..............................................................57
mod_register ..............................................................61
mod_sendmail ............................................................59
Moderator Definition .................................................228
modifying access levels ....................................265, 268
modifying classes ..............................................263, 271
modifying Presence classes ..............................263, 271
mutually trusted TLS host names ...............................24
N
namespaces
August 2010
selecting for Message Archiver logging .............185
O
object class reference ...............................................173
Obscure Plaintext Passwords ....................................20
OCS Gateway ...........................................................147
Open Port .................................................................191
Open Port Configuration ...........................................191
P
parameters .................................................................74
Presence access levels .....................................264, 267
Presence ACLs .................................................264, 267
Presence administration ...........................................261
Presence classes ..............................................262, 270
Presence information sources ...........................262, 270
presence mirroring .....................................................60
Presence server status .............................................267
presence services logging ..........................................42
Presence Session Manager (JSM) .............................47
R
realm
changing after installation ....................................18
registration requirements ......................................61, 63
removing Presence classes to access level ...... 266, 269
retrieving message archiver data .............................187
roster configuration .....................................................59
Router area ................................................................15
Router-to-Router Connection
configuring for JSM and InfoBroker in SDNS setup
...............................................................213
S
schema
Administering Presence Services XCP Controller
object class and attribute reference ...................173
sendmail configuration ...............................................59
Server-to-Server connections ...................................155
Single Domain Name Support
configuring
for JSM ........................................................212
overview .............................................................211
starting the Presence XCP Controller ..........................9
Statistics Data ............................................................38
substitution rule ........................................................262
system ........................................................................12
T
Text Conferencing .....................................................226
U
uregistering users .......................................................49
users
disabling accounts ..............................................169
using linux ....................................................................9
Using the Presence XCP Controller .............................9
using web access .......................................................10
V
verifying connection manager certificates ................137
verifying OCS Gateway certificates ..........................147
view access levels .............................................264, 268
view classes ......................................................263, 270
viewing Log Harvester log ..........................................46
viewing Presence access levels ........................264, 268
viewing Presence classes .................................263, 270
viewing SAL agent log ................................................45
viewing server status ................................................267
viewing system manager alarms ................................46
viewing system manager logs ....................................45
X
XCP Controller interface .............................................12
XCP Logging ..............................................................25
August 2010
275