Documente Academic
Documente Profesional
Documente Cultură
0_00
Process Layer Interface Description
All rights reserved. This document is protected by copyright law and may not be reprinted, reproduced, or utilised in whole or in part by any
electronic, mechanical, or other means without the prior written consent of LogicaCMG Wireless Networks.
The information in this document is provided on an as is basis and is subject to change without further notice and cannot be construed as a
commitment by LogicaCMG Wireless Networks Wireless Networks. Although every precaution has been taken in the preparation of this
document, LogicaCMG Wireless Networks Wireless Networks assumes no responsibility or liability for any errors or omissions whatsoever, that
may appear in this document. Neither is any liability assumed for damages resulting from the use of the information contained herein.
The products mentioned in this document are identified by the names, trademarks, service marks and logos of their respective companies or
organisations and may not be used in any advertising or publicity or in any other way whatsoever without the prior written consent of those
companies or organisations.
Table of Contents
Preface ...................................................................................................................... ix
1 Introduction......................................................................................................... 1
1.1 What is uPower?.................................................................................................................... 1
1.2 What process layer interface provides?................................................................................. 1
1.3 Data Flow Across the Interface.............................................................................................. 1
Abbreviations .......................................................................................................... 84
Glossary................................................................................................................... 85
References............................................................................................................... 87
Purpose
The purpose of this document is to describe the details of XML based interface provided by
the uPower process layer for the process layer clients to communicate.
Audience
The target audience of this document is system integrators and third party software
developers involved in developing process layer custom client (presentation layer). The
reader of this document is expected to have a good knowledge of:
Scope
The scope of the document is to provide an introduction to the uPower process layer and to
describe the interface it provides for provisioning needs of LogicaCMG products.
Organisation
This document is organised in 4 chapters and an appendix.
The second chapter focuses on the description of the interface provided by the process
layer. It describes in details the various elements (feature, request, response XMLs) of
process layer interface, provides examples of different requests/responses.
The third chapter describes the details on what functionality the transport layer should
provided to facilitate the presentation-process layer communication.
Appendix A provides a detailed discussion of feature and request XMLs for some important
operations.
<courier> Serves as a placeholder for variable Use the file name <entity>.cfg for...
text that the user will replace as
appropriate to its context.
- Bridges two keystrokes that should be If Ctrl-C does not work, use Ctrl-
pressed simultaneously. Alt-Del.
The interface facilitates Login, session maintenance, and Logout of the Subscriber
or Administrator using uPower. This allows the Process Layer to maintain multiple
simultaneous sessions. The interface utilizes an open-standard syntax, allowing
Service Providers or System Integrators to develop their own Presentation Layers
that work with the Process Layer.
The interface allows more than one Presentation Layer communicating with one
process layer.
The interface is based on Features, which are logical groupings of LDAP attributes.
The user (Administrator or Subscriber) can access the uPower Subscriber administration
system using a Client Browser (say Netscape) by an URL, which actually calls the uPower
Presentation Layer script. The Presentation Layer will perform a preliminary data validation
on the HTML form data. Depending on the screen from which the user is posting the
request, the Presentation Layer will form a Request XML document using the form data and
The Request documents are transmitted via HTTP POST operations. Upon receipt of the
POST operation, the Apache web server instantiates the Process Layer script. This instance
of the Process Layer echoes back the corresponding Response(s) over the socket opened
for the POST. In this manner, the socket remains open until the Process Layer has
complete (or aborted) the requested operation(s). Use of the HTTP POST operation allows
the Presentation Layer to be implemented in any manner, ranging from persistent compiled
GUI applications (C++, Visual Basic, etc.) to web scripts (PHP, Tcl, etc.) to automated
provisioning systems for large-scale installations.
The following figure shows various layers in the uPower architecture and their interaction.
Client Workstation
UNIX Server1
hosting Web
Server1
Some other
LDAP (custom) database
IMAP
2 <Subsystem> Process Layer Interface Description<Document Type> 2007 LogicaCMG Wireless Networks
2 Process Layer Interface Description
2.1 Introduction
Feature, Request and Response XMLs are important elements of process layer interface.
Presentation and process layers communicate with each other through the exchange of
request and response XMLs, where as the feature XML determines the functional scope of
the request. This chapter provides a detailed description of these XMLs with examples of
each.
A custom presentation layer developer should install the standard uPower presentation layer
and run it in debug mode to understand the details of communication between presentation
and process layer.
A logical group of attributes from the LDAP Directory Server accessed by the
LogicaCMG applications. The attributes may be stored under various Distinguished
Names. Any one attribute may be included in multiple Feature Definitions. For the
attributes validation rules can be defined, if defined these override the global rules
for this attribute only for this feature.
The feature XML are packaged in source form and reside typically in the
/home2/spmaster/webapps/upower/XmlDocs/Features directory. Presentation layer
developer should check the available features in this directory and also take note of the
required/allowed attributes by each feature.
<!DOCTYPE FEATURE [
<!ELEMENT FEATURE
(OPERATION,RECORD_TYPE*,ATTRIBUTE*,QUERY*,DELETE_RECORD*)>
<!ELEMENT ATTRIBUTE (VALIDATION*)>
<!ELEMENT VALIDATION (CONSTRUCTATTRVAL*)>
<!ELEMENT CONSTRUCTATTRVAL (ATTRVALPART+)>
<!ELEMENT ATTRVALPART (EMPTY)>
<!ELEMENT OPERATION (EMPTY)>
<!ELEMENT ERRMSGS (GENERIC_SUCCESS_MSG, GENERIC_FAILURE_MSG)>
<!ELEMENT GENERIC_SUCCESS_MSG (EMPTY)>
<!ELEMENT GENERIC_FAILURE_MSG (EMPTY)>
<!ELEMENT QUERY (EMPTY)>
<!ELEMENT DELETE_RECORD (DELETE_ATTR+|DELETE_ALL)>
<!ELEMENT DELETE_ATTR (EMPTY)>
<!ELEMENT DELETE_ALL (EMPTY)>
]>
4 <Subsystem> Process Layer Interface Description<Document Type> 2007 LogicaCMG Wireless Networks
Discussion:
It is not necessary to know all the elements in the above DTD to use the interface. Some
information in the feature XML is for the process layer internal use. This discussion includes
information about the feature XML relevant to use the interface.
Element <FEATURE>
Element <ATTRIBUTE>
The attribute name generally corresponds to the name of an LDAP attribute. However,
there are two exceptions:
Sometimes the internal attribute name specified in the Feature documents is different than
the physical storage (LDAP) attribute name. The LDAPAttributeList.tab file defines the
mapping. Refer to Chapter 2.7 for details of LDAPAttributeList.tab file.
Some Feature attributes do not correspond to any LDAP attribute, but rather serve as an
input parameter to the Process Layer.
The attribute required specifies if the LDAP attribute specified by name is required
(value=1) to process the Request. If a Request is missing a required attribute, the
Process Layer will reject the Request.
The attributes loguser and logprefix are used by process layer for event logging.
Element <VALIDATION>
The validation element specifies the validation that needs to occur for the specified attribute.
For example, in the feature xml file when the following validation exists
Element <QUERY>
The query element specifies the queries required to be run for the feature. The Presentation
Layer should run these queries before administering the Feature. These queries will return
necessary background data for the Feature.
The query attribute name specifies a standard query recognized by the Process Layer.
For example, GETCOSLIST will return a list of the COS.
Element <DELETE_RECORD>
Element <DELETE_ATTR>
For example:
specifies that the attribute mailhost should be deleted only if deleteuonesubandimap is set
to yes in the request. deleteuonesubandimap should be an allowed attribute by the feature.
Element <DELETE_ALL>
Element <FEATURE>
The attributes PRE_PROC and POST_PROC specify the names of the process layer
procedures for the feature. These are for process layer internal use.
Element <OPERATION>
6 <Subsystem> Process Layer Interface Description<Document Type> 2007 LogicaCMG Wireless Networks
The attribute type specifies the type of operation associated with this Feature. The allowed
values are add OR modify OR delete. The operation type must be defined for each
feature.
Element <RECORD_TYPE>
The attribute type specifies a data record type related to this Feature. A record type is
defined according to application logic, not necessarily physical storage.
Element <VALIDATION>
Validation rules can be defined for each element using this sub-element of ATTRIBUTE.
These rules if defined, override all other rules defined in the validation rules xml document
and attribute definition xml documents. Process layer to validate the data in the request
uses the validation rules. A Presentation layer would not typically use this information.
These elements define the validation rules and are used internally by the process layer.
The element <ERRMSGS> defines the generic success and failure messages for the
feature. The feature document contains only the error codes for these messages. The text
for the error messages is defined in the error message file. Process layer sends this
code/message text in case of failure along with specific error messages in case of failure.
Following block shows the addsub_one feature XML as an example of the DTD discussed
above:
A new process layer request type called grouped request was introduced in C12_00
release. The grouped request semantics are discussed in details in the process layer
request section below. This section introduces the concept of super and sub-features, which
8 <Subsystem> Process Layer Interface Description<Document Type> 2007 LogicaCMG Wireless Networks
are used in conjunction with the grouped requests. A grouped request can contain multiple
sub-requests. The grouped requests can be used only for features defined for the purpose.
These features are defined as a super feature having a set of sub-features. The primary
group request has a reference to the super feature and the sub-requests contained within
the primary request refer to the sub-features defined in the super feature. In a typical
installation the super-features can be found in the directory:
/home2/spmaster/webapps/upower/XmlDocs/SuperFeatures
/home2/spmaster/webapps/upower/XmlDocs/SuperFeatures/SubFeatures.
The super and sub feature XML are related by file naming convention as elaborated in the
discussion below.
<!DOCTYPE FEATURE [
<!ELEMENT FEATURE (OPERATION,ALLOWEDPREFIX+)>
<!ATTLIST FEATURE PRE_PROC CDATA #IMPLIED
POST_PROC CDATA #IMPLIED>
<!ATTLIST OPERATION type CDATA #REQUIRED>
<!ATTLIST ALLOWEDPREFIX featureprefix #REQUIRED>
]>
Discussion:
The super feature allows a new element ALLOWEDPREFIX, the allowed prefix specifies a
sub-feature prefix. A super feature can specify one or more sub feature prefixes. The sub-
feature XML file is identified by the name <prefix>_<superfeaturefilename>. For example a
super feature addcomplete (filename: addcomplete.xml) defines uone as one of the
prefixes, then the sub-feature file corresponding to this prefix is uone_addcomplete.xml.
</FEATURE>
10 <Subsystem> Process Layer Interface Description<Document Type> 2007 LogicaCMG Wireless Networks
<!ATTLIST SEARCHENTRY featurename CDATA #IMPLIED
searchfilter CDATA #IMPLIED
searchbase CDATA #IMPLIED
specialfilter CDATA #IMPLIED
record_type CDATA #IMPLIED>
<!ATTLIST COPYENTRIES base_record CDATA #IMPLIED>
<!ATTLIST SHOWATTRIBUTE name CDATA #IMPLIED>
<!ATTLIST LOGOUT userid CDATA #IMPLIED>
<!ATTLIST ATTR_NAME name CDATA #IMPLIED>
<!ATTLIST ATTR_VALUE value CDATA #IMPLIED
value_id CDATA #IMPLIED>
<!ATTLIST REQUEST sessionid CDATA #IMPLIED>
<!ATTLIST LOGIN userid CDATA #IMPLIED
passwd CDATA #IMPLIED
adminlogin CDATA #IMPLIED
accesstype CDATA #IMPLIED
provideServiceList CDATA #IMPLIED>
]>
Discussion
Also many request elements contain record_identifier and the base_record attributes. The
record identifier is a key value (attribute in the entry) pair, which along with the base_record
uniquely identifies the record. The base_record is usually the name of the Community of
All the passwords/PINs in various process layer requests should be encrypted. See section
on password encryption for details.
The following paragraphs describe the various elements of request XML in details:
Element <REQUEST>
For all requests other than the LOGIN request, the attribute sessionid should contain a
valid process layer session id. Process layer returns the session id in the response for the
LOGIN request. The process layer rejects the request if session id is missing or is invalid.
Element <LOGIN>
The attribute userid must be the login id (email address for the administrator and email
address/telephone number/uid depending the subscriber/services configuration). The
attribute passwd is the password corresponding to the userid specified. The password value
must be encrypted.
The accesstype attribute specifies the type of access (subscriber or admin). The standard
presentation layer is configured to be invoked from different ports for subscriber and
administrative access. Process layer will prevent subscriber login (login id corresponding to
a subscriber record) if this is set to admin and vice versa. This port information is
configured in the presentation layer configuration file.
The optional parameter provideServiceList, if set to yes, instructs process layer to provide a
list of services (LogicaCMG products) plugins installed on the process layer. Process layer
provides this plugin list in the response. The presentation layer can use this information to
customize the web forms based on available services.
Element <UM6.0_COMPATIBLE_PRESLAYER>
Element <LOGOUT>
The only attribute for the LOGOUT request is the userid passed at the time of LOGIN. Upon
receipt of a Logout Request, the Process Layer will delete all information about the current
session. The Process Layer will reject any subsequent Requests using the same sessionid.
Element <VALIDATEDATA>
The VALIDATEDATA request is used for validating the data passed with the request e.g.
checking uniqueness of a telephone number or email address, checking syntax of some
12 <Subsystem> Process Layer Interface Description<Document Type> 2007 LogicaCMG Wireless Networks
attribute value. The attribute featurename specifies the feature associated with this Request.
The Process Layer must have a definition of this Feature in the <featurename>.xml file
Element <VALIDATEENTRY>
The VALIDATEENTRY request validates (checks if all the important attributes are set
properly, also checks other settings vital for proper functioning of the application) the LDAP
entry specified by the two attributes record_identifier and base_record. Currently
VALIDATEENTRY supports only the validatesubscriber feature which validates the
subscriber data for uOne and uNotify products.
Element <ADDENTRY>
base_record and featurename are specified as described above, base_record is the location
(for example COI) where the data is to be added. The new entry data is specified using the
<ATTRIBUTE> element. Each ADDENTRY element contains one ATTRIBUTE element.
Element <MODIFYENTRY>
base_record and featurename are specified as described above, base_record is the location
(for example COI) where the data exists. The data to be modified is specified using the
<ATTRIBUTE> element. Each MODIFYENTRY element contains one ATTRIBUTE element.
Element <SETBASERECORD>
This request is used to set the community to work with in the process layer. All subscriber
related operations are restricted to this community after issuing this request. From uPower
version 6.1 it is mandatory to issue this request after the administrator login. base_record
is the name of the Community of Interest (COI)
Element <COPYENTRIES>
This request is used to copy an entry from one location to other, for example copy COI.
Currently COPYENTRIES support only copy COI operation. base_record is the name of the
parent where the new entry is to be copied, for example ILN where a new COI is to be
created by copying an existing COI. featurename is the name of the feature being
administered. The new COI to be created is specified using the ATTRIBUTE element. Each
COPYENTRIES element contains one ATTRIBUTE element. The COI to copy from is
always the currently selected COI.
base_record and featurename are specified as described above. This request can be used
to upload binary data as well as to modify existing data. The data to be modified is specified
using the <ATTRIBUTE> element. Each UPLOADFILE element contains one ATTRIBUTE
element. The binary data being uploaded is specified using <BASE64DATA> element.
There should be at the most one BASE64DATA element in a request.
Element <RENAMEENTRIES>
Used to rename LDAP entries (move entries from one parent to other). This can also be
used to change the RDN value of an entry by providing a suitable feature.
base_record: This is the name of the current parent (Community of Interest (COI)) to which
the record belongs.
featurename: Name of Feature being administered.
record_identifer: key value pair, which uniquely identifies the record in the given community.
Element <ATTRIBUTE>
Element <ATTR_NAME>
Element <ATTR_VALUE>
Element <BASE64DATA>
This is used in conjunction with the UPLOADFILE. The file data being uploaded is specified
using this element. The data should be base64 encoded, it should never contain binary
data. The data is specified as parsed character (#PCDATA) data.
Element <DELETEENTRY>
There can be more than one <DELETEENTRY> elements in the request for multiple
deletes. Only limitation being that the process layer supports similar kinds of deletes in one
request. (that is it can be all delete subscriber or delete COS, etc.) The entry to be deleted is
specified using the record_identifier and the base_record attributes.
Element <SHOWATTRIBUTE>
Refer to the section 2.5 on Search Requests for details on this element.
Element <SEARCHENTRY>
Refer to the section 2.5 on Search Requests for details on this element.
Element <ENTRY>
This is used in conjunction with the DIFFENTRIES. See the request example in section
2.3.2.7 and the corresponding response example in section 2.4.2.3.
Element <DIFFENTRIES>
The DIFFENTRIES request is used to get the difference between two subscribers by
specifying the telephone numbers. Only the subscribers main and device entries will be
included in the diff process. See the request example in section 2.3.2.7 and the
corresponding response example in section 2.4.2.3.
Element <GROUPEDREQUEST>
14 <Subsystem> Process Layer Interface Description<Document Type> 2007 LogicaCMG Wireless Networks
2.3.2 Examples of Request XMLs
In the request XML examples the DTD is omitted, in the actual request a DTD is appended
at the top of the request.
<REQUEST>
<LOGIN userid="newupoweroot@logicacmg.com" passwd="0l13271S6V00736V"
accesstype=admin provideServiceList =yes/>
<UM6.0_COMPATIBLE_PRESLAYER/>
</REQUEST>
<REQUEST>
<SETBASERECORD base_record=ABC Company/>
</REQUEST>
<REQUEST sessionid="0221021632543c7567866908a">
<ADDENTRY featurename="addsub_common" base_record="CMGUC">
<ATTRIBUTE>
<ATTR_NAME name="blocked">
<ATTR_VALUE value="no"/>
</ATTR_NAME>
<ATTR_NAME name="language">
<ATTR_VALUE value="en"/>
</ATTR_NAME>
<ATTR_NAME name="mobiletype">
<ATTR_VALUE value="NOK"/>
</ATTR_NAME>
<ATTR_NAME name="cn">
<ATTR_VALUE value="test sub5"/>
</ATTR_NAME>
<ATTR_NAME name="mail">
<ATTR_VALUE value="10632345@abc.com"/>
</ATTR_NAME>
<ATTR_NAME name="givenname">
<ATTR_VALUE value="test"/>
</ATTR_NAME>
<ATTR_NAME name="sn">
<ATTR_VALUE value="sub6"/>
</ATTR_NAME>
<ATTR_NAME name="gender">
<ATTR_VALUE value="F"/>
</ATTR_NAME>
<ATTR_NAME name="telephonenumber">
<ATTR_VALUE value="10632345"/>
</ATTR_NAME>
<ATTR_NAME name="uid">
<ATTR_VALUE value="10632345"/>
</ATTR_NAME>
<ATTR_NAME name="password">
<ATTR_VALUE value="0L3G0S0C2c2e2J6X"/>
</ATTR_NAME>
<ATTR_NAME name="numericpassword">
<ATTR_VALUE value="3J3d0@3W2E0X761S"/>
<REQUEST sessionid="1010020954483da586a824be5">
<UPLOADFILE featurename=uploadAllCallsGreeting>
<ATTRIBUTE>
<ATTR_NAME name="uniqueidentifier">
<ATTR_VALUE value="0911021625543d7fa6d269124"/>
</ATTR_NAME>
</ATTRIBUTE>
<BASE64DATA>R0lGODlhCgAKAPcAAAAAAIAAAACAAICAAAAAgIAAgACAgMDAwMDcwK
bK8AQEBAgICAwMDBERERYWFhwcHCIiIikpKVVVVU1NTUJCQjk5Of98gP9QUNYAk8zs
/+/Wxufn1q2pkDMAAGYAAJkAAMwAAAAzADMzAGYzAJkzAMwzAP8zAABmADNmAGZmAJ
lmAMxmAP9mAACZADOZAGaZAJmZAMyZAP+ZAADMADPMAGbMAJnMAMzMAP/MAGb/AJn/
AMz/AAAAMzMAM2YAM5kAM8wAM/8AMwAzMzMzM2YzM5kzM8wzM/8zMwBmMzNmM2ZmM5
lmM8xmM/9mMwCZMzOZM2aZM5mZM8yZM/+ZMwDMMzPMM2bMM5nMM8zMM//MMzP/M2b/
M5n/M8z/M///MwAAZjMAZmYAZpkAZswAZv8AZgAzZjMzZmYzZpkzZswzZv8zZgBmZj
NmZmZmZplmZsxmZgCZZjOZZmaZZpmZZsyZZ</BASE64DATA>
</UPLOADFILE>
</REQUEST>
<REQUEST sessionid="070303143058fc2d95c9274dd">
<RENAMEENTRIES featurename="movesubscriber"
record_identifier="uniqueidentifier=0515030935578c2863f1cf8bb"
base_record="ABC Company">
<ATTRIBUTE>
<ATTR_NAME name="new_base_record">
<ATTR_VALUE value="XYZ Company"
value_id="form=ADMIN_MOVE_SUBSCRIBER&element=new_base_record&valu
e=1" />
</ATTR_NAME>
</ATTRIBUTE>
</RENAMEENTRIES>
</REQUEST>
<REQUEST sessionid="0422031121490945e4d6770b7">
<COPYENTRIES featurename="copycoi" base_record="A_To_Z_Companies">
<ATTRIBUTE>
<ATTR_NAME name="ou">
<ATTR_VALUE value="XYZ Company"
value_id="form=ADMIN_COPY_COI&element=ou&value=1" />
</ATTR_NAME>
16 <Subsystem> Process Layer Interface Description<Document Type> 2007 LogicaCMG Wireless Networks
</ATTRIBUTE>
</COPYENTRIES>
</REQUEST>
<REQUEST sessionid="0422031121490945e4d6770b7">
<DIFFENTRIES featurename="diffsubscribers">
<ENTRY id=telephonenumber=8041001000/>
<ENTRY id=telephonenumber=5551001000/>
</DIFFENTRIES>
</REQUEST>
Discussion
Element <RESPONSE>
Element <RESULT>
<RESULT> contain attribute returnval, which indicates the result of the request processing.
A non-zero value of the attribute returnval indicates success and a zero value indicates
failure. The specific message code is returned within <MESSAGE> element
Element <PARTIAL_COMPLETION_MESSAGE>
If the current response is only an intermediate (partial) response from the process layer, the
response will contain <PARTIAL_COMPLETION_MESSAGE> element with attribute
ReqProcessInProgress set to 1. For requests, which take longer processing time (e.g.
18 <Subsystem> Process Layer Interface Description<Document Type> 2007 LogicaCMG Wireless Networks
deleting many entries in one request) process layer may intermittently send responses to
presentation layer informing it that the request is still being processed. This is a sort of keep-
alive response and the presentation layer should re-adjust its timeout if any, timeout on the
presentation layer to browser (or rendering device), etc. to keep all the connections alive.
Presentation layer may use this response to inform the user of the progress although the
<PARTIAL_COMPLETION_MESSAGE> does not include data quantifying (percentage
complete) the progress of overall request processing. Presentation layer may receive one
or more <PARTIAL_COMPLETION_MESSAGE> responses. The final request completion
response either will not have this element or if present the attribute ReqProcessInProgress
has a value of 0. Also the final response contains the complete response data, hence the
presentation layer need not store/cache data from the
<PARTIAL_COMPLETION_MESSAGE> responses.
Element <MESSAGE>
The attribute msgcode contains the message code, the code can either be the Generic
Success or Generic Failure code that was contained within the feature document, or this can
be a code generated by the process layer. This Message Code is unique across the
solution.
The message table is referenced in order to lookup the message text associated with a
Message Code. The attribute msgtext contains this human-readable message from the
process layer pertaining to the status of the previous Request. This message should be
displayed to the end user. This is the default error message (in English). If other language
specific error messages are required this must be done within a presentation layer making
use of the message code returned in conjunction with translation tables.
The attribute value_id is returned if there is error associated with a particular attribute value
in the request. The value_id is provided (optional) by the presentation for each value in the
request. Process layer returns the same value_id back if there is an error associated with an
attribute value. This provides the presentation layer an easy way to identify the incorrect
value and map it back to the presentation on the input device. The value_id is returned only
if it is available in the request.
Element <BACK_END_MESSAGE>
Element <DATA>
The element <DATA> contains the data obtained from the database queries, or the data
generated by the process layer for use by presentation layer. The <DATA> element may
have zero or more sub-elements <RECORD_ID_LIST>, <RECORDS>,
<ALLOWED_FEATURES> and <AVAILABLE_SERVICES>.
Element <RECORD_ID_LIST>
Element <RECORDS>
The database records are returned using the <RECORDS> element. The <RECORDS>
element contains one or more <RECORD> sub-element. The attribute entries_count of the
element <RECORDS> specifies the total number of records being returned.
Element <RECORD>
Element <ATTRIBUTE>
Element <ATTR_NAME>
This sub-element of ATTRIBUTE is repeated for each attribute in the record. The attribute
name contains the name of the attribute. The element <ATTR_NAME> contains one or
more <ATTR_VALUE> sub-elements.
Element <ENTRY>
This sub-element of ATTR_NAME is repeated for each attribute in the record. The attribute
id contains telephonenumber=<subscribers telephone number>. The element
<ATTR_NAME> contains two <ENTRY> sub-elements.
Element <ATTR_VALUE>
This sub-element of <ATTR_NAME> is repeated for each value of the attribute. The
attribute value contains a single value of the LDAP attribute.
Element <ALLOWED_FEATURES>
A Login Response will contain a list of allowed Features that may be administered by the
current uPower user. This list is specified by FEATURE sub-elements.
Element <FEATURE>
Element <ACCESSLEVEL>
This is sub-element of <FEATURE> element and may be present in the response if LDAP
based access tables are used to determine users access permissions. This element has a
single required attribute permission. The valid values for the attribute permission are read
and write. A value of read indicates that the user can only do searches using this feature.
Element <AVAILABLE_SERVICES>
20 <Subsystem> Process Layer Interface Description<Document Type> 2007 LogicaCMG Wireless Networks
The login response may contain the <AVAILABLE_SERVICES> element if the LOGIN
request contains parameter provideServiceList with value yes. Process layer informs the
presentation layer about the list LogicaCMG product plugins available on the process layer
server using this element. It contains one or more sub-elements <SERVICE>.
Element <SERVICE>
<RESPONSE>
<RESULT returnval="1" />
<MESSAGE msgcode="uPowerErr002" msgtext="Login Success" />
<DATA>
<RECORDS entries_count="3">
<RECORD record_identifier="Session ID">
<ATTRIBUTE>
<ATTR_NAME name="sessionid" >
<ATTR_VALUE value="1218031046165413987c9a860" />
</ATTR_NAME>
</ATTRIBUTE>
</RECORD>
<RECORD record_identifier="BaseRecord List">
<ATTRIBUTE>
<ATTR_NAME name="baserecord" >
<ATTR_VALUE value="d" />
<ATTR_VALUE value="l" />
<ATTR_VALUE value="a" />
<ATTR_VALUE value="r" />
<ATTR_VALUE value="m" />
</ATTR_NAME>
<ATTR_NAME name="countofeach" >
<ATTR_VALUE value="1" />
<ATTR_VALUE value="1" />
<ATTR_VALUE value="1" />
<ATTR_VALUE value="1" />
<ATTR_VALUE value="3" />
</ATTR_NAME>
</ATTRIBUTE>
</RECORD>
<RECORD record_identifier="cn=upowerRootAdmin"
base_record="uPowerAdminCOI" record_type="uPower_Administrator_Entry">
<ATTRIBUTE>
<ATTR_NAME name="mail" >
<ATTR_VALUE value="newupoweroot@nike.cmguc.com" />
</ATTR_NAME>
<ATTR_NAME name="password" >
<ATTR_VALUE value="432u2w3O754X0O4T" />
</ATTR_NAME>
22 <Subsystem> Process Layer Interface Description<Document Type> 2007 LogicaCMG Wireless Networks
<FEATURE featurename="viewsuboptions" >
<accesslevel permission='write'/>
</FEATURE>
<FEATURE featurename="deleteadmin" >
<accesslevel permission='write'/>
</FEATURE>
<FEATURE featurename="deletesubscriber" >
<accesslevel permission='write'/>
</FEATURE>
<FEATURE featurename="modifyadmin" >
<accesslevel permission='write'/>
</FEATURE>
<FEATURE featurename="modifycos" >
<accesslevel permission='write'/>
</FEATURE>
<FEATURE featurename="modifysubscriber" >
<accesslevel permission='write'/>
</FEATURE>
<FEATURE featurename="deletesmsinfo" >
<accesslevel permission='write'/>
</FEATURE>
<FEATURE featurename="addsecsubscriber" >
<accesslevel permission='write'/>
</FEATURE>
<FEATURE featurename="modifysecsubscriber" >
<accesslevel permission='write'/>
</FEATURE>
<FEATURE featurename="deletesecsubscriber" >
<accesslevel permission='write'/>
</FEATURE>
<FEATURE featurename="addsmppcenter" >
<accesslevel permission='write'/>
</FEATURE>
<FEATURE featurename="modifysmppcenter" >
<accesslevel permission='write'/>
</FEATURE>
<FEATURE featurename="addamisacenter" >
<accesslevel permission='write'/>
</FEATURE>
<FEATURE featurename="addexternaluser" >
<accesslevel permission='write'/>
</FEATURE>
<FEATURE featurename="modifyexternaluser" >
<accesslevel permission='write'/>
</FEATURE>
<FEATURE featurename="modifyamisacenter" >
<accesslevel permission='write'/>
</FEATURE>
<FEATURE featurename="deleteamisacenter" >
<accesslevel permission='write'/>
</FEATURE>
<FEATURE featurename="deletecos" >
<accesslevel permission='write'/>
</FEATURE>
<FEATURE featurename="deletesmppcenter" >
<accesslevel permission='write'/>
</FEATURE>
<FEATURE featurename="addsmsinfo" >
<accesslevel permission='write'/>
</FEATURE>
<FEATURE featurename="deleteexternaluser" >
<accesslevel permission='write'/>
</FEATURE>
<FEATURE featurename="addadministrator" >
24 <Subsystem> Process Layer Interface Description<Document Type> 2007 LogicaCMG Wireless Networks
</FEATURE>
<FEATURE featurename="addsub_mmsc" >
<accesslevel permission='write'/>
</FEATURE>
<FEATURE featurename="delhlrlookupentry_mmsc" >
<accesslevel permission='write'/>
</FEATURE>
<FEATURE featurename="moddevice_mmsc" >
<accesslevel permission='write'/>
</FEATURE>
<FEATURE featurename="addcos_mmsc" >
<accesslevel permission='write'/>
</FEATURE>
<FEATURE featurename="addvas_mmsc" >
<accesslevel permission='write'/>
</FEATURE>
<FEATURE featurename="delsub_mmsc" >
<accesslevel permission='write'/>
</FEATURE>
<FEATURE featurename="moddomainalias_mmsc" >
<accesslevel permission='write'/>
</FEATURE>
<FEATURE featurename="adddevice_mmsc" >
<accesslevel permission='write'/>
</FEATURE>
<FEATURE featurename="delcos_mmsc" >
<accesslevel permission='write'/>
</FEATURE>
<FEATURE featurename="delvas_mmsc" >
<accesslevel permission='write'/>
</FEATURE>
<FEATURE featurename="modhlrlookupentry_mmsc" >
<accesslevel permission='write'/>
</FEATURE>
<FEATURE featurename="adddomainalias_mmsc" >
<accesslevel permission='write'/>
</FEATURE>
<FEATURE featurename="deldevice_mmsc" >
<accesslevel permission='write'/>
</FEATURE>
<FEATURE featurename="modcommunity_mmsc" >
<accesslevel permission='write'/>
</FEATURE>
<FEATURE featurename="modsub_mmsc" >
<accesslevel permission='write'/>
</FEATURE>
<FEATURE featurename="addhlrlookupentry_mmsc" >
<accesslevel permission='write'/>
</FEATURE>
<FEATURE featurename="deldomainalias_mmsc" >
<accesslevel permission='write'/>
</FEATURE>
<FEATURE featurename="modcos_mmsc" >
<accesslevel permission='write'/>
</FEATURE>
<FEATURE featurename="modifymmsccoi" >
<accesslevel permission='write'/>
</FEATURE>
</ALLOWED_FEATURES>
<AVAILABLE_SERVICES>
<SERVICE name="COMMON" />
<SERVICE name="UM" />
<SERVICE name="MMSC" />
</AVAILABLE_SERVICES>
As seen above the LOGIN response mainly contains RECORD elements for session id,
base record list and the uPower users data records, ALLOWED_FEATURES and
AVAILABLE_SERVICES.
there is 1 community each starting from letter d, l, a, and r and 3 communities starting
with letter m. Presentation layer can use this data to present the COI selection information.
26 <Subsystem> Process Layer Interface Description<Document Type> 2007 LogicaCMG Wireless Networks
</FEATURE>
<RESPONSE>
<RESULT returnval="0" />
<MESSAGE msgcode="uPowerErr016"
value_id="form=SUB_COMMON&element=telephonenumber&value=14"
msgtext="Duplicate value:telephonenumber=8047620050" />
</RESPONSE>
Note the value_id in the response. This value_id was supplied to process layer in the
request for the telephone number value. Also note the returnval attribute in the <RESULT>
element. A value of 0 is returned for this attribute indicating failure of requested operation.
<RESPONSE>
<RESULT returnval="1" />
<MESSAGE msgcode="UM_1048" msgtext="The common subscriber data were added
successfully : Telephonenumber=8047620350" />
</RESPONSE>
Note that process layer returns a message code (msgcode) along with the message text
(msgtext). The message text is always in English. In process layer these messages/codes
are defined in XML document. If the presentation layer is implemented in a different
language or if the custom presentation layer wants to display a different text message, the
presentation layer can implement its own message table with a mapping to the message
code. In such case the presentation layer should use the message code provided in the
response to retrieve the message text from its table. LogicaCMG can provide the list of
message codes and corresponding English text of messages in order for the presentation
layer to customize it.
Also note the returnval attribute in the <RESULT> element. A value of 1 is returned for this
attribute indicating success of requested operation.
<RESPONSE>
<RESULT returnval="1" />
<MESSAGE msgcode="common_9.3-02_07" msgtext="Diff successful." />
<DATA>
<RECORDS entries_count="2">
<RECORD record_type="uOne Subscriber Main">
<ATTRIBUTE>
<ATTR_NAME name="cn" >
<ENTRY id=telehonenumber=8041001000>
<ATTR_VALUE value="John Smith" />
</ENTRY>
<ENTRY id=telehonenumber=5551001000>
<ATTR_VALUE value="Golden Subscriber" />
</ENTRY>
</ATTR_NAME>
<ATTR_NAME name="sn" >
<ENTRY id=telehonenumber=8041001000>
<ATTR_VALUE value="Smith" />
</ENTRY>
<ENTRY id=telehonenumber=5551001000>
</ENTRY>
</ATTR_NAME>
</ATTRIBUTE>
</RECORD>
<RECORD record_type="Subscriber Device">
<ATTRIBUTE>
<ATTR_NAME name="autoplayvoice" >
<ENTRY id=telehonenumber=8041001000>
<ATTR_VALUE value="no" />
</ENTRY>
<ENTRY id=telehonenumber=5551001000>
<ATTR_VALUE value="yes" />
</ENTRY>
</ATTR_NAME>
<ATTR_NAME name="badlogincount" >
<ENTRY id=telehonenumber=8041001000>
<ATTR_VALUE value="0" />
</ENTRY>
<ENTRY id=telehonenumber=5551001000>
</ENTRY>
</ATTR_NAME>
</ATTRIBUTE>
</RECORD>
</RECORDS>
</DATA>
</RESPONSE>
28 <Subsystem> Process Layer Interface Description<Document Type> 2007 LogicaCMG Wireless Networks
2.5 Process Layer Support for Search Requests
Process layer provides a rich set of API to carry out LDAP searches and to retrieve data
selectively. Process layer is packaged with some frequently used pre-defined search filters.
The presentation layer can use these pre-defined filters using their names (also called as
tokens or identifiers). The presentation layer can also specify the search criteria directly.
Presentation layer can request process layer to provide partial (selective) data matching the
search criteria or complete data set.
Please note that the process layer has a configuration to limit the LDAP searches based on
number of entries (size limit) and time required for searching (time limit). By default the size
limit is 100 and the time limit is 20 seconds. These parameters may affect the search results
especially while searching a large database.
All the database searches are specified using the <SEARCHENTRY> requests.
<SEARCHENTRY> may contain sub-element/s <SHOWATTRIBUTE> to limit the data
returned by the search request.
featurename: Name of feature being administered. This may affect the results of a query
because the Process Layer may use it to determine the related object classes.
searchbase: This is the COI name to which the record to be searched belongs. Though this
is an optional parameter, if provided it makes searches faster by narrowing down the scope
of search.
record-type: Most of the records have a designated name. Process layer returns these
record names in the response xml. If the record_type is specified process layer filters out
unwanted records. For example if search is for AMIS-A centers, just specifying searchfilter
as amisasystem=* will return both AMIS-A centers and AMIS-A users as both entries
contain attribute amisasystem. So we can specify searchfilter as amisasystem=* and record
type= "AMIS-A Center". Following is the list of record_type designated in the process layer:
1. Greeting Administrator
5. COS
6. Subscriber Device
7. SMSC Center
9. Delegated_Domain
10. Fax_Domain
11. Mail_Alias_Domain
12. COI
13. ORGILN
14. ILN
15. uPower_Administrator_Entry
16. ORG
17. Unknown Type (If process layer can not resolve the record type)
Note that some searches will search multiple entries for the attribute(s) from the
<SHOWATTRIBUTE> element(s).
A Generic Query uses a standard search filter and search base. A Standard Query is a
predefined search identified by a special identifier string in the search filter.
If a Standard Query identifier is not found in the searchfilter attribute, the Request is
processed as a Generic Query.
The search result returned by a Standard Query may be different from that of a Generic
Query. A Standard Query will always use the SHOWATTRIBUTE (list of attributes whose
values are expected in the result) to return back the result, if SHOWATTRIBUTE is included
in the request. But the Generic Query will act differently (and will not use the
SHOWATTRIBUTE at all), when the LDAP search query comes back with exactly one entry
match. In that case, the search result will contain the whole matching LDAP entry with all the
attribute values. In addition, if this is a subscriber level main entry, it will also contain all the
device entries associated with the subscriber and also the COS entry for the subscriber.
Following are the standard queries (also called token filters, standard searches, etc.)
supported by the uPower process layer:
30 <Subsystem> Process Layer Interface Description<Document Type> 2007 LogicaCMG Wireless Networks
1. Searchfilter=GETBASERECORDNAMES: This is used to get a list of base
records (Community of Interest names or the names of database locations where
new records can be added). This list specifies the allowed locations for adding
additional Classes of Services, Subscribers, Administrators, etc.
6. Searchfilter=SEARCHCOMMONSUBSCRIBERS=<attribute>=<value>: This
query works same as that of the above SEARCHSUBSCRIBERS query, except
that it will not return any Secondary Group Mailboxes (SGMs) in the search result.
32 <Subsystem> Process Layer Interface Description<Document Type> 2007 LogicaCMG Wireless Networks
32. Searchfilter=GETUPOWERADMINISTRATORS=<key=value>: Search for
uPower administrators matching the criteria. value can contain wildcard.
This section provides examples to illustrate the use of various search parameters. The
examples contain the request followed by the corresponding response from the process
layer.
Request:
<REQUEST sessionid="122303153940cfe8d1af029f4">
<SEARCHENTRY
featurename="modifyamisacenter"
searchfilter="amisasystem=1001"
searchbase="Community1"
specialfilter=""
record_type="">
</SEARCHENTRY>
</REQUEST>
Response:
<RESPONSE>
<RESULT returnval="1" />
<MESSAGE msgcode="uPowerErr052" msgtext="Search successful." />
<DATA>
<RECORDS entries_count="1">
<RECORD record_identifier="amisasystem=1001" base_record="Community1"
record_type="AMIS-A Center">
<ATTRIBUTE>
<ATTR_NAME name="objectclass" >
<ATTR_VALUE value="amisasysteminfo" />
</ATTR_NAME>
<ATTR_NAME name="amisasystem" >
<ATTR_VALUE value="1001" />
</ATTR_NAME>
<ATTR_NAME name="amisasystemtelephonenumber" >
<ATTR_VALUE value="123456" />
</ATTR_NAME>
<ATTR_NAME name="amisafirstremotetelephonenumber" >
<ATTR_VALUE value="12345" />
</ATTR_NAME>
<ATTR_NAME name="amisalastremotetelephonenumber" >
<ATTR_VALUE value="123455" />
</ATTR_NAME>
</ATTRIBUTE>
</RECORD>
</RECORDS>
</DATA>
</RESPONSE>
Request:
<REQUEST sessionid="122303153940cfe8d1af029f4">
<SEARCHENTRY
featurename="modifyamisacenter"
searchfilter="amisasystem=1001"
searchbase="Community1"
specialfilter=""
record_type="">
<SHOWATTRIBUTE name="amisasystem"/>
<SHOWATTRIBUTE name="amisasystemtelephonenumber"/>
</SEARCHENTRY>
Response:
<RESPONSE>
<RESULT returnval="1" />
<MESSAGE msgcode="uPowerErr052" msgtext="Search successful." />
<DATA>
<RECORDS entries_count="1">
<RECORD record_identifier="amisasystem=1001" base_record="Community1"
record_type="AMIS-A Center">
<ATTRIBUTE>
<ATTR_NAME name="amisasystem" >
<ATTR_VALUE value="1001" />
</ATTR_NAME>
<ATTR_NAME name="amisasystemtelephonenumber" >
<ATTR_VALUE value="123456" />
</ATTR_NAME>
</ATTRIBUTE>
</RECORD>
</RECORDS>
</DATA>
</RESPONSE>
Request:
<REQUEST sessionid="122303153940cfe8d1af029f4">
34 <Subsystem> Process Layer Interface Description<Document Type> 2007 LogicaCMG Wireless Networks
<SEARCHENTRY
featurename="modifyexternaluser"
searchfilter="sn=*"
searchbase=""
specialfilter="amisamsgboxid=*"
record_type="">
<SHOWATTRIBUTE name="sn"/>
<SHOWATTRIBUTE name="givenname"/>
<SHOWATTRIBUTE name="cn"/>
<SHOWATTRIBUTE name="telephonenumber"/>
<SHOWATTRIBUTE name="mail"/>
<SHOWATTRIBUTE name="amisamsgboxid"/>
<SHOWATTRIBUTE name="amisasystem"/>
</SEARCHENTRY>
</REQUEST>
Response
<RESPONSE>
<RESULT returnval="1" />
<MESSAGE msgcode="uPowerErr052" msgtext="Search successful." />
<DATA>
<RECORDS entries_count="2">
<RECORD record_identifier="uniqueidentifier=0213031629073e4c0e234653f"
base_record="Community1" record_type="External AMIS-A Subscriber">
<ATTRIBUTE>
<ATTR_NAME name="sn" >
<ATTR_VALUE value="Doe" />
</ATTR_NAME>
<ATTR_NAME name="givenname" >
<ATTR_VALUE value="John" />
</ATTR_NAME>
<ATTR_NAME name="cn" >
<ATTR_VALUE value="John Doe" />
</ATTR_NAME>
<ATTR_NAME name="telephonenumber" >
<ATTR_VALUE value="4087337720" />
</ATTR_NAME>
<ATTR_NAME name="mail" >
<ATTR_VALUE value="4087337720@development.cmguc.com" />
</ATTR_NAME>
<ATTR_NAME name="amisamsgboxid" >
<ATTR_VALUE value="4087337720" />
</ATTR_NAME>
<ATTR_NAME name="amisasystem" >
<ATTR_VALUE value="1001" />
</ATTR_NAME>
</ATTRIBUTE>
</RECORD>
<RECORD record_identifier="uniqueidentifier=0220030930053e54e66de19a1"
base_record="Community1" record_type="External AMIS-A Subscriber">
<ATTRIBUTE>
<ATTR_NAME name="sn" >
<ATTR_VALUE value="AMISAUSER" />
</ATTR_NAME>
<ATTR_NAME name="givenname" >
<ATTR_VALUE value="AMISAUSER" />
</ATTR_NAME>
<ATTR_NAME name="cn" >
<ATTR_VALUE value="AMISAUSER" />
</ATTR_NAME>
This section illustrates the use of standard queries of first type. While using standard query
only the name (token) of the query need to be specified in the parameter searchfilter.
Request:
<REQUEST sessionid="122303153940cfe8d1af029f4">
<SEARCHENTRY
featurename="addcos_um"
searchfilter="GETBASERECORDNAMES"
searchbase=""
specialfilter=""
record_type="">
</SEARCHENTRY>
</REQUEST>
Response:
<RESPONSE>
<RESULT returnval="1" />
<MESSAGE msgcode="uPowerErr052" msgtext="Search successful." />
<DATA>
<RECORD_ID_LIST base_record="Community1" />
</DATA>
</RESPONSE>
36 <Subsystem> Process Layer Interface Description<Document Type> 2007 LogicaCMG Wireless Networks
Request:
<REQUEST sessionid="122303153940cfe8d1af029f4">
<SEARCHENTRY
featurename="modsub_common"
searchfilter="SEARCHCOMMONSUBSCRIBERS=telephonenumber=804762*"
searchbase=""
specialfilter=""
record_type="">
<SHOWATTRIBUTE name="uniqueidentifier"/>
<SHOWATTRIBUTE name="cn"/>
<SHOWATTRIBUTE name="sn"/>
<SHOWATTRIBUTE name="givenname"/>
<SHOWATTRIBUTE name="telephonenumber"/>
<SHOWATTRIBUTE name="mail"/>
<SHOWATTRIBUTE name="blocked"/>
<SHOWATTRIBUTE name="secondaryphonenumber"/>
<SHOWATTRIBUTE name="secondarygroupmailbox"/>
<SHOWATTRIBUTE name="groupmailboxtype"/>
</SEARCHENTRY>
</REQUEST>
Response:
<RESPONSE>
<RESULT returnval="1" />
<MESSAGE msgcode="uPowerErr052" msgtext="Search successful." />
<DATA>
<RECORDS entries_count="2">
<RECORD record_identifier="uniqueidentifier=0604030832135eb180c9d86ad"
base_record="Community1" record_type="uOne Subscriber Main">
<ATTRIBUTE>
<ATTR_NAME name="uniqueidentifier" >
<ATTR_VALUE value="0604030832135eb180c9d86ad" />
</ATTR_NAME>
<ATTR_NAME name="cn" >
<ATTR_VALUE value="Bulk user 3167620005" />
</ATTR_NAME>
<ATTR_NAME name="sn" >
<ATTR_VALUE value="Bulk user 8047620005" />
</ATTR_NAME>
<ATTR_NAME name="givenname" >
<ATTR_VALUE value="Bulk user 8047620005" />
</ATTR_NAME>
<ATTR_NAME name="telephonenumber" >
<ATTR_VALUE value="8047620005" />
</ATTR_NAME>
<ATTR_NAME name="mail" >
<ATTR_VALUE value="8047620005@development.cmguc.com" />
</ATTR_NAME>
<ATTR_NAME name="blocked" >
<ATTR_VALUE value="no" />
</ATTR_NAME>
<ATTR_NAME name="secondaryphonenumber" >
</ATTR_NAME>
<ATTR_NAME name="secondarygroupmailbox" >
</ATTR_NAME>
<ATTR_NAME name="groupmailboxtype" >
</ATTR_NAME>
</ATTRIBUTE>
A good example of this type of request is the operation of subscriber provisioning. Due to
the modular design approach in uPower, the subscriber provisioning is broken into n+1
(common subscriber provisioning + service provisioning) requests for a subscriber with n
services. Although this type of provisioning has advantages, it is slower since each request
writes data to the same data structure during processing of each request. Grouped request
have been introduced to optimise such requests in the common component version
C1.2_00. Grouped requests are processed together in the process layer resulting in
minimum backend commit operations.
The grouped request can be used only with the super and related sub-features. Refer to
section on Feature XML for details on these features.
38 <Subsystem> Process Layer Interface Description<Document Type> 2007 LogicaCMG Wireless Networks
2.6.1 The grouped request layout
The grouped request syntax closely follows the existing ADDENTRY element layout.
However, it adds an additional layer of hierarchy. The groupedrequest request XML format
is:
<REQUEST sessionid="??">
<GROUPEDREQUEST featurename="superfeature" base_record="base">
<SUBREQUEST featureprefix="prefx">
<ATTR_NAME name="someattr">
<ATTR_VALUE value="someval" />
<ATTR_VALUE value="someval_too" />
</ATTR_NAME>
<ATTR_NAME etc
</SUBREQUEST>
<SUBREQUEST featureprefix="other_prefix">
<ATTR_NAME name="someotherattr">
<ATTR_VALUE value="someval" />
<ATTR_VALUE value="someval_too" />
</ATTR_NAME>
</SUBREQUEST>
. . . etc . . .
</GROUPEDREQUEST>
base_record attribute: this attribute works as it does with the old ADDENTRY elements
base_record attribute. It may be a logical DN name such as My COI 1, or a real dn such
as ou=mycoi,ou=foo_iln,o=bar.com
SUBREQUEST xml element: this element works like the old ADDENTRY element, but
specifies a subfeature rather than a regular feature. The subfeature must be allowed by
the superfeature specified in the GROUPEDREQUEST element.
featureprefix attribute: this attribute specifies the prefix associated with the subrequest.
This is relevant both to proc-level code as well as file naming conventions. For example, if
the superfeature is test1 and the prefix is uone, then the subfeature to be loaded is
named uone_test1.xml.
In order to maintain the modularity of the existing uPower packages, the grouped request
calls on more than one feature. For example, in an installation containing only common and
wsb, the following feature files would be installed:
~/webapps/upower/XmlDocs/SuperFeatures/addcomplete.xml
~/webapps/upower/XmlDocs/SuperFeatures/SubFeatures/common_addcomplete.xml
~/webapps/upower/XmlDocs/SuperFeatures/SubFeatures/wsb_addcomplete.xml
<REQUEST sessionid="??">
<GROUPEDREQUEST featurename="addcomplete" base_record="base">
<SUBREQUEST featureprefix="wsb">
(attrs here)
</SUBREQUEST>
</GROUPEDREQUEST>
</REQUEST>
If a new service plug-in rpm were installed, it would (potentially) add a supported
subfeature for addcomplete.xml. For example, adding the uone_unotify plugin would add
the files:
~/webapps/upower/XmlDocs/SuperFeatures/SubFeatures/uone_addcomplete.xml
~/webapps/upower/XmlDocs/SuperFeatures/SubFeatures/unotify_addcomplete.xml
Superfeatures have a very simple structure. The addcomplete superfeature looks like this:
<ALLOWEDPREFIX featureprefix="uone"/>
<ALLOWEDPREFIX featureprefix="unotify"/>
<ALLOWEDPREFIX featureprefix="mmsc"/>
<ALLOWEDPREFIX featureprefix="mmstore"/>
<ALLOWEDPREFIX featureprefix="wsb"/>
<ALLOWEDPREFIX featureprefix="smsc"/>
</FEATURE>
In this superfeature, we see that there is no pre or post proc. Each individual subfeature
may also have pre and post procs (subfeatures use the existing Feature xml DTD). Note
that only one subfeature (common) is required. The remainder are optional. Also note that
subfeatures are processed in the order specified by the superfeature, NOT the order they
appear in the request. This allows feature developers to reliably retrieve values that may
have been set by prior features.
Following is an example of grouped request for adding common subscriber and uOne and
uNotify services. The super feature addcomplete.xml allows the prefixes uone and unotify.
By using this request a complete subscriber (with uOne and uNotify services) is added using
a single request. This single request replaces 3 regular requests required otherwise.
<REQUEST sessionid="">
<GROUPEDREQUEST featurename="addcomplete" base_record="Ryan COI 1">
<SUBREQUEST featureprefix="common">
<ATTR_NAME name="blocked">
<ATTR_VALUE value="no" />
</ATTR_NAME>
<ATTR_NAME name="language">
<ATTR_VALUE value="eng" />
</ATTR_NAME>
<ATTR_NAME name="mobiletype">
<ATTR_VALUE value="abc" />
</ATTR_NAME>
40 <Subsystem> Process Layer Interface Description<Document Type> 2007 LogicaCMG Wireless Networks
<ATTR_NAME name="numericpassword">
<ATTR_VALUE
value="*CHA*6X1S0a273H3i1E752o132T1G1L0S6Y2R2o28630U3j4Y2Z3f183C3l3g1O0N3
A0J" />
</ATTR_NAME>
<ATTR_NAME name="password">
<ATTR_VALUE
value="*CHA*3Z191R240A0L472u13663Q2m160D1S2c142D5B2Q0I3o3S2f0B737X662X4X0
T2S" />
</ATTR_NAME>
<ATTR_NAME name="uid">
<ATTR_VALUE value="rd4205" />
</ATTR_NAME>
<ATTR_NAME name="gender">
<ATTR_VALUE value="F" />
</ATTR_NAME>
<ATTR_NAME name="locationinfoallowed">
<ATTR_VALUE value="no" />
</ATTR_NAME>
<ATTR_NAME name="prepaid">
<ATTR_VALUE value="no" />
</ATTR_NAME>
<ATTR_NAME name="cn">
<ATTR_VALUE value="rd4205" />
</ATTR_NAME>
<ATTR_NAME name="mail">
<ATTR_VALUE value="rd4205@cmguc.com" />
</ATTR_NAME>
<ATTR_NAME name="givenname">
<ATTR_VALUE value="rd4205" />
</ATTR_NAME>
<ATTR_NAME name="sn">
<ATTR_VALUE value="rd4205" />
</ATTR_NAME>
<ATTR_NAME name="telephonenumber">
<ATTR_VALUE value="8884444205" />
</ATTR_NAME>
</SUBREQUEST>
<SUBREQUEST featureprefix="uone">
<ATTR_NAME name="umdeviceversion">
<ATTR_VALUE value="6.1" />
</ATTR_NAME>
<ATTR_NAME name="mailroutingaddress">
<ATTR_VALUE value="rd4205@development.cmguc.com" />
</ATTR_NAME>
<ATTR_NAME name="umblocked">
<ATTR_VALUE value="no" />
</ATTR_NAME>
<ATTR_NAME name="mailquota">
<ATTR_VALUE value="5" />
</ATTR_NAME>
<ATTR_NAME name="mailhost">
<ATTR_VALUE value="iut-mira1.cmguc.com" />
</ATTR_NAME>
<ATTR_NAME name="msghost">
<ATTR_VALUE value="iut-mira1.cmguc.com" />
</ATTR_NAME>
<ATTR_NAME name="phonetype">
<ATTR_VALUE value="landline" />
</ATTR_NAME>
<ATTR_NAME name="inhoursstart">
<ATTR_VALUE value="0800" />
</ATTR_NAME>
<SUBREQUEST featureprefix="unotify">
<ATTR_NAME name="mwienabled">
<ATTR_VALUE value="yes" />
</ATTR_NAME>
<ATTR_NAME name="ummwiswitch">
<ATTR_VALUE value="C5A" />
</ATTR_NAME>
<ATTR_NAME name="mailstorelocation">
<ATTR_VALUE value="internal" />
</ATTR_NAME>
</SUBREQUEST>
</GROUPEDREQUEST>
</REQUEST>
42 <Subsystem> Process Layer Interface Description<Document Type> 2007 LogicaCMG Wireless Networks
2.7 Mapping between External and Internal LDAP attribute names
Sometimes uPower process layer uses a different name for an attribute than is defined in
the LDAP schema. Also many a times there are attribute-naming restrictions on some LDAP
servers, resulting in different schema attribute names on different servers. To resolve this
uPower always refers the attribute using the same internal name and the mapping between
the internal to external names is provided in the form of a table. This table is typically
provided in file /home2/spmaster/LDAPAttributeList.tab (the name of this file is configurable
in process layer ini file). All uPower features and requests should contain only the internal
names. The names are translation in both directions is automatically handled by process
layer engine. That is when request is submitted with internal names, the names are
translated to external before submitting the request to LDAP server, similarly during a
search request the attribute names are converted from external to internal before providing
the search data back to presentation layer.
The LDAPAttributeList.tab file contains a | delimited list of attribute names. One attribute is
st
specified per line. The 1 column in the list is the name used by LogicaCMG (uOne)
nd
applications. The 2 column indicates the internal name used by uPower. The remaining
columns specify the attribute external name for various backends. The header line specifies
the relation between name of the backend and the column number (columns 3 onwards).
For example the following entry in LDAPAttributeList.tab file indicates that the attribute
umcosid (as defined in the schema for various backends) is called cos by both the uPower
and the applications.
cos|cos|umcosid|umcosid|umcosid|umcosid|umcosid|umcosid|
The attribute data in this file is sorted for access optimisation. It is recommended not to alter
the data in this file, but the presentation layer developer should view this file to understand
the attribute name mapping.
The encryption library is written in C programming language. The encryption technique used
is single DES encryption with ECB feedback mode and NOPADDING. The package
provided consists of library source files and information on how to use the library. Re-
implementation of this library is not recommended since failure to match password
encryption can cause fatal failures across the board. Java clients can use the library
provided using JNI interface.
Some examples of clear text and corresponding cipher text passwords are provided here in
order to verify the encryption technique implemented:
Key: 55695673
cleartext=456789 ciphertext=2x7416293T3X2q09
cleartext=43210 ciphertext=1X1Z2F0Y2p3l1L0d
cleartext=qwerty ciphertext=5f0T0l2d3Y0K2063
cleartext=asdfg ciphertext=0Y2p7Y232N656W03
The encoding converts the encoded data into a string in which all non-alphanumeric
characters except -_. are replaced with a percent (%) sign followed by two hex digits and
spaces encoded as plus (+) signs. It is encoded the same way that the posted data from a
WWW form is encoded, that is the same way as in application/x-www-form-urlencoded
media type. The space characters are replaced by `+', and non-alphanumeric characters
are replaced by `%HH', a percent sign and two hexadecimal digits representing the ASCII
code of the character. Line breaks, as in multi-line text field values, are represented as CR
LF pairs, i.e. `%0D%0A'.
44 <Subsystem> Process Layer Interface Description<Document Type> 2007 LogicaCMG Wireless Networks
3 Transport Layer Specifications
3.1 Introduction
Transport layer, which resides with the presentation layer, facilitates communication
between presentation and process layers. The presentation layer communicates with the
process layer using HTTP protocol. The transport layer provides functionality for socket-
based communication to post the request and get and parse the process layer response.
The presentation layer needs to know the process layer web servers host name, port and
the script path. The standard presentation layer has this information configured in the
configuration file. The process layer start-up script processuPowerRequest.uone typically
resides in the /home2/spmaster/webapps/upower/ProcessLayer directory. The apache
server provided with the standard presentation layer is configured to define
/home2/spmaster/webapps as DocumentRoot. Hence the process layer path is defined as
/upower/ProcessLayer/processuPowerRequest.uone.
The input to this function is host and port information for the process layer web server.
Optionally this parameter may accept timeout period. Typically the timeout period can be set
to 60 seconds. It should open a non-blocking socket connection with the process layer web
server using the information provided. The function should return appropriate return code
and error message if socket open fails, else return a valid socket handle.
The function should accept the socket handle, process layer host, port and path information,
and the XML request string. The function does the following:
The XML request string is URL encoded and then prefixed with string xml_data=.
This becomes the body of the HTTP request.
Prepare the HTTP request as shown below (Refer to Appendix B for an example of
process layer HTTP request):
This function gets the HTTP Response header sent by the process layer. NOTE that the
HTTP Response header is sent only once (in the first response) but the body may or may
not contain multiple response XMLs.
Read the HTTP header line by line (all header lines are terminated by CRLF) until
an empty line is received.
This function is called after getting the HTTP header from the response. This function will
return one response XML at a time. The caller of this function should parse the response
XML and check if this is a partial response sent by the Process Layer. The partial response
XMLs will contain the element PARTIAL_COMPLETION_MESSAGE with the attribute
ReqProcessInProgress set to value 1. Absence of this element will indicate that it is not a
partial response. If this is a partial response, then discard this response xml and call this
function again to get the next response XML sent by the Process Layer. This process should
continue until the Process Layer sends the final (non-partial) response xml. This function
should do the following:
First, check if the flag is set to indicate the HTTP body is chunked.
o Read the first non-empty line in the HTTP body. It will be hexadecimal value
indicating the size of the HTTP body chunk that is available to be read.
o Convert the hexadecimal value to decimal. This is the chunk size. If the
chunk size is 0, then that is the end of HTTP response body. Return the
buffer to the caller.
o Check if the last non-empty line in the chunk is ENDOFDATA. If true, then
discard that ENDOFDATA line from the chunk. Append the chunk to the
return buffer. Return the buffer to the caller of the function.
46 <Subsystem> Process Layer Interface Description<Document Type> 2007 LogicaCMG Wireless Networks
If NON-CHUNKED, then do the following:
This function is called after receiving the complete response XML. This function closes the
socket connection. The parameter passed to this function is socket handle.
5. Parse response
6. If PARTIAL_COMPLETION_MESSAGE, go to 4
7. Close connection
Add UM COS
For each operation mentioned above, the feature XML, the sample request and response
are provided. Also a discussion is provided on the process layer actions on these requests
(like which attributes are default initialised by process layer in case not provided in the
request). Though the feature XML definition requires few mandatory attributes, it is
recommended to mimic the standard presentation layer requests in the custom presentation
layer for the user-application to function normally. The discussion following each request
discussed specifies the attributes, which are default initialised by the process layer, if not
specified in the request. These attributes may be omitted from the request if the default
values are desired.
This appendix refers to LDAP attribute names with their internal names. The request sent to
LDAP will contain the external (LDAP schema) names. For details on the mapping of
names see the LDAPAttributeList.tab file. For example the feature/request XMLs and the
discussion refers to LDAP attribute umcosid (schema name) as cos.
50 <Subsystem> Process Layer Interface Description<Document Type> 2007 LogicaCMG Wireless Networks
<ATTRIBUTE name="umalravailable"/>
<ATTRIBUTE name="pclogintype"/>
<ATTRIBUTE name="faxheaderservicename"/>
<ATTRIBUTE name="emailnotificationavailable"/>
<ATTRIBUTE name="radiusenabled"/>
<ATTRIBUTE name="intermediatefaxmta"/>
<ATTRIBUTE name="outboundfaxsectionname"/>
<ATTRIBUTE name="useptnallowed"/>
<ATTRIBUTE name="mdnallowed"/>
<ATTRIBUTE name="umexternalmailaccountmax"/>
<ATTRIBUTE name="umwapnotificationavailable"/>
<ATTRIBUTE name="ummmsnotificationavailable"/>
<ATTRIBUTE name="ummaxnotperdayallowed"/>
<ATTRIBUTE name="umdirectnotifyavailable"/>
<ATTRIBUTE name="umfirsteventnotifyavailable"/>
<ATTRIBUTE name="umdirectnotifyfallback"/>
<ATTRIBUTE name="umdirectnotifyfallbackinterval"/>
<ATTRIBUTE name="ummaxtriggers"/>
<ATTRIBUTE name="umminperiodicnotifyinterval"/>
<ATTRIBUTE name="umperiodicnotifyfallback"/>
<ATTRIBUTE name="umperiodicnotifyfallbackinterval"/>
<ATTRIBUTE name="umperiodicalignmentactive"/>
<ATTRIBUTE name="ummaxfilters"/>
<ATTRIBUTE name="dcMailboxQuota" servertype="DCL"/>
<ATTRIBUTE name="dcMailboxInboundSizeLimit" servertype="DCL"/>
<ATTRIBUTE name="dcMailboxOutboundSizeLimit" servertype="DCL"/>
<ATTRIBUTE name="dcMailboxMaxFailedLogons" servertype="DCL"/>
<ATTRIBUTE name="dcMailboxPOP3Allowed" servertype="DCL"/>
<ATTRIBUTE name="dcMailboxIMAP4Allowed" servertype="DCL"/>
<ATTRIBUTE name="dcMailboxQuotaWarn" servertype="DCL"/>
<ATTRIBUTE name="dcMailboxAddBlockSize" servertype="DCL"/>
<ATTRIBUTE name="dcMailboxMailboxType" servertype="DCL"/>
<ATTRIBUTE name="umwelcomegrtinterruptible" />
<ATTRIBUTE name="umattendantringnumber" />
<ATTRIBUTE name="umsubscriberreturncall" />
<ATTRIBUTE name="umvoicequota" />
<ATTRIBUTE name="umprepaidbillingenabled" />
<ATTRIBUTE name="umdirsearchpermissionssub" />
<ATTRIBUTE name="umdirsearchpermissionscaller" />
<ATTRIBUTE name="umasrenabled" />
<ATTRIBUTE name="umasrcssenabled" />
<ATTRIBUTE name="umexpmsgaction" />
<ATTRIBUTE name="umvoiceexpdays" />
<ATTRIBUTE name="umvuivideowelcomegrt" />
<ATTRIBUTE name="umvuivideoexpdays" />
<ATTRIBUTE name="umvuivideomailenabled" />
<ATTRIBUTE name="umvuivisualprivacyavailable" />
<ATTRIBUTE name="umvuiincludepictureid" />
<ATTRIBUTE name="umvuivideouploadenabled" />
<ATTRIBUTE name="umvuivideomsglenmax" />
<ATTRIBUTE name="umvuivideoquota" />
<ATTRIBUTE name="umhotlistmaxentries" />
<ATTRIBUTE name="ummmsplayenabled" />
<ATTRIBUTE name="umsmsplayenabled" />
<ATTRIBUTE name="ummmspushmsgavailable" />
<ATTRIBUTE name="ummdnsenabled" />
<ATTRIBUTE name="ummdnsurl" />
<ATTRIBUTE name="umfaxdistlistenabled" />
<ATTRIBUTE name="ummirapointcalnotificationavailable" />
<ATTRIBUTE name="umcallattemptnotifyavailable" />
<QUERY name="GETBASERECORDNAMES"/>
<ERRMSGS>
<GENERIC_SUCCESS_MSG gen_success_msg_code="UM_1019"/>
<GENERIC_FAILURE_MSG gen_failure_msg_code="UM_1020"/>
The above feature definition specifies the allowed and required attributes for the addcos_um
feature. The cos and umcosversion are required attributes without which the request will
be rejected.
The following request adds UM Class of Service with cos=666 and cosname=cos666.
<REQUEST sessionid="010504102216f0bfc27517233">
<ADDENTRY featurename="addcos_um" base_record="companyABC">
<ATTRIBUTE>
<ATTR_NAME name="cos">
<ATTR_VALUE value="666"
value_id="form=ADMIN_ADD_COS_FORM&element=cos&value=1" />
</ATTR_NAME>
<ATTR_NAME name="umcosversion">
<ATTR_VALUE value="5.2" value_id="form=&element=&value=2"
/>
</ATTR_NAME>
<ATTR_NAME name="cosname">
<ATTR_VALUE value="cos666"
value_id="form=ADMIN_ADD_COS_FORM&element=cosname&value=3" />
</ATTR_NAME>
<ATTR_NAME name="includespokenname">
<ATTR_VALUE value="yes"
value_id="form=ADMIN_ADD_COS_FORM&element=includespokenname&value
=4" />
</ATTR_NAME>
<ATTR_NAME name="dlentriesmax">
<ATTR_VALUE value="15"
value_id="form=ADMIN_ADD_COS_FORM&element=dlentriesmax&value=5"
/>
</ATTR_NAME>
<ATTR_NAME name="dlmax">
<ATTR_VALUE value="10"
value_id="form=ADMIN_ADD_COS_FORM&element=dlmax&value=6" />
</ATTR_NAME>
<ATTR_NAME name="inhoursstart">
<ATTR_VALUE value="0800"
value_id="form=ADMIN_ADD_COS_FORM&element=inhoursstart&value=7"
/>
</ATTR_NAME>
<ATTR_NAME name="inhoursend">
<ATTR_VALUE value="1700"
value_id="form=ADMIN_ADD_COS_FORM&element=inhoursend&value=8" />
</ATTR_NAME>
<ATTR_NAME name="inhoursdow">
<ATTR_VALUE value="12345"
value_id="form=ADMIN_ADD_COS_FORM&element=inhoursdow&value=9" />
</ATTR_NAME>
<ATTR_NAME name="eomsgwarning">
<ATTR_VALUE value="30"
value_id="form=ADMIN_ADD_COS_FORM&element=eomsgwarning&value=10"
/>
</ATTR_NAME>
<ATTR_NAME name="msglenmaxvoice">
52 <Subsystem> Process Layer Interface Description<Document Type> 2007 LogicaCMG Wireless Networks
<ATTR_VALUE value="180"
value_id="form=ADMIN_ADD_COS_FORM&element=msglenmaxvoice&value=11
" />
</ATTR_NAME>
<ATTR_NAME name="passwdlenmax">
<ATTR_VALUE value="4"
value_id="form=ADMIN_ADD_COS_FORM&element=passwdlenmax&value=12"
/>
</ATTR_NAME>
<ATTR_NAME name="passwdlenmin">
<ATTR_VALUE value="4"
value_id="form=ADMIN_ADD_COS_FORM&element=passwdlenmin&value=13"
/>
</ATTR_NAME>
<ATTR_NAME name="passwordmaxlength">
<ATTR_VALUE value="4"
value_id="form=ADMIN_ADD_COS_FORM&element=passwordmaxlength&value
=14" />
</ATTR_NAME>
<ATTR_NAME name="passwordminlength">
<ATTR_VALUE value="4"
value_id="form=ADMIN_ADD_COS_FORM&element=passwordminlength&value
=15" />
</ATTR_NAME>
<ATTR_NAME name="maxsnrnototry">
<ATTR_VALUE value="3"
value_id="form=ADMIN_ADD_COS_FORM&element=maxsnrnototry&value=16"
/>
</ATTR_NAME>
<ATTR_NAME name="messageinventory">
<ATTR_VALUE value="yes"
value_id="form=ADMIN_ADD_COS_FORM&element=messageinventory&value=
17" />
</ATTR_NAME>
<ATTR_NAME name="reinventory">
<ATTR_VALUE value="no"
value_id="form=ADMIN_ADD_COS_FORM&element=reinventory&value=18"
/>
</ATTR_NAME>
<ATTR_NAME name="umsavedinventoryplayavailable">
<ATTR_VALUE value="no"
value_id="form=ADMIN_ADD_COS_FORM&element=umsavedinventoryplayavailab
le&value=19" />
</ATTR_NAME>
<ATTR_NAME name="faxenabled">
<ATTR_VALUE value="no"
value_id="form=ADMIN_ADD_COS_FORM&element=faxenabled&value=20" />
</ATTR_NAME>
<ATTR_NAME name="umfaxandemailprintenabled">
<ATTR_VALUE value="no"
value_id="form=ADMIN_ADD_COS_FORM&element=umfaxandemailprintenabled&a
mp;value=21" />
</ATTR_NAME>
<ATTR_NAME name="ttsemailenabled">
<ATTR_VALUE value="no"
value_id="form=ADMIN_ADD_COS_FORM&element=ttsemailenabled&value=2
2" />
</ATTR_NAME>
<ATTR_NAME name="subscriberxfer">
<ATTR_VALUE value="no"
value_id="form=ADMIN_ADD_COS_FORM&element=subscriberxfer&value=23
" />
</ATTR_NAME>
<ATTR_NAME name="callerxfer">
54 <Subsystem> Process Layer Interface Description<Document Type> 2007 LogicaCMG Wireless Networks
</ATTR_NAME>
<ATTR_NAME name="maxmultiline">
<ATTR_VALUE value="1"
value_id="form=ADMIN_ADD_COS_FORM&element=maxmultiline&value=37"
/>
</ATTR_NAME>
<ATTR_NAME name="multilineallowed">
<ATTR_VALUE value="no"
value_id="form=ADMIN_ADD_COS_FORM&element=multilineallowed&value=
38" />
</ATTR_NAME>
<ATTR_NAME name="welcomegrt">
<ATTR_VALUE value="LOG_WELCOME_UONE"
value_id="form=ADMIN_ADD_COS_FORM&element=welcomegrt&value=39" />
</ATTR_NAME>
<ATTR_NAME name="mwiavailable">
<ATTR_VALUE value="yes"
value_id="form=ADMIN_ADD_COS_FORM&element=mwiavailable&value=40"
/>
</ATTR_NAME>
<ATTR_NAME name="outdialnotificationavailable">
<ATTR_VALUE value="no"
value_id="form=ADMIN_ADD_COS_FORM&element=outdialnotificationavailabl
e&value=41" />
</ATTR_NAME>
<ATTR_NAME name="pageravailable">
<ATTR_VALUE value="no"
value_id="form=ADMIN_ADD_COS_FORM&element=pageravailable&value=42
" />
</ATTR_NAME>
<ATTR_NAME name="umpagingmaxresend">
<ATTR_VALUE value="0"
value_id="form=ADMIN_ADD_COS_FORM&element=umpagingmaxresend&value
=43" />
</ATTR_NAME>
<ATTR_NAME name="umpagingresendinterval">
<ATTR_VALUE value="0"
value_id="form=ADMIN_ADD_COS_FORM&element=umpagingresendinterval&
value=44" />
</ATTR_NAME>
<ATTR_NAME name="smsavailable">
<ATTR_VALUE value="no"
value_id="form=ADMIN_ADD_COS_FORM&element=smsavailable&value=45"
/>
</ATTR_NAME>
<ATTR_NAME name="answeringservicelist">
<ATTR_VALUE value="LM"
value_id="form=ADMIN_ADD_COS_FORM&element=answeringservicelist&va
lue=46" />
</ATTR_NAME>
<ATTR_NAME name="defaultstartupapplist">
<ATTR_VALUE value="uone"
value_id="form=ADMIN_ADD_COS_FORM&element=defaultstartupapplist&v
alue=47" />
</ATTR_NAME>
<ATTR_NAME name="passwordsyncavailable">
<ATTR_VALUE value="no"
value_id="form=ADMIN_ADD_COS_FORM&element=passwordsyncavailable&v
alue=48" />
</ATTR_NAME>
<ATTR_NAME name="uoneconfigsection">
<ATTR_VALUE value="Default"
value_id="form=ADMIN_ADD_COS_FORM&element=uoneconfigsection&value
=49" />
56 <Subsystem> Process Layer Interface Description<Document Type> 2007 LogicaCMG Wireless Networks
</ATTR_NAME>
<ATTR_NAME name="useptnallowed">
<ATTR_VALUE value="no"
value_id="form=ADMIN_ADD_COS_FORM&element=useptnallowed&value=63"
/>
</ATTR_NAME>
<ATTR_NAME name="mdnallowed">
<ATTR_VALUE value="no"
value_id="form=ADMIN_ADD_COS_FORM&element=mdnallowed&value=64" />
</ATTR_NAME>
<ATTR_NAME name="umexternalmailaccountmax">
<ATTR_VALUE value="0"
value_id="form=ADMIN_ADD_COS_FORM&element=umexternalmailaccountmax&am
p;value=65" />
</ATTR_NAME>
<ATTR_NAME name="umwapnotificationavailable">
<ATTR_VALUE value="no"
value_id="form=ADMIN_ADD_COS_FORM&element=umwapnotificationavailable&
amp;value=66" />
</ATTR_NAME>
<ATTR_NAME name="ummmsnotificationavailable">
<ATTR_VALUE value="no"
value_id="form=ADMIN_ADD_COS_FORM&element=ummmsnotificationavailable&
amp;value=67" />
</ATTR_NAME>
<ATTR_NAME name="ummaxnotperdayallowed">
<ATTR_VALUE value="0"
value_id="form=ADMIN_ADD_COS_FORM&element=ummaxnotperdayallowed&v
alue=68" />
</ATTR_NAME>
<ATTR_NAME name="umdirectnotifyavailable">
<ATTR_VALUE value="yes"
value_id="form=ADMIN_ADD_COS_FORM&element=umdirectnotifyavailable&
;value=69" />
</ATTR_NAME>
<ATTR_NAME name="umfirsteventnotifyavailable">
<ATTR_VALUE value="no"
value_id="form=ADMIN_ADD_COS_FORM&element=umfirsteventnotifyavailable
&value=70" />
</ATTR_NAME>
<ATTR_NAME name="umdirectnotifyfallback">
<ATTR_VALUE value="end"
value_id="form=ADMIN_ADD_COS_FORM&element=umdirectnotifyfallback&
value=71" />
</ATTR_NAME>
<ATTR_NAME name="umdirectnotifyfallbackinterval">
<ATTR_VALUE value="0"
value_id="form=ADMIN_ADD_COS_FORM&element=umdirectnotifyfallbackinter
val&value=72" />
</ATTR_NAME>
<ATTR_NAME name="ummaxtriggers">
<ATTR_VALUE value="20"
value_id="form=ADMIN_ADD_COS_FORM&element=ummaxtriggers&value=73"
/>
</ATTR_NAME>
<ATTR_NAME name="umminperiodicnotifyinterval">
<ATTR_VALUE value="0"
value_id="form=ADMIN_ADD_COS_FORM&element=umminperiodicnotifyinterval
&value=74" />
</ATTR_NAME>
<ATTR_NAME name="umperiodicnotifyfallback">
<ATTR_VALUE value="end"
value_id="form=ADMIN_ADD_COS_FORM&element=umperiodicnotifyfallback&am
p;value=75" />
58 <Subsystem> Process Layer Interface Description<Document Type> 2007 LogicaCMG Wireless Networks
<ATTR_VALUE value="none"
value_id="form=ADMIN_ADD_COS_FORM&element=umexpmsgaction&value=88
" />
</ATTR_NAME>
<ATTR_NAME name="umvoiceexpdays">
<ATTR_VALUE value="7"
value_id="form=ADMIN_ADD_COS_FORM&element=umvoiceexpdays&value=89
" />
</ATTR_NAME>
<ATTR_NAME name="umvuivideowelcomegrt">
<ATTR_VALUE value="LOG_VIDEO_WELCOME"
value_id="form=ADMIN_ADD_COS_FORM&element=umvuivideowelcomegrt&va
lue=90"
/>
</ATTR_NAME>
<ATTR_NAME name="umvuivideoexpdays">
<ATTR_VALUE value="7"
value_id="form=ADMIN_ADD_COS_FORM&element=umvuivideoexpdays&value
=91" />
</ATTR_NAME>
<ATTR_NAME name="umvuivideomailenabled">
<ATTR_VALUE value="no"
value_id="form=ADMIN_ADD_COS_FORM&element=umvuivideomailenabled&v
alue=92" />
</ATTR_NAME>
<ATTR_NAME name="umvuivisualprivacyavailable">
<ATTR_VALUE value="no"
value_id="form=ADMIN_ADD_COS_FORM&element=umvuivisualprivacyavailable
&value=93" />
</ATTR_NAME>
<ATTR_NAME name="umvuiincludepictureid">
<ATTR_VALUE value="no"
value_id="form=ADMIN_ADD_COS_FORM&element=umvuiincludepictureid&v
alue=94" />
</ATTR_NAME>
<ATTR_NAME name="umvuivideouploadenabled">
<ATTR_VALUE value="no"
value_id="form=ADMIN_ADD_COS_FORM&element=umvuivideouploadenabled&
;value=95" />
</ATTR_NAME>
<ATTR_NAME name="umvuivideomsglenmax">
<ATTR_VALUE value="180"
value_id="form=ADMIN_ADD_COS_FORM&element=umvuivideomsglenmax&val
ue=96" />
</ATTR_NAME> <ATTR_NAME name="umvuivideoquota">
<ATTR_VALUE value="0"
value_id="form=ADMIN_ADD_COS_FORM&element=umvuivideoquota&value=9
7" />
</ATTR_NAME>
<ATTR_NAME name="umhotlistmaxentries">
<ATTR_VALUE value="0"
value_id="form=ADMIN_ADD_COS_FORM&element=umhotlistmaxentries&val
ue=98" />
</ATTR_NAME>
<ATTR_NAME name="ummmsplayenabled">
<ATTR_VALUE value="no"
value_id="form=ADMIN_ADD_COS_FORM&element=ummmsplayenabled&value=
99" />
</ATTR_NAME>
<ATTR_NAME name="umsmsplayenabled">
<ATTR_VALUE value="no"
value_id="form=ADMIN_ADD_COS_FORM&element=umsmsplayenabled&value=
100" />
</ATTR_NAME>
The above request adds UM COS LDAP entry with cos=666 inside the container
ou=umcos in the community companyABC..
Process layer validates the request making sure all the required attributes (cos and
umcosversion) are defined in the request and also all other attributes in the request
are allowed by the feature definition.
Check the attribute values for certain attributes, if the values are specified are not
allowed reset the values to defaults.
60 <Subsystem> Process Layer Interface Description<Document Type> 2007 LogicaCMG Wireless Networks
o passwordskipavailable no
o outdialturnaroundpsavailable no
o langavail is set to langdefault if not specified
<QUERY name="GETBASERECORDNAMES"/>
<QUERY name="GETMOBILETYPES" showattrlist="mobiletype" />
<ERRMSGS>
<GENERIC_SUCCESS_MSG gen_success_msg_code="UM_1048"/>
<GENERIC_FAILURE_MSG gen_failure_msg_code="UM_1049"/>
</ERRMSGS>
</FEATURE>
The above feature definition specifies the allowed and required attributes for the
addsub_common feature. The blocked, language, mobiletype, password, uid, cn, and sn are
required attributes without which the request will be rejected.
The following request adds a common subscriber profile with telephone number
6660001111.
<REQUEST sessionid="010504102216f0bfc27517233">
<ADDENTRY featurename="addsub_common" base_record="companyABC">
62 <Subsystem> Process Layer Interface Description<Document Type> 2007 LogicaCMG Wireless Networks
</REQUEST>
A uniqueness search is carried out for uid=6660001111 within the whole LDAP
directory.
Process layer validates the request making sure all the required attributes
(blocked, language, mobiletype, password, uid, cn, and sn) are defined in the
request and also all other attributes in the request are allowed by the feature
definition.
64 <Subsystem> Process Layer Interface Description<Document Type> 2007 LogicaCMG Wireless Networks
<ATTRIBUTE name="umvuiactivevideogreetingid"/>
<ATTRIBUTE name="umvuiurgentvideoplay"/>
<ATTRIBUTE name="umvuiautoplayvideo" />
<ATTRIBUTE name="umvuimessageplayvideo"/>
<ATTRIBUTE name="umbtnumber"/>
<ATTRIBUTE name="PreferredDateFormat" />
<ATTRIBUTE name="PreferredTimeFormat" />
<ATTRIBUTE name="secondarytimezone" />
The above feature definition specifies the allowed and required attributes for the
addsub_uone feature. The uniqueidentifier, umdeviceversion and msghost are required
attributes without which the request will be rejected.
The following request adds uOne service for subscriber with uniqueidentifier
010504102953ae4642875edef.
<REQUEST sessionid="010504102216f0bfc27517233">
<ADDENTRY featurename="addsub_uone" base_record="companyABC">
<ATTRIBUTE>
<ATTR_NAME name="uniqueidentifier">
<ATTR_VALUE value="010504102953ae4642875edef"
value_id="form=SUB_UONE_1&element=uniqueidentifier&value=1" />
</ATTR_NAME>
<ATTR_NAME name="umdeviceversion">
<ATTR_VALUE value="6.1"
value_id="form=SUB_UONE_2&element=dcmailboxfailedlogoncount&value
=2" />
</ATTR_NAME>
<ATTR_NAME name="mailroutingaddress">
<ATTR_VALUE value="6660001111@deldomain1.companyABC.com"
value_id="form=SUB_UONE_2&element=mailroutingaddress&value=3" />
</ATTR_NAME>
<ATTR_NAME name="umblocked">
<ATTR_VALUE value="no"
value_id="form=SUB_UONE_2&element=umblocked&value=4" />
</ATTR_NAME>
<ATTR_NAME name="mailquota">
<ATTR_VALUE value="5"
value_id="form=SUB_UONE_2&element=mailquota&value=5" />
</ATTR_NAME>
<ATTR_NAME name="mailhost">
<ATTR_VALUE value="automaticselection"
value_id="form=SUB_UONE_2&element=mailhost&value=6" />
</ATTR_NAME>
<ATTR_NAME name="msghost">
<ATTR_VALUE value="smart-mira.cmguc.com"
value_id="form=SUB_UONE_2&element=msghost&value=7" />
</ATTR_NAME>
<ATTR_NAME name="phonetype">
66 <Subsystem> Process Layer Interface Description<Document Type> 2007 LogicaCMG Wireless Networks
The above modifies the subscriber main entry and adds a new device entry for the
subscriber inside the container ou=subscribers in the community companyABC.
The device entry is child of subscriber main entry.
Process layer validates the request making sure all the required attributes
(uniqueidentifier, umdeviceversion and msghost) are defined in the request and also
all other attributes in the request are allowed by the feature definition.
Check the attribute values for certain attributes, if the values are specified are not
allowed reset the values to defaults.
68 <Subsystem> Process Layer Interface Description<Document Type> 2007 LogicaCMG Wireless Networks
<ATTRIBUTE name="umInHoursPeriodicInterval" />
<ATTRIBUTE name="umInHoursPeriodicChannel" />
<ATTRIBUTE name="umInHoursFirstEventEnabled" />
<ATTRIBUTE name="umOutHoursDirectEnabled" />
<ATTRIBUTE name="umOutHoursPeriodicEnabled" />
<ATTRIBUTE name="umOutHoursPeriodicInterval" />
<ATTRIBUTE name="umOutHoursPeriodicChannel" />
<ATTRIBUTE name="umOutHoursFirstEventEnabled" />
<ATTRIBUTE name="umOutDaysDirectEnabled" />
<ATTRIBUTE name="umOutDaysPeriodicEnabled" />
<ATTRIBUTE name="umOutDaysPeriodicInterval" />
<ATTRIBUTE name="umOutDaysPeriodicChannel" />
<ATTRIBUTE name="umOutDaysFirstEventEnabled" />
<ATTRIBUTE name="umInHoursTriggerA" />
<ATTRIBUTE name="umInHoursTriggerB" />
<ATTRIBUTE name="umInHoursTriggerC" />
<ATTRIBUTE name="umOutHoursTriggerA" />
<ATTRIBUTE name="umOutHoursTriggerB" />
<ATTRIBUTE name="umOutHoursTriggerC" />
<ATTRIBUTE name="umOutDaysTriggerA" />
<ATTRIBUTE name="umOutDaysTriggerB" />
<ATTRIBUTE name="umOutDaysTriggerC" />
<ATTRIBUTE name="umMWIswitch" />
<ATTRIBUTE name="cosid"/>
<ATTRIBUTE name="cosbase"/>
<!-- smsinfo entry attributes -->
<ATTRIBUTE name="gsmdatacodingscheme"/>
<ATTRIBUTE name="notificationexptime"/>
<ATTRIBUTE name="npi"/>
<ATTRIBUTE name="smppcenterid"/>
<ATTRIBUTE name="ton"/>
<!-- 60.22 - MMS Push of Messages - pprakasa - START -->
<ATTRIBUTE name="ummmspushmsgenabled" />
<!-- 60.22 - MMS Push of Messages - pprakasa - END -->
<ERRMSGS>
<GENERIC_SUCCESS_MSG gen_success_msg_code="UM_1079"/>
<GENERIC_FAILURE_MSG gen_failure_msg_code="UM_1080"/>
</ERRMSGS>
</FEATURE>
The above feature definition specifies the allowed and required attributes for the
addsub_unotify feature. The uniqueidentifier, umdeviceversion and billingnumber are
required attributes without which the request will be rejected.
The following request adds uNotify service for subscriber with uniqueidentifier
010504102953ae4642875edef.
<REQUEST sessionid="010504102216f0bfc27517233">
<MODIFYENTRY featurename="addsub_unotify" base_record="companyABC">
<ATTRIBUTE>
<ATTR_NAME name="uniqueidentifier">
The above modifies the subscriber main entry inside the container ou=subscribers
in the community companyABC.
Process layer validates the request making sure all the required attributes
(uniqueidentifier, umdeviceversion and billingnumber) are defined in the request and
also all other attributes in the request are allowed by the feature definition.
Check the attribute values for certain attributes, if the values are specified are not
allowed reset the values to defaults.
70 <Subsystem> Process Layer Interface Description<Document Type> 2007 LogicaCMG Wireless Networks
Following code block shows the XML file of this feature:
The above feature defines the logic of deleting uOne service. The billingnumber is a
required attribute. The feature specifies that the attributes cosdn, mailhost and
mailroutingaddress are deleted from the uone_subscriber_entry (which is same as
subscriber main entry) if the objectclass umnotifier is not set (uNotify not subscribed by the
subscriber). The feature also specifies that all the attributes (delete complete entry) from the
subscribers device entry be deleted while administering this feature.
The following request deletes uOne service for subscriber device with billingnumber
6660001111 in community companyABC.
<REQUEST sessionid="010504102216f0bfc27517233">
<DELETEENTRY featurename="delsub_uone"
record_identifier="uniqueidentifier=010504102953ae4642875edef"
base_record="companyABC">
<ATTRIBUTE>
<ATTR_NAME name="billingnumber">
<ATTR_VALUE value="6660001111"/>
</ATTR_NAME>
<ATTR_NAME name="deleteuonesubandimap">
<ATTR_VALUE value="yes"/>
</ATTR_NAME>
</ATTRIBUTE>
</DELETEENTRY>
</REQUEST>
The above deletes the subscriber uOne service for the device with billingnumber
6660001111.
Process layer validates the request making sure all the required attributes
(billingnumber) are defined in the request and also all other attributes in the request
are allowed by the feature definition.
72 <Subsystem> Process Layer Interface Description<Document Type> 2007 LogicaCMG Wireless Networks
<DELETE_ATTR name="umInHoursDirectEnabled" />
<DELETE_ATTR name="umInHoursPeriodicEnabled" />
<DELETE_ATTR name="umInHoursPeriodicInterval" />
<DELETE_ATTR name="umInHoursPeriodicChannel" />
<DELETE_ATTR name="umOutHoursDirectEnabled" />
<DELETE_ATTR name="umOutHoursPeriodicEnabled" />
<DELETE_ATTR name="umOutHoursPeriodicInterval" />
<DELETE_ATTR name="umOutHoursPeriodicChannel" />
<DELETE_ATTR name="umOutDaysDirectEnabled" />
<DELETE_ATTR name="umOutDaysPeriodicEnabled" />
<DELETE_ATTR name="umOutDaysPeriodicInterval" />
<DELETE_ATTR name="umOutDaysPeriodicChannel" />
<DELETE_ATTR name="umInHoursTriggerA" />
<DELETE_ATTR name="umInHoursTriggerB" />
<DELETE_ATTR name="umInHoursTriggerC" />
<DELETE_ATTR name="umOutHoursTriggerA" />
<DELETE_ATTR name="umOutHoursTriggerB" />
<DELETE_ATTR name="umOutHoursTriggerC" />
<DELETE_ATTR name="umOutDaysTriggerA" />
<DELETE_ATTR name="umOutDaysTriggerB" />
<DELETE_ATTR name="umOutDaysTriggerC" />
<!-- smsinfo entry attributes -->
<DELETE_ATTR name="gsmdatacodingscheme"/>
<DELETE_ATTR name="notificationexptime"/>
<DELETE_ATTR name="npi"/>
<DELETE_ATTR name="smppcenterid"/>
<DELETE_ATTR name="ton"/>
</DELETE_RECORD>
<ATTRIBUTE name="telephonenumber" required="1"/>
<ERRMSGS>
<GENERIC_SUCCESS_MSG gen_success_msg_code="UM_1155"/>
<GENERIC_FAILURE_MSG gen_failure_msg_code="UM_1156"/>
</ERRMSGS>
</FEATURE>
The above feature XML specifies the logic behind deleting a uNotify service. It specifies the
attributes, which are deleted from the unotify_subscriber_entry (which is same as subscriber
main entry) using the XML element DELETE_ATTR. Note that the attribute cosdn is deleted
only if objectclass does not have a value of umsubscriber (subscriber does not have uOne
service).
The following request deletes uNotify service for subscriber device with uniqueidentifier
010504102953ae4642875edef in community companyABC.
<REQUEST sessionid="010504102216f0bfc27517233">
<DELETEENTRY featurename="delsub_unotify"
record_identifier="uniqueidentifier=010504102953ae4642875edef"
base_record="companyABC>
<ATTRIBUTE>
<ATTR_NAME name="telephonenumber">
<ATTR_VALUE value="6660001111"/>
</ATTR_NAME>
</ATTRIBUTE>
</DELETEENTRY>
</REQUEST>
The above deletes the subscriber uNotify service for the uniqueidentifier
010504102953ae4642875edef in community companyABC.
Process layer validates the request making sure all the required attributes
(telephonenumber) are defined in the request and also all other attributes in the
request are allowed by the feature definition.
The process layer attempts to delete the subscriber IMAP account while deleting
uNotify service. The subscribers IMAP account is deleted only if there is not other
service (uOne) subscribed to by the subscriber, which uses the IMAP mailbox. The
subscriber looses all the messages in the mailbox if the subscribers IMAP
mailbox/account is deleted.
The above feature definition specifies the delete common subscriber action. During delete
common subscriber delete all the attributes in the subscriber main entry (meaning the
complete entry is deleted). All the entries below the subscriber main entry are removed and
then the subscriber main entry is removed. Attribute deleteuonesubandimap specifies if the
subscribers IMAP mailbox should be deleted or not.
The following request deletes uOne service for subscriber device with telephonenumber
6660001111 in community companyABC
<REQUEST sessionid="010504102216f0bfc27517233">
<DELETEENTRY featurename="delsub_common"
record_identifier="uniqueidentifier=010504102953ae4642875edef"
base_record="deviut"
>
<ATTRIBUTE>
<ATTR_NAME name="telephonenumber">
74 <Subsystem> Process Layer Interface Description<Document Type> 2007 LogicaCMG Wireless Networks
<ATTR_VALUE value="6660001111"/>
</ATTR_NAME>
<ATTR_NAME name="deleteuonesubandimap">
<ATTR_VALUE value="yes"/>
</ATTR_NAME>
<ATTR_NAME name="uniqueidentifier">
<ATTR_VALUE value=""/>
</ATTR_NAME>
</ATTRIBUTE>
</DELETEENTRY>
</REQUEST>
The above deletes the subscribers LDAP data completely. If a Primary Group
Mailbox (PGM) subscriber is deleted using delete common subscriber request, all
the associated Secondary Group Mailbox (SGM) subscribers are also deleted.
Process layer validates the request making sure all the required attributes
(billingnumber) are defined in the request and also all other attributes in the request
are allowed by the feature definition.
This Appendix provides process layer request and response examples with url-encoded
data and with HTTP headers.
xml_data=%3C%3Fxml+version%3D%221.0%22+%3F%3E%0A%3C%21DOCTYPE+REQUEST%5B%
0A++%3C%21ELEMENT+REQUEST+%28%28LOGIN+%7C
+VALIDATEDATA+%7C+VALIDATEENTRY+%7C+ADDENTRY+%7C+MODIFYENTRY+%7C+DELETEEN
TRY%2A+%7C+SEARCHENTRY%2A+%7C+LOGOUT+%7C+
UPLOADFILE+%7C+COPYENTRIES%29%29%3E%0A++++%3C%21ATTLIST++REQUEST+++++++se
ssionid+++++++CDATA+%23IMPLIED%3E%0A++++%
3C%21ATTLIST++LOGIN+++++++++userid++++++++++CDATA+%23IMPLIED%0A++++++++++
+++++++++++++++++++passwd++++++++++CDATA+
%23IMPLIED%0A+++++++++++++++++++++++++++++adminlogin++++++CDATA+%23IMPLIE
D%0A+++++++++++++++++++++++++++++accessty
pe++++++CDATA+%23IMPLIED%0A%09%09%09+++++provideServiceList+CDATA+%23IMPL
IED%3E%0A++++%3C%21ELEMENT+VALIDATEDATA+%
28ATTRIBUTE+%29%3E%0A+++++%3C%21ATTLIST++VALIDATEDATA+featurename+++++CDA
TA+%23IMPLIED%3E%0A%0A++++%3C%21ATTLIST+V
ALIDATEENTRY++record_identifier+CDATA+%23IMPLIED%0A++++++++++++++++++++++
+++++++base_record+++++CDATA+%23IMPLIED%0
A+++++++++++++++++++++++++++++featurename+++++CDATA+%23IMPLIED%3E%0A%0A++
++%3C%21ELEMENT++ADDENTRY+%28ATTRIBUTE+%2
9%3E%0A++++++%3C%21ATTLIST+ADDENTRY+++++featurename+++++CDATA+%23IMPLIED%
0A+++++++++++++++++++++++++++++base_recor
d+++++CDATA+%23IMPLIED%3E%0A%0A++++%3C%21ELEMENT++MODIFYENTRY+%28ATTRIBUT
E+%29%3E%0A++++++%3C%21ATTLIST+MODIFYENTR
Y++featurename+++++CDATA+%23IMPLIED%0A+++++++++++++++++++++++++++++base_r
ecord+++++CDATA+%23IMPLIED%3E%0A++++%0A++
++%3C%21ELEMENT+UPLOADFILE+%28ATTRIBUTE%2C+BASE64DATA%3F+%29%3E%0A++++%3C
%21ATTLIST+UPLOADFILE+++++featurename++++
+CDATA+%23IMPLIED%0A+++++++++++++++++++++++++++++base_record+++++CDATA+%2
3IMPLIED%3E%09%0A%0A++++%3C%21ELEMENT++DE
LETEENTRY+%28ATTRIBUTE+%29%3E%0A++++%3C%21ATTLIST++DELETEENTRY+++record_i
dentifier+CDATA+%23IMPLIED%0A++++++++++++
+++++++++++++++++base_record+++++CDATA+%23IMPLIED%3E%0A%0A++++%3C%21ELEME
NT++RENAMEENTRIES+%28ATTRIBUTE+%29%3E%0A+
+++%3C%21ATTLIST++RENAMEENTRIES+featurename+++++CDATA+%23IMPLIED+%0A+++++
++++++++++++++++++++++++record_identifier
+CDATA+%23IMPLIED%0A+++++++++++++++++++++++++++++base_record+++++CDATA+%2
3IMPLIED%3E%0A%0A++++%3C%21ELEMENT++SEARC
The above is a LOGIN request the presentation layer sends to the process layer. Note the
xml_data tag at the beginning of the request body. The request includes the request XML
DTD. The request is url-encoded, note the spaces replaced by + and other characters
replaced by %HH.
HTTP/1.1 200 OK
X-Powered-By: PHP/4.0.5
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html
7bb
78 <Subsystem> Process Layer Interface Description<Document Type> 2007 LogicaCMG Wireless Networks
<!ATTLIST PARTIAL_COMPLETION_MESSAGE ReqProcessInProgress CDATA
#REQUIRED>
<!ATTLIST MESSAGE msgcode CDATA #REQUIRED
msgtext CDATA #REQUIRED
value_id CDATA #REQUIRED>
ENDOFDATA
875
ENDOFDATA
8ed
80 <Subsystem> Process Layer Interface Description<Document Type> 2007 LogicaCMG Wireless Networks
<!ATTLIST ATTR_NAME name CDATA #IMPLIED>
<!ATTLIST ATTR_VALUE value CDATA #IMPLIED>
HTTP/1.1 200 OK
X-Powered-By: PHP/4.0.5
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html
9c9
82 <Subsystem> Process Layer Interface Description<Document Type> 2007 LogicaCMG Wireless Networks
<RECORD_ID_LIST base_record="COI3" />
<RECORD_ID_LIST base_record="coi4" />
<RECORD_ID_LIST base_record="coi5" />
<RECORD_ID_LIST base_record="coi6" />
<RECORD_ID_LIST base_record="COI9" />
<RECORD_ID_LIST base_record="Carolcoi1" />
<RECORD_ID_LIST base_record="Carolcoi1Copied" />
<RECORD_ID_LIST base_record="COI 11 under COI 1" />
<RECORD_ID_LIST base_record="COI-ILN11" />
</DATA>
</RESPONSE>
84 <Subsystem> Process Layer Interface Description<Document Type> 2007 LogicaCMG Wireless Networks
Glossary
Approval
Version Date Approved by Signature