1 SOAP Notification Interface Overview
The SOAP interface offered by the SAPC to other network elements (such as an external database) is used to receive notifications about data changes when the SAPC subscriber data is stored only in an external database.
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.
The notification interface offered by the SAPC is based on Simple Object Access Protocol (SOAP).
The transport protocol used to carry the SOAP notification messages is the Hypertext Transfer Protocol (HTTP).
2 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 Notification WSDL Data Structures
This section describes the XML data structures used.
| Note: |
XML elements and attributes are case-sensitive. |
3.1 Envelope XML Elements
There is no specific information to be included in the SOAP Envelope but the specified in Simple Object Access Protocol (SOAP) 1.1 - W3C SOAP/1.1 Note.
3.3 Body XML Elements
3.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:
3.3.1.1 notificationEvent
3.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:
|
XMLAttributes |
Type |
Required |
Description |
|---|---|---|---|
|
dN |
String |
Mandatory |
It contains the provisioned Distinguished Name of the LDAP entry |
3.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:
|
XMLAttributes |
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.
3.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 (SOAP Notification Error Handling), 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:
|
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 SOAP Notification Error Handling). |
|
operation |
String |
Optional |
It identifies the LDAP operation triggering the notification. Values:
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. |
3.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:
|
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:
|
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.
|
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. |
3.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 Simple Object Access Protocol (SOAP) 1.1 - W3C SOAP/1.1 Note.
4 SOAP 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 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 Hypertext Transfer Protocol -- HTTP/1.1 - RFC 2616 for communicating status information in HTTP.
4.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 Hypertext Transfer Protocol -- HTTP/1.1 - RFC 2616.
The information to include in the different HTTP headers to carry a SOAP message in the HTTP request is specified in Simple Object Access Protocol (SOAP) 1.1, 2000–08, W3C SOAP/1.1 Note. The SOAPAction HTTP request header field (specific for SOAP) is defined as mandatory in Simple Object Access Protocol (SOAP) 1.1, 2000–08, W3C SOAP/1.1 Note, however the SAPC ignores its value.
4.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 Hypertext Transfer Protocol -- HTTP/1.1 - RFC 2616.
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 Hypertext Transfer Protocol -- HTTP/1.1 - RFC 2616 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 Hypertext Transfer Protocol -- HTTP/1.1 - RFC 2616. In these cases, no SOAP message is included in the response.
5 SOAP Notification Error Handling
The SAPC can return the following errors within SOAP Responses:
|
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. |
|
soap:Server |
Error from server |
Server overloaded |
The SAPC is overloaded. The SOAP notification request does not proceed. |
7 SOAP Notification Message Examples
7.1 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>
7.2 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>
7.3 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>
7.4 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
8 Reference List
-
Simple Object Access Protocol (SOAP) 1.1 - W3C SOAP/1.1 Note
-
Hypertext Transfer Protocol -- HTTP/1.1 - RFC 2616
-
UTF-8, a transformation format of ISO 10646 - RFC 2279
-
Lightweight Directory Access Protocol (LDAP): Directory Information Models - RFC 4512
-
The Base16, Base32, and Base64 Data Encodings - RFC 4648
-
W3C XML Schema Definition Language (XSDL) 1.1 Part 1: Structures- W3C Working Draft

Contents