Skip Headers
Oracle® Communications Services Gatekeeper Platform Development Studio Developer's Guide
Release 5.0
Part Number E16619-02
Home
Book List
Contact Us
Next
View PDF
Contents
Title and Copyright Information
Preface
Audience
Documentation Accessibility
Related Documents
1
Overview of the Platform Development Studio
Creating New Communication Services
The Eclipse Wizard
Example Communication Service
The Platform Test Environment
Integration and Customization
Service Interceptors
Subscriber-centric Policy
Integration with External Systems
2
Understanding Communication Services
High-level Components
Common Parts
Plug-in
Plug-in Service and Plug-in Instance
Plug-in States
PluginPool
Interface: Plugin
Interface: PluginNorth
Interface: PluginNorthCallBack
Interface: PluginSouth
Interface: ManagedPluginService
Interface: PluginService
Interface: PluginInstanceFactory
Interface: PluginServiceLifecycle
Interface: ManagedPluginInstance
Interface: PluginInstance
Interface: PluginInstanceLifecycle
Class: RequestFactory
Class: CallbackFactory
Interface: Callback
Class: RequestInfo
Class: ServiceType
Interface: ContextMapperInfo
Interface: RequestContext
Class: ManagedPlugin
Class: AbstractManagedPlugin
Management
SLA Enforcement
Shared libraries
3
Using the Eclipse Wizard
About the Eclipse Wizard
Configure Eclipse
Prerequisites
Basic configuration of Eclipse environment
Configuring of the Eclipse Wizard
Using the Eclipse Wizard
Generating a Communication Service Project
Adding a Plug-in to a Communication Service Project
Removing a Plug-in from a Communication Service Project
4
Service Enabler Example with SIP plug-in
Overview
High-level Flow for sendData (Flow A)
High-level Flow for startNotification and stopNotification (Flow B)
High-level flow for notifyDataReception (Flow C)
Interfaces
Web Service Interface Definition
Network Interface Definition
Directory Structure
Differences Compared to the Example netex Plug-in
Configuration Files and Artifacts
Classes
ExampleServlet
public void init()
protected void doMessage()
ExampleSipHelper
public void init(ServletContext servletContext)
public SipSessionsUtil getSessionsUtil()
public SipFactory getSipFactory()
public synchronized void registerCallback(NetworkCallback callback)
public synchronized void unregisterCallback(NetworkCallback callback)
public synchronized void notifyCallbacks(String fromAddress, String toAddress, String message)
SendDataPluginSouth
public SendDataPluginSouth()
public void send(String address, String data)
public String resolveAppInstanceGroupdId(ContextMapperInfo info)
public void prepareRequestContext(RequestContext ctx, ContextMapperInfo info))
NotificationHandlerSouth
public NotificationHandlerNorth()
public void receiveData(@ContextKey(EdrConstants.FIELD_ORIGINATING_ADDRESS) String fromAddress, @ContextKey(EdrConstants.FIELD_DESTINATION_ADDRESS) @MapperInfo(C) String toAddress, String data)
public String resolveAppInstanceGroupdId(ContextMapperInfo info)
public void prepareRequestContext(RequestContext ctx, ContextMapperInfo info))
ExampleMBean
SLA
5
Description of a Generated Project
Generated project
Communication Service Project
RESTFul Service Facade
Default RESTful Service Facade
Customize the RESTful Service Facade
Custom URL Mapping Example
Using a Custom Handler Chain
Plug-in
SOAP2SOAP Plug-in
SIP Plug-in
Diameter Plug-in
Generated classes for a Plug-in
Interface: ManagedPluginService
Interface: PluginService
Interface: PluginInstanceFactory
Interface: PluginServiceLifecycle
PluginService
ManagedPlugin Skeleton
PluginInstance
PluginNorth
PluginNorth skeleton
RequestFactory Skeleton
Generated classes for a SOAP2SOAP Plug-in
Comparison with a Non-SOAP2SOAP Plug-in
Client Stubs
Web Services Interface
_Stub
Web Services Interface
Web Services Interface
Service_Impl
Web Services Interface
Service
PluginInstance
PluginNorth
PluginSouth
RequestFactory
Build Files and Targets for a Communication Service Project
Main Build File
Communication Service Common Build File
Plug-in Build File
Ant Tasks
cs_gen
plugin_gen
cs_package
javadoc2annotation
6
Communication Service Example
Overview
High-level Flow for sendData (Flow A)
High-level Flow for startNotification and stopNotification (Flow B)
High-level flow for notifyDataReception (Flow C)
Interfaces
Web Service Interface Definition
Interface: SendData
Interface: NotificationManager
Interface: NotificationListener
Network Interface Definition
sendDataToNetwork
receiveData
Directory Structure
Directories for WSDL
Application-initiated traffic
Network-triggered traffic
Directories for Java Source
Communication Service Common
Plug-in
Directories for resources
Directories for Configuration of Plug-in
Directories for Build and Configuration of Builds
Directories for Classes, JAR, and EAR Files
Classes
Communication Service Common
ExceptionType
NotificationManagerPluginFactory
Plug-in Layer
ContextTranslatorImpl
ExamplePluginService
ExamplePluginInstance
ConfigurationStoreHandler
ExampleMBean
Management
NotificationHandlerNorth
NetworkToNotificationPluginAdapter
NetworkToNotificationPluginAdapterImpl
NotificationManagerPluginNorth
SendDataPluginNorth
SendDataPluginSouth
SendDataPluginToNetworkAdapter
SendDataPluginToNetworkAdapterImpl
FilterImpl
NotificationData
StoreHelper
ExamplePluginInstance
ExamplePluginService
Store configuration
SLA Example
7
Container Services
Container service APIs
Class: InstanceFactory
Class: ClusterHelper
Service: EventChannel Service
Service: Statistics service
Plug-in
Management
EDR
SLA Enforcement
Service Correlation
Interface: ExternalInvocation
Class: ExternalInvocatorFactory
Class: ServiceCorrelation
Implementing the ExternalInvocation Interface
Parameter Tunneling
Storage Services
ConfigurationStore
Interfaces
StorageService
Store configuration file
<store>
<db_table>
<query>
<provider-mapping>
<providers>
Shared libraries
8
Service Interceptors
About Service Interceptors in Services Gatekeeper
Service Interceptors in Services Gatekeeper
Request Flow
Plug-in Manager
Request Context Data Used to Handle Request Flow
Data Available for Modification
Decisions Taken by Service Interceptors
Decision to Proceed with the Request Flow
Decision to Return the Request
Decision to Abort the Request
Invoking Next Service Interceptor to Handle the Request
Last Service Interceptor in the Chain
Standard Interceptors
Standard Interceptors in Services Gatekeeper
Location
Retry Functionality for plug-ins
Interceptor.ear File
File Contents
Maintaining Interceptor Data Integrity
Location for All Standard Interceptor Classes
Config.xml File
Elements in Config.xml
Standard Interceptors in the MT_NORTH Section
Standard Interceptors in the MO_NORTH Section
Standard Interceptors in the MO_SOUTH Section
Standard Interceptors in the MT_SOUTH Section
Custom Interceptors
Example
General Example
Interceptor that Extracts Context Data from RequestContext
About Custom Interceptors
How to Provide Your Custom Interceptors
Required Packages, Interfaces and Methods
Creating a Backup
On Customer Interceptor Implementation
Testing the Custom Interceptor
Using Common EAR File to Add a Custom Interceptor
Developing the Custom Interceptor for Deployment
Updating Config.xml File
Creating a Backup of the Current Config.xml
Adding the Custom Interceptor to the Current Chain
Rearranging the Invocation Order
Excluding an Interceptor from the chain
Verifying the Changes
Rebuilding the Interceptors.ear File
Re-deploying Common Interceptors. ear File
Using a Custom EAR File to Add a Custom Interceptor
Points to Note
Steps to Build a Custom EAR for Use with a Custom Interceptor
Information Needed to Register Custom Interceptors
Synchronizing with Invocation Order in Config.xml
Creating a Custom Listener
Implementing ApplicationLifecycleListener
The Registration Process
Hard-coding the Information
Providing a Data File for Registration
Registering (and unregistering) Your Custom Interceptors
Example
Building a Custom EAR File
Contents of META-INF/weblogic-application.xml
Contents of META-INF/application.xml
Deploying Your Custom EAR File
Updating an Existing Custom EAR to Add Custom Interceptors
9
Annotations, EDRs, Alarms, and CDRs
About Aspects and Annotations
How Aspects are Applied
Context Aspect
EDR Generation
Exception Scenarios
Adding Data to the RequestContext
Using translators
Trigger an EDR programmatically
EDR Content
Using send lists
RequestContext and EDR
Categorizing EDRs
The EDR descriptor
Special characters
Values provided
Boolean semantic of the filters
Example filters
Checklist for EDR generation
Frequently Asked Questions about EDRs and EDR filters
Alarm generation
Trigger an alarm programmatically
Alarm content
CDR generation
Triggering a CDR
Trigger a CDR programmatically
CDR content
Additional_info column
Out-of-the box (OOTB) CDR support
10
Converting Traffic Paths and Plug-ins to Communication Services
Converting Network Protocol Plug-ins
Converting Traffic Paths
Checklist
11
Subscriber-centric Policy
Service Classes and the Subscriber SLA
The <reference> element
The <restriction> element
Managing the Subscriber SLA
The Profile Provider SPI and Subscriber Contracts
Deploying the Custom Profile Provider
Subscriber Policy Enforcement
Do Relevant Subscriber Contracts Exist
Is There Adequate Budget for the Contracts
12
Custom Service Level Agreements
Introduction
Custom SLAs and XSDs
Custom SLA Enforcement
Get an SLA using a DOM Object
Get an SLA using a Custom Parser
Example
Custom SLA Schema and Example SLA
Enforcement Logic
13
Customizing Diameter AVPs
Introduction
Configuring Customized AVPs for Parlay X 3.0 Payment/Diameter
Configuring Customized AVPs for Credit Control Interceptor
Configuring Customized AVPs for CDR Diameter Listener
How Applications Can Customize AVPs Dynamically
14
Creating an EDR Listener and Generating SNMP MIBs
Overview of External EDR listeners
Example using a pure JMS listener
Example using JMSListener utility with no filter
Using JMSListener utility with a filter
Description of EDR listener utility
Class JMSListener
Class EdrFilterFactory
Class EdrData
Class ConfigDescriptor
Class EdrConfigDescriptor
Class AlarmConfigDescriptor
Class CdrConfigDescriptor
Updating EDR configuration files
Generating SNMP MIBs
15
Making Communication Services Manageable
Overview
Create Standard JMX MBeans
Create an MBean Interface
Implement the MBean
Register the MBean with the Runtime MBean Server
Use the Configuration Store to Persist Values
16
Using Request Context Parameters in SLAs
Using RequestContext Parameters Defined in Service Level Agreements
17
Extending the ATE and the PTE
Understanding ATE and PTE Extensions
Generating a Custom Module Project Using the Eclipse Wizard
Understanding the Generated Project
Build File
Deployment Descriptor
Building and Deploying the Module
Virtual Communication Service Module for the ATE
Client Module for the PTE
Simulator Module for the PTE
Virtual Communication Service Example
Client Module Example
Simulator Module Example
Stateless and Stateful Modules
Presenting Results
Presenting Statistics
Interacting With the Network Simulator Map
18
Checklist
19
Callable Policy Web Service
Introduction
Callable Policy Web Service interface definition
Endpoints
Detailed service description
Policy Evaluation
Policy management
XML Schema data type definition
AdditionalDataValue structure
AdditionalDataValueType enumeration
Interface: Policy
Operation: evaluate
Interface: PolicyManagement
Operation: viewRuleFile
Operation: deleteRuleFile
Operation: loadRules
Operation: listRuleFiles
Scripting on this page enhances content navigation, but does not change the content in any way.