Home Blogs Blog: Telecom, IMS, SOA soapUI part1: Build your own Telecom enabled SOAP test client using ParlayX 3.0 Telco standard in 15 minutes
soapUI part1: Build your own Telecom enabled SOAP test client using ParlayX 3.0 Telco standard in 15 minutes
Blog - Telecom, IMS, SOA
Written by Jonas W   
Wednesday, 07 May 2008 14:23

I have in my profession when working with various Telco platforms really come to love the state-of-the-art Free Tool soapUI used for Web Services and SOAP testing. There’s nothing like it! It’s easy to use and innovative menus. And it’s free! Only weakness is that the version I’m currently using (version 2.0.2) has some problems with rendering in Windows Vista. If I drag around a window there sometimes get messy with the OS painter, but no big issue.

(Update 14th of May 2008: I have now received two workarounds for this drawing issue. One fix is to use the Pro-version instead, and the other is to select “Native Look and Feel” under soapUI’s Preferences\UI-Settings. This actually works! Thanks Ole/soapUI-team for the hint.)

Back to the interesting part again. I will show you how to send a ParlayX 3.0 Terminal Location request to underlying telecom network for a mobile number, in other words, a subscriber (MSISDN) within a operator's network. And you will get a location description back to your test client.

The request could be sent to a middleware product/telecom gateway that understands ParlayX Terminal Location, or simple to a Simulator. E.g. a SOAP Mock service (which can be deployed from the same soapUI test client we now build). Commercial products that can be used are:

  • Service Integration Gateway (SIG) from Ericsson
  • Oracle/BEA WebLogic Network gatekeeper (WLNG)
  • Aepona Causeway
  • Alcatel-Lucent Intelligent Services Gateway (ISG)


Install soapUI

1) Download and install soapUI from http://www.soapui.org/. There exists one free version, and a Pro version which cost money. I must say that the Pro version is really cool, with nice integrated tools for XPath, nice looking reports, better integration for JUnit, etc. However, for a smaller scope, the free version is fully functionally, and it will do the job perfectly!


Create your Location test Project and Test Client

2) Start soap UI (shortcut or from directory where you installed it), create a new workspace, or use existing default workspace. In soapUI there exists a workspace where you can mange one or several projects.

workspace

3) Open File -> Preferences -> WSDL settings. Check “Generate example values in new requests”.

pref

4) Download and unzip ParlayX specifications and WSDL’s from Terminal Location and Common hosted by Parlay Group. (Place all the WSDL files in same folder.)

5) Right click on workspace, select “New WSDL Project”. Name it something, and located the downloaded parlayx_terminal_location_service_3_1.wsdl file. (Notice the terminal location uses some of the custom types, so, make sure relative paths are correct. If you add all WSDLs in same folder it should be fine). Check to save a project file. Click OK. Save the project file somewhere locally, wherever you want.

new project

6) In the project pane, open <Project-file> -> TerminalLocationBinding -> getLocation -> Request 1. See how elegant soapUI have created a default request for you, and now also include a couple of test values. Find the <loc:address> element. Here you can add you own mobile number. E.g. 46705555555.

add msisdn

7) Now, you have created your own Terminal Location test service!


Start Server

Make sure you have the ParlayX enabled Server running. The server is your SIG, WLNG, Causeway or ISG instance, …. Or perhaps a simple soapUI mock service. We will in this example try the easiest way, the mock service.


8) Right click on TerminalLocationBinding in project pane. Select -> “Generate MockService”. Update port to 9080 (or whatever you have in your endpoint, from location WSDL. Also check the option to start the MockService immediately. Set the endpoint to: /TerminalLocationService/services/TerminalLocation (same as from WSDL file, you can change this to your external gateway if you using a commercial product for your test). The endpoint indicates where the test client shall connect to.

9) Accept the default name for the mock service. Your test service is now running and listens for terminal location request on port 9080. (if you like, open your favorite web browser and enter http://localhost:9080/TerminalLocationService/services/TerminalLocation, and there you should find your web service running.


Send SOAP Request

10) Open the getLocation -> “Request 1” again. Press “play” button, in upper left corner, and now you have actually sent your first soapUI Web Service Request.

11) Open the right side of “Request 1”. There you find the result, or response, send via SOAP from your gateway/simulator!

  • Wow! Isn’t that cool?? A complete SOAP envelope as result. With location details (latitude, longitude and altitude) for your phone (ok, we only fake it, but still, this is how it will work in a live User Location Application).

the response back from parlayx server

Notice: For all commercial products there is some kind of authentication process involved. Application credentials and SLA must be agreed. One cannot just send a request to the gateway. This "login-process" must be integrated in your test case. E.g. usage of a session concept, or basic authentication.

Find a example how to login to Oracle/BEA WLNG using soapUI and a Session Manager. Read the complete blog post: soapUI part2: How to use soapUI with Oracle/BEA WLNG's Session Manager.

Where to go from here?

  • Try to build your own test cases and load tests, sending thousands of requests. You can setup soapUI in scripting mode. Integrate with JUnit, which is a technique familiar to many developers.
  • Try to implement test cases for other Web Services interfaces, built on custom made WSDL’s or download specifications from vendor or the parlay group.

ParlayX Standard

  • Parlay X is a set of telecommunications Web services. ParlayX is designed to enable software developers to use capabilities from the telecom network in custom made applications. ParlayX define how one can send SMSs or MMSs, it defines how payment is handled, set up Third Party Calls, Call handling, etc.
  • The Parlay X Web services are defined by the Parlay Group, and are also a part of the 3GPP Release 6 Specifications.
Parlay X has been implemented by a number of telecom operators, including BT, Korea Telecom, T-Com, Mobilecom and Sprint.

Sample data used in this blog post

Example of request XML
<soapenv:Envelope 
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:loc="http://www.csapi.org/schema/parlayx/terminal_location/v3_1/local">
<soapenv:Header/>
<soapenv:Body>
<loc:getLocation>
<loc:requester>http://www.company.org/cum/sonoras</loc:requester>
<loc:address>46705555555</loc:address>
<loc:requestedAccuracy>3</loc:requestedAccuracy>
<loc:acceptableAccuracy>3</loc:acceptableAccuracy>
<loc:maximumAge>
<!--type: TimeMetrics - enumeration:
[Millisecond,Second,Minute,Hour,Day,Week,Month,Year]-->
<metric>Year</metric>
<!--type: int-->
<units>3</units>
</loc:maximumAge>
<!--Optional:-->
<loc:responseTime>
<!--type: TimeMetrics - enumeration:
[Millisecond,Second,Minute,Hour,Day,Week,Month,Year]-->
<metric>Week</metric>
<!--type: int-->
<units>3</units>
</loc:responseTime>
<!--type: DelayTolerance - enumeration:
[NoDelay,LowDelay,DelayTolerant]-->
<loc:tolerance>LowDelay</loc:tolerance>
</loc:getLocation>
</soapenv:Body>
</soapenv:Envelope>

 

Example of response XML

 <soapenv:Envelope 
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:loc="http://www.csapi.org/schema/parlayx/terminal_location/v3_1/local">
<soapenv:Header/>
<soapenv:Body>
<loc:getLocationResponse>
<loc:result>
<latitude>1.5E2</latitude>
<longitude>1.5E2</longitude>
<altitude>1.5E2</altitude>
<accuracy>3</accuracy>
<timestamp>2008-09-29T03:49:45</timestamp>
</loc:result>
</loc:getLocationResponse>
</soapenv:Body>
</soapenv:Envelope>

References

Comments? Contact This e-mail address is being protected from spambots, you need JavaScript enabled to view it