Go to main content
1/21
Contents
Title and Copyright Information
Preface
Audience
Documentation Accessibility
Related Documents
1
Overview of the Platform Development Studio
About Platform Development Studio
About Creating Communication Services and Plug-ins
About Platform Development Studio Wizard
About the Example Communication Service
About Testing New Communication Services
Integrating and Customizing Communication Services
Intercepting Requests with Service Interceptors
Creating Subscriber-centric Policies with SLAs
Integrating Communication Services with External Systems
2
Understanding Communication Service Components
Understanding Communication Service Components
Understanding Communication Service Plug-ins
Plug-in Service and Plug-in Instance
Understanding the Plug-in States
Understanding the PluginPool
Obtaining Interfaces and Methods for a Plugin
Understanding the 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
Managing Communication Services
Managing Communication Service Access with SLAs
Sharing Libraries Among Communication Service Plug-ins
3
Developing Communication Services
Tips for Creating or Extending Communication Services
Communicating with Container Services
Retrieving Implementation Instances Using InstanceFactory
Obtaining JNDI Context with ClusterHelper
Broadcasting Events
Generating Statistics with Statistics Service
Generating Standard Statistics
Generating Statistics when Exceptions are Thrown
Using the Plug-in Packages
Understanding Communication Service Management
Understanding EDRs
Enforcing Service Level Agreements
Correlating Services
About Service Correlation Identifiers
Managing Service Correlation Identifiers
Creating a Custom Service Correlation
Using Parameter Tunneling
Understanding Service Gatekeeper Storage Services
Storing Configuration Data with ConfigurationStore
Interfaces
Storing Traffic Data with StorageService
Store configuration file
<store>
<db_table>
<query>
<provider-mapping>
<providers>
Sharing Common Libraries
4
Communication Service Example
Overview of the Example Communication Service
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
5
Creating Extensions with Platform Development Studio Wizard
About Platform Development Studio Wizard
Configuring Platform Development Studio Wizard
Prerequisite Software
Configuring Platform Development Studio Wizard Directories and Logging Levels
Ensuring Platform Development Studio Wizard Uses JRE 1.7
Generating an Interceptor Module
Generating an OAuth 2.0 Extension Handler
Generating a Platform Test Environment Custom Module
Generating a Web Service API Exposure Project
Adding and Removing Extension Plug-ins
Adding a Plug-in to a Services Gatekeeper Project
Removing a Plug-in from a Communication Service
6
Understanding the Communication Service Project Output
About the Generated Communication Service
About the Communication Service Project
About the RESTFul Service Facade
Default RESTful Service Facade
Customize the RESTful Service Facade
Custom URL Mapping Example
Using a Custom Handler Chain
About the Communication Service Plug-in
About the SOAP2SOAP Plug-in
Generated Artifacts for a SOAPSOAP Communication Service
Properties for SOAP2SOAP Plug-ins
About the SIP Plug-in
About the 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
HTTPProxyMBean Reference
Adding a SOAP2SOAP Communication Services
About SOAP2SOAP Communication Services
Generated Artifacts for a SOAP2SOAP Communication Service
Managing and Configuring SOAP2SOAP Communication Services
Properties for SOAP2SOAP Plug-ins
Provisioning Workflow for SOAP2SOAP Communication Services
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
7
Service Enabler Example with SIP plug-in
Overview of the Service Enabler Example with SIP Plug-in
High-level Flow for sendData (Flow A)
High-level Flow for startNotification and stopNotification (Flow B)
High-level flow for notifyDataReception (Flow C)
Understanding the SIP Example Interfaces
Web Service Interface Definition
Network Interface Definition
SIP Example Directory Structure
Differences Compared to the Example netex Plug-in
SIP Example Configuration Files and Artifacts
SIP Example 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
SIP Example SLA
8
Using the SMPP API
Understanding the SMPP API
SMPP Service Interfaces
SMPPPluginSouth
SMPPPluginNorth
Additional Information You Need to Build an SMPP Plug-in
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
9
Using the UCP API
Understanding the UCP Protocol API
UCP Protocol Server Service
Understanding the Connection Information Manager Service
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
10
Using Service Interceptors to Manipulate Requests
Understanding Service Interceptors in Services Gatekeeper
Understanding How Requests are Triggered
Understanding How the Plug-in Manager Works with Interceptors
Request Context Data Used to Handle Request Flow
Data Available for Modification
Specifying a Destination for the Request
Proceeding with the Request Flow
Returning the Request
Aborting the Request
Invoking the Next Service Interceptor to Handle the Request
Last Service Interceptor in the Chain
Understanding the Standard Interceptors
Locating the Standard Interceptors
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
Creating and Using Custom Interceptors
Understanding Custom Interceptors
How to Provide Your Custom Interceptors
Required Packages, Interfaces and Methods
Creating a Backup
On Customer Interceptor Implementation
Testing the Custom Interceptor
Understanding the Example Interceptors
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 the Default 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
Customizing the Interceptor Chain for a Communication Service
Managing Custom Interceptor Filter Rules
Interceptor Rule Parameters
Summary of Tasks Related to Interceptors
Interceptor Rules
11
Understanding Aspects, Annotations, EDRs, Alarms, and CDRs
About Aspects and Annotations
How Aspects are Applied
Understanding the Context Aspect
Generating EDRs from Communication Services
EDR Exception Scenarios
Adding Data to an EDR
Using translators
Triggering an EDR Programmatically
Understanding Communication Service EDR Content
Using Send Lists
RequestContext and EDR
Categorizing EDRs
Understanding EDR Descriptors
Special characters
Values Provided
Boolean Semantic of the Filters
Example EDR Filters
Filtering EDRs by Plugin, Direction, and Execution Status
Categorizing EDRs as Alarms by PluginException, Name, Plugin Name, or Direction
Filtering Pure EDRs by Plugin Names and Attributes
Manually Triggering an EDR
Checklist for Aspect EDR generation
Frequently Asked Questions About EDRs and EDR Filters
Generating Alarms
Triggering an Alarm Programmatically
Alarm Content
Generating CDRs
Understanding the Default CDRs
Triggering a CDR
Triggering a CDR Programmatically
Understanding CDR Content
Understanding the additional_info Database Column
12
Using SLA Policies to Manage Subscribers
About Using Policies to Manage Subscribers
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
Creating Custom Runtime SLAs
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 SLA Behavior for a Service Provider or Application
Understanding How to Customize Behavior Based on SLAs
15
Customizing Diameter AVPs
Understanding Customized Diameter AVPs
Configuring Customized AVPs for Parlay X 3.0 Payment/Diameter
Configuring Customized AVPs for Credit Control Interceptor
Configuring Customized AVPs for CDR Diameter Listener
Dynamically Customizing AVPs for Applications
16
Creating EDR Listeners
Understanding External EDR Listeners
Example Using a Pure JMS Listener
Example Using JMSListener Utility with No Filter
Using JMSListener Utility with a Filter
Understanding an EDR listener utility
Class JMSListener
Understanding the Helper JMSListener Helper Classes
Updating EDR configuration files
17
Making Communication Services Manageable
Understanding Communication Service Management
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
18
Extending the ATE and PTE for Your Communication Services
Understanding ATE and PTE Extensions
Generating a Custom Module Project Using the PDS Wizard
Understanding the Generated Project
Understanding the Generated Project Build File
Understanding the Generated Project 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.