SOAP Notification Interface Description
Ericsson Service-Aware Policy Controller

Contents

1Introduction
1.1Document Purpose and Scope
1.2Revision Information
1.3Concepts

2

Overview

3

SOAP Protocol
3.1SOAP Message Structure

4

Notification WSDL Data Structures
4.1Envelope XML Elements
4.2Header XML Elements
4.3Body XML Elements

5

Bindings
5.1SOAP HTTP Request
5.2SOAP HTTP Answer

6

Error Handling

7

XML Schemas and WSDL

8

Message Examples

Glossary

Reference List

1   Introduction

1.1   Document Purpose and Scope

This document is a description of the SOAP interface offered by the SAPC to other network elements (such as an external database) to receive notifications about data changes.

This document only applies when the SAPC subscriber data is stored in an external database.

1.2   Revision Information

Rev. A This is the first release of this document.
Rev. B Other than editorial changes, this document has been revised as follows:
  • Adding information about SAPC behaviour when HTTP 500 Internal Server Error is sent.

1.3   Concepts

Directory Information Tree Tree structure where a set of Lightweight Directory Access Protocol (LDAP) entries are hierarchically organized (see Reference [4]).
LDAP Attribute It holds information about the object that the LDAP entry represents.
Original Distinguished Name It is the comma-separated list of the object Relative Distinguished Name (RDN) and its parents RDNs all the way up to the top of the object hierarchy, exactly as they were provisioned.
Relative Distinguished Name It is the name and the value (key) of an object distinguished attribute.
XML Attribute Attributes are used to specify additional information about the element. It may help to think of attributes as a means of specializing generic elements to fit your needs. An attribute for an element is displayed within the opening tag. The syntax for including an attribute in an element is: <element attributeName=value>.
XML Element Elements are used to classify data in an Extensible Markup Language (XML) document so that the data becomes "self-explanatory”. Opening (<element>) and closing tags (</element>) represent the start and end of an element.

2   Overview

External database notifies the SAPC about changes of the SAPC subscriber-related data held in the external database by using the SOAP notification interface provided by the SAPC.

Figure 1   The SAPC SOAP Notification from External Database

The notification interface offered by the SAPC is based on Simple Object Access Protocol (SOAP), Reference [1].

The transport protocol used to carry the SOAP notification messages is the Hypertext Transfer Protocol (HTTP), Reference [2].

3   SOAP Protocol

SOAP is a communication protocol between applications that provides a simple and lightweight mechanism for exchanging structured and typed information in a decentralized and distributed environment based on XML.

3.1   SOAP Message Structure

A SOAP message is an XML document that consists of an optional SOAP header and a mandatory SOAP body, within an overall mandatory SOAP envelope.

4   Notification WSDL Data Structures

This section describes the XML data structures used.

Note:  
XML elements and attributes are case-sensitive.

4.1   Envelope XML Elements

There is no specific information to be included in the SOAP Envelope but the specified in Reference [1].

4.2   Header XML Elements

No specific treatment of the SOAP Header element is defined for notifications towards the SAPC. If received, the SAPC shall behave as specified in Reference [1].

4.3   Body XML Elements

4.3.1   Notification Request Messages

The root of the SOAP Body for Notification Request messages is a notify XML element, composed of the following XML elements:

Note:  
There is also an Extension XML element for future purposes, but the SAPC does not use it. It is ignored if received.

Next figure shows the main information elements:

Figure 2   NotificationService Data Elements

4.3.1.1   notificationEvent

It is an XML string that indicates the purpose of the notification. It is mandatory in SOAP notifications towards the SAPC.

The SAPC supports the following values:

4.3.1.2   additionalInformation

It is a structure providing relevant information for the handling of the notification. It is optional and can be used to convey for example identifiers and location information of the subscriber or users subject of the notification event. There may be multiple instances of this XML element present in the notification request with the restriction that all the instances refer to the same subscriber.

It is composed of series of ldapAttribute XML elements and the XML attributes shown in the following table:

Table 1    additionalInformation XML Attributes

XML
Attributes

Type

Required

Description

dN

String

Mandatory

It contains the provisioned Distinguished Name of the LDAP entry

4.3.1.2.1   ldapAttribute

It is a structure representing an LDAP attribute related to the subscriber or users subject of the notification event.

The following table contains the XML attributes that can be set in it:

Table 2    ldapAttribute XML Attributes

XML
Attributes

Type

Required

Description

ldapAttributeName

String

Mandatory

It contains the name of the LDAP attribute.

binary

Boolean

Optional

For binary LDAP attributes (the attribute contains binary values coded in base64), its value is "true" or "yes"


Default value (when it is not present) is "false" or "no"

ldapAttribute is composed of a series of ldapAttributeValue XML elements.

ldapAttributeValue

XML string containing the value of the attribute. For multivalued LDAP attributes, there can be a series of ldapAttributeValue.

4.3.1.3   modificationInformation

It is a structure representing the LDAP object instance whose modification triggered the notification event.

It is mandatory for ProvisioningEvent notifications.

If the SAPC receives multiple instances of this element, the SAPC processes them in the received order. If the processing of all them works fine, the SAPC returns success. In case one of them results in a failure, the SAPC returns an error (Section 6), and the SAPC does not continue processing the rest of instances.

It consists of a series of affectedLdapAttributes XML elements and the XML attributes shown in the following table:

Table 3    modificationInformation XML Attributes

XML
Attributes

Type

Required

Description

dN

String

Mandatory

It stores the Distinguished Name of the LDAP object


If the DN is not associated to a subscriber, the SAPC returns an error (see Section 6).

operation

String

Optional

It identifies the LDAP operation triggering the notification.


Values:


  • create

  • modify

  • delete


If this attribute is not present, the SAPC assumes modify value.


In Ericsson UDC solution, the SAPC decides the value for this attribute using the procedure explained in Integration in User Data Consolidation.

4.3.1.3.1   affectedLdapAttribute

It is a structure representing the LDAP attribute whose modification triggered the event. The following table contains the XML attributes that can be set in it:

Table 4    affectedLdapAttribute XML Attributes

XML
Attributes

Type

Required

Description

ldapAttributeName

String

Mandatory

It stores the name of the LDAP attribute

modification

String

Optional

It identifies the type of modification.


Values:


  • add

  • remove

  • replace

affectedLdapAttribute consists of the ordered sequence of:

For multivalued LDAP attributes, a series of oldLdapAttributeValue and/or newLdapAttributeValue may be present including all the attribute values before and after the event which triggered the notification.

Table 5    affectedLdapAttribute XML Elements

XML Element

Description

oldLdapAttributeValue

XML string storing the attribute value before the modification took place. It is only applicable for an LDAP modify or an LDAP delete.

newLdapAttributeValue

XML string storing the attribute value after the modification took place. It is only applicable for an LDAP modify or an LDAP add.

4.3.2   SOAP Notification Response Messages

For successful SOAP Notification Response messages, the root of the SOAP body is an empty notificationResponse XML element.

For unsuccessful SOAP Notification Response messages, the root of the SOAP body is a SOAP Fault XML element with the corresponding SOAP Fault Code as defined in Reference [1].

5   Bindings

The transport protocol used to carry SOAP messages is the Hypertext Transfer Protocol (HTTP). The HTTP request/response message model is followed as defined in Reference [2], providing SOAP request parameters in an HTTP request and SOAP response parameters in HTTP response. The only supported binding to carry the SOAP messages is the HTTP POST message request and its answer.

The HTTP content-type entity header must be always set to "text/xml".

The SOAPAction HTTP request header field is received as part of the HTTP request.

SOAP HTTP follows the semantics of the HTTP Status codes defined in Reference [2] for communicating status information in HTTP.

5.1   SOAP HTTP Request

The general format of the HTTP request is the following:

Request=

Request-Method= POST


Request URI: requested-web-service


Request Version: HTTP/1.1


Content-Length: <length>


Content-Type: text/xml


< message-body>

requested-web-service contains the Uniform Resource Locator (URL)-path of the SOAP server managing the notifications request. It is the following:

<VIP for Ext-DB>:8080/sapc/v1/notifications

For more information about the possible HTTP headers, see Reference [2].

The information to include in the different HTTP headers to carry a SOAP message in the HTTP request is specified in Reference [1]. The SOAPAction HTTP request header field (specific for SOAP) is defined as mandatory in Reference [1], however the SAPC ignores its value.

5.2   SOAP HTTP Answer

The general format of the HTTP answer is the following:

<Response>::=

HTTP/1.1


Response Code: <Result>


Content-Type: text/xml


< message-body >

For more information about the possible HTTP headers to be defined in the request, see Reference [2].

The message body contains a SOAP message including the envelope and the body. If a header was present in the request, the SOAP message of the SOAP HTTP answer also contains a header.

The following HTTP Status codes defined in Reference [2] with their corresponding Reason-Phrase can be sent by the SAPC:

Other Status Codes related to HTTP protocol errors could be also sent by the SAPC, for more information see Reference [2]. In these cases, no SOAP message is included in the response.

6   Error Handling

The SAPC can return the following errors within SOAP Responses:

Table 6    Application Errors

SOAP faultcode

SOAP faultstring

SOAP detail

Description

soap:Client

Error from client

-

An invalid SOAP Request is received.

soap:Client

Error from client

NotificationEventType '<event>' not supported

The value received in notificationEvent is not supported.

soap:Client

Error from client

Unknown Object in dN='<dn>'

Unknown object received within dN.

soap:Server

Error from server

Notification request is received, but reauthorizations are disabled.

The sending of subscriber reauthorizations to the traffic gateway is disabled in the SAPC.

7   XML Schemas and WSDL

The WSDL including the XML schemas defined for the SOAP notification service, can be get in the following URL:


<VIP for Ext-DB>:8080/sapc/v1/notifications?wsdl

8   Message Examples

Example of Notification SOAP Request

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
   xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
   xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns:ns1="http://schemas.ericsson.com/udc/1.0/"
   xmlns:ns2="http://schemas.ericsson.com/udc/1.0/types/">
 <SOAP-ENV:Body>
     <ns2:notify>
       <notificationEvent>provisioningEvent</notificationEvent>
       <modificationInformation ns2:dN="serv=PCRF,mscId=111115202550,ou=multiSCs,dc=o,dc=com">
	       <affectedLdapAttribute ns2:ldapAttributeName="WlServ" ns2:modification="replace" ns2:binary="false">
	           <oldLdapAttributeValue>Internet</oldLdapAttributeValue>
	           <newLdapAttributeValue>Chat</newLdapAttributeValue>
	        </affectedLdapAttribute>
	      </modificationInformation>
     </ns2:notify>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Example of Successful SOAP Response returned by the SAPC

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
  xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\"
  xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:ns1="http://schemas.ericsson.com/udc/1.0/" 
  xmlns:ns2="http://schemas.ericsson.com/udc/1.0/types/">
<SOAP-ENV:Header></SOAP-ENV:Header>
<SOAP-ENV:Body>
   <ns2:notifyResponse></ns2:notifyResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Example of Erroneous SOAP Response returned by the SAPC

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
  xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\"
  xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:ns1="http://schemas.ericsson.com/udc/1.0/" 
  xmlns:ns2="http://schemas.ericsson.com/udc/1.0/types/">
<SOAP-ENV:Body>
   <SOAP-ENV:Fault xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
     <faultcode>soap:Server</faultcode>
     <faultstring>Error from server</faultstring>
     <detail>Notification request is received, but reauthorizations are disabled.</detail>
   <SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

SOAP HTTP Answer Example

HTTP/1.1 200 OK
Server: gSOAP/2.8
Content-Type: text/xml; charset=utf-8
Content-Length: 508
Connection: keep-alive

Glossary

DN
Distinguish Name
 
HTTP
Hypertext Transfer Protocol
 
IETF
Internet Engineering Task Force
 
IP
Internet Protocol
 
LDAP
Lightweight Directory Access Protocol
 
SAPC
Service Aware Policy Controller
 
RFC
Request for Comments
 
SOAP
Simple Object Access Protocol
 
URI
Uniform Resource Identifier
 
URL
Uniform Resource Locator
 
UTF
Unicode Transformation Format
 
XML
Extensible Markup Language
 
WSDL
Web Services Description Language

Reference List

Standards
[1] Simple Object Access Protocol (SOAP) 1.1, 2000–08, W3C SOAP/1.1 Note
[2] Hypertext Transfer Protocol -- HTTP/1.1, 1999-06, RFC 2616
[3] UTF-8, a transformation format of ISO 10646, 1998-01, RFC 2279
[4] Lightweight Directory Access Protocol (LDAP): Directory Information Models, 2006-06, RFC 4512
[5] The Base16, Base32, and Base64 Data Encodings, 2006-10, RFC 4648
[6] W3C XML Schema Definition Language (XSDL) 1.1 Part 1: Structures, 2007-30, W3C Working Draft