# Application Development Guide

# Extended Web Services Subscriber Profile

The Extended Web Services Subscriber Profile Web Service allows an application to get subscriber-specific data from data sources within the network operator’s domain.

Examples of data sources are subscriber databases containing information about terminal types in use, preferred language, and currency types. This information can be used by applications in order to control rendering options for rich media, charging information, and the language to be used in voice and text interaction with the end-user.

The interface is built around a model where the data can be retrieved in two different ways:

- Individual attributes, identified using a path.
- A collection of attributes.

The attributes are keyed on a subscriber ID that uniquely identifies the subscriber for whom the attributes are valid or by an address that uniquely identifies the terminal for which the attributes are valid. An attribute is identified by a path name, which corresponds to a specific property. The following is an example of a path name:

`serviceName/accessControlId/accessControlId`

The syntax for the path is similar to relative file system paths in UNIX.

A collection of attributes is specified in a subscriber profile filter for the application or the service provider. Only allowed attributes, as specified in the filter, are returned.

The returned attributes are returned in the form of name-value pairs, or property tuples, where the name is expressed as a path name with a associated property value.

The interface is based on a proposal for a Parlay X Subscriber Profile Web Service interface.

## Namespaces

The SubscriberProfile interface and service use the namespaces:

- http://www.bea.com/wlcp/wlng/wsdl/ews/subscriber_profile/interface
- http://www.bea.com/wlcp/wlng/wsdl/ews/subscriber_profile/service

The data types are defined in the namespace:

- http://www.bea.com/wlcp/wlng/schema/ews/subscriber_profile

In addition, Extended Web Services Subscriber Profile uses definitions common for all Extended Web Services interfaces:

- The datatypes are defined in the namespace:

- http://www.bea.com/wlcp/wlng/schema/ews/common

- The faults are defined in the namespace:

- http://www.bea.com/wlcp/wlng/wsdl/ews/common/faults

## Endpoint

The endpoint for the PushMessage interface is: `http://<host>:<port>/ews/subscriber_profile/SubscriberProfile`

Where host and port depend on the Oracle Communications Services Gatekeeper deployment.

## Address schemes

Table 7-1 Supported address schemes
Address scheme | Valid for Communication service
--- | ---
tel | Extended Web Services Subscriber profile for LDAPv3
id | Extended Web Services Subscriber profile for LDAPv3
imsi | Extended Web Services Subscriber profile for LDAPv3
ipv4 | Extended Web Services Subscriber profile for LDAPv3

## XML Schema data type definition

The following data structures are used in the Extended Web Services Subscriber Profile Web Service.

### PropertyTuple structure

Defines the response that the Oracle Communications Services Gatekeeper returns from Operation: get and Operation: getProfile.

Element Name | Element type | Optional | Description
--- | --- | --- | ---
pathName | xsd:string | N | The key of the name-value pair. Expressed as a relative UNIX path. Example: `serviceName/accessControlId/accessControlId`
propertyValue | xsd:string | N | The value associated with the key.

## Web Service interface description

The following describes the interfaces and operations that are available in the Extended Web Subscriber Profile Web Service.

### Interface: SubscriberProfile

Operations to obtain specific subscriber profile attributes and operations to obtain a set of profile properties grouped together in a profile.

#### Operation: get

Gets specific subscriber profile attributes. The requested attributes are identified by the pathNames parameter, and the possible values are restricted by the configured capabilities of the underlying data source. The allowed path name values are also restricted individually per service provider and application in the SLA.

##### Input message: get

Part name | Part type | Optional | Description
--- | --- | --- | ---
address | xsd:anyURI | N | Identity to get profile attributes for.
pathNames | xsd:string [1..unbounded] | N | Requested subscriber properties. Expressed as a relative UNIX path. Example: `serviceName/accessControlId/accessControlId`

##### Output message: getResponse

Part name | Part type | Optional | Description
--- | --- | --- | ---
properties | PropertyTuple [1..unbounded] | N | All retrieved subscription property name and value pairs which are requested by application and allowed by the usage policies as specified in a filter. See PropertyTuple structure.

##### Referenced faults

Table 7-2 Exceptions and error codes
Exception | Error code | Reason/Action
--- | --- | ---
ESVC0001 | WNG000002 | Internal problem in Oracle Communications Services Gatekeeper. Contact Oracle Communications Services Gatekeeper administrator.
ESVC0001 | SP000001 | Internal problem in Oracle Communications Services Gatekeeper. The LDAP connection is not working. There might be a configuration error for with the underlying LDAP server or a network error. Contact Oracle Communications Services Gatekeeper administrator.
ESVC0001 | SP000002 | Internal problem in Oracle Communications Services Gatekeeper. LDAP operation failed. Contact Oracle Communications Services Gatekeeper administrator.
ESVC0001 | SP000003 | Internal problem in Oracle Communications Services Gatekeeper. Contact Oracle Communications Services Gatekeeper administrator.
ESVC0001 | SP000004 | Internal problem in Oracle Communications Services Gatekeeper. Contact Oracle Communications Services Gatekeeper administrator.

#### Operation: getProfile

Gets a set of profile properties grouped together in a profile identified by a certain profile ID.

##### Input message: getProfile

Part name | Part type | Optional | Description
--- | --- | --- | ---
subscriberID | xsd:string | N | Identity to get profile attributes for.
profileID | xsd:string | N | Identity of the profile to get.

Profile ID is ignored when connecting the to the network using the LDAPv3 network protocol plug-in. The collection of attributes that identifies the profile are provisioned as filters.

##### Output message: getResponse

Part name | Part type | Optional | Description
--- | --- | --- | ---
properties | PropertyTuple [1..unbounded] | N | All retrieved subscription property name and value pairs which are requested by application and allowed by the usage policies as specified in a filter. See PropertyTuple structure.

##### Referenced faults

Table 7-3 exceptions and error codes
Exception | Error code | Reason/Action
--- | --- | ---
SVC0001 | WNG-000002 | Internal problem in Oracle Communications Services Gatekeeper. Contact Oracle Communications Services Gatekeeper administrator.
SVC0001 | SP-000001 | Internal problem in Oracle Communications Services Gatekeeper. The LDAP connection is not working. There might be a configuration error for with the underlying LDAP server or a network error. Contact Oracle Communications Services Gatekeeper administrator.
SVC0001 | SP-000002 | Internal problem in Oracle Communications Services Gatekeeper. LDAP operation failed. Contact Oracle Communications Services Gatekeeper administrator.
SVC0001 | SP-000003 | Internal problem in Oracle Communications Services Gatekeeper. Contact Oracle Communications Services Gatekeeper administrator.
SVC0001 | SP-000004 | Internal problem in Oracle Communications Services Gatekeeper. Contact Oracle Communications Services Gatekeeper administrator.
SVC0001 | PLG-000004 | General plug-in routing error

## WSDLs

The document/literal WSDL representation of the SubscriberProfile interface can be retrieved from the Web Services endpoint, see Endpoint, or:

    http://<host>:<port>/ews/subscriber_profile/SubscriberProfile?WSDL

    http://<host>:<port>/ews/subscriber_profile/SubscriberProfile?WSDL/ews_subscriber_profile_interface.wsdl

    http://<host>:<port>/ews/subscriber_profile/SubscriberProfile?WSDL/ews_common_types.xsd

Where host and port depend on the Oracle Communications Services Gatekeeper deployment.