Sei sulla pagina 1di 25

GSM Association ACCESS

Confidential Doc
Information 12_010

Subscriber Profile Web Service API


Tutorial
Meeting Information
Meeting Name and Number ACCESS#12
Date 16 December 2008
Location London
Document Information
Document Author(s) Anders Lundqvist, Oracle
Document Creation Date 15 December 2008
Approval
This document is for: Discussion X
Information only
Security Classification
Confidential GSMA Full Members X
Confidential GSMA Group Members X
Document Summary
This document contains the tutorial for Subscriber Profile Web Service.
Document History
Date Version Author / Comments

© GSMA 2008. The GSM Association (“Association”) makes no representation, warranty or undertaking (express or implied) with respect to and does not accept any
responsibility for, and disclaims liability for the accuracy or completeness or timeliness of the information contained in this document. The information contained in this
document may be subject to change without prior notice. This document has been classified according to the GSMA Document Confidentiality Policy. GSMA meetings
are conducted in full compliance with the GSMA Antitrust Policy.

48747548.doc Page 1 of 25
GSM Association Confidential Information

GSMA 3rd Party Access


Subscriber Profile Web Service API Tutorial

48747548.doc Page 2 of 25
GSM Association Confidential Information

1 SCOPE...........................................................................................................5
1.1 WHO SHOULD USE THIS TUTORIAL? 5
1.2 DEPENDENCIES AND PREREQUISITES 5
2 SUBSCRIBER PROFILE WEB SERVICE ACCESS API OVERVIEW.........6
2.1 EXAMPLE USE CASES 6
2.2 SUBSCRIBER PROFILE API 6
2.2.1 Bindings.............................................................................................................. 6
2.2.2 Method Summary: getProfile().............................................................................6
2.2.3 Method Summary: setProfile().............................................................................7
2.2.4 Method Summary: getProfileProperty()...............................................................8
2.2.5 Method Summary: setProfileProperty()...............................................................9
3 WSDL DEFINITION......................................................................................11
4 WORKFLOW................................................................................................12
4.1 VERIFICATION PROCESS 12
4.2 SANDBOX TEST ENVIRONMENT 12
4.3 ACCESSING THE LIVE MESSAGING SERVICES 13
5 EXCEPTIONS..............................................................................................14
6 SAMPLE JAVA APPLICATION CODE.......................................................15
7 QUESTIONS AND FEEDBACK..................................................................17
8 HISTORY......................................................................................................18
APPENDIX – WSDL FILES...................................................................................19
GSMA_SUBSCRIBER_PROFILE_SERVICE_1_0.WSDL 19
GSMA_SUBSCRIBER_PROFILE_INTERFACE_1_0.WSDL 20
PARLAYX_SUB_PROFILE_TYPES_3_0.WSDL 23
PARLAYX_COMMON_FAULTS_2_1.WSDL 24
parlayx_common_types_2_1.xsd 24

48747548.doc Page 3 of 25
GSM Association Confidential Information

References

1. GSMA 3rd Party Access Project,


https://gsma.securespsite.com/access/entry/default.aspx

2. GSMA TWS Developer Portal, <insert url>

3. Open Mobile Alliance, www.openmobilealliance.org

4. Java, java.sun.com

5. Eclipse IDE, www.eclipse.org

6. Apache Axis, ws.apache.org/axis

Terms and Abbreviations

API Application Programming Interface


GSM Global System for Mobile communications
GSMA GSM Association
MDN Mobile Directory Number
Parlay An industry consortium seeking to develop a common application
interface for telecommunications. Note: when used to refer to APIs
‘Parlay’ refers to the base APIs defined by the former Parlay Group now
part of Open Mobile Alliance. For more information go to the OMA Web
site [ref 3].
Parlay X A set of telecommunications Web services defined by the former Parlay
Group now part of Open Mobile Alliance. For more information go to the
OMA Web site [ref 3].
REST REpresentational State Transfer
RI Reference Implementation
SMS Short Message Service
URL Uniform Resource Locator
WSDL Web Services Definition Language

48747548.doc Page 4 of 25
GSM Association Confidential Information

1 Scope
This tutorial details the GSMA Access API definition for the Subscriber Profile Web
Service. It provides an overview of the API, the WSDL for the service, information on how
to use the API including sample code, and also the verification and access workflow.

GSMA Access is an initiative to provide a standard API to allow mobile (and other network)
operators to expose useful network information and capabilities to Web application
developers. It aims to reduce the effort and time needed to create applications and content
that is portable across mobile operators.

The GSMA Access API is intended to complement existing client- and server-side APIs by
providing the missing piece: access to network capabilities and information regardless of
operator.

For a full list of APIs please got to the GSMA 3rd Party Access Project website [ref 1].

1.1 Who should use this tutorial?


The intended audience is Web application developers wishing to access the subscriber
profile capabilities exposed by mobile operators via a common lightweight API; the GSMA
Access API.

1.2 Dependencies and Prerequisites


The consumer of this API must be authenticated according to the GSMA 3rd Party Access
API authentication process. Please see the authentication section of the “Start using the
APIs” <insert link to relevant page>.

To gain verification and access to both sandbox subscriber profile services, the user must
register at the GSMA TWS Developer Portal. Go to <insert link to GSMA TWS Developer
Portal> [ref 2] and register as follows. To access live networks <TBD need to be defined>:
 Click on the Register tab, fill in your details and click Submit.
 A confirmation screen will appear, if the details are correct, click Submit, if not click
Edit and update as necessary.
 An email will be sent to your email address to verify your registration. Click on the
link in the email to validate your email address. You will receive an email saying
that the account is pending.
 Once the email is validated you will receive a further email and also an SMS stating
that you can log in using the username and password you registered.
 Go to the portal and click on the Login link in the top right-hand corner. Enter your
username and password.

48747548.doc Page 5 of 25
GSM Association Confidential Information

2 Subscriber Profile Web Service Access API Overview


The Subscriber Profile Web Service Access API is provided to allow applications to read
and optionally update data in Subscriber Profiles within an operator. Typical cases are to
validate that a Subscriber is adult or not roaming.

2.1 Example Use Cases


1. Age Validation
Alice like to look at a Mobile TV show for adults containing horrifying scenes. The provider
uses the subscriber profile API to check that Alice owing the subscription is adult.

2. Commercial message
A provider of information to Opt In customers used MMS and SMS for the delivery. In the
case a subscriber is in the home network MMS is used but if the subscriber is roaming SMS
is used avoiding extra charges. The service provider used Subscriber Profile to chec if the
subscriber is roaming before pushing the message.

3. Validation of identity and payment


Service Provider are selling goods to a Subscriber, using the Phone number to send
invoice. Service Provider validates that Subscriber address is know and validated and that
there has not been any previous invoice issues.

4. Mood
Service Providers can read and set the mood of the subscriber. Typically can a Subscriber
via a Service Provider or portal change the mood. Other Service Providers can read the
current mood via the Subscriber Profile and use that to send specific messages or to avoid.
Moods can be typically: Happy, Sad, Alone, Going for Party, Open for contact, Like to be
alone, etc.

2.2 Subscriber Profile API


The Subscriber Profile API allows you to get and optionally set Subscriber Profile data. The
getProfile(), setProfile(), getProfileProperty() and setProfileProperty() services are based on
ideas created for the Parlay X standard [ref 3], but so far not standardized. The used set of
methods are a subset of that proposed standard's functionality.
2.2.1 Bindings
This tutorial is for the Subscriber Profile Web Services API, no RESTful API is planned for
Subscriber Profile
2.2.2 Method Summary: getProfile()
The getProfile() method is used to read all data in a specific Subscriber Profile that the
calling Service Provider as access rights for. A successful request results in a set of
property attributes being returned.

Request: getProfile
The input message is derived from the proposed Parlay X standard definition.

Parameter Name Type Optional Description


subscriberID xsd:string Mandatory Defines the Subscriber identity. This is a string field
and is dependent of the operator/country. Typically this

48747548.doc Page 6 of 25
GSM Association Confidential Information

can be a tel URI (IETF RFC 3966).


ProfileID xsd:string Mandatory Defines which profile to read for the defined
Subscriber. This is a string and the profile names are
depending on the operator.

Response: getProfile
The output message adheres to the proposed Parlay X standard.

Parameter Type Optional Description


Name
Result parlayx_sub_profile Mandatory The result contain one property name and it’s
_xsd: corresponding value. The response can contain 1 or
PropertyTuple more resulting value tuples.

Error returns

Service Exceptions from ES 202 391-1 [2]:

 SVC0001: Service error.


 Returned as a generic service error, typically that the service has
intermittent problems. Request can be retried again after some short
period of time.
 SVC0002: Invalid input value.
 There is a problem with the formatting of the SubscriberID or ProfileID.
 SVC9903: Nonexistent subscriber profile.
 The profile or the subscriber identity does not exist.

PolicyException from ES 202 391-1 [2]:

 POL0001: Policy error.


 The policy error is returned if the request breaches any SLA like too many
requests.
 POL0002: Privacy error.
 The privacy error is returned if a Subscriber or Subscriber profile is
requested by the Service Provider that it doesn’t have rights to read, e.g.
a Subscriber that has opted out the usage of his/her data.

2.2.3 Method Summary: setProfile()


The setProfile() method is used to write data to a specific Subscriber Profile that the calling
Service Provider as write access rights for. A successful request results in that the
properties are changed and an empty message is returned.

Request: setProfile (Optional)


The input message is derived from the proposed Parlay X standard definition.

Parameter Name Type Optional Description


subscriberID xsd:string Mandatory Defines the Subscriber identity. This is a string field
and is dependent of the operator/country. Typically this
can be a tel URI (IETF RFC 3966).
ProfileID xsd:string Mandatory Defines which profile to set properties in for the defined
Subscriber. This is a string and the profile names are
depending on the operator.
Properties parlayx_sub_prof Mandatory The properties and the corresponding values to set in

48747548.doc Page 7 of 25
GSM Association Confidential Information

ile_xsd: the profile as a list of Property tuples.


PropertyTuple

Response: setProfile
The output message adheres to the proposed Parlay X standard. This is an empty
message containing no data. Upon any error an error exception is returned see below. The
request is atomic meaning that if one value fails to be set no change will be applied to the
subscriber profile.

Parameter Type Optional Description


Name

Error returns

Service Exceptions from ES 202 391-1 [2]:

 SVC0001: Service error.


 Returned as a generic service error, typically that the service has
intermittent problems. Request can be retried again after some short
period of time.
 SVC0002: Invalid input value.
 There is a problem with the formatting of the SubscriberID or ProfileID.
 SVC9903: Nonexistent subscriber profile.
 The profile or the subscriber identity does not exist.

PolicyException from ES 202 391-1 [2]:

 POL0001: Policy error.


 The policy error is returned if the request breaches any SLA like too many
requests. Also returned if the service provider doesn’t have the rights to
do modifications.
 POL0002: Privacy error.
 The privacy error is returned if a Subscriber or Subscriber profile is
requested to be changed by the Service Provider that it doesn’t have
rights to set, e.g. a Subscriber that has opted out the usage of his/her
data.

2.2.4 Method Summary: getProfileProperty()


The getProfileProperty() method is used to read one property in a specific Subscriber
Profile that the calling Service Provider as access rights for. A successful request results in
the value of the property attribute being returned.

Request: getProfileProperty
The input message is derived from the proposed Parlay X standard definition.

Parameter Name Type Optional Description


subscriberID xsd:string Mandatory Defines the Subscriber identity. This is a string field
and is dependent of the operator/country. Typically this
can be a tel URI (IETF RFC 3966).
ProfileID xsd:string Mandatory Defines which profile to read for the defined
Subscriber. This is a string and the profile names are
depending on the operator.

48747548.doc Page 8 of 25
GSM Association Confidential Information

propertyPathName xsd:string Mandatory The relative property path name to the property to read
within the defined Subscriber Profile.

Response: getProfileProperty
The output message adheres to the proposed Parlay X standard.

Parameter Type Optional Description


Name
result parlayx_sub_profile Mandatory The result contain the requested property name and it’s
_xsd: corresponding value.
PropertyTuple

Error returns

Service Exceptions from ES 202 391-1 [2]:

 SVC0001: Service error.


 Returned as a generic service error, typically that the service has
intermittent problems. Request can be retried again after some short
period of time.
 SVC0002: Invalid input value.
 There is a problem with the formatting of the SubscriberID or ProfileID.
 SVC9903: Nonexistent subscriber profile.
 The profile or the subscriber identity does not exist.
 SVC9905: Nonexistent property.
 The specific property does not exist in this Subscriber Profile

Policy Exceptions from ES 202 391-1 [2]:

 POL0001: Policy error.


 The policy error is returned if the request breaches any SLA like too many
requests.
 POL0002: Privacy error.
 The privacy error is returned if a Subscriber, Subscriber profile or property
value is requested by the Service Provider that it doesn’t have rights to
read, e.g. a Subscriber that has opted out the usage of his/her data.

2.2.5 Method Summary: setProfileProperty()


The setProfileProperty() method is used to write data for a specific property to a specific
Subscriber Profile that the calling Service Provider as write access rights for. A successful
request results in that the property is changed and an empty message is returned.

Request: setProfileProperty (Optional)


The input message is derived from the proposed Parlay X standard definition.

Parameter Name Type Optional Description


subscriberID xsd:string Mandatory Defines the Subscriber identity. This is a string field
and is dependent of the operator/country. Typically this
can be a tel URI (IETF RFC 3966).
ProfileID xsd:string Mandatory Defines which profile to set properties in for the defined
Subscriber. This is a string and the profile names are
depending on the operator.
propertyPathName xsd:string Mandatory The relative property path name to the property to be
updated within the defined Subscriber Profile.
propertyValue xsd:string Mandatory The value to set for the specified Subscriber profile

48747548.doc Page 9 of 25
GSM Association Confidential Information

property.

Response: setProfileProperty
The output message adheres to the proposed Parlay X standard. This is an empty
message containing no data. Upon any error an error exception is returned see below. The
request is atomic meaning that if one value fails to be set no change will be applied to the
subscriber profile.

Parameter Type Optional Description


Name

Error returns

Service Exceptions from ES 202 391-1 [2]:

 SVC0001: Service error.


 Returned as a generic service error, typically that the service has
intermittent problems. Request can be retried again after some short
period of time.
 SVC0002: Invalid input value.
 There is a problem with the formatting of the SubscriberID or ProfileID.
 SVC9903: Nonexistent subscriber profile.
 The profile or the subscriber identity does not exist.
 SVC9905: Nonexistent property.
 The specific property does not exist in this Subscriber Profile

PolicyException from ES 202 391-1 [2]:

 POL0001: Policy error.


 The policy error is returned if the request breaches any SLA like too many
requests. Also returned if the service provider doesn’t have the rights to
do modifications.
 POL0002: Privacy error.
 The privacy error is returned if a Subscriber or Subscriber profile is
requested to be changed by the Service Provider that it doesn’t have
rights to set, e.g. a Subscriber that has opted out the usage of his/her
data.

Go to the GSMA Access API Wiki and navigate to the Subscriber Profile page for more
information.

48747548.doc Page 10 of 25
GSM Association Confidential Information

3 WSDL Definition
The Web Services Definition Language (WSDL) definition for the Message Web Service
Access API is made up of the following files:

GSMA_subscriber_profile_interface_2_3.wsdl
GSMA_subscriber_profile _service_2_3.wsdl
parlayx_common_faults_2_1.wsdl
parlayx_common_types_2_1.xsd

These files are available for download from the GSMA TWS Developer Portal <insert link>.
The content of the files is also listed in the Appendix.

48747548.doc Page 11 of 25
GSM Association Confidential Information

4 Workflow
In order to gain access to the sandbox and the live messaging services the user must first
perform a verification check of their application against an API Reference Implementation
(RI).

4.1 Verification Process


The verification process involves running a successful test case against the RI. This is to
test the integrity of the application’s use of the Access API prior to running against the test
and live environments.

1. Log into the GSMA TWS Developer Portal


Once you have registered and received an email with your login details, log into the
GSMA TWS Developer Portal <insert link>.
2. Retrieve the provisioned endpoint
a. Navigate to the MyDevPortal tab to view your provisioned endpoints.
b. The endpoint required for the certification process is the
ONE_API_SUBSCRIBER_PROFILE URL.
3. Run the subscriberProfile verification test
a. Use the ONE_API_SUBSCRIBER_PROFILE URL in your application to access
the sandbox service.
b. Within your application, populate your <TBD> request with the following data:
i. <TBD> by the Sandbox
c. If the test is successful, <TBD> by the sandbox, should be returned to the
application.
d. If the test is unsuccessful, check the exception thrown against the list of possible
exceptions in section 5 and amend your application accordingly.
4. For support, contact <insert aepona gsma support email address>

4.2 Sandbox Test Environment


Once the verification is complete, contact <insert aepona gsma support email address> to
be provided with access to the sandbox. This will allow you to run your application in a test
environment.

1. Log into the GSMA TWS Developer Portal


a. Once you receive an email stating that the verification process is complete,
log into the GSMA TWS Developer Portal <insert link>.
2. Retrieve the provisioned endpoint
a. Navigate to the MyDevPortal tab to view your provisioned endpoints.
b. The endpoint required for the certification process is the ONE_API_
SUBSCRIBER_PROFILE URL.
3. Test service configuration
a. The messaging service you will test against can be configured for the
following:
i. <TBD> by the sand box.
ii. <TBD> by the sand box.

48747548.doc Page 12 of 25
GSM Association Confidential Information

iii. Subscriber states to throw specific exceptions, i.e., specific Subscriber


and Profile IDs can be configured to throw exceptions, for example
address +447797123456 could be configured to throw a policy
exception.

If you wish to have any of the above configured or for any queries during testing, please
contact <insert aepona gsma support email address>.

4.3 Accessing the Live Messaging Services


Once your testing against the sandbox is complete, contact <insert aepona gsma support
email address> to be provided with access to the live messaging service(s).

1. Log into the GSMA TWS Developer Portal


a. Once you receive an email stating that the live service is available, log into
the GSMA TWS Developer Portal <insert link>.
2. Retrieve the provisioned endpoint
a. Navigate to the MyDevPortal tab to view your provisioned endpoints.
b. The endpoint required for the certification process is the
ONE_API_SUBSCRIBER_PROFILE URL.
3. Live service(s) configuration
a. The live service(s) can be configured in the same way as the test service, see
point 3 above.

If you wish to have any of the above configured or for any queries using the live service,
please contact <insert aepona gsma support email address>.

48747548.doc Page 13 of 25
GSM Association Confidential Information

5 Exceptions
See the API descriptions in Section <TBD> above.

48747548.doc Page 14 of 25
GSM Association Confidential Information

6 Sample Java Application Code


A sample Java [ref 3] application is provided which demonstrates the use of the API. The
application has been developed using the Eclipse IDE [ref 5]. Using Eclipse you can create
Java stubs that your application will use to bind to the service and then add a mainline to
call the methods on the service API. Generating the stubs is easily done using the Apache
Axis WSDL-to-Java [ref 6] tool that comes packaged with Eclipse. The code for the
mainline class is provided below and the full sample application can be downloaded from
the GSMA TWS Developer Portal <insert link>.
package org.gsma.oneapi.sample.applications;

import java.net.MalformedURLException;
import java.net.URL;
import java.rmi.RemoteException;

import org.apache.axis.types.URI;
import org.apache.axis.types.URI.MalformedURIException;
import org.csapi.www.schema.parlayx.common.v2_1.PolicyException;
import org.csapi.www.schema.parlayx.common.v2_1.ServiceException;
import org.csapi.www.wsdl.parlayx.subscriber_profile.v1_0.interface.
GetSusbcriberProfile;
import org.csapi.www.wsdl.parlayx.subscriber_profile.v1_0.service.
GetSusbcriberProfileServiceLocator;

/**
* Get Susbcriber Profile application to retrieve a subscriber profile data
*
*/
public class GetSusbcriberInfoOneApiSampleApplication {

/** The service endpoint to use for Retrieveing subscriber information */


private static final String PROFILE_ENDPOINT =
"http://host:8120/GetSubscriberInformationService/services/GetSubscriberProfile/11
b7cafbedc27dbe57bf5640b10808";

/** The subscriber address to get the profile data from */


private static final String SUBSCRIBER_ID = "tel:+447722";

/** The Profile to get */


private static final String PROFILE =
"Mobile";

public static void main(String[] args) {

try {
GetSusbcriberProfile getSubscriberProfile = new
GetSubscriberProfileServiceLocator().getSusbceiberProfile(new
URL(PROFILE_ENDPOINT));

System.out.println("Attempting to retrieve Subscriber Profile for


"+SUBSCRIBER_ADDRESS);

PropertyTuple propertyTuple = getSubscriberProfile.


getSubscriberProfile(SUBSCRIBER_ID, PROFILE);

System.out.println("Property " + propertyTuple.pathName + “ = ” +


propertyTuple.propertyValue);

} catch (MalformedURLException e) {
System.out.println("A MalformedURLException has occurred. The endpoint
URL used is invalid");
e.printStackTrace();
} catch (javax.xml.rpc.ServiceException e) {
System.out.println("A javax.xml.rpc.ServiceException has occurred. Failed
to send web service request using axis");

48747548.doc Page 15 of 25
GSM Association Confidential Information

e.printStackTrace();
} catch (MalformedURIException e) {
} catch (PolicyException e) {
System.out.println("A TWS policy exception has occurred. Check service
log for details");
e.printStackTrace();
} catch (ServiceException e) {
System.out.println("A TWS service exception has occurred. Check service
log for details");
e.printStackTrace();
} catch (RemoteException e) {
System.out.println("A java.rmi.RemoteException has occurred. Could not
connect to TWS");
e.printStackTrace();
}
}
}

48747548.doc Page 16 of 25
GSM Association Confidential Information

7 Questions And Feedback


Please post any questions and feedback on the GSMA 3rd Party Access Developer Portal
Feedback Forum.

48747548.doc Page 17 of 25
GSM Association Confidential Information

8 History
Document Version Description Date
1.0a Initial draft 08-12-08

48747548.doc Page 18 of 25
GSM Association Confidential Information

Appendix – WSDL Files


GSMA_subscriber_profile_service_1_0.wsdl
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions
name="parlayx_sub_profile_service"
targetNamespace="http://www.csapi.org/wsdl/parlayx/sub_profile/v3_0/service"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://www.csapi.org/wsdl/parlayx/sub_profile/v3_0/service"
xmlns:interface="http://www.csapi.org/wsdl/parlayx/sub_profile/v3_0/interface">

<wsdl:import
namespace="http://www.csapi.org/wsdl/parlayx/sub_profile/v3_0/interface"

location="parlayx_sub_profile_interface_3_0.wsdl"/>

<wsdl:binding name="SubscriberProfileBinding"
type="interface:SubscriberProfile">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>

<wsdl:operation name="getProfile">
<soap:operation soapAction="" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="ServiceException">
<soap:fault name="ServiceException" use="literal"/>
</wsdl:fault>
<wsdl:fault name="PolicyException">
<soap:fault name="PolicyException" use="literal"/>
</wsdl:fault>
</wsdl:operation>

<wsdl:operation name="setProfile">
<soap:operation soapAction="" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="ServiceException">
<soap:fault name="ServiceException" use="literal"/>
</wsdl:fault>
<wsdl:fault name="PolicyException">
<soap:fault name="PolicyException" use="literal"/>
</wsdl:fault>
</wsdl:operation>

<wsdl:operation name="getProfileProperty">
<soap:operation soapAction="" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="ServiceException">
<soap:fault name="ServiceException" use="literal"/>

48747548.doc Page 19 of 25
GSM Association Confidential Information

</wsdl:fault>
<wsdl:fault name="PolicyException">
<soap:fault name="PolicyException" use="literal"/>
</wsdl:fault>
</wsdl:operation>

<wsdl:operation name="setProfileProperty">
<soap:operation soapAction="" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="ServiceException">
<soap:fault name="ServiceException" use="literal"/>
</wsdl:fault>
<wsdl:fault name="PolicyException">
<soap:fault name="PolicyException" use="literal"/>
</wsdl:fault>
</wsdl:operation>

<wsdl:service name="SubscriberProfileService">
<wsdl:port name="SubscriberProfile" binding="tns:SubscriberProfileBinding">
<soap:address
location="http://localhost:9080/SubscriberProfileService/services/SubscriberProfil
e"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>

GSMA_subscriber_profile_interface_1_0.wsdl
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions
name="parlayx_sub_profile_interface"
targetNamespace="http://www.csapi.org/wsdl/parlayx/sub_profile/v3_0/interface"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:parlayx_sub_profile="http://www.csapi.org/wsdl/parlayx/sub_profile/v3_0/inte
rface"

xmlns:parlayx_sub_profile_faults="http://www.csapi.org/wsdl/parlayx/sub_profile/v3
_0/faults"

xmlns:parlayx_common_faults="http://www.csapi.org/wsdl/parlayx/common/v2_0/faults"

xmlns:parlayx_sub_profile_xsd="http://www.csapi.org/schema/parlayx/sub_profile/v3_
0"

xmlns:parlayx_sub_profile_local_xsd="http://www.csapi.org/schema/parlayx/sub_profi
le/v3_0/local">

<wsdl:import
namespace="http://www.csapi.org/wsdl/parlayx/sub_profile/v3_0/faults"

location="parlayx_sub_profile_faults_3_0.wsdl"/>
<wsdl:import namespace="http://www.csapi.org/wsdl/parlayx/common/v2_0/faults"

location="parlayx_common_faults_2_0.wsdl"/>

<wsdl:types>
<xsd:schema elementFormDefault="qualified"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"

targetNamespace="http://www.csapi.org/schema/parlayx/sub_profile/v3_0/local">

48747548.doc Page 20 of 25
GSM Association Confidential Information

<xsd:import
namespace="http://www.csapi.org/schema/parlayx/sub_profile/v3_0"

schemaLocation="parlayx_sub_profile_types_3_0.xsd"/>

<xsd:element name="getProfile"
type="parlayx_sub_profile_local_xsd:getProfile"/>
<xsd:complexType name="getProfile">
<xsd:sequence>
<xsd:element name="subscriberID" type="xsd:string"/>
<xsd:element name="profileID" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>

<xsd:element name="getProfileResponse"
type="parlayx_sub_profile_local_xsd:getProfileResponse"/>
<xsd:complexType name="getProfileResponse">
<xsd:sequence>
<xsd:element name="result"
type="parlayx_sub_profile_xsd:PropertyTuple" minOccurs="1"

maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>

<xsd:element name="setProfile"
type="parlayx_sub_profile_local_xsd:setProfile"/>
<xsd:complexType name="setProfile">
<xsd:sequence>
<xsd:element name="subscriberID" type="xsd:string"/>
<xsd:element name="profileID" type="xsd:string"/>
<xsd:element name="properties"
type="parlayx_sub_profile_xsd:PropertyTuple" minOccurs="1"

maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>

<xsd:element name="setProfileResponse"
type="parlayx_sub_profile_local_xsd:setProfileResponse"/>
<xsd:complexType name="setProfileResponse">
<xsd:sequence/>
</xsd:complexType>

<xsd:element name="getProfileProperty"
type="parlayx_sub_profile_local_xsd:getProfileProperty"/>
<xsd:complexType name="getProfile">
<xsd:sequence>
<xsd:element name="subscriberID" type="xsd:string"/>
<xsd:element name="profileID" type="xsd:string"/>
<xsd:element name="propertyPathName" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>

<xsd:element name="getProfilePropertyResponse"

type="parlayx_sub_profile_local_xsd:getProfilePropertyResponse"/>
<xsd:complexType name="getProfilePropertyResponse">
<xsd:sequence>
<xsd:element name="result"
type="parlayx_sub_profile_xsd:PropertyTuple" minOccurs="1"

maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>

48747548.doc Page 21 of 25
GSM Association Confidential Information

<xsd:element name="setProfileProperty"
type="parlayx_sub_profile_local_xsd:setProfileProperty"/>
<xsd:complexType name="setProfileProperty">
<xsd:sequence>
<xsd:element name="subscriberID" type="xsd:string"/>
<xsd:element name="profileID" type="xsd:string"/>
<xsd:element name="propertyPathName" type="xsd:string"/>
<xsd:element name="propertyValue" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>

<xsd:element name="setProfilePropertyResponse"

type="parlayx_sub_profile_local_xsd:setProfilePropertyResponse"/>
<xsd:complexType name="setProfileResponse">
<xsd:sequence/>
</xsd:complexType>

</xsd:schema>
</wsdl:types>

<wsdl:message name="SubscriberProfile_getProfileRequest">
<wsdl:part name="parameters"
element="parlayx_sub_profile_local_xsd:getProfile"/>
</wsdl:message>

<wsdl:message name="SubscriberProfile_getProfileResponse">
<wsdl:part name="result"
element="parlayx_sub_profile_local_xsd:getProfileResponse"/>
</wsdl:message>

<wsdl:message name="SubscriberProfile_setProfileRequest">
<wsdl:part name="parameters"
element="parlayx_sub_profile_local_xsd:setProfile"/>
</wsdl:message>

<wsdl:message name="SubscriberProfile_setProfileResponse">
<wsdl:part name="result"
element="parlayx_sub_profile_local_xsd:setProfileResponse"/>
</wsdl:message>

<wsdl:message name="SubscriberProfile_getProfilePropertyRequest">
<wsdl:part name="parameters"
element="parlayx_sub_profile_local_xsd:getProfileProperty"/>
</wsdl:message>

<wsdl:message name="SubscriberProfile_getProfilePropertyResponse">
<wsdl:part name="result"
element="parlayx_sub_profile_local_xsd:getProfilePropertyResponse"/>
</wsdl:message>

<wsdl:message name="SubscriberProfile_setProfilePropertyRequest">
<wsdl:part name="parameters"
element="parlayx_sub_profile_local_xsd:setProfileProperty"/>
</wsdl:message>

<wsdl:message name="SubscriberProfile_setProfilePropertyResponse">
<wsdl:part name="result"
element="parlayx_sub_profile_local_xsd:setProfilePropertyResponse"/>
</wsdl:message>

<wsdl:portType name="SubscriberProfile">

<wsdl:operation name="getProfile">
<wsdl:input
message="parlayx_sub_profile:SubscriberProfile_getProfileRequest"/>

48747548.doc Page 22 of 25
GSM Association Confidential Information

<wsdl:output
message="parlayx_sub_profile:SubscriberProfile_getProfileResponse"/>
<wsdl:fault name="ServiceException"
message="parlayx_common_faults:ServiceException"/>
<wsdl:fault name="PolicyException"
message="parlayx_common_faults:PolicyException"/>
</wsdl:operation>

<wsdl:operation name="setProfile">
<wsdl:input
message="parlayx_sub_profile:SubscriberProfile_setProfileRequest"/>
<wsdl:output
message="parlayx_sub_profile:SubscriberProfile_setProfileResponse"/>
<wsdl:fault name="ServiceException"
message="parlayx_common_faults:ServiceException"/>
<wsdl:fault name="PolicyException"
message="parlayx_common_faults:PolicyException"/>
</wsdl:operation>

<wsdl:operation name="getProfileProperty">
<wsdl:input
message="parlayx_sub_profile:SubscriberProfile_getProfilePropertyRequest"/>
<wsdl:output
message="parlayx_sub_profile:SubscriberProfile_getProfilePropertyResponse"/>
<wsdl:fault name="ServiceException"
message="parlayx_common_faults:ServiceException"/>
<wsdl:fault name="PolicyException"
message="parlayx_common_faults:PolicyException"/>
</wsdl:operation>

<wsdl:operation name="setProfileProperty">
<wsdl:input
message="parlayx_sub_profile:SubscriberProfile_setProfilePropertyRequest"/>
<wsdl:output
message="parlayx_sub_profile:SubscriberProfile_setProfilePropertyResponse"/>
<wsdl:fault name="ServiceException"
message="parlayx_common_faults:ServiceException"/>
<wsdl:fault name="PolicyException"
message="parlayx_common_faults:PolicyException"/>
</wsdl:operation>

</wsdl:portType>
</wsdl:definitions>

parlayx_sub_profile_types_3_0.wsdl
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema
targetNamespace="http://www.csapi.org/schema/parlayx/sub_profile/v3_0"

xmlns:parlayx_sub_profile_xsd="http://www.csapi.org/schema/parlayx/sub_profile/v3_
0"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<xsd:complexType name="PropertyTuple">
<xsd:sequence>
<xsd:element name="pathName" type="xsd:string"/>
<xsd:element name="propertyValue" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>

<xsd:complexType name="Filter">
<xsd:sequence>
<xsd:element name="filterCriteria" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>

48747548.doc Page 23 of 25
GSM Association Confidential Information

parlayx_common_faults_2_1.wsdl
<?xml version="1.0" encoding="UTF-8"?>
<!-- April 25, 2007 -->
<wsdl:definitions
name="common_faults"
targetNamespace="http://www.csapi.org/wsdl/parlayx/common/v2_1/faults"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:parlayx_common_xsd="http://www.csapi.org/schema/parlayx/common/v2_1">

<wsdl:types>
<xsd:schema elementFormDefault="qualified">
<xsd:import namespace="http://www.csapi.org/schema/parlayx/common/v2_1"
schemaLocation="parlayx_common_types_2_1.xsd"/>
</xsd:schema>
</wsdl:types>

<wsdl:message name="ServiceException">
<wsdl:part name="ServiceException"
element="parlayx_common_xsd:ServiceException"/>
</wsdl:message>

<wsdl:message name="PolicyException">
<wsdl:part name="PolicyException"
element="parlayx_common_xsd:PolicyException"/>
</wsdl:message>
</wsdl:definitions>

parlayx_common_types_2_1.xsd
<xsd:schema
targetNamespace="http://www.csapi.org/schema/parlayx/common/v2_1"
xmlns:parlayx_common_xsd="http://www.csapi.org/schema/parlayx/common/v2_1"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<xsd:complexType name="TimeMetric">
<xsd:sequence>
<xsd:element name="metric" type="parlayx_common_xsd:TimeMetrics"/>
<xsd:element name="units" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>

<xsd:complexType name="ChargingInformation">
<xsd:sequence>
<xsd:element name="description" type="xsd:string"/>
<xsd:element name="currency" type="xsd:string" minOccurs="0"
maxOccurs="1"/>
<xsd:element name="amount" type="xsd:decimal" minOccurs="0"
maxOccurs="1"/>
<xsd:element name="code" type="xsd:string" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>

<xsd:complexType name="SimpleReference">
<xsd:sequence>
<xsd:element name="endpoint" type="xsd:anyURI"/>
<xsd:element name="interfaceName" type="xsd:string"/>
<xsd:element name="correlator" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>

<xsd:complexType name="ServiceError">
<xsd:sequence>
<xsd:element name="messageId" type="xsd:string"/>
<xsd:element name="text" type="xsd:string"/>
<xsd:element name="variables" type="xsd:string" minOccurs="0"

48747548.doc Page 24 of 25
GSM Association Confidential Information

maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>

<xsd:complexType name="TextInformation">
<xsd:sequence>
<xsd:element name="text" type="xsd:string"/>
<xsd:element name="language" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>

<xsd:simpleType name="AnnouncementType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="AnnouncementId"/>
<xsd:enumeration value="Text"/>
<xsd:enumeration value="VoiceXml"/>
<xsd:enumeration value="Audio"/>
</xsd:restriction>
</xsd:simpleType>

<xsd:complexType name="AnnouncementContents">
<xsd:sequence>
<xsd:element name="UnionElement"
type="parlayx_common_xsd:AnnouncementType"/>
<xsd:element name="AnnouncementId" type="xsd:int" minOccurs="0"
maxOccurs="1"/>
<xsd:element name="Text" type="parlayx_common_xsd:TextInformation"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="VoiceXml" type="xsd:anyURI" minOccurs="0"
maxOccurs="1"/>
<xsd:element name="Audio" type="xsd:anyURI" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>

<xsd:simpleType name="TimeMetrics">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Millisecond"/>
<xsd:enumeration value="Second"/>
<xsd:enumeration value="Minute"/>
<xsd:enumeration value="Hour"/>
<xsd:enumeration value="Day"/>
<xsd:enumeration value="Week"/>
<xsd:enumeration value="Month"/>
<xsd:enumeration value="Year"/>
</xsd:restriction>
</xsd:simpleType>

<xsd:element name="ServiceException"
type="parlayx_common_xsd:ServiceException"/>
<xsd:complexType name="ServiceException">
<xsd:sequence>
<xsd:element name="messageId" type="xsd:string"/>
<xsd:element name="text" type="xsd:string"/>
<xsd:element name="variables" type="xsd:string" minOccurs="0"
maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>

<xsd:element name="PolicyException" type="parlayx_common_xsd:PolicyException"/>


<xsd:complexType name="PolicyException">
<xsd:sequence>
<xsd:element name="messageId" type="xsd:string"/>
<xsd:element name="text" type="xsd:string"/>
<xsd:element name="variables" type="xsd:string" minOccurs="0"
maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>

48747548.doc Page 25 of 25

Potrebbero piacerti anche