TDC Mobil`s SPWEB SAOP API

Transcription

TDC Mobil`s SPWEB SAOP API
TDC Mobil SPWEB SOAP API
Author: Thomas Oestergaard
TDC A/S
SPWEB API and Toolbox Guide
SPPORTAL walkthrough
Author: Thomas Østergaard
Document version 2.7
Date: 2012-03-20
Page 1 of 91
TDC Mobil SPWEB SOAP API
Author: Thomas Oestergaard
Table of Contents
1
About this document ............................................................................................................... 4
1.1
2
Reader Guide .................................................................................................................... 4
SPWEB System Overview ......................................................................................................... 7
2.1
System Components .......................................................................................................... 7
2.2
Concept and Intentions – the short version ........................................................................... 8
2.3
Subscriber ........................................................................................................................ 8
2.3.1
3
4
5
6
SOC ......................................................................................................................... 9
Description of the TDC SPWEB AXIS SOAP Toolbox.................................................................... 11
3.1
Architecture for the AXIS client ......................................................................................... 11
3.2
Technology included with the Toolbox ................................................................................ 11
3.3
The Structure of the Toolbox ............................................................................................. 12
3.4
How to generate the AXIS client interfaces from the WSDL file .............................................. 13
3.5
How to build the application in the Toolbox ......................................................................... 13
3.6
How to configure the Toolbox ............................................................................................ 13
3.7
Implemented methods in the Toolbox ................................................................................ 14
3.8
How to use a method/service from the Toolbox ................................................................... 14
General Request and Reply in SPWEB ...................................................................................... 17
4.1
General update Request ................................................................................................... 17
4.2
General Reply ................................................................................................................. 17
Return Codes and Error description for SP-WEB ........................................................................ 18
5.1
Return Codes .................................................................................................................. 18
5.2
General pre/post conditions .............................................................................................. 19
SPWEB services available for the SOAP API .............................................................................. 24
6.1
SPWEB services ............................................................................................................... 25
6.1.1
test ........................................................................................................................ 25
6.1.2
getPrimaryServiceTypes ............................................................................................ 26
6.1.3
getAdditionalServiceTypes ......................................................................................... 27
6.1.4
getSuspensionTypes ................................................................................................. 28
6.1.5
cancelSubscriber ...................................................................................................... 29
6.1.6
restoreCancelledSubscriber ....................................................................................... 30
6.1.7
changeMsisdn .......................................................................................................... 31
6.1.8
changeICC .............................................................................................................. 32
6.1.9
changePricePlan ....................................................................................................... 33
6.1.10
suspendSubscriber ................................................................................................... 34
6.1.11
removeSuspension ................................................................................................... 35
6.1.12
updateSubscriber ..................................................................................................... 36
6.1.13
searchTransactionHistoryByMsisdn ............................................................................. 37
Page 2 of 91
TDC Mobil SPWEB SOAP API
7
Author: Thomas Oestergaard
6.1.14
searchServiceTransactionQueueByMsisdn .................................................................... 38
6.1.15
searchServiceTransactionQueueByTime....................................................................... 39
6.1.16
searchSubscriberByMSISDN ...................................................................................... 40
6.1.17
searchSubscriberByICC ............................................................................................. 41
6.1.18
searchSubscriberByIMSI ........................................................................................... 42
6.1.19
searchTransactionBySubscriberAndTransactionId ......................................................... 43
6.1.20
searchSuspensions ................................................................................................... 44
6.1.21
rejectExport ............................................................................................................ 45
6.1.22
releaseImport .......................................................................................................... 46
6.1.23
searchExportRequests............................................................................................... 47
6.1.24
getRejectionCodes .................................................................................................... 48
6.1.25
getReportTypes........................................................................................................ 49
6.1.26
createReportRequest ................................................................................................ 50
6.1.27
searchReportRequestByUserId ................................................................................... 51
6.1.28
getNPFlowTypes ....................................................................................................... 52
6.1.29
listNPFlowStatus ...................................................................................................... 53
6.1.30
importSubscriber_NO................................................................................................ 54
6.1.31
createSubscriber_NO ................................................................................................ 55
6.1.32
confirmExport_NO .................................................................................................... 56
6.1.33
getActivationTypes ................................................................................................... 57
6.1.34
createSubscriber ...................................................................................................... 58
6.1.35
confirmExport .......................................................................................................... 59
6.1.36
searchResourceByMsisdn........................................................................................... 60
6.1.37
updateMsisdnResource .............................................................................................. 61
6.1.38
getMsisdnTransistionStates ....................................................................................... 62
6.1.39
searchExportRequests_NO......................................................................................... 63
6.1.40
updateSIMResourceStatus ......................................................................................... 64
6.1.41
getSimCardDetails .................................................................................................... 65
6.1.42
getICCTransistionStates ............................................................................................ 66
6.1.43
lookupHLRinformation ............................................................................................... 67
AXIS - overview .................................................................................................................... 68
7.1
AXIS architecture ............................................................................................................ 68
7.2
How AXIS convert from JAVA to SOAP XML and back? .......................................................... 69
8
Number Porting..................................................................................................................... 70
9
SPPORTAL ............................................................................................................................ 77
10
SPWEB Reports ............................................................................................................... 82
11
References...................................................................................................................... 91
Page 3 of 91
TDC Mobil SPWEB SOAP API
Author: Thomas Oestergaard
1 About this document
This document is an introduction guide to SPWEB.
It covers the basic aspects of TDC‟s SPWEB API solution as well as the Tools and technical documentation
made available by TDC to new services providers.
The document is largely technical in nature and the intended audience is developers about to create a
Service Provider solution using the SPWEB web service interface or developers on existing solutions who
are about to take new areas of SPWEB into service for the first time.
Change History
V.
Date
1.0 2006-03-26
1.1 2008-01-28
2.0 2010-12-05
2.1
2011-01-27
2.2
2.3
2.4
2.5
2.6
2.7
2011
2011
2011
Jan – Feb 2012
Feb 2012
March 2012
1.1
Updated to be a guide in how to move from client.jar to axis
Updated to be more of a general guide to SPWEB
Updated to cover new SPWEB services and major update of document incl.
Number Porting.
Added Explanations of SP Mobile Reports drawn through the SPPORTAL and
SPWEB API interfaces.
Review comment changes and general SP PORTAL information added.
General consolidation of new version
Updated chapters 1 to 3.
Minor corrections to various areas
Work Version – Merged into 2.7
Aging, Cancel & Restore and Exclusion group additions and elaboration
Reader Guide
During reading it is recommended that the reader do not consider it as a standalone but also refers to the
other documentation included in the toolbox compilation.
This documentation is as follows:
The generated Java Doc.
o JavaDoc is a tool for generating API documentation in HTML format from doc comments in
source code this tool has been used to create what is referred commonly to as “the Java
Doc” found in the \doc\ dir of the toolbox.
o Format : HTML
o Click here to open it directly.
WSDL file.
o WSDL is an XML format for describing network services as a set of endpoints operating on
messages containing either document-oriented or procedure-oriented information.
o Format: HTML
o Click here to view it
The Toolbox examples and source code (Java)
o The toolbox is a standalone implantation of a client side SPWEB installation with examples.
It is using AXIS and Java but knowledge of either is not mandatory or required to use it.
o Platform : Windows
o Format : ASCII
o Click here for the source and here for the examples
Page 4 of 91
TDC Mobil SPWEB SOAP API
1.2
Author: Thomas Oestergaard
Terminology
Term
Description
Aging
The state of a number or serial no after a cancelSubscriber. Aging
follow the rules in TDC‟s resource management and will eventually
terminate the resource or return it to the range owner after a
preset period of time.
COREID
Validation system used for the SPPORTAL
CSM
An internal area in TDC‟s billing solution. It is used in number
porting.
DMZ
De-Militarized Zone. The zone between two firewalls. A DMZ is a
security measure.
The Karen system for SPWEB and CoreID for SPPORTAL are located in DMZ.
Donor Operator
The donor is operator which is being imported from in number
porting
The donor sees this as an export of a number to another operator.
KAREN
The security and access servers used by TDC in the SPWEB solution.
Karen-demo is the test system.
Karen-prod is the production system.
OI
TDC online. An internal area used in number porting.
Outcollect
The part of TDC‟s billing system NABS, which sends files containing the service provider‟s CDRs to the service provider system.
The CDRs are in a format called TAP3.09, which is also the CDR
format used for Roaming between Mobile Operators in the world.
NABS
TDC‟s billing system.
Number Porting
Number porting is the process involved in: moving a subscriber
number from the current operator and to new operator (see Number Porting Chapter).
Number Porting in TDC is split into two areas.
Full number porting (from Outside TDCs network)
RESELL number porting (Inside TDCs network)
See the chapter about number porting later in this document for
details
Recipient Operator
The operator which is being (im)ported to in Number Porting
RESELL
RESELL is a number porting flow where the number being ported
is already in TDC‟s system (the donor and recipient is both service
providers or operators at TDC).
Service Provider
A client operator at TDC.
The terms Provider and Operator are used interchangeably in the
text, ex. Service Provider and Operator is the same thing.
Page 5 of 91
TDC Mobil SPWEB SOAP API
Author: Thomas Oestergaard
Service Providers use SPPORTAL and SPWEB for business to business services and receive CDRs with calls in TAP3.09 format.
SP PORTAL
TDC‟s Portal solution for Service Providers.
It is a WEB portal containing most of the services also found in
the API. But in a thin web client interface.
SPWEB / SPWEB API
The Service Provider API solution at TDC. The term general
SPWEB covers the general solution as well as all services found in
the API.
The specific term SPWEB API covers only the services found in the
API.
The API is the business to business solution offered.
SPWEB Reports
SPWEB offers a number of Reports to its service provider users.
The reports can be requested either through the in SPWEB API or
SP PORTAL and are delivered to either the SPPORTAL or an FTP
server of the SPs choice.
The reports are the same regardless of where they are requested
or delivered to.
Page 6 of 91
TDC Mobil SPWEB SOAP API
Author: Thomas Oestergaard
2 SPWEB System Overview
The following contains a high-level overview of the SPWEB system.
2.1
System Components
The SPWEB application is a front end for TDC‟s billing system (NABS) providing Service Provider. It supplies Service Providers (SP) with services that allows them to interact with NABS.
The application area is split into two tiers: A front end handling security and user access and a back end
handling the actual API.
These tiers are outlined below:
Front End
Is deployed on a web server capable of handling
Java Server Pages (JSP).
Is located in the DMZ (De-Militarized Zone – the
network domain between two network firewalls).
It acts as the gateway for outside clients (service
providers) to contact the back-end located within
TDC‟s own network.
It uses CoreID for authorization and authentication of the service provider users.
The JSP-server works with the CoreID application
to provide user-control: all users are validated
with
Certificate
UserID
ServiceProviderID
TrustStore
IP address.
The front end server is referred to as:
Karen-prod for production
Karen-demo for test.
Back End
Is a J2EE-application server where the SOAP API
specific software is deployed, currently a Weblogic.
The backend handles all API services.
The SPWEB SOAP API back-end is accessed
through the KAREN front-end authority systems.
The drawing below shows the relationship between the elements in the SPWEB solution and the Service
Provider systems.
Page 7 of 91
TDC Mobil SPWEB SOAP API
Author: Thomas Oestergaard
Internet
DMZ
F
i
r
e
w
a
l
l
External Service
provider
application
(target: API)
TDC network
KAREN
Webaccess by
certificate
External Service
provider Webbrowser
F
i
r
e
w
a
l
l
SPWEB
Java Enterprise
application
J2EE Server
(Weblogic)
SPPORTAL
COREID
JSP Server
(Tomcat)
Access server
(target: Portal)
It is worth noting that the SPPORTAL looks at the same data as the SPWEB API (thus the arrow from the
portal to SPWEB).
The implication of this is that service providers can use the SPPORTAL to sample control if their SPWEB
API client applications are working correctly as SPWEB and SPPORTAL should always show the same data
and provide the same results.
Note. SPPORTAL is a production only application there is no test version of the SPPORTAL.
2.2
Concept and Intentions – the short version
The SPWEB system provides a large number of services to handle a subscriber‟s lifecycle. In the following
sections this is described along with flows for adding, removing and updating products.
2.3
Subscriber
This diagram shows the states of the subscriber.
cancel
suspend
Suspended
restore from suspension
yes
suspend
more suspensions?
no
create subscriber
Active
import?
no
(normal)
yes
cancel
Cancelled
resume from cancel
export
"ageout" of
resource
automatic import
Reserved
release
Figure 1 Subscriber states
Page 8 of 91
TDC Mobil SPWEB SOAP API
Author: Thomas Oestergaard
Note: The figure depicts the state of the subscription, not the resource “subscriber number”.
CreateSubscriber is used to create a new subscriber whether a new one use the SPs msisdn and SIM card
resources or a number import from another provider (the activationType parameter used in the service
determines its scope).
Resources prior to activation has the state AA meaning assigned available. They are assigned to an SP
and is available for use by that SP.
Once activated the resources switch to AI meaning assigned in use. They are assigned to an SP and are
in use by a subscriber owned by the SP.
The resources can be suspended (ex. if limits are crossed or the phone stolen). Suspensions are either
soft (usually tied to a usage limit of some sort, the phone can still be used for emergency calls etc) or
hard (usually used if stolen or criminal behaviour, the phone cannot be used).
The services suspendSubscriber and removeSuspension are used for this.
Resources end and be reclaimed through cancelling the subscriber after which they are moved automatically to a cancelled status called aging.
After a period of time the resources age-out and either terminate entirely or are returned to the range
owner. The SP can use services to change the state of resources in the age process to manually reclaim
resources faster or restore the subscription.
The services cancelSubscriber, restoreSubscriber, updateMSISDNresource, updateSimResourceStatus are
used for this.
2.3.1 SOC
State diagrams and transitions for different service types (SOCs and features).
SOC - primary or build-in
cancel
subscriber
create
subscriber
active
SOC - additional
update
subscriber
update
(parameter)
cancel
subscriber
active
update
subscriber
(disable)
create
subscriber
Feature
update
subscriber
update
(parameter)
cancel
subscriber
active
create
subscriber
update
subscriber
(disable)
update
subscriber
(enable)
Inactive
Figure 2 State and transitions for SOCs and features
2.3.2 Exclusion Group
Some features belong to an exclusion group.
Page 9 of 91
TDC Mobil SPWEB SOAP API
Author: Thomas Oestergaard
A feature can belong to 0-1 exclusion group. When a feature from an exclusion group is chosen
for a subscription another feature belonging to the same exclusion group cannot be chosen for
the same subscription.
They exclude each other.
Example.
GPRSL50E Datagrænse i udlandet 360 kr. ekskl. Moms
GPRSLU Ingen datagrænse i udlandet
LIMIT
LIMIT
GPRSL50E and GPRSLU both belong to the same exclusion group called LIMIT. So if one is use
for a subscriber the other cannot also be added to the subscriber as they belong to the same
exclusion group and only one feature pr. exclusion group can be active at a time for a subscriber.
There is no limit to the number of features, with an exclusion group, that a subscriber can
have, as long as the features as not of the same exclusion group.
The exclusion group a feature belongs to can be view with getPrimaryServiceType and getAdditionalServicType.
The service provider can also request the information in a formatted document from TDC. This
request can be made to the SP implementation team.
Page 10 of 91
TDC Mobil SPWEB SOAP API
Author: Thomas Oestergaard
3 Description of the TDC SPWEB AXIS SOAP Toolbox
To smooth the path getting from scratch and to a fully working solution TDC provides a fully running
Toolbox, with all services implemented1 to its service providers.
This toolbox is distributed as a compressed file to existing service providers2 or in the form of a CD/DVD
handed out at introduction meetings to new services providers.
The Toolbox includes the AXIS framework, build/compile scripts, JAVA source codes and run script (for
MS Windows) for the implemented services and the important WSDL file as well as documentation.
It is a standalone implementation of a basic client side SPWEB system implementation.
It is fully functional and can be used to access and test any service with real world data using the exact
same certificates/technology that is used towards production3.
It is intended to run on a windows machine.
Please note: The toolkit, while fully functional at a basic level, is an education and test tool. It is not intended as a full client side implementation.
3.1
Architecture for the AXIS client
There is no special architecture for the AXIS client aka the application running at the Service Provider.
AXIS is only used for SOAP transport and to generate the client JAVA interface from the SPWEB WSDL
file. For more information on how AXIS work please refer to section 7 AXIS - overview.
3.2
Technology included with the Toolbox
The Toolbox includes following technologies:
ANT 1.6.5
Apache Ant is a Java-based build tool. In theory, it is kind of like make, without
make's wrinkles.
In the Toolbox ANT is used for generation of JAVA source code from the WSDL file
and for JAVA compilation of the whole project.
AXIS 1.2
Apache Axis is an implementation of the SOAP protocol.
AXIS is used for the SOAP transport mechanism and to generate JAVA classes from
the WSDL file.
JAVA 1.4.2
SUN JAVA provides a complete environment for applications development on desktops and servers.
JAVA is used as programming language in the Toolbox.
Digital Signature
Digital Signature is used in the Toolbox for secure transport of data. To SSL encryption the Toolbox uses a JKS server certificate and for data encryption et use s
PKCS#12 (X509) certificate.
Please note:
Most of the technologies used are older proven versions of which some have passed their end of operational life. It is not required of users that they understand Java or the other technologies to use the toolbox.
1
The services implemented are those found in SPWEB at the end of 2010/start 2011. New services are added to the
toolkit as they are released on a going forward basis.
2
Pr. Request
3
It can be used towards both test & production. It is, however, not intended to be used outside of the implementation
and test phase.
Page 11 of 91
TDC Mobil SPWEB SOAP API
Author: Thomas Oestergaard
This does not affect the toolkit capabilities or its performance, however, should a service provider choose
to use Java in their installation it is suggested that they use current versions of Java and not 1.4.2.
3.3
The Structure of the Toolbox
The Toolbox CD/DVD is divided into two segments,
An information segment (Docs and Resources) which holds information about the SP API and
service provider specific information
The Toolbox itself containing implemented services, examples and the technologies used by the
Toolbox.
Directory Name
Description of directory contents
Docs
Contains the documentation for the SPWEB API toolkit. The primary documentation is
this word document, the Javadoc describing the SP API implementation and the rules
and procedures document for Number Porting.
Also found here are examples of some of the services results using test information
based on the individual service provider.
And the PowerPoint presentation used as an introduction to new Service Providers.
Also found here is the documentation of the TAP3.09 CDR format 4.
Resources
Contains the MSISDN and ICC which have been assigned to the Service Provider.
SPWEB API toolbox
Contains the Toolbox proper (see next table).
Directory Name
Description of directory contents
ant165
Apache Ant is a Java-based build tool. Used to generate AXIS client interfaces from
WSDL and build the source code in the toolbox
ant-build
Place for the ant scripts.
bin
Place for all “run” tasks for building the project and run the implemented methods.
This is the primary directory that service providers will use as the other directories
with the exception of the WSDL are technology or support directories containing the
technologies used by the toolkit.
build
Temporary place for the class file from the JAVA compilation.
dist
The place for the generated project “distribution place”.
etc
Place for the server SSL certificate and the SP client certificate.
java142
Java Platform, provides a complete development environment for the Toolbox
lib
Place for the AXIS and 3. Party tools.
src
The source code location for the Toolbox examples.
WSDL
Place for the “Web Services Description Language” file – description of the SPWEB
interface (methods call and return arguments).
4
Only relevant for service providers which receive files with CDRs from TDC and who wishes to decode the TAP3.09
files them-selves or know the specific contents of the files.
Page 12 of 91
TDC Mobil SPWEB SOAP API
3.4
Author: Thomas Oestergaard
How to generate the AXIS client interfaces from the WSDL file
In order to rebuild the axis client interface simply follow the single step below:
1. Generate the JAVA source from WSLD file use the following script in the bin directory:
BUILD_generate_axis_SPWebAPI_STUB_from_WSDL.cmd
3.5
How to build the application in the Toolbox
Every now and then a new WSDL file is releases and it becomes necessary to rebuild the toolkit to bring it
up to date.
There are two simple steps involved in doing this,
1. Remove the .jar file located in the dist dir.
2. Compile the JAVA source files use the following script in the bin directory:
BUILD_SPWebAPI.cmd
Doing this will make the Toolkit compile a fresh .jar file based on the WSDL, which is then placed in the
dist dir.
3.6
How to configure the Toolbox
Before a service can be invoked from one of the run scripts in the bin directory the Toolbox must be configured with the necessary environment parameters.
The Toolbox configuration for this is located in the SetEnv.cmd file in the bin directory. The configuration
is displayed below. All text in shown as “red” must be filled out with proper values.
set SPWEB_SET_ENV="ON"
set
set
set
set
PATH=..\java142\bin
JAVA_HOME=..\java142
ANT_HOME=..\ant165
AXIS_HOME=..\lib
set
set
set
set
set
set
set
CLASSPATH=..\dist\AXIS_SPWEB_MVNONO_client_2.3.0pl2.jar
CLASSPATH=%CLASSPATH%;%AXIS_HOME%\axis.jar
CLASSPATH=%CLASSPATH%;%AXIS_HOME%\commons-discovery-0.2.jar
CLASSPATH=%CLASSPATH%;%AXIS_HOME%\commons-logging-1.0.4.jar
CLASSPATH=%CLASSPATH%;%AXIS_HOME%\jaxrpc.jar
CLASSPATH=%CLASSPATH%;%AXIS_HOME%\saaj.jar
CLASSPATH=%CLASSPATH%;%AXIS_HOME%\wsdl4j-1.5.1.jar
set JAVA_OPTIONS= -classpath %CLASSPATH%
set JAVA_OPTIONS=%JAVA_OPTIONS% -DSpwebUrl=https://karendemo.tdc.dk:443/UnsignedV100
set
set
set
set
JAVA_OPTIONS=%JAVA_OPTIONS%
JAVA_OPTIONS=%JAVA_OPTIONS%
JAVA_OPTIONS=%JAVA_OPTIONS%
JAVA_OPTIONS=%JAVA_OPTIONS%
-Djavax.net.ssl.keyStore=..\etc\karendemoclient.pkcs12
-Djavax.net.ssl.keyStoreType=PKCS12
-Djavax.net.ssl.keyStorePassword=karen
-Djavax.net.ssl.trustStore=..\etc\karendemo.jks
Page 13 of 91
TDC Mobil SPWEB SOAP API
Author: Thomas Oestergaard
set JAVA_OPTIONS=%JAVA_OPTIONS% -Djavax.net.ssl.trustStoreType=JKS
set JAVA_OPTIONS=%JAVA_OPTIONS% -Djavax.net.ssl.trustStorePassword=karendemo
set JAVA_OPTIONS=%JAVA_OPTIONS% -DServiceProviderId=99
set JAVA_OPTIONS=%JAVA_OPTIONS% -DUserId=799999
Keystore is the service provider‟s certificate and the password for it. The type must be pkcs12
(extension .pfx or .pksc12 on windows platforms.)
Truststore is the „server‟ certificate. This is of the type Java KeyStore and will always be supplied
with the Toolkit with the correct information at the time of creation.
Service Provider ID is the service providers id code, a 2 digit numerical value.‟
User id is the Service Provider id prefixed with 7 and post fixed with 999. The 7 and 999 are
static default values where the 7 means service provider and the 999 is the user number.
After the configuration in setenv.cmd is done, run the configuration with:
SetEnv.cmd
This will make the script set up all environment variables required by the toolbox and it is now possible to
use any of the run scripts found in the bin dir.
Usually text.cmd is run first as a test that everything has been setup correct and that there is a connection through to the server.
3.7
Implemented methods in the Toolbox
The Toolbox includes source code and run scripts for the following services:
Pr. 31.12.2010 The Toolkit supports all services listed in section 6 of this document.
New services after 31.12.2010 will be updated on a regular basis but there may be a time interval between their availability and the creating of an example in the Toolbox.
For these services refer to the WSDL interface file for a description of them.
3.8
How to use a method/service from the Toolbox
Preconditions:
Your certificate is valid and active in the TDC authentication system “KAREN”.
The project is generated and build successful.
The SetEnv.cmd file in directory bin is configured with the right SPID and USER – provided from
TDC.
You run the SetEnv.cmd script file.
You run the scripts on a computer with Microsoft Windows.
If you don‟t run the SetEnv.cmd script, and you for example try to invoke the SearchSubscriberByMSISDN service - you got this ERROR:
Page 14 of 91
TDC Mobil SPWEB SOAP API
Author: Thomas Oestergaard
******************************************************
*
*
* Environment ERROR: "No environment set"
*
*
*
* Please run the "SetEnv.cmd" environment file before *
*
*
* the SPWEB example: SearchSubscriberByMSISDN
*
*
******************************************************
If you want to invoke the SearchSubscriberByMSISDN service run the script SearchSubscriberByMSISDN.cmd in the bin directory.
Before you can run the script the MSISDN number for the subscriber must be set in the script file, se
example below.
SearchSubscriberByMSISDN.cmd
@SETLOCAL
SET SPWEB_EXAMPLE=SearchSubscriberByMSISDN
@CLS
IF "%SPWEB_SET_ENV%" == "" (
GOTO RunSetEnv
) ELSE (
GOTO RunSPWEBExample
)
:RunSPWEBExample
SET JAVA_OPTIONS=%JAVA_OPTIONS% -DMSISDN=94540529
"%JAVA_HOME%\bin\java" %JAVA_OPTIONS% dk.tdc.spweb.%SPWEB_EXAMPLE%
@GOTO EndRun
:RunSetEnv
@call ERROR.cmd %SPWEB_EXAMPLE%
@GOTO EndRun
:EndRun
@ENDLOCAL
A precondition to success is that the MSIDN number exists in the system and has been assigned to your
service provider.
The first MSISDN found in the resources/msisdn.txt file will usually have been used as a test MSISDN
when setting up your service provider profile in TDCs system.
You can therefore enter that number in the example and use it for your first search.
Page 15 of 91
TDC Mobil SPWEB SOAP API
Author: Thomas Oestergaard
If the services have been invoked successfully, you will receive and answer along these lines:
yahooooooo
SearchSubscriberByMSISDN answer ***>
ActivationDateTime
null
PortingIndicator
N
PrimaryActivationDateTime null
SubscriberICC
89450100030212361106
SubscriberIMSI
238013810344984
SubscriberId
200181273 94540529
SubscriberMSISDN
94540529
SubscriberNpStatus
V
SubscriberNpStatusDate
null
SubscriberStatus
A
ServiceTypeId [0]: GPOST712
FetureTypeId
[0]: GPVNR
FetureTypeId
[1]: GPCF67
FetureTypeId
[2]: GPSMST
FetureTypeId
[3]: GPOAN
FetureTypeId
[4]: GPCF61
FetureTypeId
[5]: GPCF62
FetureTypeId
[6]: GSPPRI
FetureTypeId
[7]: GPCF21
ContextString
DataStoreStatus
FieldIdentifier
MessageTime
ReasonCode
ReturnCode
SeverityCode
:
:
:
:
:
:
:
Execution successful
1
null
null
0
0
I
Page 16 of 91
TDC Mobil SPWEB SOAP API
Author: Thomas Oestergaard
4 General Request and Reply in SPWEB
4.1
General update Request
These fields will always be present in the input area.
Name
Definition
Reference
originServerTime
DateTime
Control field for last known state.
userId
String
Identification of the user. This field will implicit be
filled based upon information from GetAccess
serviceProviderId
String
Identification of the serviceProvider. This field will
implicit be filled based upon information from GetAccess or KAREN
4.2
General Reply
These fields will always be present in the output area.
Name
Definition
Reference
severityCode
String
A code indicating the severity of exception described by the return/reason code combination.
Permitted values are:
“I” = informational, “W” = warning, “E” = error.
returnCode
Num
A five-digit numeric field used to return a standardized code indicating the type of failure or success
encountered during the operation execution. Valid
values are defined in pre/post conditions.
reasonCode
Num
A five-digit numeric field used to provide more explanation about why the failure or success notified
by the return code has occurred. Reason codes
must be greater than or equal to zero. Reason code
values may be specified or unspecified.
fieldIdentifier
String
Replacement string used in contextString. Used by
client to replace with other values.
originServerId
The server identifier of the component that originated the return/reason code combination. Each
installed copy of a component (termed a component server) is expected to identify itself using a
unique value – its “server id”.
originServerTime
DateTime
Control time for last known state.
messageTime
DateTime
Time this message was build. It may correspond to
internal logging
dataStoreStatus
String
1=Unchanged,2=Rolled back,3=Changed,4=Data
Integrity compromised
contextString
Intended for additional data about a failure encountered in an operation execution, which can then be
incorporated into end-user messages.
Page 17 of 91
TDC Mobil SPWEB SOAP API
Author: Thomas Oestergaard
5 Return Codes and Error description for SP-WEB
5.1
Return Codes
RetrieveReturnenObsoleteData
22
DeleteResultedInLogicalDelete
20
OptionalFieldMissing
10
SuccessfullCompletion
0
OperationNotAvailable
-1
NoPreconditionMet
-2
IdentifierNotFound
-10
IdentifierMissing
-11
IdentifierValidationFailed
-12
MandatoryFieldMissing
-20
MandatoryFieldValidationFailed
-21
OptionalFieldValidationFailed
-30
DataFormatError
-50
NumericOperationFailure
-51
NumberOfParametersAreNotCorrect
-55
PersistentStorageFailure
-60
OperatingEnvironmentFailure
-61
UnexpectedException
-999
DataHasChanged
-1001
RequiredDataNotFound
-1010
InvalidState
-1100
Page 18 of 91
TDC Mobil SPWEB SOAP API
5.2
Author: Thomas Oestergaard
General pre/post conditions
Note that ReturnCode numeric value is found in previous chapter
Description
Return Code example
System related dependant component
failed with an unhandled error code failure
ReturnCode : UnexpectedException
ReasonCode : identifies the underlying operation that
failed
Context : System returned an unexpected error {component code}
System related dependant component
Is not available
ReturnCode : OperationEnvironmentFailure
ReasonCode : identifies the underlying operation that
failed
Context : System component not available
Logical date is before today‟s date
ReturnCode : OperationEnvironmentFailure
ReasonCode : 3
Context : Logical Date is before today‟s date
Internal error
ReturnCode : OperationEnvironmentFailure
ReasonCode : 100
Context : Internal error
Cache error
ReturnCode : OperationEnvironmentFailure
ReasonCode : 200
Context : Internal caching error for service provider
{0}
Internal caching error
ReturnCode : OperationEnvironmentFailure
ReasonCode : 300
Context : Malformed service/feature identifier on index
key {0}
Unexpected internal
ReturnCode : UnexpectedException
ReasonCode : 3
Context : System returned an unexpected error code :
{0}
Description
Return Code example
Service provider identification is missing
in input
ReturnCode : IdentifierMissing
ReasonCode : 1
Context : ServiceProviderId missing
UserId is missing in input
ReturnCode : IdentifierMissing
ReasonCode : 2
Context : UserId missing
SubscriberId is missing in input
ReturnCode : IdentifierMissing
ReasonCode : 3
Context : SubscriberId missing
MSISDN is missing in input
ReturnCode : IdentifierMissing
ReasonCode : 4
Context : MSISDN missing
ServiceType is missing in input
ReturnCode : IdentifierMissing
ReasonCode : 5
Context : ServiceType missing
IMSI is missing in input
ReturnCode : IdentifierMissing
ReasonCode : 6
Page 19 of 91
TDC Mobil SPWEB SOAP API
Author: Thomas Oestergaard
Context : IMSI missing
ICC is missing in input
ReturnCode : IdentifierMissing
ReasonCode : 7
Context : ICC missing
SuspensionType is missing in input
ReturnCode : IdentifierMissing
ReasonCode : 8
Context : SuspensionType missing
SubscriberId is not valid
ReturnCode : IdentifierValidationFailed
ReasonCode : 1
Context : {} is not a valid SubscriberId
MSISDN is not valid
ReturnCode : IdentifierValidationFailed
ReasonCode : 2
Context : {} is not a valid MSISDN
ICC is not valid
ReturnCode : IdentifierValidationFailed
ReasonCode : 3
Context : {} is not a valid ICC
ServiceType is not valid
ReturnCode : IdentifierValidationFailed
ReasonCode : 4
Context : {} is not a valid service type
ServiceFeatureType is not valid
ReturnCode : IdentifierValidationFailed
ReasonCode : 5
Context : {} is not a valid service feature type
ServiceFeatureParameter is not valid
ReturnCode : IdentifierValidationFailed
ReasonCode : 6
Context : {} is not a valid service feature parameter
IMSI is not valid
ReturnCode : IdentifierValidationFailed
ReasonCode : 7
Context : {} is not a valid IMSI
ServiceProviderId is not valid
ReturnCode : IdentifierValidationFailed
ReasonCode : 8
Context : {} is not a valid ServiceProviderId
Same MSISDN is more than once in input
ReturnCode : IdentifierValidationFailed
ReasonCode : 20
Context : Duplicate msisdn {} found in input
Same ICC is more than once in input
ReturnCode : IdentifierValidationFailed
ReasonCode : 21
Context : Duplicate icc {} found in input
Same service type is more than once in
input
ReturnCode : IdentifierValidationFailed
ReasonCode : 22
Context : Duplicate service type {} found in input
Same servicefeaturetype is more than
once in input
ReturnCode : IdentifierValidationFailed
ReasonCode : 23
Context : Duplicate servicefeaturetype {} found in
input
Same servicefeatureparameter is more
than once in input
ReturnCode : IdentifierValidationFailed
ReasonCode : 24
Context : Duplicate servicefeatureparameter {} found
in input
Primary service type must not be
changed
ReturnCode : IdentifierValidationFailed
ReasonCode : 25
Context : Primary service type must not be changed
Page 20 of 91
TDC Mobil SPWEB SOAP API
Author: Thomas Oestergaard
Not possible to change service type
ReturnCode : IdentifierValidationFailed
ReasonCode : 26
Context : Not possible to change service type from {0}
to {1}
Suspensiontype already active
ReturnCode : IdentifierValidationFailed
ReasonCode : 30
Context : Suspensiontype {0} already active
MSISDN is not valid when used with this
feature/service
ReturnCode : IdentifierValidationFailed
ReasonCode : 200
Context : {0} msisdn {1} is not valid with this feature
ICC is not valid when used with this feature/service
ReturnCode : IdentifierValidationFailed
ReasonCode : 201
Context : {0} icc {1} is not valid with this feature
MSISDN and ICC is not valid together
ReturnCode : IdentifierValidationFailed
ReasonCode : 300
Context : msisdn {0} and icc {1} is not valid together
Description
Return Code example
Nothing in request
ReturnCode : MandatoryFieldMissing
ReasonCode : 1
Context : Required fields missing
StartTime missing
ReturnCode : MandatoryFieldMissing
ReasonCode : 2
Context : StartTime missing
Mandatory (required) service missing
ReturnCode : MandatoryFieldMissing
ReasonCode : 3
Context : {0} mandatory service missing
Mandatory (required) feature missing
ReturnCode : MandatoryFieldMissing
ReasonCode : 4
Context : {0} mandatory servicefeature missing
Mandatory (required) parameter missing
ReturnCode : MandatoryFieldMissing
ReasonCode : 5
Context : {0} mandatory parameter missing
Mandatory (required) parameter value
missing
ReturnCode : MandatoryFieldMissing
ReasonCode : 6
Context : {0} mandatory parameter value missing
Mandatory (required) voucher missing
ReturnCode : MandatoryFieldMissing
ReasonCode : 7
Context : mandatory voucher missing
Service type in same exclusion group in
input
ReturnCode : MandatoryFieldValidationFailed
ReasonCode : 1
Context : {0} services within same exclusion group
are mutual exclude
Features in same exclusion group in input
ReturnCode : MandatoryFieldValidationFailed
ReasonCode : 2
Context : {0} features within same exclusion group
are mutual exclude
Voucher is changed
ReturnCode : MandatoryFieldValidationFailed
ReasonCode : 3
Context : mandatory voucher missing
Description
Return Code example
ServiceProviderId is not registered as a
ReturnCode : IdentifierNotFound
Page 21 of 91
TDC Mobil SPWEB SOAP API
Author: Thomas Oestergaard
legal user of this system
ReasonCode : 1
Context : ServiceProvider {0} is not found
SubscriberId is not found or does not
belong to provider
ReturnCode : IdentifierNotFound
ReasonCode : 2
Context : SubscriberId {0} is not found
MSISDN is not found or does not belong
to provider
ReturnCode : IdentifierNotFound
ReasonCode : 3
Context : msisdn {0} is not found
ServiceType not found
ReturnCode : IdentifierNotFound
ReasonCode : 4
Context : servicetype {0} is not found
ICC not found or does not belong to provider
ReturnCode : IdentifierNotFound
ReasonCode : 5
Context : icc {0} is not found
Subscriber is not found or does not belong to provider
ReturnCode : IdentifierNotFound
ReasonCode : 6
Context : subscriber {0} not found
Suspentiontype not found
ReturnCode : IdentifierNotFound
ReasonCode : 7
Context : suspensiontype {0} not found
IMSI not found or does not belong to
provider
ReturnCode : IdentifierNotFound
ReasonCode : 8
Context : imsi {0} not found
Description
Return Code example
NumberGroup reference not found
ReturnCode : RequiredDataNotFound
ReasonCode : 1
Context : Referencedata is missing
NumberLocation not found
ReturnCode : RequiredDataNotFound
ReasonCode : 2
Context : Referencedata is missing
Primary servicetype(s) not found
ReturnCode : RequiredDataNotFound
ReasonCode : 3
Context : No related servicetype found
Suspensiontypes not found
ReturnCode : RequiredDataNotFound
ReasonCode : 4
Context : No related suspensiontype found
Expected application data not found
May caused by invalid data
ReturnCode : RequiredDataNotFound
ReasonCode : 100-199
Context : Invalid subscriber data {0}
Switch data not found
ReturnCode : RequiredDataNotFound
ReasonCode : 30
Context : No switch data found
Description
Return Code example
SubscriberId is in an invalid state for
requested operation
ReturnCode : InvalidState
ReasonCode : 1
Context : Subscriber {0} is not in a valid state
MSISDN is in an invalid state for requested operation
ReturnCode : InvalidState
ReasonCode : 2
Context : msisdn {0} is not in a valid state
ICC is in an invalid state for requested
ReturnCode : InvalidState
Page 22 of 91
TDC Mobil SPWEB SOAP API
Author: Thomas Oestergaard
operation
ReasonCode : 3
Context : icc {0} is not in a valid state
Description
Return Code example
DataHasChanged since last request
(originServerTime – reply)
ReturnCode : DataHasChanged
ReasonCode : 1
Context : subscriber {0} has changed since last request
Commitment failed. Caused by a failure
in a tuxedo service.
Normal this means nothing
ReturnCode : RetrieveReturnedObsoleteData
ReasonCode : 1
Context : Operation did not complete, search subscriber and validate data.
Page 23 of 91
TDC Mobil SPWEB SOAP API
Author: Thomas Oestergaard
6 SPWEB services available for the SOAP API
Below is the Toolkit‟s list of supported services in the SPWEB API (per 1.1.2011). At the time of writing all
services found in the API are supported in the toolkit with examples and code.
The services can be divided into three main areas
Status changing services, which creates, changes or reacts to events
Information services, which supplies information about the service providers setup and describes
input and field information required in order to use the status changing services.
Miscellaneous services, which setup the toolkit or test connections towards Karen/Karen-demo.
Status changing services
Information services
CancelSubscriber
GetActivationTypes
ChangeICC
GetAdditionalServiceTypes
ChangeMSISDN
GetNPFlowTypes
ChangePricePlan
GetPrimaryServiceTypes
ConfirmExport
CreateReportRequest
SetEnv (not an API service)
Test
GetRejectionCodes
GetreportTypes
CreateSubscriber
&
CreateSubscriber Dobbelt kort
RejectExport
GetSuspensionTypes
ReleaseImport
SearchExportRequests
RemoveSuspension
SearchReportRequestsByUserId
RestoreCancelledSubscriber
SuspendSubscriber
Miscellaneous
ListNPFlowStatus
SearchResourceByMsisdn
SearchServiceTransactionQueuebyMSISDN
UpdateMsisdnResource
SearchServiceTransactionQueuebyTime
UpdateSIMResourceStatus
SearchSubscriberByICC
UpdateSubscriberAddService
SearchSubscriberByIMSI
UpdateSusbcriberRemoveService
SearchSubscriberByMSISDN
SearchSuspensions
SearchTransactionBySubscriberAnd
TransactionId
SearchTransactionHistoryByMsisdn
Page 24 of 91
TDC Mobil SPWEB SOAP API
6.1
Author: Thomas Oestergaard
SPWEB services
This section contains the description of the services together with their pre and post conditions.
The format is the same used in the java doc and the request / reply objects can be referenced directly
from this document to the java doc.
Note. Services with the post-fix _NO should not be implemented by service providers. They are MVNO
services and only listed here for explanation reasons.
6.1.1 test
public java.lang.String test(java.lang.String msg)
throws java.rmi.RemoteException
Test method. Return the same string as given in input. Used to test availability of the API.
Parameters:
msg - String to be returned
Returns:
String given as input.
Throws:
java.rmi.RemoteException - Is thrown by the EJB container if some kind of communication
failure occurs.
Page 25 of 91
TDC Mobil SPWEB SOAP API
Author: Thomas Oestergaard
6.1.2 getPrimaryServiceTypes
public GetPrimaryServiceTypesReplyInfo getPrimaryServiceTypes
(GetPrimaryServiceTypesRequestInfo req)
throws java.rmi.RemoteException
Usage: This method is used to retrieve all possible primary services for a given service provider. The data returned is reference data.
A primary service is the main subscription type(s) available to an SP.
A subscriber from the SP must always have exactly one primary service associated with it,
which is selected from the list of available primary services show by this service.
Pre condition
Post condition
A service provider identified by code exists AND has related non expired primary services (price plan(s)).
SuccessfulCompletion
A service provider identified by code exists AND has no related non
expired primary services (price plan(s)).
RequiredDataNotFound
Parameters:
req - GetPrimaryServiceTypesRequestInfo
Returns:
GetPrimaryServiceTypesReplyInfo
Throws:
java.rmi.RemoteException - Is thrown by the EJB container if some kind of communication
failure occurs.
Page 26 of 91
TDC Mobil SPWEB SOAP API
Author: Thomas Oestergaard
6.1.3 getAdditionalServiceTypes
public GetAdditionalServiceTypesReplyInfo getAdditionalServiceTypes
(GetAdditionalServiceTypesRequestInfo req)
throws java.rmi.RemoteException
Usage: This method is used to retrieve additional services (socs) for a given service provider
and chosen primary service (price plan soc). The data returned is reference data.
An additional service is a non-mandatory additional service which adds or blocks functionality to the subscriber.
A subscriber from the SP can have from zero to many additional services associated. Those
available to the SP to choose from are shown by this service.
Note. Some services belong to an exclusion group. You can only select one service belonging to the same exclusion group.
Pre condition
Post condition
A service provider identified by code exists AND has the related non
expired supplementary services (socs) AND has related non expired
additions socs.
SuccessfulCompletion
A service provider identified by code exists AND has no related non
expired primary services (price plan(s)).
RequiredDataNotFound
Parameters:
req - GetAdditionalServiceTypesRequestInfo
Returns:
GetAdditionalServiceTypesReplyInfo
Throws:
java.rmi.RemoteException - Is thrown by the EJB container if some kind of communication
failure occurs.
Page 27 of 91
TDC Mobil SPWEB SOAP API
Author: Thomas Oestergaard
6.1.4 getSuspensionTypes
public GetSuspensionTypesReplyInfo getSuspensionTypes
(GetSuspensionTypesRequestInfo req)
throws java.rmi.RemoteException
Usage: This method is used to retrieve suspension types for a given service provider. The
suspension code is used as a parameter for both suspension and removal of the suspension
(restore).
Adding a suspension is done through the service suspendSubscriber
Removing a suspension is done through the service removeSuspension
This service delivers the legal values to be used as input to the suspend/remove services.
Pre condition
Post condition
A service provider identified by code exists AND has the related non
expired suspensiontypes.
SuccessfulCompletion
A service provider identified by code exists AND has no related non
expired suspensiontypes.
RequiredDataNotFound
Parameters:
req - GetSuspensionTypesRequestInfo
Returns:
GetSuspensionTypesReplyInfo
Throws:
java.rmi.RemoteException - Is thrown by the EJB container if some kind of communication
failure occurs.
Page 28 of 91
TDC Mobil SPWEB SOAP API
Author: Thomas Oestergaard
6.1.5 cancelSubscriber
public CancelSubscriberReplyInfo cancelSubscriber
(CancelSubscriberRequestInfo req)
throws java.rmi.RemoteException
Usage: Used for cancelling subscription. This implies expiration of the subscribers services
and removal of the subscriber from the transmission network. Resources change states according to the general rules for Resource Management.
The subscriber changes state from AI (assigned in use) to AG (aging).
Unless one of the services restoreCancelledSusbcriber, UpdateMsisdnResource or UpdateMsisdnResource are used to change the state of the aging resources, they will follow the
rules for resource management (termination or return to range owner after an aging period).
Pre condition
Post condition
A subscriber identified by subscriberId exists AND does not
have status Cancelled, Exported or Reserved AND belongs to
SP identified by ServiceProviderId. Moreover the requestedCancelDate is not in the future.
SuccessfulCompletion
A subscriber identified by subscriberId does not exist or does
not belongs to the service provider identified by serviceProviderId.
IdentifierNotFound
A subscriber identified by subscriberId exists AND have status
InvalidState
free, cancelled, exported or other where you can‟t cancel.
Resource is not valid in this context. Voice number used as
voicemail or sim card used as virtual sim card
IdentifierValidationFailed
Parameters:
req - CancelSubscriberRequestInfo
Returns:
CancelSubscriberReplyInfo
Throws:
java.rmi.RemoteException - Is thrown by the EJB container if some kind of communication
failure occurs.
Page 29 of 91
TDC Mobil SPWEB SOAP API
Author: Thomas Oestergaard
6.1.6 restoreCancelledSubscriber
public RestoreCancelledSubscriberReplyInfo restoreCancelledSubscriber
(RestoreCancelledSubscriberRequestInfo req)
throws java.rmi.RemoteException
Usage: Used to move the subscription from a cancel state to an active state, i.e. it is creating
a subscriber based on data from a cancelled subscription. This implies re-pairing of resources and activation of the subscribers selected services in the transmission network. Resources change states according to the general rules for Resource Management.
This service will restore the subscriber to the exact same state it had before being cancelled
including all features and services. The resources will move from AG (aging) to AI (assigned in use)
Pre condition
Post condition
A subscriber identified by subscriberId exists AND has status Cancelled AND belongs to SP identified by serviceProviderId. Moreover the SuccessfulCompletion
resources is in their retention period.
A subscriber identified by subscriberId does not exist or does not belongs to the service provider identified by serviceProviderId.
IdentifierNotFound
A subscriber identified by subscriberId exists AND has status Cancelled AND belongs to SP identified by serviceProviderId AND the resources is no longer available.
InvalidState
A subscriber identified by subscriberId exists AND does not have
status cancelled.
InvalidState
Parameters:
req - RestoreCancelledSubscriberRequestInfo
Returns:
RestoreCancelledSubscriberReplyInfo
Throws:
java.rmi.RemoteException - Is thrown by the EJB container if some kind of communication
failure occurs.
Page 30 of 91
TDC Mobil SPWEB SOAP API
Author: Thomas Oestergaard
6.1.7 changeMsisdn
public ChangeMSISDNReplyInfo changeMsisdn
(ChangeMSISDNRequestInfo req)
throws java.rmi.RemoteException
Usage: This method is used to change the primary MSISDN number on a subscription to
another available number.
Pre condition
Post condition
A subscriber identified by subscriberId exists AND beThe primary number of the subscriber
longs to a service provider identified by serviceProviderId
is changed to msisdn SuccessfulAND does have status active AND resource identified by
Completion
msisdn exists AND is available.
A subscriber identified by subscriberId does not exist or
does not belongs to the service provider identified by
serviceProviderId.
IdentifierNotFound
Resource identified by msisdn does not exist or does not
belong to the service provider identified by serviceProviderId.
IdentifierNotFound
A subscriber identified by subscriberId exists AND has
status cancelled or suspended.
InvalidState
Parameters:
req - ChangeMSISDNRequestInfo
Returns:
ChangeMSISDNReplyInfo
Throws:
java.rmi.RemoteException - Is thrown by the EJB container if some kind of communication
failure occurs.
Page 31 of 91
TDC Mobil SPWEB SOAP API
Author: Thomas Oestergaard
6.1.8 changeICC
public ChangeICCReplyInfo changeICC
(ChangeICCRequestInfo req)
throws java.rmi.RemoteException
Usage: The method change the pairing of the primary MSISDN and ICC-number from current ICC to a new primary ICC number.
Pre condition
Post condition
A subscriber identified by subscriberId exists AND beThe primary icc number of the sublongs to a service provider identified by serviceProviderId
scriber is changed to icc SuccessfulAND does have status active AND resource identified by
Completion
icc exists AND is available.
A subscriber identified by subscriberId does not exist or
does not belongs to the service provider identified by
serviceProviderId.
IdentifierNotFound
Resource identified by icc does not exist or does not
belong to the service provider identified by serviceProviderId.
IdentifierNotFound
A subscriber identified by subscriberId exists AND has
status cancelled or suspended.
InvalidState
Parameters:
req - ChangeICCRequestInfo
Returns:
ChangeICCReplyInfo
Throws:
java.rmi.RemoteException - Is thrown by the EJB container if some kind of communication
failure occurs.
Page 32 of 91
TDC Mobil SPWEB SOAP API
Author: Thomas Oestergaard
6.1.9 changePricePlan
public ChangePricePlanReplyInfo changePricePlan
(ChangePricePlanRequestInfo req)
throws java.rmi.RemoteException
Usage : Used when changing primary service type of the subscription. This means activating new primary service and deactivating old primary service and all related services not related to the new service.
The changes effects the configuration of the subscriber in the transmission network. Resources change states according to the general rules for Resource Management.
Important note! This service is the only service which is valid to use when changing the
primary service type (one of those shown by the service: getPrimaryServiceType). Do not
use updateSubscriber to change the primary service type.
Pre condition
Post condition
A service provider identified by serviceProviderId exists AND
all resources specified by feature parameters belong to the
specified service provider AND are available AND all required
SOCs and features are specified AND are not mutual exclusive. Subscriber identified by subscriberId exists AND is in
active or suspended state.
SuccessfulCompletion
Resource does not exist or don‟t belong to actual SP.
IdentifierNotFound
Resource is in use, exported or in retention period or others
where you cannot use it.
InvalidState
Resource is not valid in this context.Sample Voice number
used as voicemail or sim card used as virtual sim card
IdentifierValidationFailed
Parameters:
req - ChangePricePlanRequestInfo
Returns:
ChangePricePlanReplyInfo
Throws:
java.rmi.RemoteException - Is thrown by the EJB container if some kind of communication
failure occurs.
Page 33 of 91
TDC Mobil SPWEB SOAP API
6.1.10
Author: Thomas Oestergaard
suspendSubscriber
public SuspendSubscriberReplyInfo suspendSubscriber
(SuspendSubscriberRequestInfo req)
throws java.rmi.RemoteException
Usage: Used for suspending the subscriber. The suspension inhibits the subscribers use of
the transmission network.
The valid values for suspension types used by this service as input can be found using the
service getSuspensionTypes.
Pre condition
A subscriber identified by subscriberId exists AND does have status
Active AND belongs to SP identified by serviceProviderId.
Post condition
SuccessfulCompletion
A subscriber identified by subscriberId exists Suspended AND belongs
SuccessfulCompletion
to SP identified by serviceProviderId AND does not have an active
suspension identified suspensionCode.
A subscriber identified by subscriberId does not exist or does not belongs to the service provider identified by serviceProviderId.
IdentifierNotFound
A subscriber identified by subscriberId exists AND have status <>
Active or Suspended.
InvalidState
Parameters:
req - SuspendSubscriberRequestInfo
Returns:
SuspendSubscriberReplyInfo
Throws:
java.rmi.RemoteException - Is thrown by the EJB container if some kind of communication
failure occurs.
Page 34 of 91
TDC Mobil SPWEB SOAP API
6.1.11
Author: Thomas Oestergaard
removeSuspension
public RemoveSuspensionReplyInfo removeSuspension
(RemoveSuspensionRequestInfo req)
throws java.rmi.RemoteException
Usage: Used for removal of a specific suspension code from the subscriber.
The valid values for suspension types used by this service as input can be found using the
service getSuspensionTypes.
Pre condition
A subscriber identified by subscriberId exists AND
does have status Suspended AND belong to the SP
and has an active suspension identified by suspensionTypeId active
Post condition
The subscriber has the suspension code
identified by suspensionTypeId expired
SuccessfulCompletion
A subscriber identified by subscriberId exists Suspended AND belongs to SP identified by serviceProviderId AND does not have an active suspension
identified suspensionCode.
SuccessfulCompletion
A subscriber identified by subscriberId does not exist or does not belongs to the service provider identified by serviceProviderId.
IdentifierNotFound
A subscriber identified by subscriberId exists AND
have status <> Suspended.
InvalidState
Parameters:
req - RemoveSuspensionRequestInfo
Returns:
RemoveSuspensionReplyInfo
Throws:
java.rmi.RemoteException - Is thrown by the EJB container if some kind of communication
failure occurs.
Page 35 of 91
TDC Mobil SPWEB SOAP API
6.1.12
Author: Thomas Oestergaard
updateSubscriber
public UpdateSubscriberReplyInfo updateSubscriber
(UpdateSubscriberRequestInfo req)
throws java.rmi.RemoteException
Usage: Used when changing or adding subscription features or parameters. This means activating and deactivating of parts of the primary service and change of parameters on additional services. The changes effects the configuration of the subscriber in the transmission
network. Resources change states according to the general rules for Resource Management.
Note. This service is not applicable if you want to change the actual primary service itself (an example of a primary service type is GPOSTxx, where xx is your subscriber number) as this involves a
fundamental change in the subscription (for example from a postpaid priceplan to a prepaid or to a
data priceplan).
Changes to the primary service type can only be done through changePricePlan. UpdateSubscriber
is used for all other changes to features and parameters to existing subscribers that the SP owns.
Pre condition
Post condition
A service provider identified by serviceProviderId exists AND
all resources specified by feature parameters belong to the
specified service provider AND are available AND all required
SOCs and features are specified AND are not mutual exclusive.
SuccessfulCompletion
Resource does not exist or don‟t belong to actual SP.
IdentifierNotFound
Resource is in use, exported or in retentionperiod or others
where you cannot use it in creation.
InvalidState
Resource is not valid in this context. Voice number used as
voicemail or sim card used as virtual sim card
IdentifierValidationFailed
Parameters:
req - UpdateSubscriberReplyInfo
Returns:
UpdateSubscriberReplyInfo
Throws:
java.rmi.RemoteException - Is thrown by the EJB container if some kind of communication
failure occurs.
Page 36 of 91
TDC Mobil SPWEB SOAP API
6.1.13
Author: Thomas Oestergaard
searchTransactionHistoryByMsisdn
public SearchTransactionHistoryByMsisdnReplyInfo searchTransactionHistoryByMsisdn(SearchTransactionHistoryByMsisdnRequestInfo req)
throws java.rmi.RemoteException
Method searchTransactionHistoryByMsisdn. Provides a full transaction history using the MSISDN
as input.
Parameters:
req - SearchTransactionHistoryByMsisdnRequestInfo
Returns:
SearchTransactionHistoryByMsisdnReplyInfo
Throws:
java.rmi.RemoteException - Is thrown by the EJB container if some kind of communication
failure occurs.
Page 37 of 91
TDC Mobil SPWEB SOAP API
6.1.14
Author: Thomas Oestergaard
searchServiceTransactionQueueByMsisdn
public SearchServiceTransactionQueueByMsisdnReplyInfo searchServiceTransactionQueueByMsisdn
(SearchServiceTransactionQueueByMsisdnRequestInfo req)
throws java.rmi.RemoteException
Usage: The method retrieves provisioning transactions in any state for a given msisdn. This
includes information about the transmission network completion time.
Pre condition
Post condition
A subscriber identified by msisdn exists AND has related transactions
SuccessfulCompletion
A subscriber identified by msisdn exists AND has no related transactions
SuccessfulCompletion
MSISDN does not exists or does not belongs to SP
IdentifierNotFound
Parameters:
req - SearchServiceTransactionQueueByMsisdnRequestInfo
Returns:
SearchServiceTransactionQueueByMsisdnReplyInfo
Throws:
java.rmi.RemoteException - Is thrown by the EJB container if some kind of communication
failure occurs.
Page 38 of 91
TDC Mobil SPWEB SOAP API
6.1.15
Author: Thomas Oestergaard
searchServiceTransactionQueueByTime
public SearchServiceTransactionQueueByTimeReplyInfo searchServiceTransactionQueueByTime(SearchServiceTransactionQueueByTimeRequestInfo req)
throws java.rmi.RemoteException
Usage: The method retrieves provisioning transactions in any state after a give datetime.
This includes information about the transmission network completion time.
Pre condition
Post condition
A subscriber identified by msisdn exists AND has related transactions
SuccessfulCompletion
A subscriber identified by msisdn exists AND has no related transactions
SuccessfulCompletion
MSISDN does not exists or does not belongs to SP
IdentifierNotFound
Parameters:
req - SearchServiceTransactionQueueByTimeRequestInfo
Returns:
SearchServiceTransactionQueueByTimeReplyInfo
Throws:
java.rmi.RemoteException - Is thrown by the EJB container if some kind of communication
failure occurs.
Page 39 of 91
TDC Mobil SPWEB SOAP API
6.1.16
Author: Thomas Oestergaard
searchSubscriberByMSISDN
public SearchSubscriberByMSISDNReplyInfo searchSubscriberByMSISDN
(SearchSubscriberByMSISDNRequestInfo req)
throws java.rmi.RemoteException
Usage: The method retrieves the current subscriber state. This includes information about
subscriber type and additional services.
Pre condition
Post condition
MSISDN exists and belongs to SP identified by sp-id and is assigned to
SuccessfulCompletion
a subscriber.
MSISDN exists and belongs to SP identified by sp-id and was assigned
SuccessfulCompletion
to a subscriber and is in the defined retention period.
MSISDN does not exists or does not belongs to SP
IdentifierNotFound
Parameters:
req - SearchSubscriberByMSISDNRequestInfo
Returns:
SearchSubscriberByMSISDNReplyInfo
Throws:
java.rmi.RemoteException - Is thrown by the EJB container if some kind of communication
failure occurs.
Page 40 of 91
TDC Mobil SPWEB SOAP API
6.1.17
Author: Thomas Oestergaard
searchSubscriberByICC
public SearchSubscriberByICCReplyInfo searchSubscriberByICC
(SearchSubscriberByICCRequestInfo req)
throws java.rmi.RemoteException
Usage: The method retrieves the current subscriber state. This includes information about
subscriber type and additional services.
Pre condition
ICC exists and belongs to SP identified by sp-id and is assigned to a
subscriber.
Post condition
SuccessfulCompletion
ICC exists and belongs to SP identified by sp-id and was assigned to a
SuccessfulCompletion
subscriber and is in the defined retention period.
ICC does not exists or does not belongs to SP
IdentifierNotFound
Parameters:
req - SearchSubscriberByICCRequestInfo
Returns:
SearchSubscriberByICCReplyInfo
Throws:
java.rmi.RemoteException - Is thrown by the EJB container if some kind of communication
failure occurs.
Page 41 of 91
TDC Mobil SPWEB SOAP API
6.1.18
Author: Thomas Oestergaard
searchSubscriberByIMSI
public SearchSubscriberByIMSIReplyInfo searchSubscriberByIMSI
(SearchSubscriberByIMSIRequestInfo req)
throws java.rmi.RemoteException
Usage: The method retrieves the current subscriber state. This includes information about
subscriber type and additional services.
Pre condition
Post condition
IMSI exists and belongs to SP identified by sp-id and is assigned to a
subscriber.
SuccessfulCompletion
IMSI exists and belongs to SP identified by sp-id and was assigned to
a subscriber and is in the defined retention period.
SuccessfulCompletion
IMSI does not exists or does not belongs to SP
IdentifierNotFound
Parameters:
req - SearchSubscriberByIMSIRequestInfo
Returns:
SearchSubscriberByIMSIReplyInfo
Throws:
java.rmi.RemoteException - Is thrown by the EJB container if some kind of communication
failure occurs.
Page 42 of 91
TDC Mobil SPWEB SOAP API
6.1.19
Author: Thomas Oestergaard
searchTransactionBySubscriberAndTransactionId
public SearchTransactionBySubscriberAndTransactionIdReplyInfo searchTransactionBySubscriberAndTransactionId
(SearchTransactionBySubscriberAndTransactionIdRequestInfo req)
throws java.rmi.RemoteException
Usage: The method retrieves provisioning features in any state for a transactiongiven
msisdn. This includes information about which SOC the switch feature is related to.
Pre condition
Post condition
MSISDN exists and belongs to SP identified by sp-id and is assigned to
SuccessfulCompletion
a subscriber.
MSISDN exists and belongs to SP identified by sp-id and was assigned
SuccessfulCompletion
to a subscriber and is in the defined retention period.
MSISDN does not exists or does not belongs to SP
IdentifierNotFound
Parameters:
req - SearchTransactionBySubscriberAndTransactionIdRequestInfo
Returns:
SearchTransactionBySubscriberAndTransactionIdReplyInfo
Throws:
java.rmi.RemoteException - Is thrown by the EJB container if some kind of communication
failure occurs.
Page 43 of 91
TDC Mobil SPWEB SOAP API
6.1.20
Author: Thomas Oestergaard
searchSuspensions
public SearchSuspensionsReplyInfo searchSuspensions
(SearchSuspensionsRequestInfo req)
throws java.rmi.RemoteException
Usage: The method retrieves a list of all suspensions (max 600) there are or have been on a
subscriber. Suspensions from the list that have been send to switch-control, can also be seen
in ‘SearchTransactionHistoryByMsisdn’. This includes information about suspend-date and
resume-date.
Pre condition
Post condition
MSISDN exists and belongs to SP identified by sp-id and is assigned to
SuccessfulCompletion
a subscriber.
MSISDN exists and belongs to SP identified by sp-id and was assigned
SuccessfulCompletion
to a subscriber and is in the defined retention period.
MSISDN does not exists or does not belongs to SP
IdentifierNotFound
Parameters:
req - SearchSuspensionsRequestInfo
Returns:
SearchSuspensionsReplyInfo
Throws:
java.rmi.RemoteException - Is thrown by the EJB container if some kind of communication
failure occurs.
Page 44 of 91
TDC Mobil SPWEB SOAP API
6.1.21
Author: Thomas Oestergaard
rejectExport
public RejectExportReplyInfo rejectExport
(RejectExportRequestInfo req)
throws java.rmi.RemoteException
Usage: The method is rejecting an export request. A reason must be given for rejecting an
export. Valid reasons are retrieved via the service getRejectionCodes(GetRejectionCodesRequestInfo)
This service is used in number porting.
Pre condition
Post condition
MSISDN exists and belongs to SP identified by sp-id and is assigned to
SuccessfulCompletion
a subscriber.
MSISDN exists and belongs to SP identified by sp-id and was assigned
SuccessfulCompletion
to a subscriber and is in the defined retention period.
MSISDN does not exists or does not belongs to SP
IdentifierNotFound
Transaction is missing in Operators Interface
RequiredDataNotFound
Transaction is in an invalid state in Operators Interface
Invalid State
Parameters:
req - RejectExportRequestInfo
Returns:
RejectExportReplyInfo
Throws:
java.rmi.RemoteException - Is thrown by the EJB container if some kind of communication
failure occurs.
Page 45 of 91
TDC Mobil SPWEB SOAP API
6.1.22
Author: Thomas Oestergaard
releaseImport
public ReleaseImportReplyInfo releaseImport
(ReleaseImportRequestInfo req)
throws java.rmi.RemoteException
Usage: The method is releasing an import. (Porting is cancelled).
This service is used in number porting.
Pre condition
Post condition
MSISDN exists and belongs to SP identified by sp-id and was assigned
SuccessfulCompletion
to a subscriber as reserved.
MSISDN does not exists or does not belongs to SP
IdentifierNotFound
Parameters:
req - ReleaseImportRequestInfo
Returns:
ReleaseImportReplyInfo
Throws:
java.rmi.RemoteException - Is thrown by the EJB container if some kind of communication
failure occurs.
Page 46 of 91
TDC Mobil SPWEB SOAP API
6.1.23
Author: Thomas Oestergaard
searchExportRequests
public SearchExportRequestsReplyInfo searchExportRequests
(SearchExportRequestsRequestInfo req)
throws java.rmi.RemoteException
Usage: The method retrieves a list of number portability transactions, which are not yet confirmed or rejected. This list only shows export transactions. Used when operating in the
Danish market.
Pre condition
Post condition
A service provider identified by serviceProviderId exists.. SuccessfulCompletion
pageNo is less than zero.
MandatoryFieldValidationFailed
pageSize is less than zero or greater than the server
specified maximum or (greater than 150 and 600 modulo OptionalFieldValidationFailed
pageSize <> 0)
Parameters:
req - SearchExportRequestsRequestInfo
Returns:
SearchExportRequestsReplyInfo
Throws:
java.rmi.RemoteException - Is thrown by the EJB container if some kind of communication
failure occurs.
Page 47 of 91
TDC Mobil SPWEB SOAP API
6.1.24
Author: Thomas Oestergaard
getRejectionCodes
public GetRejectionCodesReplyInfo getRejectionCodes
(GetRejectionCodesRequestInfo req)
throws java.rmi.RemoteException
Usage: This method is used to retrieve rejection codes for a given service provider. The rejection code is used as a parameter for rejecting an export request.
The information provided by this service is used as input for rejectExport.
This service is used in number porting.
Pre condition
Post condition
A service provider identified by code exists AND has the related non
expired rejection codes.
SuccessfulCompletion
A service provider identified by code exists AND has no related non
expired rejection codes.
RequiredDataNotFound
Parameters:
req - GetRejectionCodesRequestInfo
Returns:
GetRejectionCodesReplyInfo
Throws:
java.rmi.RemoteException - Is thrown by the EJB container if some kind of communication
failure occurs.
Page 48 of 91
TDC Mobil SPWEB SOAP API
6.1.25
Author: Thomas Oestergaard
getReportTypes
public GetReportTypesReplyInfo getReportTypes
(GetReportTypesRequestInfo req)
throws java.rmi.RemoteException
Usage: This method is used to retrieve report types for a given service provider.
This information is used as input to the service createReportRequest.
The reports contain information about various resources and number porting events. They
are described further in the report section of this document.
Pre condition
Post condition
A service provider identified by code exists. SuccessfulCompletion
Parameters:
req - GetReportTypesRequestInfo
Returns:
GetReportTypesReplyInfo
Throws:
java.rmi.RemoteException - Is thrown by the EJB container if some kind of communication
failure occurs.
Page 49 of 91
TDC Mobil SPWEB SOAP API
6.1.26
Author: Thomas Oestergaard
createReportRequest
public CreateReportRequestReplyInfo createReportRequest
(CreateReportRequestRequestInfo req)
throws java.rmi.RemoteException
Usage: This method is used create a report request for a given service provider.
getReportTypes provides information about valid values the SP can use in this service.
Pre condition
Post condition
A report identified by reportName exists AND is allowed to be requested by the specific userId.
SuccessfulCompletion
ReportName does not exist or is not allowed for the actual UserId.
IdentifierNotFound
Parameters:
req - CreateReportRequestRequestInfo
Returns:
CreateReportRequestReplyInfo
Throws:
java.rmi.RemoteException - Is thrown by the EJB container if some kind of communication
failure occurs.
Page 50 of 91
TDC Mobil SPWEB SOAP API
6.1.27
Author: Thomas Oestergaard
searchReportRequestByUserId
public SearchReportRequestByUserIdReplyInfo searchReportRequestByUserId(SearchReportRequestByUserIdRequestInfo req)
throws java.rmi.RemoteException
Usage: This method is used retrieve a list of report requests for a given user.
Parameters:
req - SearchReportRequestByUserIdRequestInfo
Returns:
SearchReportRequestByUserIdReplyInfo
Throws:
java.rmi.RemoteException - Is thrown by the EJB container if some kind of communication
failure occurs.
Page 51 of 91
TDC Mobil SPWEB SOAP API
6.1.28
Author: Thomas Oestergaard
getNPFlowTypes
public GetNPFlowTypesReplyInfo getNPFlowTypes
(GetNPFlowTypesRequestInfo req)
throws java.rmi.RemoteException
Usage: This method is used fetch a list of NP-flow types and corresponding description. The
NP-flowtype id is used in the service listNPFlowStatus.
This service is used in number porting
Pre condition
Post condition
A service provider identified by code exists. SuccessfulCompletion
Parameters:
req - GetNPFlowTypesRequestInfo
Returns:
GetNPFlowTypesReplyInfo
Throws:
java.rmi.RemoteException - Is thrown by the EJB container if some kind of communication
failure occurs.
Page 52 of 91
TDC Mobil SPWEB SOAP API
6.1.29
Author: Thomas Oestergaard
listNPFlowStatus
public ListNPFlowStatusReplyInfo listNPFlowStatus
(ListNPFlowStatusRequestInfo req)
throws java.rmi.RemoteException
Usage: This method is used retrieve a list of number porting flows. Default pagesize set to
100.
GetNPFlowTypes provides the valid values the SP can use when calling this service
This service is used in number porting
Pre condition
Post condition
A service provider identified by code exists and the given
SuccessfulCompletion
npFlowType id exists
A service provider identified by code exists AND no related npFlowTypes defined.
RequiredDataNotFound
pageNo is less than zero.
MandatoryFieldValidationFailed
pageSize is less than zero or greater than 500 or (500
modulo pageSize <> 0).
OptionalFieldValidationFailed
No fromDate given, no toDate given or no npFlowType id
MandatoryFieldMissing
given.
toDate or fromDate string does not have the correct format: yyyy.MM.dd.HH.mm.ss.
DateFormatError
Parameters:
req - ListNPFlowStatusRequestInfo Gives the parameters for the request
Returns:
ListNPFlowStatusReplyInfo Output with the list of NPFlows and informations if there is more data
to be retrieved.
Throws:
java.rmi.RemoteException - Is thrown by the EJB container if some kind of communication
failure occurs.
Page 53 of 91
TDC Mobil SPWEB SOAP API
6.1.30
Author: Thomas Oestergaard
importSubscriber_NO
public ImportSubscriberReplyInfo importSubscriber_NO
(ImportSubscriberRequestInfo_NO req)
throws java.rmi.RemoteException
Usage: Used when creating subscription by import of a foreign number.
Only used for norwegian subscribers.
Pre condition
Post condition
A service provider identified by serviceProviderId exists
AND (all resources specified by feature parameters belong to the specified service provider OR are eligible for
import) AND are available AND all required SOCs and
features are specified AND are not mutual exclusive.
SuccessfulCompletion
Resource does not exist or don‟t belong to actual SP.
IdentifierNotFound
Mandatory services type missing from request.
MandatoryFieldMissing
Resource is in use, exported or in retention period or
others where you cannot use it.
InvalidState
Resource is not valid in this context. Sample Voice number used as voicemail or sim card used as virtual sim
card
IdentifierValidationFailed
MSISDN is a fix-net number.
IdentifierValidationFailed
Resource is already owned by SP.
IdentifierValidationFailed
MSISDN is already present in the system, but not as
exported or cancelled.
IdentifierValidationFailed
Requested activation date is not after current date.
MandatoryFieldValidationFailed
Parameters:
req - ImportSubscriberRequestInfo_NO
Returns:
ImportSubscriberReplyInfo
Throws:
java.rmi.RemoteException - Is thrown by the EJB container if some kind of communication
failure occurs.
Page 54 of 91
TDC Mobil SPWEB SOAP API
6.1.31
Author: Thomas Oestergaard
createSubscriber_NO
public CreateSubscriberReplyInfo createSubscriber_NO
(CreateSubscriberRequestInfo_NO req)
throws java.rmi.RemoteException
Only used for norwegian subscribers.
Pre condition
Post condition
A service provider identified by serviceProviderId exists AND
all resources specified by feature parameters belong to the
specified service provider AND are available AND all required
SOCs and features are specified AND are not mutual exclusive.
SuccessfulCompletion
Resource does not exist or don‟t belong to actual SP.
IdentifierNotFound
Mandatory services type missing from request.
MandatoryFieldMissing
Resource is in use, exported or in retention period or others
where you cannot use it.
InvalidState
Resource is not valid in this context.Sample Voice number
used as voicemail or sim card used as virtual sim card
IdentifierValidationFailed
Parameters:
req - CreateSubscriberRequestInfo_NO
Returns:
CreateSubscriberReplyInfo
Throws:
java.rmi.RemoteException - Is thrown by the EJB container if some kind of communication
failure occurs.
Page 55 of 91
TDC Mobil SPWEB SOAP API
6.1.32
Author: Thomas Oestergaard
confirmExport_NO
public ConfirmExportReplyInfo confirmExport_NO
(ConfirmExportRequestInfo_NO req)
throws java.rmi.RemoteException
Usage: The method is confirming an export request in the Norwegian market.
Only used for norwegian subscribers.
Pre condition
Post condition
MSISDN exists and belongs to SP identified by sp-id and is assigned to
SuccessfulCompletion
a subscriber.
MSISDN exists and belongs to SP identified by sp-id and was assigned
SuccessfulCompletion
to a subscriber and is in the defined retention period.
MSISDN does not exists or does not belongs to SP
IdentifierNotFound
Transaction is missing in Operators Interface
RequiredDataNotFound
Transaction is in an invalid state in Operators Interface
Invalid State
Parameters:
req - ConfirmExportRequestInfo_NO
Returns:
ConfirmExportReplyInfo
Throws:
java.rmi.RemoteException - Is thrown by the EJB container if some kind of communication
failure occurs.
Page 56 of 91
TDC Mobil SPWEB SOAP API
6.1.33
Author: Thomas Oestergaard
getActivationTypes
public GetActivationTypesReplyInfo getActivationTypes
(GetActivationTypesRequestInfo req)
throws java.rmi.RemoteException
Usage: This method is used to retrieve activation codes for a given service provider. The activation code is used as a parameter for activating a subscriber.
This information is used as input to the createSubscriber service. The options are creating a
new subscriber using SP owned resources or numberImport a subscriber.
Pre condition
Post condition
A service provider identified by code exists AND has the related non
expired activationtypes.
SuccessfulCompletion
A service provider identified by code exists AND has no related non
expired activationtypes.
RequiredDataNotFound
Parameters:
req - GetActivationTypesRequestInfo
Returns:
GetActivationTypesReplyInfo
Throws:
java.rmi.RemoteException - Is thrown by the EJB container if some kind of communication
failure occurs.
Page 57 of 91
TDC Mobil SPWEB SOAP API
6.1.34
Author: Thomas Oestergaard
createSubscriber
public CreateSubscriberReplyInfo createSubscriber
(CreateSubscriberRequestInfo req)throws java.rmi.RemoteException
Usage: Used when creating subscription. Only used for danish subscribers. The subscription
is made effective immediately on normal activation or the subscription is created as reserved
when performing number import of MSISDN-numbers not owned by the current service
provider. This implies pairing of resources and activation of the subscribers selected services in the transmission network either immediately or on the scheduled activation date.
Resources change states according to the general rules for Resource Management.
Pre condition
Post condition
A service provider identified by serviceProviderId exists
AND all resources specified by feature parameters belong
SuccessfulCompletion
to the specified service provider AND are available AND
all required SOCs and features are specified AND are not
mutual exclusive.
Resource does not exist or don‟t belong to actual SP.
IdentifierNotFound
Activation type does not exists.
IdentifierValidationFailed
Mandatory services type missing from request.
MandatoryFieldMissing
Resource is in use, exported or in retention period or
others where you cannot use it.
InvalidState
Resource is not valid in this context.Sample Voice number used as voicemail or sim card used as virtual sim
card
IdentifierValidationFailed
On create: npDonorICC given.
OptionalFieldValidationFailed
On import: MSISDN is a fix-net number.
IdentifierValidationFailed
On import: Resource is already owned by SP.
IdentifierValidationFailed
On import: MSISDN is already present in the system, but
IdentifierValidationFailed
not as exported or cancelled.
On Import: Requested activation date is not after current
MandatoryFieldValidationFailed
date.
Parameters:
req - CreateSubscriberRequestInfo
Returns:
CreateSubscriberReplyInfo
Throws:
java.rmi.RemoteException - Is thrown by the EJB container if some kind of communication
failure occurs.
Page 58 of 91
TDC Mobil SPWEB SOAP API
6.1.35
Author: Thomas Oestergaard
confirmExport
public ConfirmExportReplyInfo confirmExport
(ConfirmExportRequestInfo req)throws java.rmi.RemoteException
Usage: The method is confirming an number porting export request in the Danish market.
Pre condition
Post condition
MSISDN exists and belongs to SP identified by sp-id and is assigned to
SuccessfulCompletion
a subscriber.
MSISDN exists and belongs to SP identified by sp-id and was assigned
SuccessfulCompletion
to a subscriber and is in the defined retention period.
MSISDN does not exists or does not belongs to SP
IdentifierNotFound
Transaction is missing in Operators Interface
RequiredDataNotFound
Transaction is in an invalid state in Operators Interface
Invalid State
Parameters:
req - ConfirmExportRequestInfo
Returns:
ConfirmExportReplyInfo
Throws:
java.rmi.RemoteException - Is thrown by the EJB container if some kind of communication
failure occurs.
Page 59 of 91
TDC Mobil SPWEB SOAP API
6.1.36
Author: Thomas Oestergaard
searchResourceByMsisdn
public SearchResourceByMsisdnReplyInfo searchResourceByMsisdn
SearchResourceByMsisdnRequestInfo req)
throws java.rmi.RemoteException
Usage : The method retrieves the current msisdn resource state.
Pre condition
Post condition
MSISDN exists and belongs to SP identified by sp-id. SuccessfulCompletion
MSISDN does not exists or does not belongs to SP
IdentifierNotFound
Parameters:
req - SearchResourceByMsisdnRequestInfo
Returns:
SearchResourceByMsisdnReplyInfo
Throws:
java.rmi.RemoteException - Is thrown by the EJB container if some kind of communication
failure occurs.
Page 60 of 91
TDC Mobil SPWEB SOAP API
6.1.37
Author: Thomas Oestergaard
updateMsisdnResource
public UpdateMsisdnResourceReplyInfo updateMsisdnResource
(UpdateMsisdnResourceRequestInfo req)
throws java.rmi.RemoteException
Usage : The method updates the current msisdn with a gievn resource state.
ex. from status AG to AA (aging to assigned available)
Pre condition
Post condition
MSISDN exists and belongs to SP identified by sp-id. SuccessfulCompletion
MSISDN does not exists or does not belongs to SP
IdentifierNotFound
Parameters:
req - UpdateMsisdnResourceRequestInfo
Returns:
UpdateMsisdnResourceReplyInfo
Throws:
java.rmi.RemoteException - Is thrown by the EJB container if some kind of communication
failure occurs.
Page 61 of 91
TDC Mobil SPWEB SOAP API
6.1.38
Author: Thomas Oestergaard
getMsisdnTransistionStates
public GetMsisdnTransistionStatesReplyInfo getMsisdnTransistionStates
(GetMsisdnTransistionStatesRequestInfo req)
throws java.rmi.RemoteException
Usage : The method get allowed msisdn transistion states for a given state.
Pre condition
Post condition
Resource-state is valid. SuccessfulCompletion
Parameters:
req - GetMsisdnTransistionStatesRequestInfo
Returns:
GetMsisdnTransistionStatesReplyInfo
Throws:
java.rmi.RemoteException - Is thrown by the EJB container if some kind of communication
failure occurs.
Page 62 of 91
TDC Mobil SPWEB SOAP API
6.1.39
Author: Thomas Oestergaard
searchExportRequests_NO
public SearchExportRequestsReplyInfo_NO searchExportRequests_NO
(SearchExportRequestsRequestInfo req)
throws java.rmi.RemoteException
Usage: operating in the norwegian market
Pre condition
Post condition
A service provider identified by serviceProviderId exists.. SuccessfulCompletion
pageNo is less than zero.
MandatoryFieldValidationFailed
pageSize is less than zero or greater than the server
specified maximum or (greater than 150 and 600 modulo OptionalFieldValidationFailed
pageSize <> 0)
Parameters:
req - SearchExportRequestsRequestInfo
Returns:
SearchExportRequestsReplyInfo
Throws:
java.rmi.RemoteException - Is thrown by the EJB container if some kind of communication
failure occurs.
Page 63 of 91
TDC Mobil SPWEB SOAP API
6.1.40
Author: Thomas Oestergaard
updateSIMResourceStatus
public UpdateSIMResourceStatusReplyInfo updateSIMResourceStatus
(UpdateSIMResourceStatusRequestInfo req)
throws java.rmi.RemoteException
Usage : The method updates the current SIM Number of resource Status information with a
given SIM Number and Requested status.
ex. from status AG to AA (aging to assigned available)
Pre condition
Post condition
SIM Number exists and belongs to SP identified by sp-id. SuccessfulCompletion
SIM Number does not exists or does not belongs to SP
IdentifierNotFound
Parameters:
req - UpdateSIMResourceStatusRequestInfo The inputs caontaing the information of the sim card
to be updated in the database.
Returns:
The status whether the update was successful or not.
Throws:
java.rmi.RemoteException - Thrown by the EJB container if some kind of communication
failure occurs.
Page 64 of 91
TDC Mobil SPWEB SOAP API
6.1.41
Author: Thomas Oestergaard
getSimCardDetails
public GetSimCardDetailsReplyInfo getSimCardDetails
(GetSimCardDetailsRequestInfo req)
throws java.rmi.RemoteException
Usage : The method fatching the current SIM Number information with a given SIM Number.
Pre condition
Post condition
SIM Number exists and belongs to SP identified by sp-id. SuccessfulCompletion
SIM Number does not exists or does not belongs to SP
IdentifierNotFound
Parameters:
req - The inputs containing the sim card number whose deatils are to be retirved.
Returns:
the details of the sim card
Throws:
java.rmi.RemoteException - Thrown by the EJB container if some kind of communication
failure occurs.
Page 65 of 91
TDC Mobil SPWEB SOAP API
6.1.42
Author: Thomas Oestergaard
getICCTransistionStates
public GetICCTransistionStatesReplyInfo getICCTransistionStates
(GetICCTransistionStatesRequestInfo req)
throws java.rmi.RemoteException
Usage : The method get allowed sim transistion states for a given state.
Pre condition
Post condition
Resource-state is valid. SuccessfulCompletion
Parameters:
req - GetICCTransistionStatesRequestInfo
Returns:
GetICCTransistionStatesReplyInfo
Throws:
java.rmi.RemoteException - Is thrown by the EJB container if some kind of communication
failure occurs.
Page 66 of 91
TDC Mobil SPWEB SOAP API
6.1.43
Author: Thomas Oestergaard
lookupHLRinformation
public LookupHLRinformationReplyInfo lookupHLRinformation
(LookupHLRinformationRequestInfo req)
throws java.rmi.RemoteException
Usage: The method retrieves the current HLR informations stored in the mobile network.
Inside the reply class, the data from the HLR is stored in a structured XML 1.0 string.
The service is NOT intented for bulk reads in the HLR. If overloaded, requests will be
dropped. The service allows approximately 100 to 200 requests per. minute before it starts
dropping requests.
Pre condition
Post condition
MSISDN exists and belongs to SP identified by sp-id and is assigned to
SuccessfulCompletion
a subscriber.
MSISDN exists is of VOICE MAIL class
IdentifierNotFound
MSISDN does not exists or does not belongs to SP
IdentifierNotFound
Service is flooded with requests
RequestDropped
Parameters:
req - LookupHLRinformationRequestInfo
Returns:
LookupHLRinformationReplyInfo
Throws:
java.rmi.RemoteException - Is thrown by the EJB container if some kind of communication
failure occurs.
Page 67 of 91
TDC Mobil SPWEB SOAP API
Author: Thomas Oestergaard
7 AXIS - overview
Apache Axis is an implementation of the SOAP ("Simple Object Access Protocol") submission to
W3C.
From the draft W3C specification:
SOAP is a lightweight protocol for exchanging structured information in a decentralized, distributed environment. It is an XML based protocol that consists of three parts: an envelope that defines a framework
for describing what is in a message and how to process it, a set of encoding rules for expressing instances of application-defined datatypes, and a convention for representing remote procedure calls and
responses.
This project is a follow-on to the Apache SOAP project.
Please see the Reference Library for a list of technical resources that should prove useful.
7.1
AXIS architecture
Page 68 of 91
TDC Mobil SPWEB SOAP API
7.2
Author: Thomas Oestergaard
How AXIS convert from JAVA to SOAP XML and back?
Page 69 of 91
TDC Mobil SPWEB SOAP API
Author: Thomas Oestergaard
8 Number Porting
SPWEB5 supports number porting and contains a number of services which allows TDC‟s service providers
to carry out number porting.
TDC‟s service providers will act either as donor operators6 or as recipient operators7 depending on
whether they export or import.
Number porting is handled through rules and procedures set down by the mobile operator association
(TeleIndustrien). These rules and procedure documents may be found in \docs\Rules and Procedures\
section of the toolkit.
The specific implementations at the service providers must follow these guidelines, however, this is not to
say that number porting implementations are alike as there is a fair degree of room for variation.
The following covers the basics of TDC‟s number porting flows including TDC specific features.
TDC and Number Porting
Number Porting in TDC‟s implementation is separated into two flows,
NP (Full Number Porting)
RESELL (Number Porting inside TDC‟s network)
Both result in the same thing, that a number is ported from a donor operator to a recipient operator. But
there are differences in how they work and what their area of operation is.
NP is the general full blown number porting operation where two operators switch a number from one
operator network to another operator‟s network. It involves actors external to TDC and numbers outside
of TDC‟s network.
RESELL on the other hand is the internal number porting track. RESELL covers the situation where the
number being ported is already inside TDC‟s network, either at TDC itself or at one of TDC‟s service providers.
NP versus RESELL
It should be noted that it is generally not needed that a TDC service provider distinguishes between the
two flows as the system as TDC will do this for the service provider.
There is for example no extra service that the service provider needs to invoke in either case, as the actions on the service provider side are exactly the same for each flow.
The impact for the service provider is,
The reports will differentiate between NP and RESELL when reporting errors or warnings.
5
SPWEB is the term used for the entire SPWEB solution including the API. In the number porting section it is the services found in SPWEB‟s API which is being referred to.
6
From TI – Rules and Procedures: Donor Operator = The operator from which one or more numbers are in the process
of being ported out (exported from).
7
From TI – Rules & Procedures: Recipient Operator = The operator to which one or more numbers are in the process
of being ported in (imported to).
Page 70 of 91
TDC Mobil SPWEB SOAP API
Author: Thomas Oestergaard
This can be used to choose the appropriate action as RESELL is subject to a greater degree of internal control than NP and thus can be impacted through SP-SUPPORT requests to TDC.
Easier to understand technical and report feedback.
Number Porting: Import and Export
Number porting consists of two areas which are interrelated,
Import
Export
Import is the situation where the recipient operator wishes to import a customer that is already active at
the donor operator.
Export is the opposite direction where a recipient operator wishes to import one of the donor operator‟s
customers.
It follows from this, that an import will by a counterpart seen as an export request and visa verse. They
are simply the direction in which the customer is travelling based on the view point.
SPWEB: Number Porting services
The SPWEB solution offers full support to number porting, in the following the relevant functions and their
use is described.
There are 3 types of service functions,
Information and Status
Export Related
Import Related
Information and Status services are used to provide information to the Service Provider about the current
state of on-going number porting (together with the reports, see chapter 10) and also supplies values to
be used in other Number Porting services ex. RejectionCodes for a RejectExport:
GetNPFlowTypes (Provide information about NP flow status fields)
GetRejectionCodes (Supplies RejectionCodes when rejecting exports)
ListNPFlowStatus (Provides a list of NPFlows for the Service Provider)
SearchExportRequests (Searches and provides a list of ExportRequests against the Service Provider)
Export related services allow the service provider to Reject or Confirm exports:
ConfirmExport (Yes, the customer is available for Number Porting and it can be carried out at the
date supplied in the service)
RejectExport (No, The customer is NOT available for Number Porting and a RejectCode is supplied, which is retrieved from GetRejectionCodes)
Page 71 of 91
TDC Mobil SPWEB SOAP API
Author: Thomas Oestergaard
Import related services allow the service provider to initiate a number porting:
CreateSubscriber (CreateSubcriber doubles as both (a) creating totally new Subscribers and (b)
starting Number Import through its ActivationTypeId field)
o The ActivationId field‟s value is supplied by the service: GetActivationTypes
ReleaseImport (Allows a Service Provider to cancel a number import, Note: That this can be done
at any time during the Number Porting flow)
Number Porting Flow
The following is a walkthrough through a number import and a number export.
Basic Number Import
At its most basic a Number Import runs through 3 stages
1. Import Request
2. Confirm or Reject Received
3. Execute
(Import Request) In this basic example the recipient operator uses a CreateSubscriber to create an import request. This creates an NP IMPORT request in the number porting system with a given date the
recipient operator would like the number porting to take place (requested execution date).
(Confirm/Reject) The information is entered into OCH (if applicable) and the donor operator is subject to
a NP EXPORT request, which can either be confirmed or rejected (in which case a new Import Request
must be sent or the NP dropped, the choice will be based on circumstances ex. the RejectionCode etc).
Regardless of answer, the recipient operator here persists, and the import request is, eventually, confirmed (the donor operator does a ConfirmExport at their end) and the requested execution date is also
confirmed.
Time passes and at no stage is a failure encountered and the recipient operator does not send any cancel
(ReleaseImport) during the period on the number involved.
(Execute) At the confirmed execution date the system carries out the number porting and the customer is
now available to the recipient operator.
Basic Number Export
An export is simpler than the import, in fact, the export is just step 2 (confirm/reject) in the number import as an export is the other end of an Import when viewed from the donor service provider.
1. Export Request found
2. ConfirmExport or RejectExport
The donor operator discovers (Reports and API Search services can provide this information) an incoming
import request, which is an export request seen from the donor operator.
Page 72 of 91
TDC Mobil SPWEB SOAP API
Author: Thomas Oestergaard
The donor operator check if the subscriber can be exported and based on this sends either (a) confirm
with an execution date or (b) reject with a reject reason code.
If a Confirm is sent the subscriber will be ported on the confirmed execution date8.
If a Reject is sent, the number porting process is cancelled and the recipient operator can choose to either restart the flow with a new import request or drop the number import.
From the donor‟s point of view the confirm/reject is the final step and no further actions are required.
NABS reserved subscriber
When a NP-flow is started TDC‟s billing system NABS requires the creating of a subscriber. The Number
import request, done through the service CreateSubscriber, therefore requires the recipient operator to
provide an ICC.
The reserved subscriber is activated upon the execution date.
However, care must be taken because the reserved subscriber is removed, if the flow fails or is rejected.
This can lead to a little extra use of ICC cards.
8
Various failure situations can prevent this from happening. The basic example assumes that no errors are encountered in any step of export or import.
Page 73 of 91
TDC Mobil SPWEB SOAP API
Author: Thomas Oestergaard
Number Porting Flow
The following establishes the basic flow when working with number porting.
CreateSubscriber
Requested
-SubscriberMSISDN
Or
-SubscriberICC
-ActivationTypeId
Completed
Import Request Failed
-NpDonorICC
-ServiceTypeId
Next State / Time
-RequestedDate
No answer/reaction
Missing event
Cancel Event
Service Provider Cancel
Or
Next State / Time
Confirmed
Rejected
No answer/reaction
Missing event
Cancel Event
Service Provider Cancel
Or
Executed
Execution Failed
Bold box: A bold box signifies a state that will show up in reports or searches.
Dotted box: Dotted signifies an intended or missing event that prevents the process from moving forward
and which will eventually (typically by passing a critical date) lead to its abortion.
Next State/Time: A number porting flow is one occurring over time, often large amounts of it, there are
therefore often large pauses between states where a) nothing happens b) something bad happens or
most common c) everything goes as expected and the next step is carried out. The vertical line shows
the main path that must occur for success and the horizontals shows the alternatives that can prevent
success.
State
Page 74 of 91
TDC Mobil SPWEB SOAP API
Author: Thomas Oestergaard
A state is a status situation. The flow has reached a given state and is now resting in this state awaiting
an event (ex. Rejection, Confirmation, Cancel etc) or time trigger (ex. Time advances to the date of Execution) that will change its state.
When a TDC service provider is requesting reports/ doing searches in the system it is the state that will
be reported back.
Requested: The Number Import has been requested and the system will now process it. It will either move to Number Import Request Completed or Number Import Failed Status. While requested but not confirmed the number will show up on warnings (in reports) to illustrate that the
request has been received but the flow has not progressed.
Completed: This is a system state. It merely signifies that the Import flow has been started with
valid parameters and that the system successfully has registered it.
Confirmed: The order has been confirmed. The confirmation is done by the donor operator and
contains the execution date at which the number import can be carried out. This day may or may
not be the date originally requested by the recipient operator, both options are valid.
Rejected: The order has been rejected. This can be done by either a) The system or b) The donor
operator. The prior will do it when there is information missing, invalid or where the state of the
subscriber does not allow number porting, the latter will do for various business reasons. Once
rejected, the flow is stopped and progresses to Rejected as its final state.
Executed: The order has been executed and the subscriber has been moved to the service provider. This event should occur on the execution date established in the confirmed state.
Failed: Any command or state can result in failed. This is when the system/flow for some reason
could not carry out the command or commands linked to its state that it was supposed to. If a
state fails, the flow is stopped and does not progress to a new state. The recipient operator must
try again (start a new import) or contact SP-support to have failure investigated and process restarted.
o Most failures occur at Import Request, Rejection or Execution.
Event
Events are,
a) Actions either by actors (the recipient operator, the donor operator or the system) that leads to
changes in the state or
b) Missing actions from the actors that prevent the change of states in time (ex. Requested Confirmation
date from the request has been reached but no confirmation has been received leading to a error situation where the number import can no longer be carried out in its original state as a new Requested date
must be supplied).
No answer/reaction: The next required event in the flow does not occur within the expected time
horizon leading to a permanent unchanged state. If the event does not occur at all or after a required date has passed the flow stops and the Number Import has to be restarted by the recipient operator or SP-support must be contacted to help out.
Cancel: At any stage the recipient operator can cancel a number import. A cancel will move the
process to a cancelled state and then stop the process once all system related cancel events have
been carried out.
Rejected: The system or donor operator has rejected the import request. The flow moves to a rejected state and does not continue. A reject must always contain an explanatory RejectionCode/reason which allows the recipient operator to correct the problem (if possible) and start a
new number import with corrected information
Reject reasons
Rejections in number porting are strongly screwed towards a few reasons.
Page 75 of 91
TDC Mobil SPWEB SOAP API
Author: Thomas Oestergaard
By far the most common reason is providing a wrong ICC (60%).
The second most common cause is no written termination confirmation received (20%).
The remaining 20% are distributed between a large number of minor reasons.
It follows from this that extra care in the business processes at the donor operator, recipient operator
and customers will drastically reduce the number of rejects.
Failure reasons
These are very rare and generally system related. There is no dominant or systematic cause. They are
the normal by-product of any large computer system.
Page 76 of 91
TDC Mobil SPWEB SOAP API
Author: Thomas Oestergaard
9 SPPORTAL
Until now what has been described is largely the SPWEB API, which is to say the business to business
integration interface, however, TDC also offers its SPWEB services through an internet portal called
SPPORTAL.
Browser support
SPPORTAL is a web portal and can be accessed with the common internet browsers. The following are all
verified to work with the current (1Q 2011) SPPORTAL version.
Internet Explorer, versions 6,7 and 8
Mozilla Firefox, version 3 and forward
Goggle Chrome, version 8 and forward
Of some minor interest is that Firefox will show the VAS parts of the page a bit compacted compared to
the other browsers and that the Explorer is still the default for which it is being created.
Functionality and scope
It contains all common services also found in the SPWEB API using a regular graphical web GUI interface.
The services present are all functional and it has access to the same data that SPWEB API has.
Being a webpage with a thin presentation layer has the effect that the information presented is more
human in its format (readable) and less technical than that found in the API.
Being a simple webpage, however, it quickly becomes cumbersome at medium and large scale operation
(which is the domain of the API). It is thus best of minor tasks involving no more than a few customers
or support/check related queries.
Availability
All service providers at TDC have an account at the SPPORTAL and are capable of logging into it and use
its facilities.
Access is restricted through login, password linked to a given service provider id, meaning that a service
provider is only able to see his or her own data in the portal.
URL
The SPPORTAL is found at: https://spportal.tdc.dk/spportal/jsp/index.jsp
Language
SPPORTAL is in Danish.
SPPORTAL examples
Please refer to the screens below for a short introduction to the graphical layout of SPPORTAL. Also refer
to the PowerPoint Presentation located in the \docs\ directory, which contains general information about
SPPORTAL and API as well as some example screens.
Page 77 of 91
TDC Mobil SPWEB SOAP API
Author: Thomas Oestergaard
First Example: Login Screen
The login is a simple user and password screen accessed through the https link given earlier in this
document.
Your login and user name is tied to your service provider id, which ensures that once logged in you will
only be able to see and change data for your own customers.
Once logged in you will be moved to the next example, which is the main screen of the Portal.
Page 78 of 91
TDC Mobil SPWEB SOAP API
Author: Thomas Oestergaard
Second Example: Main Screen
Once logged in you will arrive at the main screen. Links to services are found at the left frame and provides access to the most common features in SPWEB.
Important to note is that the SPPORTAL is always pointing to production whereas SPWEB has both a test
and production implementation. Working in the portal should always be done with care as changes are
live.
Also easy to note is that the language is Danish.
Shown in the lower left corner is the service provider information. Here it‟s the dummy provider called
Fantom SP04 (this information will change to your SP information on your logins).
One of the most common actions is that of creating a customer, this is done through CreateSubscriber in
SPWEB API and here the corresponding action is „oprettelse‟, which is the second option in the left frame.
Page 79 of 91
TDC Mobil SPWEB SOAP API
Author: Thomas Oestergaard
Third Example: Oprettelse (CreateSubscriber)
Oprettelse works in the same manner as CreateSubscriber in the API. It will ask for the same information
and offer the same options, but will do so in a reader friendly interface.
An interesting exercise for a person new to TDC‟s SPWEB solution is to compare the „oprettelse‟ screen
with the code and examples for CreateSubscriber found in the \bin\ and \src\ dirs in the toolbox.
Doing so will give a general understanding of how data is formatted and presented and generally ease
the process.
As this document is not intended as a step-by-step walkthrough of the SPPORTAL but as a description of
the SPWEB API, the last example is of a feature often used from the SPPORTAL (it is also available in
SPWEB API, everything is): The reporting functionality.
Page 80 of 91
TDC Mobil SPWEB SOAP API
Author: Thomas Oestergaard
Last Example: The Mobile Reports
The SPWEB solution offers six different reports to its services providers. These can be requested through
the portal (see the screenshot below) or the SPWEB API.
The next chapter in this document examines these reports in more detail. Please move to the next page
for a walkthrough of the reports, their contents and fields.
Page 81 of 91
TDC Mobil SPWEB SOAP API
Author: Thomas Oestergaard
10 SPWEB Reports
The SPWEB system offers a number of reports to its users. The reports available are:
1. Afviste Imports (Rejected Imports)
2. NP fejlliste (Number Porting error list)
3. Igangværende Import Ordre (Pending Imports)
4. Igangværende Export Ordre (Pending Exports)
5. Assigned & Available CTN
6. Assigned & Aging CTN
The reports can be requested both through the SPPORTAL and the SPWEB API. They are numbered according to their order shown here.
Report Id
The report id is built in the following manner: SP[SP-ID][REPORT-ID]
Example: SP99001
Description: SP with the number 99 and the report is 001 (Afviste Imports).
Generated Report name
When ordering reports a generated counted / unique identifier is prefixed to the report identification and
concatenated report name is post-fixed to the id.
Example: 488963_SP04001_ATTACH_IMREJECT.txt
Description: Report number 488963 for SP04 consisting of report 001 which is Import Rejected/Afviste
Imports.
Ordering the reports
The reports can be ordered through the SPPORTAL or the SPWEB API. It is the same functionality being
called and the difference is thus one of cosmetics (graphical vs. command line interface).
SPWEB API
GetReportTypes
CreateReportRequest
SearchReportRequestByUserId
GetReportTypes will display a list of available reports that can be ordered by the Service Provider. As well
as provide the input parameters from createReportRequest.
CreateReportRequest will create a reportRequest in the mobile report system. The report will once finished be forwarded to a destination agreed upon with the service provider (usually the SPPORTAL‟s
download area or directly to a server at the Service Provider).
Page 82 of 91
TDC Mobil SPWEB SOAP API
Author: Thomas Oestergaard
SearchReportRequest allows the user to search for reports corresponding to the user id (service provider
id).
SPPORTAL
Go to the SPPORTAL
Choose rapport
Select the report you wish to order and click bestil
The report will once complete be delivered to the destination agreed upon which can be under the
download option also seen at the SPPORTAL.
Page 83 of 91
TDC Mobil SPWEB SOAP API
Author: Thomas Oestergaard
SPID001: Afviste Imports
This report shows rejected Number Porting Imports for which there has not been a new import request
within the last 60 minutes.
A number import is a Number Porting (NP) event where the Recipient operator is requesting the transfer
of a number from another operator (the donor operator).
Number Imports that has been rejected will show up on this report with an error explanation.
A rejection is an explicit action carried out by the system or the donor operator.
System rejection is usually due to missing information or wrong information ex. missing or wrong
ICC.
Provider rejection is usually due to contract periods in which the customer is bound.
Report Field
Description
Msisdn
The MSISDN number.
Type
Rejected (provider or system)
Orig
The Originator of the message. This will be a system component.
CSM, OI or RESELL
TransDate
The transaction date. This is the date the transaction here an import was rejected.
ReqDate
The requested date of the number import. Which is
the date the import was requested to take place.
RejectCode
Reject Code. A numeric code representing the rejection reason.
RejectText
Reject Text in string format. A short explanation of
why the rejection took place ex. “No ICC was
found”
Page 84 of 91
TDC Mobil SPWEB SOAP API
Author: Thomas Oestergaard
SPID002: NP fejlliste
This report is a collection of errors and warnings for number porting related to the service provider. It
separates its status reporting into two areas, NP (external providers) and RESELL9 (internal providers)
NP area (non-Resell)
Status
Description
Import failed
The import has failed in one of its steps (Request,
Confirm, Execute) and the number porting has
stopped.
A new number import must be started or SPsupport contacted depending on the reason for
failure.
Import Confirmation Date Exceeded
The import has been confirmed but the current
date is now past the confirmation date without
execute or cancel having taken place.
This is an indication that an event should have
taken place but did not.
SP-support should be contacted.
Import No OCH Response
There has not been an OCH response to the import
request and the request is left in Import Request
state instead of moving to Import Request Confirmed state.
Contact SP-support if the situation persists and the
status is unchanged.
Export Failed
The export has failed in one of its steps (Request,
Confirm, Execute) and the number porting has
stopped.
No action is required. It is up to the counterpart
doing the import to restart the flow.
Export Execution Date Exceeded
The export has been confirmed but the execution
date has passed without execute taking place.
RESELL area
Status
Description
Export (Resell) Failed
The export has failed in one of its steps (Request,
Confirm, Execute) and the number porting has
stopped.
No action is required. It is up to the counterpart
doing the import to restart the flow.
Export (Resell) Not Confirmed
A service provider has started an import towards
9
NP is number porting involving an external provider where RESELL is number porting from TDC or one
of TDC‟s Service Providers. This is two different flows in TDC.
Page 85 of 91
TDC Mobil SPWEB SOAP API
Author: Thomas Oestergaard
one of your customers and the import has not yet
been confirmed by you.
Export (Resell) Execution Date Exceeded
A confirmed export has not been executed on the
date it was scheduled for.
Import (Resell) Failed
The import has failed in one of its steps (Request,
Confirm or Execute) and the number porting has
stopped.
A new number import must be started or support
contacted depending on the reason for failure.
Import (Resell) Not Confirmed
The import has not been confirmed yet by the
other provider.
Note. This is not necessarily an error. All number
imports will start out as not confirmed.
Import (Resell) Confirmation Date Exceeded
The import has been confirmed but the current
date is now past the confirmation date with an
execute or cancel having taken place.
Report Field
Description
Error
Error Type. The status will be one of those listed
above.
MSISDN
The number involved.
Type
The type where the error or warning occurred. The
value will be a numeric.
001 = Request
004 = Confirm
006 = Reject
007 = Cancel
008 = Executed Import
010 = Executed Export
012 = Number Return
017 = Executed Resell
Orig
The system group the message originated from.
TransDate
The transaction date. This date is not the original
transaction date when the number porting request
was received but the date of the latest event
ReqDate
The requested execution date
ConfirmDate
The actual confirmed date.
ExecDate
The actual execution date.
Page 86 of 91
TDC Mobil SPWEB SOAP API
Author: Thomas Oestergaard
SPID003: Igangværende Import Ordre (NPOutstanding import)
This report shows pending import orders for the service provider. It shows both NP and Resell imports.
An import is a request to another provider or service provider to receive a customer through number
porting.
Report Field
Description
IMPORT/EXPORT
The NPOutstanding report handles both import and
export direction (report 003 and 004) this field
signifies the type
This is the format used for imports.
From
From provider
To
To provider
MSISDN
The number
Type
The current state of the process ex. Requested,
Confirmed, Executed etc.
Status
What the status is for the current state.
Trans-Date
Transaction Date
Exec-Conf
Confirmed Execution Date
Failed-Type
-
Failed-Status
-
Failed-Date
-
Reject-Code
The numeric Reject code
1.Trans-Date
Transaction Date for the first entry in the number
porting flow
Reserved ICC
The reserved ICC to be used in the TDC NABS system.
The Reserved ICC is the ICC supplied when making
the Number Import request.
It is an ICC that TDC‟s Billing System NABS uses to
create a Reserved Subscriber in the system.
Donor ICC
The donor‟s ICC.
Page 87 of 91
TDC Mobil SPWEB SOAP API
Author: Thomas Oestergaard
SPID004: Igangværende Export Ordre (NPOutstanding export)
This report shows pending export orders for the service provider. It shows both NP and Resell exports.
An export is a request from another provider or service provider towards you requesting that you transfer
one of your existing customers to them through number porting.
Report Field
Description
IMPORT/EXPORT
The NPOutstanding report handles both import and
export direction (report 003 and 004) this field
signifies the type
This is the format used for exports.
From
From provider
To
To provider
MSISDN
The number
Type
The current state of the process ex. Requested,
Confirmed, Executed etc.
Status
What the status is for the current state.
Trans-Date
Transaction Date
Exec-Conf
Confirmed Execution Date
Failed-Type
-
Failed-Status
-
Failed-Date
-
Reject-Code
The numeric Reject code
1.Trans-Date
Transaction Date for the first entry in the number
porting flow
Request-Date
Requested date for the export
Donor ICC
The donor‟s ICC.
Current ICC
The current ICC connected to the MSISDN
Recipient Service Operator
The code of the operator being exported to
Page 88 of 91
TDC Mobil SPWEB SOAP API
Author: Thomas Oestergaard
SPID005: Assigned and Available CTN
This report show the CTN (MSISDN numbers) that have been assigned to a service provider and which
are available for assignment to a customer.
In essence it shows all number available to be assigned to a customer for the given service provider. The
status is called assigned available (AA) not to be confused with assigned numbers in use called assigned
in use (AI).
Example:
Report Field
Description
CTN
The MSISDN
CTN_STATUS
The status of the MSISDN. This will always be AA
for assigned available.
NGP
Number Group in which the CTN occurs.
NL
Number Location. Usually the SPID-0000 ex. 990000 for SP99.
Page 89 of 91
TDC Mobil SPWEB SOAP API
Author: Thomas Oestergaard
SPID006: Assigned & Aging CTN
This report show the CTN which have been assigned but no longer are available and are now between
uses, which is called aging.
Aging is thus the grace period where a number is no longer assigned to a customer and when it can be
assigned again to a new customer.
Report Field
Description
CTN
The MSISDN
CTN_STATUS
The status of the MSISDN. This will always be AG
for assigned aging.
NGP
Number Group in which the CTN occurs.
NL
Number Location. Usually the SPID-0000 ex. 990000 for SP99.
Page 90 of 91
TDC Mobil SPWEB SOAP API
Author: Thomas Oestergaard
11 References
WEB-page for AXIS:
http://ws.apache.org/axis/
WEB-page for BEA Weblogic:
http://www.bea.com/framework.jsp?CNT=index.htm&FP=/content/products/weblogic
WEB-page for SUN JAVA:
http://java.sun.com/
WEB-page for XML:
http://www.xml.org/
WEB-page for SOAP:
http://www.w3.org/TR/soap/
Page 91 of 91