Develop a custom third-party call web service using WebSphere Telecom Web Services Server

Telecom applications and solutions are based on products that are built on standards, which helps ensure interoperability with the necessary equipments supplied by various vendors. But there are certain situations where interaction with particular network equipment, such as softswitches from a manufacturer, may require customizing the solution or service that interacts with it.

This article is intended to provide developers a guideline and procedure to develop a custom web service implementation using IBM WebSphere® Telecom Web Services Server as the development platform to help the solution function with the specific softswitch.


Siddique Mohammed Adoni (, Advisory Software Engineer, IBM

Siddique A. Mohammed is an advisory software engineer and is part of the IBM Communications Service Enablers product development team at IBM India Software Labs, Bangalore. With over 10 years of IT experience, he has worked on many of the IBM middleware products for the Telecom domain and business process management. Siddique holds a Bachelor of Engineering degree in EandCE.

28 November 2011 (First published 22 November 2011)

Also available in Russian


Frequently used acronyms

  • EAR: Enterprise archive file
  • J2EE: Java™ 2 Platform Enterprise Edition
  • SIP: Session Initiation Protocol
  • TPCC: Third-party call control
  • WSDL: Web Services Description Language

In this article we will create a custom service implementation using the Parlay X 2.1 third-party call WSDL document and create a custom WebSphere Telecom Web Services Server service using the Platform Application Service. The custom third-party call web service implementation is for a specific call flow that works with certain softswitches that have a requirement for 100rel extension support and early media interaction.

This custom third-party call web service implementation is a deviation from the standard call flows defined in "RFC 3725 Best Current Practices for Third Party Call Control in Session Initiation Protocol (SIP)."


Development of a custom service implementation with WebSphere Telecom Web Services Server as a platform requires the following:

  • Understanding of Parlay X third-party call control (TPCC) web service specifications
  • Call flow with the user agents and media server
  • WebSphere Telecom Web Services Server platform

WebSphere Telecom Web Services Server

A WebSphere Telecom Web Services Server service implementation comprises a web service implementation exposing standards based abstraction to underlying network services, for example, Parlay X third-party call control. Service implementation participates in the WebSphere Telecom Web Services Server service platform environment, allowing a service provider to integrate and expose network interfaces and higher level IT interfaces that enable development of rich, value-added services. The subsequent sections discuss the design considerations specific to custom service implementations.

Custom third-party call interface

The third-party call interface is SOAP, the Simple Object Access Protocol, over HTTP request web service. Third-party call interface implements a SIP back-to-back user agent (B2BUA) controller per call that maintains the state of the third-party call until either of the user agents ends the call. The following operations are supported as part of the third-party call interface:

  • makeCall

    Sets up a voice call between 2 addresses, callingParty and calledParty.

  • getCallInformation

    Retrieves the current status, CallInformation, of the call identified by CallIdentifier.

  • endCall

    Terminates the call identified by the callidentifier.

  • cancelCall

    Cancels the the previously requested call identified by callidentifier.

Third-party call service components

The custom third-party call service is realized as a web service. The service logic is made up of the following components:

  • The web service implementation with Java™Bean binding, along with the logic to invoke common components of WebSphere Telecom Web Services Server
  • SIP servlets that handle SIP signalling to and from network elements, for example, Softswitch
  • Java Management Extensions MBean components to manage the service in WebSphere Telecom Web Services Server
  • Logging and trace messages at various stages of processing

SIP methods used by the custom third-party call

The custom third-party call will indicate this by setting the methods in the SIP INVITE message: INVITE, UPDATE, BYE, ACK, CANCEL, PRACK, 100rel, Precondition.

Development environment

Rational Application Developer Version 7.0 is the recommended development environment. Rational Application Developer provides an integrated development environment (IDE) with user-friendly wizards and widgets for developing J2EE applications and web services-based applications.

Create a custom service project

A custom service is created by implementing a project utilizing the Platform Application Service. The Platform Application Service is available with the Telecom Web Services Server in the following form: platform.ear

  1. Start Rational Application Developer and choose to create a workspace.
  2. Import the platform.ear with the help of a Rational Application Developer import wizard. Choose the J2EE folder and select EAR file option. Rename the EAR file as "PX21_TPC_IMS" to refer to the Parlay X web service
  3. The next window displays a list of libraries (stored as utility jars). Select the libraries that create utility projects under the enterprise application. The utility jar files to select are admincons-ejb.jar, admincons-web.war, and admincons.
  4. Locate the deployment descriptor for the PX21_TPC_IMS, double click to edit and change the display name to "PX2_TPC_IMS".

Develop a Parlay X service

  1. Select PX21_TPC_IMS project and create dynamic web project, set the name as "thirdparty-web". This project will have access to all the utility jars that have been imported into the workspace.

    This web project consists of the B2BUA and the handlers that represent the respective user agents, UA1 and UA2, which are involved in a third-party call.

    The handlers are siplets that extend the SipServlet superclass that implements the basic SIP methods: doAck, doBye, doCancel, doErrorResponse (failure response, for example UA2 phone rings but does not pick the call), doInfo, doInvite, doOptions, doProvisionalResponse, doUpdate, and doSuccessResponse.

  2. Set the dynamic web project with all the essential check boxes of the WebSphere Telecom Web Services Server libraries.

Import the WSDL and generate web service bindings

  1. After creating the dynamic web project, import the Parlay X third-party call WSDL and schema definition files from the WebSphere Telecom Web Services Server.
  2. Create new folder as follows: Thirdparty-web -> WebContent -> WEB-INF -> wsdl Select the folder in the explorer where the wsdl files are available (extracted from platform.ear) and import it into the wsdl folder
  3. Generate web service bindings:
    • Right click px_tpc_s_2_3.wsdl and select Web Service. Generate a Java skeleton. In Web Service window change the level from "Start Service" to "Deploy Service".
    • Change the "Web service runtime" to "IBM WebSphere JAX-RPC". This allows the binding to implement javax.xml.rpc.server.ServiceLifeCycle and provide access the underlying ServletContext object runtime.

      BindingImpl is generated for the 4 operations supported by ThirdParty Call, namely: makeCall, getCallInformation, cancelCall and endCall. The BindingImpl generated for ThirdPartyCall will be named

Create utility projects

To create the utility projects mentioned below, in Rational Application Developer follow this path: File -> New -> Project -> Java EE -> Utility Project. Use the following project names appropriately.

  • thirdparty

    This project contains the JavaBean (getter and setter methods0 for each of the elements that are defined by the third-party call Parlay X specifications.

  • thirdpartyAC

    This project contains the MBean classes that represent the various configuration parameters specific to Custom ThirdParty Web Services. These are displayed on the IBM Telecom Web Services Server administration console.

  • thirdparty-utils

    This project contains the utility classes to validate address format, p-asserted-identity, data representation for Session Description Protocol as per RFC 2327.

The details provided above will help create a custom web service implementation on the WebSphere Telecom Web Services Server platform. Sample code demonstrating the capabilities of a custom third party call web service is provided with this article, see Download.

Note: This sample implementation is covered by IBM Certificate of Originality.

Deploy the custom web service

After the custom third-party call web service is developed, export the application as an EAR file. This represents a J2EE application.

From the Rational Application Developer workspace:

  1. Right click on the project PX21_TPC_IMS and choose the option export.
  2. Select Ear file
  3. Save the file to a folder on the local file system.

This enterprise application can now be deployed on an WebSphere Application Server. Start the application "Custom Third Party Call web service". This will enable the service to be visible in WebSphere Telecom Web Services Server administration console. To configure the various parameters for the custom service, click on Web Service platform link displayed under TWSS Administration Console.


Sample codeTWSS_Custom_3pcc_PI_17112011.zip4MB



Get products and technologies


  • Get involved in the My developerWorks community. Connect with other developerWorks users while exploring the developer-driven blogs, forums, groups, and wikis.


developerWorks: Sign in

Required fields are indicated with an asterisk (*).

Need an IBM ID?
Forgot your IBM ID?

Forgot your password?
Change your password

By clicking Submit, you agree to the developerWorks terms of use.


The first time you sign into developerWorks, a profile is created for you. Information in your profile (your name, country/region, and company name) is displayed to the public and will accompany any content you post, unless you opt to hide your company name. You may update your IBM account at any time.

All information submitted is secure.

Choose your display name

The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerWorks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

Required fields are indicated with an asterisk (*).

(Must be between 3 – 31 characters.)

By clicking Submit, you agree to the developerWorks terms of use.


All information submitted is secure.

Dig deeper into WebSphere on developerWorks

Zone=WebSphere, Rational, DevOps
ArticleTitle=Develop a custom third-party call web service using WebSphere Telecom Web Services Server