![]() ![]() ![]() ![]() ![]() ![]() |
The following sections describe how to configure individual servers to act as Diameter nodes or relays in a WebLogic SIP Server domain:
A typical WebLogic SIP Server domain includes support for the Diameter base protocol and one or more IMS Diameter interface applications (Sh, Ro, Rf) deployed to engine tier servers that act as Diameter client nodes. SIP Servlets deployed on the engines can use the available Diameter applications to initiate requests for user profile data, accounting, and credit control, or to subscribe to and receive notification of profile data changes.
One or more server instances may be also be configured as Diameter relay agents, which route Diameter messages from the client nodes to a configured Home Subscriber Server (HSS) or other nodes in the network, but do not modify the messages. BEA recommends configuring one or more servers to act as relay agents in a domain. The relays simplify the configuration of Diameter client nodes, and reduce the number of network connections to the HSS. Using at least two relays ensures that a route can be established to an HSS even if one relay agent fails.
Note: | In order to support multiple HSSs, the 3GPP defines the Dh interface to look up the correct HSS. WebLogic SIP Server 3.0 does not provide a Dh interface application, and can be configured only with a single HSS. |
Note that relay agent servers do not function as either engine or data tier instances—they should not host applications, store call state data, maintain SIP timers, or even use SIP protocol network resources (sip or sips network channels).
WebLogic SIP Server also provides simulator applications for the Sh and Ro protocols. You can use the simulator applications for testing while developing Sh and Ro clients. The simulator applications are not intended for deployment to a production system.
To configure Diameter support in a WebLogic SIP Server domain, follow these steps:
config.xml
file to enable the extension.The sections that follow describe each step in detail. See also the Example Domain Configuration.
The Configuration Wizard includes a Diameter domain template that creates a domain having four WebLogic SIP Server instances:
You can use the installed Diameter domain as the basis for creating your own domain. Or, you can use the customized Diameter Web Applications as templates for configuring existing WebLogic SIP Server instances to function as HSS client or relay agent nodes. The configuration instructions in the sections that follow assume that you have access to the Diameter domain configuration. Follow these steps to install the domain:
WLSS_HOME
\common\bin
directory, where WLSS_HOME
is the directory in which you install WebLogic SIP Server (for example, c:\bea\sipserver30\common\bin
).config.cmd
or config.sh
script to launch the Configuration Wizard.diameterdomain.jar
template and click OK.BEA_HOME
/user_projects/domains/diameter
).Table 4-1 describes the server configuration installed with the Diameter domain.
WebLogic SIP Server provides a console extension to help you create and configure Diameter nodes. The actual configuration generated by the extension is stored in a diameter.xml
configuration file, stored in the config/custom
subdirectory of the domain directory.
The sample Diameter domain already enables the Diameter console extension. If you are working with a domain that does not enable the extension, edit the config.xml
file for the domain to specify the custom resource for the extension. Listing 4-1 highlights the config.xml
entries necessary to enable the console extension. Use a text editor to add the highlighted lines in the correct location in config.xml
.
<custom-resource>
<name>sipserver</name>
<target>hssclient</target>
<descriptor-file-name>custom/sipserver.xml</descriptor-file-name>
<resource-class>com.bea.wcp.sip.management.descriptor.resource.SipServerResource</resource-class>
<descriptor-bean-class>com.bea.wcp.sip.management.descriptor.beans.SipServerBean</descriptor-bean-class>
</custom-resource>
<custom-resource>
<name>diameter</name>
<target>hssclient,relay,hss</target>
<deployment-order>200</deployment-order>
<descriptor-file-name>custom/diameter.xml</descriptor-file-name>
<resource-class>com.bea.wcp.diameter.DiameterResource</resource-class>
<descriptor-bean-class>com.bea.wcp.diameter.management.descriptor.beans.DiameterBean</descriptor-bean-class>
</custom-resource>
<custom-resource>
<name>ProfileService</name>
<target>hssclient</target>
<deployment-order>300</deployment-order>
<descriptor-file-name>custom/profile.xml</descriptor-file-name>
<resource-class>com.bea.wcp.profile.descriptor.resource.ProfileServiceResource</resource-class>
<descriptor-bean-class>com.bea.wcp.profile.descriptor.beans.ProfileServiceBean</descriptor-bean-class>
</custom-resource>
<admin-server-name>AdminServer</admin-server-name>
</domain>
WebLogic SIP Server's Diameter implementation supports the Diameter protocol over the TCP, TLS, and SCTP transport protocols. (SCTP transport is provided with certain restrictions as described in Configuring and Using SCTP for Diameter Messaging.)
To enable incoming Diameter connections on a server, you must configure a dedicated network channel of the appropriate protocol type:
Servers that use a TCP/TLS channel for Diameter (diameters channels) must also enable two-way SSL. WebLogic SIP Server may automatically upgrade Diameter TCP connections to use TLS as described in the Diameter specification (RFC 3558).
To configure a TCP or TCP/TLS channel for use with the Diameter provider, follow these steps:
Note: | If a server configures at least one TLS channel, the server operates in TLS mode and will reject peer connections from nodes that do not support TLS (as indicated in their capabilities exchange). |
Note: | If you do not change the default value, the Diameter connection will be dropped and recreated every 65 seconds with idle traffic. |
The servers installed with the Diameter domain template include network channel configurations for Diameter over TCP transport. Note that the relays server includes only a diameter channel and not a sip or sips channel. Relay agents should not host SIP Servlets or other applications, therefore no SIP transports should be configured on relay server nodes.
Diameter channels that use TLS (diameters channels) require that you also enable two-way SSL, which is disabled by default. Follow these steps to enable two-way SSL for a server. If you have not already configured SSL, see Configuring SSL in the WebLogic Server 9.2 Documentation for instructions.
SCTP is a reliable, message-based transport protocol that is designed for use in telephony networks. SCTP provides several benefits over TCP:
WebLogic SIP Server supports SCTP for Diameter network traffic, with several limitations:
In addition, WebLogic SIP Server only supports SCTP channels on the following software platforms:
SCTP channels can operate on either IPv4 or IPv6 networks. Creating TCP, TLS, and SCTP Network Channels for the Diameter Protocol describes how to create a new SCTP channel. To enable multihoming capabilities for an existing SCTP channel, specify the IPv4 address 0.0.0.0
as the listen address for the channel (or use the ::
address for IPv6 networks).
The Diameter node configuration for WebLogic SIP Server engines is stored in the diameter.xml
configuration file (domain_home/config/custom/diameter.xml
). If you want to provide diameter services (client, server, or relay functionality) on an engine tier server, you must create a new node configuration and target the configuration to an existing engine server instance.
Diameter node configurations are divided into several categories:
The sections that follow describe how to configure each aspect of a Diameter node.
Follow these steps to create a new Diameter node configuration and target it to an existing WebLogic SIP Server engine tier instance:
After creating a general node configuration, the configuration name appears in the list of Diameter nodes. You can select the node to configure Diameter applications, peers, and routes, as described in the sections that follow.
Each Diameter node can deploy one or more applications. You configure Diameter applications in the Administration Console using the Configuration->Applications page for a selected Diameter node. Follow these steps:
WebLogic SIP Server includes several Diameter applications to support clients using the Sh, Rf, and Ro interfaces, Diameter relays, and simulators for the Sh and Ro interfaces. The sections that follow provide more information about configuring these WebLogic SIP Server Diameter applications.
You can also use the base Diameter API included in WebLogic SIP Server to create and deploy your own Diameter applications. See Using the Diameter Base Protocol API in Developing Applications with WebLogic SIP Server for more information.
The Sh client application is implemented as a provider to the base Diameter protocol support in WebLogic SIP Server. The application transparently generates and responds to the Diameter command codes defined in the Sh application specification. A higher-level API enables SIP Servlets to manage user profile data as an XML document using XML Document Object Model (DOM). Subscriptions and notifications for changed profile data are managed by implementing a profile listener interface in a SIP Servlet. See Using the Diameter Sh Interface Application in Developing Applications with WebLogic SIP Server for more information about the API.
The Diameter nodes on which you deploy the Sh client application should be configured with:
To configure the Sh client application, you specify the com.bea.wcp.diameter.sh.WlssShApplication
class. WlssShApplication
accepts the following parameters:
destination.host
configures a static route to the specified host. Include a destination.host
param definition only if servers communicate directly to an HSS (static routing), without using a relay agent. Omit the destination.host
param completely when routing through relay agents.destination.realm
—configures a static route to the specified realm. Specify the realm name of relay agent servers or the HSS, depending on whether or not the domain uses relay agents.Listing 4-2 shows a sample node configuration for an Sh client node that uses a relay.
<?xml version='1.0' encoding='utf-8'?>
<diameter xmlns="http://www.bea.com/ns/wlcp/diameter/300" xmlns:sec="http://www.bea.com/ns/weblogic/90/security" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wls="http://www.bea.com/ns/weblogic/90/security/wls">
<configuration>
<name>hssclient</name>
<target>hssclient</target>
<host>hssclient</host>
<realm>bea.com</realm>
<!-- Omit the host and realm elements to dynamically assign the hostname
and domain name of individual engine tier servers. -->
<message-debug-enabled>true</message-debug-enabled>
<application>
<name>WlssShApplication</name>
<class-name>com.bea.wcp.diameter.sh.WlssShApplication</class-name>
<param>
<!-- Include a destination.host param definition only if servers will
communicate directly to an HSS (static routing), without using
a relay agent. Omit the destination.host param completely when
routing through relay agents. -->
<!-- Specify the realm name of relay agent servers or the HSS,
depending on whether or not the domain uses relay agents. -->
<name>destination.realm</name>
<value>hss.com</value>
</param>
</application>
<peer>
<!-- Include peer entries for each relay agent server used in the domain.
If no relay agents are used, include a peer entry for the HSS
itself, as well as for all other Sh client nodes (all other engine
tier servers in the domain).
Alternately, use the allow-dynamic-peers functionality in
combination with TLS transport to allow peers to be recognized
automatically. -->
<host>relay</host>
<address>localhost</address>
<!-- The address element can specify either a DNS name or IP address,
whereas the host element must specify a diameter host identity.
The diameter host identity may or may not match the DNS name. -->
<port>3869</port>
</peer>
<!-- Enter a default route to a selected relay agent. If the domain does
not use a relay agent, specify a default route to relay messages
directly to the HSS. -->
<default-route>
<action>relay</action>
<server>relay</server>
</default-route>
</configuration>
</diameter>
The WebLogic SIP Server Rf client application enables SIP Servlets to issue offline charging messages using the IMS Rf interface. To configure the Rf application, specify the class com.bea.wcp.diameter.charging.RfApplication. The Rf application accepts the following parameters:
See Using the Diameter Rf Interface Application for Offline Charging in Developing Applications with WebLogic SIP Server for more information about using the Rf application API in deployed applications.
The WebLogic SIP Server Ro client application enables SIP Servlets to issue online charging messages using the IMS Ro interface. To configure the Rf application, specify the class com.bea.wcp.diameter.charging.RoApplication. The Ro application accepts the following parameters:
ocs.host
specifies the host identity of the Online Charging Function (OCF). The OCF you specify host must also be configured as the peer for the Diameter node on which the Ro application is deployed. ocs.realm
can be used instead of ocs.host
for realm-based routing when using more than one OCF host. The corresponding realm definition must also exist in the Diameter node's configuration.See Using the Diameter Ro Interface Application for Online Charging in Developing Applications with WebLogic SIP Server for more information about using the Ro application API in deployed applications.
Relay agents are not required in a Diameter configuration, but BEA recommends using at least two relay agent servers to limit the number of direct connections to the HSS, and to provide multiple routes to the HSS in the event of a failure.
Note: | You must ensure that relay servers do not also act as WebLogic SIP Server engine tier servers or data tier servers. This means that the servers should not be configured with "sip" or "sips" network channels. |
Relay agent nodes route Sh messages between client nodes and the HSS, but they do not modify the messages except as defined in the Diameter Sh specification. Relays always route responses from the HSS back the client node that initiated the message, or the message the response is dropped if that node is unavailable.
To configure a Diameter relay agent, simply configure the node to deploy an application with the class com.bea.wcp.diameter.relay.RelayApplication
.
The node on which you deploy the relay application should also configure:
Listing 4-3 shows the sample diameter.xml
configuration for a relay agent node.
<?xml version='1.0' encoding='utf-8'?>
<diameter xmlns="http://www.bea.com/ns/wlcp/diameter/300" xmlns:sec="http://www.bea.com/ns/weblogic/90/security" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wls="http://www.bea.com/ns/weblogic/90/security/wls">
<configuration>
<name>relay</name>
<target>relay</target>
<host>relay</host>
<realm>bea.com</realm>
<message-debug-enabled>true</message-debug-enabled>
<application>
<name>RelayApplication</name>
<class-name>com.bea.wcp.diameter.relay.RelayApplication</class-name>
</application>
<!-- Define peer connection information for each Diameter node, or use
the allow-dynamic-peers functionality in combination with TLS
transport to allow peers to be recognized automatically. -->
<peer>
<host>hssclient</host>
<address>localhost</address>
<port>3868</port>
</peer>
<peer>
<host>hss</host>
<address>localhost</address>
<port>3870</port>
</peer>
<route>
<realm>bea.com</realm>
<application-id>16777217</application-id>
<action>relay</action>
<server>hssclient</server>
</route>
<!-- Enter a default route for this agent to relay messages
to the HSS. -->
<default-route>
<action>relay</action>
<server>hss</server>
</default-route>
</configuration>
</diameter>
WebLogic SIP Server contains two simulator applications that you can use in development or testing environments to evaluate Diameter client applications. To configure a simulator application, you simply deploy the corresponding class to a configured Diameter node:
Note: | These simulators are provided for testing or development purposes only, and is not meant as a substitute for a production HSS or CDF. |
Diameter nodes that deploy simulator applications can be targeted to running engine tier servers, or they may be started as standalone Diameter nodes. When started in standalone mode, simulator applications accept the command-line options described in Table 4-3. See Working with Diameter Nodes in Developing Applications with WebLogic SIP Server for more information.
A Diameter node should define peer connection information for each other Diameter node in the realm, or enable dynamic peers in combination with TLS transport to allow peers to be recognized automatically. You configure Diameter peer nodes in the Administration Console using the Configuration->Peers page for a selected Diameter node. Follow these steps:
Note: | WebLogic SIP Server attempts to connect to the peer using only the protocol you specify (TCP or SCTP). The other protocol is not used, even if a connection fails using the selected protocol. TCP is used as by default if you do not specify a protocol. |
Certain Diameter nodes, such as relays, should configure realm-based routes for use when resolving Diameter messages. You configure Diameter routes in the Administration Console using the Configuration->Routes page for a selected Diameter node. Follow these steps:
See
Listing 4-3, Diameter Relay Node Configuration, on page 4-17 for an example diameter.xml
node configuration containing a route entry.
This section describes a sample WebLogic SIP Server configuration that provides basic Diameter Sh protocol capabilities. The layout of the sample domain includes the following:
Figure 4-1 shows the individual servers in the sample configuration.
Listing 4-4 shows the contents of the diameter.xml
file used to configure engine tier servers (Sh Clients) in the sample domain. Listing 4-5 shows the diameter.xml
file used to configure the relay agents.
<?xml version='1.0' encoding='utf-8'?>
<diameter xmlns="http://www.bea.com/ns/wlcp/diameter/300" xmlns:sec="http://www.bea.com/ns/weblogic/90/security" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wls="http://www.bea.com/ns/weblogic/90/security/wls">
<configuration>
<name>clientnodes</name>
<target>Engine1</target>
<target>Engine2</target>
<target>Engine3</target>
<realm>sh_wlss.com</realm>
<application>
<name>WlssShApplication</name>
<class-name>com.bea.wcp.diameter.sh.WlssShApplication</class-name>
<param>
<name>destination.realm</name>
<value>relay_wlss.com</value>
</param>
</application>
<peer>
<host>Relay1</host>
<address>10.0.1.20</address>
<port>3821</port>
</peer>
<peer>
<host>Relay2</host>
<address>10.0.1.21</address>
<port>3821</port>
</peer>
<default-route>
<action>relay</action>
<server>Relay1</server>
</default-route>
<route>
<action>relay</action>
<server>Relay2</server>
</route>
</configuration>
</diameter>
<?xml version='1.0' encoding='utf-8'?>
<diameter xmlns="http://www.bea.com/ns/wlcp/diameter/300" xmlns:sec="http://www.bea.com/ns/weblogic/90/security" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wls="http://www.bea.com/ns/weblogic/90/security/wls">
<configuration>
<name>relaynodes</name>
<target>Relay1</target>
<target>Relay2</target>
<realm>relay_wlss.com</realm>
<application>
<name>RelayApplication</name>
<class-name>com.bea.wcp.diameter.relay.RelayApplication</class-name>
</application>
<peer>
<host>Engine1</host>
<address>10.0.1.1</address>
<port>3821</port>
</peer>
<peer>
<host>Engine2</host>
<address>10.0.1.2</address>
<port>3821</port>
</peer>
<peer>
<host>Engine3</host>
<address>10.0.1.3</address>
<port>3821</port>
</peer>
<peer>
<host>Relay1</host>
<address>10.0.1.20</address>
<port>3821</port>
</peer>
<peer>
<host>Relay2</host>
<address>10.0.1.21</address>
<port>3821</port>
</peer>
<peer>
<host>hss</host>
<address>hssserver</address>
<port>3870</port>
</peer>
<default-route>
<action>relay</action>
<server>hss</server>
</default-route>
</configuration>
</diameter>
SIP Servlets deployed on WebLogic SIP Server use the available Diameter applications to initiate requests for user profile data, accounting, and credit control, or to subscribe to and receive notification of profile data changes. If a SIP Servlet performing these requests generates an error similar to:
Failed to dispatch Sip message to servlet ServletName
java.lang.IllegalArgumentException: No registered provider for protocol: Protocol
The message may indicate that you have not properly configured the associated Diameter application for the protocol. See Configuring Diameter Applications for more information.
If you experience problems connecting to a Diameter peer node, verify that you have configured the correct protocol for communicating with the peer in Configuring Peer Nodes. Keep in mind that WebLogic SIP Server tries only the protocol you specify for the peer configuration (or TCP if you do not specify a protocol).
![]() ![]() ![]() |