Skip Headers
Oracle® Communications Services Gatekeeper Platform Development Studio Developer's Guide
Release 5.1
E37535-01
Home
Contact Us
Next
PDF
·
Mobi
·
ePub
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
Tips for Creating Extensions
2
Understanding Communication Services
High-level Components
Common Parts
Plug-in
Plug-in Service and Plug-in Instance
Plug-in States
PluginPool
Plug-in APIs
Interface: Plug-in
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
Plug-in Context APIs
Interface: ContextMapperInfo
Interface: RequestContext
Management
SLA Enforcement
Shared libraries
3
Using the Eclipse Wizard
About the Eclipse Wizard
Configuring Eclipse
Prerequisites
Basic configuration of Eclipse environment
Configuring the Eclipse Wizard
Generating a Communication Service Project
Generating an Interceptor Module
Generating an OAuth 2.0 Extension Handler
Generating a Platform Test Environment Custom Module
Generating a RESTful Communication Service Project
Communication Service Wizard-generated OAM Attributes
Adding and Removing Plug-ins
Adding a Plug-in to a Services Gatekeeper Project
Removing a Plug-in from a Communication Service Project
Using the Deprecated Communication Service Wizard
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
Using the SMPP API
SMPP Overview
SMPP Service Interfaces
SMPPPluginSouth
SMPPPluginNorth
Additional Information You will Need
Procedure for Creating a Custom SMPP Plug-in
Configuration Settings Affecting SMPP Connections
About the SMPP Interfaces
oracle.ocsg.protocol.common
oracle.ocsg.protocol.smpp.service
SMPPService
SMPPServiceNorth
SMPPServiceSouth
oracle.ocsg.protocol.smpp.plugin
SMPPPluginNorth
SMPPPluginSouth
SMPPPluginMBean
oracle.ocsg.protocol.smpp.common
oracle.ocsg.protocol.smpp.event
Using the SMPP APIs
Processing a BIND Request from an Application
Processing a SUBMIT_SM Request from an Application
Processing a SUBMIT_SM Response from the SMSC
Processing a DELIVER_SM Request from the SMSC
Processing a DELIVER_SM Response from an Application
8
Using the UCP API
UCP API Overview
UCP Protocol Server Service
Connection Information Manager
PluginNorth
PluginSouth
Additional Information You Will Need
Procedure for Creating a Customized UCP Plug-in
About the UCP Protocol Server Service Interfaces
oracle.ocsg.protocol.common
oracle.ocsg.protocol.ucp
oracle.ocsg.protocol.ucp.pdu
Connection Mapping
OAM Attributes Affecting UCP Network Connectivity
Using the APIs
Sending a submitSm Request to the SMSC
Creating a UCP PDU
Sending an openSession Request to the SMSC
Sending a DeliverSm to an Application
9
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
10
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
Specifying a Destination for the Request
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
Interceptors.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
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
Example
General Example
Interceptor that Extracts Context Data from RequestContext
Interceptor that Functions as a Black List for SMSs
Interceptor that Replaces a Word with a Variable String in an SMS
Using Common EAR File to Add a Custom Interceptor
Developing the Custom Interceptor for Deployment
Updating the Config.xml File
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
Creating a Custom Listener
The Registration Process
Building a Custom EAR File
Deploying Your Custom EAR File
Updating an Existing Custom EAR to Add Custom Interceptors
Filtering Tunneled Parameters
About the XParameter Filter Application
XParameter Filter Configuration File
XParameter Rejection
Internal XParameters
Interceptor Chain Customization
Overview
Managing Custom Interceptor Filter Rules
Interceptor Rule Parameters
Summary of Tasks Related to Interceptors
Interceptor Rules
Reference: Attributes and Operations for Interceptor Rules
listInterceptors
retrieveInterceptorConfiguration
updateInterceptorConfiguration
11
Aspects, 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
Triggering 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
12
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?
13
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
14
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
15
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
16
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
17
Using Request Context Parameters in SLAs
Using RequestContext Parameters Defined in Service Level Agreements
18
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
Scripting on this page enhances content navigation, but does not change the content in any way.