Академический Документы
Профессиональный Документы
Культура Документы
1
LDAP Interface Specification
270-735-079R27.7
Issue 3
May 2010
Legal Notice
This material is protected by the copyright and trade secret laws of the United States and other
countries. It may not be reproduced, distributed, or altered in any fashion by any entity (either
internal or external to Alcatel-Lucent), except in accordance with applicable agreements,
contracts or licensing, without the express written consent of Alcatel-Lucent and the business
management owner of the material.
Product Development Manager 1-630-224-0378
Notice
This document also applies to SP28.1, which is simply SP27.7 rebuilt on MAS platform R28SU2.
All descriptions apply to both MAS R27SU8 and MAS R28SU2 platforms unless specifically
stated otherwise.
Every effort was made to ensure that the information in this Information Product (IP) was
complete and accurate at the time of printing. However, information is subject to change.
Security Statement
In rare instances, unauthorized individuals make connections to the telecommunications network
through the use of access features.
Trademarks
All trademarks and service marks specified herein are owned by their respective companies.
SurePay is a Registered Trademark of Alcatel-Lucent.
Ordering information
To order this document in the United States, call 1-888-582-3688. In other countries call your
Alcatel-Lucent Technologies Market Manager.
Support
Technical support
For technical support on this product in the United States and Canada, call 1-800-WE2CARE. In
other countries, contact your Lucent Technologies customer helpdesk.
Alcatel-Lucent - Proprietary
Document History
Issue Version Date Change Description
Issue 1 January 1, 2010 First Issue
Issue 2 February 4, 2010 Second Issue
Issue 3 May 5, 2010 Third Issue
Alcatel-Lucent - Proprietary
Contents
1 Introduction 1
1.1 External References 1
Alcatel-Lucent - Proprietary
2.1.7.2 eCGS LDAP Interface 33
2.1.7.2.1 Request Top Up 33
2.1.7.2.1.1 Interface Requirements 33
2.1.7.2.1.2 Dataview Definition 34
2.1.7.2.2 Request Automatic Top Up Parameter Setting 35
2.1.7.2.2.1 Interface Requirements 35
2.1.7.2.2.2 Dataview Definition 36
2.1.7.2.3 Request Feature Package 36
2.1.7.2.3.1 Interface Requirements 36
2.1.7.2.3.2 Dataview Definition 41
2.1.7.2.4 Request Bundle Subscription 43
2.1.7.2.4.1 Interface Requirements 43
2.1.7.2.4.2 Dataview Definition 46
2.1.7.2.5 Request Voicemail Retrieval Charge 50
2.1.7.2.5.1 Interface Requirements 50
2.1.7.2.5.2 Dataview Definition 51
2.1.7.3 Misc. LDAP interface 51
2.1.7.3.1 Generic LDAP interface 51
2.1.7.3.1.1 Application Result Code 51
2.1.7.3.1.2 Interface Requirements 53
2.1.7.3.1.2.1 LDAP Query RTDB data 54
2.1.7.3.1.2.2 Authenticate 3rd party user 60
2.1.7.3.1.2.3 Modification 3rd party PIN 61
2.1.7.3.1.2.4 Authenticate Balance transfer 62
2.1.7.3.1.2.5 Balance transfer 64
2.1.7.3.1.2.6 Execute IMOM command 65
2.1.7.3.1.2.7 Update RTDB data 65
2.1.7.3.1.2.8 Request Notification 66
2.1.7.3.1.3 Dataview definition 68
2.1.8 LDAP Request Definitions with SurePay as Client 68
2.1.8.1 Digit Mapping Request 68
2.1.8.1.1 Interface Requirements 68
2.1.8.1.2 Dataview Definition 69
2.1.8.2 Family Group Releation Request 69
2.1.8.2.1 Interface Requirements 69
2.1.8.2.2 Dataview Definition 70
2.2 LDAP Standard Method 70
2.2.1 LDAP Initialisation Requirements 70
2.2.1.1 LDAP Initialisation with SurePay as Client 70
2.2.2 LDAP Request Definitions with SurePay as Client 71
2.2.2.1 General Requirement 71
2.2.2.2 MNP Query Request 71
2.2.2.2.1 Interface Requirements 71
2.2.2.3 Community Tariff Query Request 72
2.2.2.3.1 Interface Requirements 72
Alcatel-Lucent - Proprietary
1 Introduction
This document describes the LDAP (Lightweight Directory Access Protocol) Interface to the Lucent Technologies Surepay
service first added in Version 7 implemented on the Enhanced Control Server (eCS) platform (the eCS was formerly known as
the Service Control Point, or SCP. Any reference to SCP in this document shall be taken to mean eCS).
The LDAP interface on the eCS is identical to that on the MiLife (R) Application Server (MAS) for the equivalent release. For
example, the LDAP interface for V10SU5 on the eCS is identical to the interface for R25SU1 on the MAS. Additionally, the
interface is identical between equivalent releases in R25 and R26. For example the interface for R25SU4 is identical to the
interface for R26SU0. The interface is identical between equivalent releases in R26 and R27. For example the interface for
R26SU8 is identical to the interface for R27SU3.
Support for the LDAP e-Commerce interface was first added over two Surepay releases, V7.0 and V7.1 and subsequently
enhanced in Version 8. The interface for V10SU2 is functionally identical to V8SU6.
For all eCommerce request types the SurePay service is acting as the server.
This eCommerce LDAP interface allows a back-office system to query certain subscriber information and to apply a variety of
charges or recharges to the subscriber's account. The types of charges and recharges that can be applied are described in
detail in this document.
The SurePay service also includes support for a different type of LDAP interface for digit mapping. This interface allows
SurePay to send an LDAP request to an external system in order to map a digit string to another digit string (e.g. for number
portability). For the Digit Mapping LDAP requests SurePay is acting as the client and the external Digit Mapping system shall
act as the server. This document also includes a specification of the LDAP interface required to be supported by the server
system.
SurePay is a registered trademark of Lucent Technologies. The LDAP interface to SurePay is related to the SurePay Online
Charging Service (OCS). Any reference to SurePay throughout this material shall be taken to mean 8620 SurePay ® OCS
unless there is a specific note to the contrary.
Prior to V10SU7 all e-Commerce LDAP requests could be handled by an Interface SPA which in turn interacted as necessary
with the main Surepay SPA which handles call processing and subscriber account management. From V10SU7 all e-
Commerce interfaces and functionality is migrated to the main SurePay SPA and this Interface SPA is no longer necessary.
When describing the contents of LDAP messages the ASN.1 labels from the message syntax definitions in [RFC1777] are
used. Note, however, that the ASN.1 message definitions are not duplicated in this document.
Note that the LDAP UnbindRequest is purposely not supported. The MAS expects an LDAP connection to remain permanently
bound for performance reasons.
3. In the BindRequest operation, a proprietary format for the "name" parameter is required and only the "simple" setting of the
"authentication" parameter is supported.
4. In the SearchRequest operation, a proprietary format for the "baseObject" parameter is required and a proprietary
"extension" is used to encode multiple input fields into a single key defined in the AttributeValueAssertion for the "filter"
parameter.
5. Surepay eCommerce will not return application-specific errors in an unsuccessful SearchResponse. Instead a ResultCode
field will be populated in a successful SearchResponse operation. This is because the LDAP standard does not define
sufficient error codes for the purposes of eCommerce.
Example:
For the e-Commerce Request Debit (Service Delivery) LDAP request (see later for more information), the key value
“123456789::777::::MT_SMS:Weather:1:0” means«
Subscriber ID = 123456789
Provider ID = omitted
Transaction ID = 777
Requesting System = omitted
Merchant ID = omitted
Reference = omitted
Service Type = MT_SMS
Content Type = Weather
Number of Items = 1
Balance Indicator = 0 (Default Balance)
To reduce the number of dataviews in SurePay, and make the interface more flexible, some LDAP operations require the key
field to be encoded in a different schema instead of simple join using ':'. For example, name/value pairs will be used in the key
field ("OP=Q;Tbl_name=SIMRTDB;Tbl_key=xxx;Field_name=F1,F2,F3"). Other than ':', ',',';' and '#' may be used for delimiter
of different purpose.
SurePay will perform content sensitive parsing of the key string in these cases.
The SurePay service is configured to run on one or more Mated Pairs of MAS's and each subscriber is assigned one MAS of
the pair to be primary (under normal call processing circumstances calls for a subscriber will be sent to the MAS that is primary
for that subscriber. Only if that MAS is down will the call be sent to the alternate MAS). This means that there are two possible
destination server MAS's for LDAP requests for any given subscriber. If the first LDAP Request from the client fails (time out)
then the client should attempt to resend the request to the other MAS. This requires that a mechanism should be defined on
the client (e.g. data table) to map each subscriber to a primary and alternate MAS. The client should always send the first
request to the primary MAS for a subscriber.
From V10SU7 the e-Commerce Interface SPA is no longer necessary as all e-Commerce functionality is supported in the main
SurePay SPA. If the Interface SPA is not used then an LDAP Request must be sent to the Primary MAS. If the first LDAP
Request from the client fails (time out) then the client should attempt to resend the request to the Secondary MAS.
The MAS server requires that a unique dataview name (dview) is defined in order to allow the client to address data stored
across multiple physical databases with a single request (all dataview names (dviews) are also defined on the MAS platform
using RCV forms 9.*). The dataview name (dview) comprises the physical dataview table name on the server plus an MAS-
specific identifier, as follows:
Dataview Name (dview) = Server MAS Id + “_” + Physical Dataview Table Name
e.g. dview = “MAS01_sub_debit” will be the dataview name for the sub_debit dataview table on server MAS “MAS01”
The requirement for the client is to bind to the defined dataview names using an LDAP Bind Request for each dataview for
each server MAS. (i.e. there could be multiple BIND requests sent to each server MAS, one for each dataview required to be
used). This implies that a mechanism should be defined on the client to store the server MAS Ids (e.g. data table) so that
additional servers can be added without any need to modify the client code. This table should also include the server host
name (could be the same as the MAS Id above) and port number. These are required for TCP/IP link setup.
Note that the maximum length of a dataview name (including the MAS Id) is 30 characters. This limit is imposed by the MAS
platform.
The client needs to store the LDAP password for each dataview to be provided in the BIND Request.
IMPORTANT: The dataview and field names used in the LDAP requests sent from the client must exactly match the names
specified in this document (including upper/lower case and underscore characters) in order for the request to be correctly
processed.
Internally the SurePay client defines a dataview name (dview) which is configured on the MAS platform using RCV forms 9.* to
map to physical host/port Ids for TCP/IP. The name used comprises the dataview name on the client plus an identifier of the
server Id, as follows:
e.g. dview = “serv01_test” will be the dataview name for the test dataview on server “serv01”.
The server Id is only included to allow the client to direct requests to specific servers (in case multiple servers are present).
The dview name appears in both BIND and SEARCH requests sent by the SurePay client. The server is not required to do
anything special based on the dview name or server Id except to recognise that this is a valid LDAP request. The dataview
concept is only meaningful on the client.
Note that the maximum length of a dataview name (including the MAS Id) is 30 characters. This limit is imposed by the MAS
platform.
2.1.5 Enhancements
This section is added to describe enhancements in subsequent releases.
In V10SU4 the handling of Credit Reservation requests is enhanced. In the event that the subsequent Debit request requires
an additional amount to be debited but the account has insufficient balance to cover the extra amount and Outstanding
Charges are not allowed then the following options are available, based on a configuration parameter in SurePay data:
• All e-Commerce functionality is supported in the main SurePay SPA. Therefore the e-Commerce Interface SPA is no
longer necessary.
• For Request Credit (Credit Card), Request Credit (Scratch Card) and Request Credit, a new optional parameter "Credit
Validity Period" is supported.
• For "Request Bundle Subscription" up to 15 Friends&Family numbers are added in the response.
From V10SU8 the following enhancements are included:
• The Authenticate Subscriber request supports returning the Class of Service (COSP) ID for the subscriber as an option.
• The Request Credit request supports returning a Class of Service code as an option.
From V10 SU9, the following enhancements are included:
• IPv6 support is included.
• Location Information field in Debit request (service delivery) is extended to contain IPv6 address.
• SurePay supports to reverse last recharge by the Debit Amount (Direct) request if each recharge is recorded in RE
RTDB.
• A general purpose LDAP interface of SurePay provides the functionality of subscriber profile (in SIM RTDB) query.
• There are 4 additional optional fields added for below dataviews for CDR purpose only:
• Request Credit (including direct credit, credit card, scratch card)
• Request Debit (including direct debit, service delivery)
• Reserve Credit
• New Parameter International Indicator and Connected DNlist are added into Query Balance, Request Debit
(including direct debit , service delivery)
From V10 SU10, the following enhancements are included:
• The Generic LDAP interface is enhanced to support actions such as Authenticate 3rd Party User and 3rd Party PIN Update.
• A new result code is added specifically for LDAP requests used for SMS charging
From V10 SU11, the following enhancements are included:
• Enhancements to the Generic LDAP interface to support extra functions
• Parameter "Account Data Group ID" added to some eCommerce LDAP request types
From R26SU7,
• New Request "Token Operation" is added for the token information query.
The MAS platform expects that all LDAP connections to the client are permanently bound. The UNBIND Request message is
not supported by the server and shall be ignored if received.
If after sending a BIND Request and successfully setting up the LDAP connection the client receives an LDAP Response
failure message containing a resultCode set to one of the following:
inappropriateAuthentication (48)
invalidCredentials (49)
unwillingToPerform (53)
then this indicates the server is unable to process the request. The client will have to rebind by sending another BindRequest
message to the server.
It is the responsibility of the client to detect the loss or failure of the TCP/IP connection to the server. This will require the client
to reconnect and rebind. Note that the method used to indicate the failure of the TCP/IP connection is not explicitly defined in
[RFC1777] and will depend on the LDAP library used by the client.
The MAS platform expects that all LDAP connections to the server are permanently bound. The UNBIND Request message is
not supported and shall never be sent by the client.
If after sending a BIND Request and successfully setting up the LDAP connection the server requires the client to reBIND it
shall send an LDAP Response failure message containing a resultCode set to one of the following:
inappropriateAuthentication (48)
invalidCredentials (49)
unwillingToPerform (53)
This indicates the server is unable to process the request and the client will have to rebind by sending another BindRequest
message to the server.
It is the responsibility of the client to detect the loss or failure of the TCP/IP connection to the server. This will require the client
to reconnect and rebind.
The transactions include subscriber authentication, request balance, request credit through point of sale, banks, credit card
and scratch cards, debit requests and credit reservation. The service provides a mechanism for charging for different content
such as weather or football scores over various services such as SMS, WAP, GPRS. The server also allows providers to
group services together and simply charge for the number of messages or packets sent/received over a number of services.
Requesting System A digit string that identifies the system If present, this parameter shall be included
requesting the eCommerce service. in any AMA record created by e-
Commerce Requests.
This string may be used for the
Transaction Logging feature. SurePay may regard this as a mandatory
field if Transaction Logging is active and
the Transaction ID alone is not guaranteed
to be unique across all clients. If this is the
case and this parameter is missing then
the request will fail and SurePay will return
the error "Invalid or Missing Parameter".
Merchant ID Identifies the Merchant providing the If present, this parameter shall be included
service. If present, must match an entry in in any AMA record created by e-
the Surepay e-Commerce Merchant (EM) Commerce Requests.
Table
If no match is found in the EM table the
request fails and SurePay returns the error
"Invalid Merchant ID".
Transaction Amount Indicates an amount to be credited to or May include a decimal point "." and up to 4
debited from the subscriber's balance. digits after the decimal point.
Reference A character string. This content of this If present, this parameter shall be included
string is of no significance to Surepay. in any AMA record created by e-
Commerce Requests.
Note that all input parameters present in the Search key will be included in the response encoded in the objectName LDAP
Search response parameter, encoded with ":" separator characters in the same format as received in the Search request.
In addition the colon character ":" must never be included as this is used as a field separator.
For Request Credit (Credit Card), Request Credit (Scratch Card) and Request Credit, the Credit Validity Period will only
change SIM Credit Expiry Date if the Current Date + Credit Validity Period is later than the current SIM Credit Expiry Date (if
not NULL).
This error can also be returned because the reservation period exceeded the maximum allowed.
40 = Failed - Transaction ID Unknown
This result code means that a Transaction ID that should exist in the SurePay Transaction ID data can not be found. Currently
this can only occur for execution of a Debit or a Cancel for a previous Credit Reservation request.
41 = Failed - Transaction in Progress
This result code means that a request with this Transaction ID has already been received, and the processing is in progress.
This could be caused by a delay in responding to the original request and a re-send timer in the requesting system being set to
too small a value.
42 = Failed - Maximum Reservation Amount Exceeded
This result code indicates that a Credit Reservation request fails, because the amount to be reserved exceeds the maximum
allowed (as defined by the SurePay COSP data e-Commerce Maximum Reservation Amount).
43 = Failed - Cannot find last Recharge Event Record
This result code indicates that SurePay cannot find the last recharge Event Record in RERTDB when client sends Request
Debit (reverse last recharge) request to SurePay. This request shall be rejected with the result in this case.
44 = Failed - Exceed the validity period for recharge reversal
This result code indicates that time period has exceeded the provisioned valid period between the time of last recharge and the
time when Request Debit (reverse last recharge) request is sent to SurePay. This reversing last recharge request shall be
rejected with the result in this case.
45 = Account Data Truncated
This result code indicates that Account Data field in response of Request Balance has been truncated, since the total size of fields defined in
Account Query table for this request exceeded the size limit of Account Data field.
From V10SU11, this result code also be used in the Request Credit , Debit Amount and Debit Service Delivery.
From V10SU6 SurePay allows LDAP Request Debit Service Delivery requests to be specifically treated by SurePay as real-
80 = Invalid Token ID
This error code indicates the request failed because the provided Token Id could not be fund by Surepay in Token RTDB.
82 = Reject Call Due to Suspended Bundle
This error cord indicates the transaction is rejected because there is no available bucket applied for the call since such kinds
bucket is removed from SIM because of the suspended bundle.
83 = Reject Call Due to No Subscribed Bucket
This error cord indicates the transaction is rejected because there is not available bucket applied for the call due to such
bucket is not subscribed at all.
98 = Failure
This result code indicates the request is failed during applying the recharge amount to the subscriber's account.
99 = Internal Error
This error means that a request has failed because of an error internal to the SurePay service not fitting any of the other more
specific error types described above. For example, a failure encountered when reading an internal system database table.
Bundle Purchase Query result codes
From R27SU4, SurePay allows LDAP Request Balance requests to query a bundle purchase is allowed or not. Some specific
result codes will be returned as defined below:
Token O peration
Request Balance
Request Bundle
R equest Credit
R equest Credit
R equest Credit
R eserv e Credit
(Scratch Card)
Request Debit
Request Debit
Authen ticate
Subscription
Result Code
Subscriber
00 x x x x x x X x x x
01 x x x x x x X x x x
02 x x x x x x X x x x
03 x x x x x x X x x
04 x x x x x x X x x
05 x x x x x x X x x
06 x x x x x X x
07 x x x x X x x
08 x x x
09 x x
10 x
11 x
12 X
13 x
14 x
15 x
16 x
17 x x
18 x x x x x X x
19 x
20 x
21 x
22 x
23 x
24 x
25 x
26 x
27 x
28 x
29 x
31 x
32 x
33 x
34 x x x x x
35 x x X x
36 x
37 x x x x X x
38 x x x x X x
39 x
40 x
41 x x x x X x
42 x
43 X
44 X
45 x
46 x X
57 x
61 X
68 X
69 x
70 X
71~ 77 x
78 x x x
80 x
81 X
82 X X X
83 x X X
98 x x x
Note that for e-Commerce responses all errors from the Surepay application will be returned to the client in a successful
Search Response. The only unsuccessful Search Responses (which will include the LDAP resultCode parameter) shall come
from the MAS Platform directly (if any), not from Surepay. This is because the set of resultCode values defined by the LDAP
standard provides insufficient flexibility for the number of different application error types that are required for Surepay e-
Commerce.
Unless stated otherwise in this document, the client can assume that in the event that SurePay returns an application error
then all response parameters other than the resultCode shall be set to a null string.
The input information shall be "encoded" in the LDAP SEARCH request key as follows:
Each field shall be separated by the ":" character (colon). No padding characters are required and therefore no justification is
necessary. The parameter sizes above are maximums and fewer digits may be provided. If a parameter is optional then it may
be omitted, but the ":" separator is still required.
Notes: Before V10.5, Reference supports 14 digit string. From V10.5 onwards, Reference supports 40 character string
If COSReturn is set to "YES" then the response shall include the COSP ID from the SIM RTDB.
A successful request shall cause two responses to be returned. The first Search Response shall include the objectName and
attributes parameters. The attributes parameter shall be a sequence of pairs of AttributeType and AttributeValue. The second
Search Response shall include only the resultCode set to "Success" (0).
An unsuccessful request shall cause a single Search Response including the resultCode containing the LDAP failure reason
assigned by the MAS platform.
R27SU4 onwards, this request is enhanced to include new input parameters to support rating logic and bundle purchase
query, and the response of the request may include the bundle purchase fee.
The input information shall be "encoded" in the LDAP SEARCH request key as follows:
Each field shall be separated by the ":" character (colon). No padding characters are required and therefore no justification is
necessary. The parameter sizes above are maximums and fewer digits may be provided. If a parameter is optional then it may
be omitted, but the ":" separator is still required (except for Balance Requested and Balance Category where the ":" may also
be omitted to maintain backward compatibility).
Notes: Before V10.5, Reference supports 14 digit string. From V10.5 onwards, Reference supports 40 character string.
The valid values for the "Balance Requested" parameter are as follows:
0 = Default Balance
1 = Primary Balance
2 = Secondary Balance
3 = Both Balances (default)
If this parameter is not present then both balances shall be returned (if two balances are defined for this subscriber). Otherwise
just the single balance indicated shall be returned in bal1 result field.
Note that in either case the Balance returned shall not include any credit that has been reserved.
The International Indicator defined in the interface is used to indicate if any number in the Connected DNList/AddressList is an
international number.
The Connected DNList/AddressList parameter is used to define the numbers/addresses to which the SMS/MMS will be sent.
Connected DNList parameter only can contain the up to 10 numeric phone numbers, the AddressList parameter can include up
to 10 email addresses or phone numbers.
These three parameters are used to check if any "IN message buckets" or "Non-International Buckets" are available for this
subscriber. If there is any IN message buckets available for this subscriber, beside the normal balance information, the return
message will contain indicator to indicate that.
If input parameter Counter Information is provisioned with "Y", then LDAP response shall include the UBD information and the
"distance" information in parameter CounterData in response, i.e. value between the UBD counters and the next threshold if
has.
If input parameter Counter Information is NULL, then no need to set information to output parameter CounterData in response.
If any of input parameters Service Type, Content Type, Content Type List is populated, rating logic can be applied to query
balance request for sufficient or insufficient balance check.
If input parameters Service Type, Content Type, Content Type List are populated, they will be used as the request service
type, content type for relevant logic handling, such as eCommerece rating control parameter retrieval, messaging bucket
selection, ect. Before this feature, 'ALL' is used as the content type, service type for query balance request.
Content Type List shall be made up of one to 10 Content Type values, each one corresponding to an element in the
Connected DNList / AddressList parameter, in sequential order. The valid values for Content Type List parameter are as
following:
- The ContentTypeList shall be a string of 1 to 170 characters, containing up to 10 separate Content Type values, each
separated by a comma.
- Each Content Type shall have up to 16 characters;
- Leading commas shall not be permitted;
- Training commas (at the end of the full list) shall not be permitted.
- Two consecutive commas (without a value between them) shall not be permitted.
If input parameter Bundle ID is not empty, the request balance will be used for bundle purchase validation query.
A successful request shall cause two responses to be returned. The first Search Response shall include the objectName and attributes
parameters. The attributes parameter shall be a sequence of pairs of AttributeType and AttributeValue. The second Search Response shall
include only the resultCode set to "Success" (0).
An unsuccessful request shall cause a single Search Response including the resultCode containing the LDAP failure reason assigned by the
MAS platform.
The attributes returned in a successful LDAP Search Response shall be as follows:
In case the value includes semicolon ";" or equal mark "=" or backslash "\", then it should be replaced with "'\;"' or "\=" or "\\" in the response,
e.g. "fieldname1=a;b" is encoded as "fieldname1=a\;b;...".
In case the concatenated query result exceeds the size limit of Account Data field, the result shall be truncated by only including the number
of query result fields not exceeding it in the response, e.g. if the total size of 1st 12 fields is 516 bytes while the total size of 1st 11 fields is 508
bytes, and the size limit of AccountData field is 512 bytes, then the result shall only include 1st 11 fields "...tag11=value11", and the result
code shall be set to 45 to indicate this
From V10SU11, the AccountData is extended to contain 1600 byte. When the query result exceeds the size limit, the above similar rule about
how to truncate need to be followed.
If the total length for the contents padding in Counter Data is exceed the max length, then service shall truncate the contents by only including
the complete query result not exceeding the size in the response, and the result code shall be set to 45 = Account Data Truncated to indicate
this.
If both PI and COSP data Allow Emergency Topup are True, then SIM Emergency Topup State shall be returned in LDAP query.
In this case, if subscriber's Emergency Topup State is '2'- Active or '3'- Opt-Out, then service shall also returned following field in response
message; otherwise, keep them NULL in response.
* Used Loan
* Remaining Loan
* Pending Service Fee
To calculate these value, the Original ETS Service Fee, Original ETS Loan Amount and Pending Service Fee need to be retrieved from
Counter RTDB with Counter Type “3 - ETS Loan Info”.
If the record cannot be found or Counter RTDB is not attached, LDAP requirement will return LDAP failure reason of 02 = Invalid subscriber
details.
The request includes an indication of which balance is to be recharged. These requests can only be applied to PrePaid
balances. The transaction amount is always supplied.
The input information shall be "encoded" in the LDAP SEARCH request key as follows:
Notes :Before V10.5, Reference supports 14 digit string. From V10.5 onwards, Reference support 40 character string.
Service Specific Data 1~4 (100 chars) Optional Chars (except for the listed four chars: " : ", " ' ", " \ ", and " $ ")
(V10.9)
The following table describes those input parameters not already described in the General Requirements for e-Commerce
section:
Input Parameter Meaning Comments
Credit Card Number Identifies the Surepay subscriber Credit Depending on a provisioned option, as an
Card number additional security measure Surepay can
reject the card number if it does not match
the credit card number defined in the
Surepay subscriber's SIM Table record.
01 = American Express
02 = Diners Club
03 = Eurocard
04 = Visa Card
05 = JCB
06 = Eurocheque
07 = Mastercard
08 = Discover
An unsuccessful request shall cause a single Search Response including the resultCode containing the LDAP failure reason assigned by the
MAS platform.
The attributes returned in a successful LDAP Search Response shall be as follows:
Attribute Type Type Comments
res OCTET STRING(SIZE(2)) Application result code. As defined in the General
Requirements for e-Commerce section.
bal OCTET STRING(SIZE(15)) Subscriber's balance after the recharge was applied,
presented as a string. May include "." and up to 4 digits
after the decimal point. May be negative (prepended by "-").
cur OCTET STRING(SIZE(24)) Indicates the currency in which the subscriber's balance is
presented. This shall be the currency label defined for the
subscriber in the Surepay SIM Table which may not be the
same as the currency label in the original request.
ava OCTET STRING(SIZE(3)) Indicates the number of available Recharge attempts for
the Subscriber before the subscriber's account becomes
barred. This parameter is only present for failed recharge
attampts.
The input information shall be "encoded" in the LDAP SEARCH request key as follows:
Each field shall be separated by the ":" character (colon). No padding characters are required and therefore no justification is
necessary. The parameter sizes above are maximums and fewer digits may be provided. If a parameter is optional then it may
be omitted, but the ":" separator is still required.
Notes:Before V10.5, Reference supports 14 digit string. From V10.5 onwards, Reference support 40 character string.
Service Specific Data 1~4 (100 chars) Optional Chars (except for the listed four chars: " : ", " ' ", " \ ", and " $ ")
(V10.9)
The following table describes those input parameters not already described in the General Requirements for e-Commerce
section:
Input Parameter Meaning Comments
Scratch Card Number Identifies the Scratch Card Number Surepay determines from the scratch card
number whether the scratch card
database is internal to Surepay or
external, according to provisioned data.
A successful request shall cause two responses to be returned. The first Search Response shall include the objectName and attributes
parameters. The attributes parameter shall be a sequence of pairs of AttributeType and AttributeValue. The second Search Response shall
include only the resultCode set to "Success" (0).
An unsuccessful request shall cause a single Search Response including the resultCode containing the LDAP failure reason assigned by the
MAS platform.
The attributes returned in a successful LDAP Search Response shall be as follows:
Attribute Type Type Comments
res OCTET STRING(SIZE(2)) Application result code. As defined in the General
Requirements for e-Commerce section.
bal OCTET STRING(SIZE(15)) Subscriber's balance after the recharge was applied,
presented as a string.
May include "." and up to 4 digits after the decimal point.
May be negative (prepended by "-").
cur OCTET STRING(SIZE(24)) Indicates the currency in which the subscriber's balance is
presented. This shall be the currency label defined for the
subscriber in the Surepay SIM Table which may not be the
same as the currency label in the original request.
ava OCTET STRING(SIZE(3)) Indicates the number of available Recharge attempts for
the Subscriber before the subscriber's account becomes
barred. This parameter is only present for failed recharge
attempts.
From R27.7, this messaged is used to credit the recipient when transfer funds between two subscribers.
The input information shall be "encoded" in the LDAP SEARCH request key as follows:
Each field shall be separated by the ":" character (colon). No padding characters are required and therefore no justification is
necessary. The parameter sizes above are maximums and fewer digits may be provided. If a parameter is optional then it may
be omitted, but the ":" separator is still required.
Notes:Before V10.5, Reference supports 14 digit string. From V10.5 onwards, Reference support 40 character strings
Service Specific Data 1~4 (100 chars) Optional Chars (except for the listed four chars: " : ", " ' ", " \ ", and " $ ")
(V10.9)
AccountDataGrpID (14 chars) Optional Chars
The following settings of the Credit Type parameter are supported (if not present or set to any other value then no specific
meaning is defined and the request shall be treated as a generic credit request):
From R27.7, the value "400" is added to indicate this request is to credit the recipient when transfer funds between two
subscribers
If the Credit Typ is "400", Reference can be used to carry the MDN of the donor. It may be a number or string like "DONOR=908-559-7549",
will be populated in AMA field "Enhanced Reference" directly.
AccountDataGrpID is an optional parameter. If this parameter is carried in the command, service needs to use this parameter
to access the Account Query data and return the data accordingly.
A successful request shall cause two responses to be returned. The first Search Response shall include the objectName and attributes
parameters. The attributes parameter shall be a sequence of pairs of AttributeType and AttributeValue. The second Search Response shall
include only the resultCode set to "Success" (0).
An unsuccessful request shall cause a single Search Response including the resultCode containing the LDAP failure reason assigned by the
MAS platform.
The attributes returned in a successful LDAP Search Response shall be as follows:
Attribute Type Type Comments
res OCTET STRING(SIZE(2)) Application result code. As defined in the General
Requirements for e-Commerce section.
bal OCTET STRING(SIZE(15)) Subscriber's balance after the credit is applied, presented
as a string. May include "." and up to 4 digits after the
decimal point. May be negative (prepended by "-").
cur OCTET STRING(SIZE(24)) Indicates the currency in which the subscriber's balance is
presented. This shall be the currency label defined for the
subscriber in the Surepay SIM Table.
amg OCTET STRING(SIZE(32)) Indicates additional message returned by the Recharge
DG. May be presented as a currency amount (may include
"." as a decimal point) or set to "0".
2. Delivery services include GPRS, WAP ,SMSC or MMSC Incoming and Outgoing messages. Service type of Messages and
Packets are available to allow the charging of total messages/packets delivered across multiple delivery mediums such as
GPRS, WAP,SMSC or MMSC.
Surepay has no in built information regarding merchants, service types or contents types. This information is provided in the e-
Commerce request as identifiers which the service uses to access charging tables.
The charges can be defined as flat charge which is applied per message or packet, or a number of charge rates according to
previous usage. The usage is tracked per subscriber for individual merchant/service/content types. The provider can setup
charging grace periods allowing subscribers to receive free service for a given number of messages or time from when they
initially subscribe to a given service.
From R27SU4, new input parameter Content Type List is added to support per-content type rating.
Each field shall be separated by the ":" character (colon). No padding characters are required and therefore no justification is
necessary. The parameter sizes above are maximums and fewer digits may be provided. If a parameter is optional then it may
From V10 SU9, the Location Information field can contain an IPv6 address, where ":" character is part of the IPv6 address
field. Service shall do some content sensitive parsing. If the filed is an IPv6 address, the format should like
"[FEBC:ABCD:0008:4567:FE98:0800:200C:417C]". The IPv6 address should be enclosed in "[" and "]", and the address
format must be "xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx", where 'x' is hexadecimal characters.
Notes:
1.Before V10.5, Reference supports 14 digit string. From V10.5 onwards, Reference support 40 character strings
2.For LDAP SMS/MMS request, Number Of Items is not applicable, it will be ignored.
3. For LDAP SMS/MMS request, SurePay does not support Mixed Credit accounts, so the Balance Indicator field only supports
0 or 1.
Service Specific Data 1~4 (100 chars) Optional Chars (except for the listed four chars: " : ", " ' ", " \ ", and " $ ")
(V10.9)
AccountDataGrpID (14 chars) Optional Chars
- The ContentTypeList shall be a string of 1 to 170 characters, containing up to 10 separate Content Type values, each
separated by a comma.
- Each Content Type shall have up to 16 characters;
- Leading commas shall not be permitted;
- Training commas (at the end of the full list) shall not be permitted.
- Two consecutive commas (without a value between them) shall not be permitted.
The following settings of the Debit Type parameter are supported (if not present or set to any other value then no specific
handling is defined and the request shall be treated as a normal debit request).
"100" = This is a request for which the SurePay service shall calculate the charge for the requested service and return result codes as before,
but not debit the amount from the subscriber's account. The client can use this option to determine if there is sufficient balance to cover a
charge, but without knowing the actual amount to charge.
"200" = This is a request to charge interim multi-recipient MMS. This is handled exactly the same as other debits, but there will be no SIM
History entry created.
"201" = This is a request to charge final multi-recipient MMS. The only action taken for a request of this type is to generate a SIM History entry.
“300” = This is a request for which SurePay shall do the Green Zone check only and skip rating and debit for the late delivered SMS-MT.
The following table describes those input parameters not already described in the General Requirements for e-Commerce
section:
Input Parameter Meaning Comments
Location Information type in BOLD shall if the Location Information Type is SGSN
be supported in V10SU6. In the initial IP Address. the Location Information shall
release only Location information based be usual notation format. e.g for IPv4
on VLR address shall be supported in address, it shall be dotted decimal
SurePay notation format. e.g 192.168.0.1,
otherwise, Surepay will return the error
A successful request shall cause two responses to be returned. The first Search Response shall include the objectName and attributes
parameters. The attributes parameter shall be a sequence of pairs of AttributeType and AttributeValue. The second Search Response shall
include only the resultCode set to "Success" (0).
An unsuccessful request shall cause a single Search Response including the resultCode containing the LDAP failure reason assigned by the
MAS platform.
The attributes returned in a successful LDAP Search Response shall be as follows:
Attribute Type Type Comments
res OCTET STRING(SIZE(2)) Application result code. As defined in the General
Requirements for e-Commerce section.
bal OCTET STRING(SIZE(15)) Subscriber's balance after the debit is applied, presented
as a string. May include "." and up to 4 digits after the
decimal point. May be negative (prepended by "-").
cur OCTET STRING(SIZE(24)) Indicates the currency in which the subscriber's balance is
presented. This shall be the currency label defined for the
subscriber in the Surepay SIM Table which may not be the
same as the currency label in the original request.
amt OCTET STRING(SIZE(15)) Indicates the amount charged (or calculated only,
depending on the Debit Type parameter) in the currency
indicated by the "cur" attribute for the request presented as
a string. May include "." and up to 4 digits after the decimal
point. This parameter shall also be populated (together with
the currency) if the result code is "Insufficient Funds".
inov OCTET STRING(SIZE(1)) Indicate if this subscriber has IN Message Bucket or Non-
International Message Buckets
From 27.7, this message will be used to debit the donor when transfer funds between two subscribers.
The input information shall be "encoded" in the LDAP SEARCH request key as follows:
Each field shall be separated by the ":" character (colon). No padding characters are required and therefore no justification is
necessary. The parameter sizes above are maximums and fewer digits may be provided. If a parameter is optional then it may
be omitted, but the ":" separator is still required.
Notes:Before V10.5, Reference supports 14 digit string. From V10.5 onwards, Reference support 40 character strings
Service Specific Data 1~4 (100 chars) Optional Chars (except for the listed four chars: " : ", " ' ", " \ ", and " $ ")
(V10.9)
Debit Type (3 digits) Optional 0..9 only
AccountDataGrpID (14 chars) Optional Chars (V10SU11)
The following table describes those input parameters not already described in the General Requirements for e-Commerce
section:
Input Parameter Meaning Comments
Debit Type Identifies a particular type of debit. The only valid value defined for Debit
This allows special handling of this Type is "300". Any other value shall
debit request be ignored and the request treated as
a normal debit request.
From R27.7, a new value "400" is
added to debit the donor when
transfer funds between two
subscribers.
A successful request shall cause two responses to be returned. The first Search Response shall include the objectName and attributes
parameters. The attributes parameter shall be a sequence of pairs of AttributeType and AttributeValue. The second Search Response shall
include only the resultCode set to "Success" (0).
An unsuccessful request shall cause a single Search Response including the resultCode containing the LDAP failure reason assigned by the
MAS platform.
The attributes returned in a successful LDAP Search Response shall be as follows:
Attribute Type Type Comments
res OCTET STRING(SIZE(2)) Application result code. As defined in the General
Requirements for e-Commerce section.
bal OCTET STRING(SIZE(15)) Subscriber's balance after the debit is applied, presented
as a string. May include "." and up to 4 digits after the
decimal point. May be negative (prepended by "-").
cur OCTET STRING(SIZE(24)) Indicates the currency in which the subscriber's balance is
presented. This shall be the currency label defined for the
subscriber in the Surepay SIM Table which may not be the
same as the currency label in the original request.
inov OCTET STRING(SIZE(1)) Indicate if this subscriber has IN Message Bucket or Non-
International Message Buckets
1. Request an amount (determined by the client system) be reserved from the SurePay subscriber's balance.
2. Request the execution of an eCommerce debit request against a previously reserved amount (this might require the service
to debit or credit an amount from/to the balance depending on whether the reserved amount was sufficient or not).
3. Cancel a previously reserved amount and return the amount to the subscriber's balance.
The input information shall be "encoded" in the LDAP SEARCH request key as follows:
Each field shall be separated by the ":" character (colon). No padding characters are required and therefore no justification is
necessary. The parameter sizes above are maximums and fewer digits may be provided. If a parameter is optional then it may
be omitted, but the ":" separator is still required (except for the fields Dest Address, Content Value Type and Content Value
where the ":" may also be omitted if none of the fields is provided to maintain backward compatibility).
Notes:Before V10.5, Reference supports 14 digit string. From V10.5 onwards, Reference supports 40 character string.
Service Specific Data 1~4 (100 chars) Optional Chars (except for the listed four chars: " : ", " ' ", " \ ", and " $ ")
(V10.9)
The following table describes those input parameters not already described in the General Requirements for e-Commerce
section:
Input Parameter Meaning Comments
Service Type Identifies the Service Type for the The combination of Merchant ID, Service
delivered service Type and Content Type is used to define
the per item charge, via Surepay Rating
tables.
This can be used, for example, to define If the Content Value is present, but the
the size of the eCommerce service Content Value Type parameter is not
provided, in KBytes. present then Surepay will attempt to use a
default Content Value Type. If none is
available then Surepay will return the error
"Invalid or Missing Parameters".
A successful request shall cause two responses to be returned. The first Search Response shall include the objectName and attributes
parameters. The attributes parameter shall be a sequence of pairs of AttributeType and AttributeValue. The second Search Response shall
include only the resultCode set to "Success" (0).
An unsuccessful request shall cause a single Search Response including the resultCode containing the LDAP failure reason assigned by the
MAS platform.
The attributes returned in a successful LDAP Search Response shall be as follows:
Attribute Type Type Comments
res OCTET STRING(SIZE(2)) Application result code. As defined in the General
Requirements for e-Commerce section.
bal OCTET STRING(SIZE(15)) Subscriber's balance after the credit reservation, execution
or cancellation is applied, presented as a string. May
include "." and up to 4 digits after the decimal point. May be
negative (prepended by "-").
Each field shall be separated by the ":" character (colon). No padding characters are required and therefore no justification is
necessary. The parameter sizes above are maximums and fewer digits may be provided. If a parameter is optional then it may
be omitted, but the ":" separator is still required.
Service Specific Data 1~4 (100 chars) Optional Chars (except for the listed four chars: " : ", " ' ", " \ ", and " $ ")
(V10.9)
The following table describes those input parameters:
The output information shall be encoded as follows:
Result Code string(2) Mandatory
Current Rate string(10), 0-9 or "." only Optional
Current Expiration Date string(8),0~9 only Optional
Format is ddmmyyyy
Maximum Local Airtime Minutes string(10), 0-9 or ":" only Optional
Current Balance string(1016), 0..9 or "." only Optional
Next Scheduled Recharge Date string(8), 0~9 only Optional
Format is ddmmyyyy
The descriptions for the output parameters are shown as below:
Output Parameters Meaning Comments
Result Code LDAP response result from
SurePay
Current Rate The current call rate determined Current Rate is in Currency.
by the SurePay service logic The Input Convert Type use
Normal.
Each field shall be separated by the ":" character (colon). No padding characters are required and therefore no justification is
necessary. The parameter sizes above are maximums and fewer digits may be provided. If a parameter is optional then it may
be omitted, but the ":" separator is still required.
For Service Specific Data 1~4, those value will be filled in AMA field Service Specific Dat 1~4 accordingly for the
corresponding AMA records.
Service Specific Data 1~4 A character string, used to Those value will be stored
carry service specific data in AMA fields Servicde
sent from the client system. Specific Data 1~4
accordingly for each
corresponding AMA
records.
Recharge Amount For Low It indicates the recharge Recharge Amount For Low
Balance ATU amount value for low Balance ATU is in Currency
balance automatic top-up.
Regular ATU Alignment It indicates whether Recharge Amount shall be
Option immediately recharge, used for the immeidate
and/or align the regular recharge.
auto top-up with CED.
Bundle Renewal Auto Top It indicates whether the This is type of ATU is
Up Status bundle automatic renewal independent of Regulat
can trigger the automatic ATU and Low Balance
top up for the subscriber. ATU.
Each field shall be separated by the ":" character (colon). No padding characters are required and therefore no justification is
necessary. The parameter sizes above are maximums and fewer digits may be provided. If a parameter is optional then it may
be omitted, but the ":" separator is still required.
Special Note on field - Service Specific Data 1~4 (100 chars) , Optional Chars (except for the listed four chars: " : ", "
' ", " \ ", and " $ ") (V10.9)
For Discount Percentage, it is used to carry the number of percentage, the valid range is from 0 to 100, and could to have up
to two digits after the decimal point.
From R27.4, if the operation type is 2 = Subscribe_Bundle, 3 = Stop_Bundle_Auto_Renewal, 8 = Remove_Bundle or A =
Extend_Bundle_End_Time(from R27.5), then the value of Feature/Package ID must be carried, in case the value is not
carried, then the result code "01 = Invalid or missing parameters" will be returned.
The following table describes those input parameters:
Input Parameters Meaning Comments
Subscriber ID The unique value to identify It can be MSISDN
the subscriber.
Transaction ID The unique value to identify For IVR related operation,
the LDAP transaction the Transaction ID is the
same as the TCP/IP
Transaction ID
Notes: if no second
information, the zero shall
be filled. E.g. 3:5 should be
filled as 3:5:0.
Current Rate Used to notify end-user of Current Rate is in Currency.
the default rate. The Input Convert Type use
Normal.
Feature ID 1- 6 The feature ids contained in
a Feature Package.
Feature ID 1 - 6 Status Used to notify the end-user
of the individual feature
situation contained in a
Feature Package.
Feature ID 1 - 6 Expiration Used to notify the end-user
Date of the individual feature
End Date contained in a
Feature Package.
Feature ID 1 - 6 Name Used to notify the end-user
of the individual feature
name contained in a
Feature Package.
Bundle ID The bundle ID, which is The input feature package
also the promotional tariff ID.
plan COSP ID that
contained in the bundle.
Bundle Name The bundle package name. Bundle package name
obtained from FP data
Promotional Tariff Plan 1~5 Existing promotional tariff
plan subscription.
Promotional Tariff Plan 1~5 Existing promotional tariff
Expiration Date plan subscription expiration
date.
Promotional Tariff Plan 1~5 Existing promotional tariff
Status plan subscription status.
Promotional Tariff Plan 1~5 Existing promotional tariff Tariff plan promotion name
Name plan subscription name obtained from TPD table.
Bundle Status The operated bundle
status.
Bundle Renewal ATU Used to indicate the bundle
Status status of Bundle Renewal
ATU whether it is allowed
or disallowed.
Note: The MAS platform supports LDAP requests up to a total size of 1024 bytes. In theory this limit can be exceeded for this
request type for subscribers with very extreme provisioning (the maximum number of bundles/discounts is used, parameters
are provisioned to maximum size, etc. The total request size can be calculated by adding the sizes for each attribute name
and value, including the key, and then add 10 bytes overhead for header information. Finally add 1 byte for every attribute
name and 2 bytes for every attribute value). In practise this extreme provisioning is not realistic and no problems are
anticipated. The LDAP message size limit will be increased in the near future.
From V10SU8 the LDAP message size limit is increased to 5K.
The service shall be able to receive a request to query the subscriber balance with the following inputs.
The input information shall be "encoded" in the LDAP SEARCH request key as follows:
Each field shall be separated by the ":" character (colon). No padding characters are required and therefore no justification is
necessary. The parameter sizes above are maximums and fewer digits may be provided. If a parameter is optional then it may
be omitted.
The valid values for the "Balance Requested" parameter are as follows:
0 = Default Balance
Note that in either case the Balance returned shall not include any credit that has been reserved.
Note: For Actual Balance case, the return value shall deduct any corresponding Outstanding Charge amount if any is
applicable.
The valid values for "Request Type" is
0 = PTP/Bundle
1 = Discount
2 = Standard Discount
3 = Stepped Discount
4 = Usage Based Discount
5 = Recharge Bonus
6 = Bucket
7 = Class Bundle
If Request Type is 0 = PTP/Bundle, then service shall return the promotional tariff plan or bundle information in the response.
i.e. the bundle /Promotional Tariff Plan COSP ID, correspnding start/end date, start/end time if it has(from R27.5), status, FF
number. And discount information which included in each bundle.
If Request Type is 1 = Discount, then service shall return all the discount information in the response.
If Request Type is other value which is corresponding with the Discount Type in Discount Definition table, then service shall
only return all the discounts information for such specific discount type in the response.
From R27.9, if Request Type is 7= Class Bundle, both the bundles in the subscribers profile and the bundles in the Bundle List
RTDB could be queried.
By default, if the parameter is NULL, then service shall return the information as the previous behavior, i.e. only the SIM
information, SIM bundle 1~5 information, SIM Discount ID 1~10 information and corresponding FF numbers.
Note: When LDAP request bundle or discount information, there is other call or action which updates bundle or discount
information. Then the LDAP request results may miss some bundle/discount information or return redundent bundle/ discount
information.
The valid value for "Request Index" is counter value from 1 to 99999. The default value is “1” if the parameter is not present or
provisioned.
If the LDAP request is to request bundle information, then the value '1' indicate service shall only return the first bundle’
information. If subscriber has more bundles, then operator shall send LDAP request with Request Index as “2” to query the
second bundles, etc.
If the LDAP request is to request discount information, then the value '1' indicate service shall only return the first 10 discounts’
information. If subscriber has more discounts, then operator shall send the command with Request Index as “2” to query next
10 discounts, etc.
From R27.5, if the LDAP request is to request bundle information , the above requirement is applicable when Query ID is not
presented. If Query ID is presented, please refer to LDAP-6909, LDAP-6915, LDAP-6916.
From R27.9, if the LDAP request is to request Class Bundle, the above requirement is applicable when Query ID is not
presented. If there is a predefined Class ID for the bundle indicated by "Request Index" and COSP data Enable Bundle Pre-
Purchase is true, the service should return the bundles including both the one identified by the “Request Index” and the valid
ones (BL.Valid Flag is true) in the Bundle List RTDB which have the same Class ID. If the bundle identified by the “Query ID”
has no class id defined or COSP data Enable Bundle Pre-Purchase is false, the service should reject the request with result
code “59 = Invalid Bundle ID”. If Query ID is presented, please refer to LDAP-7229.
00 = Success
This result code indicates the request was successfully processed.
01 = Invalid or missing parameters
This result code indicates the request failed because mandatory data was missing or data was present but in the wrong format
(e.g. included invalid characters).
02 = Invalid subscriber details
This error code indicates the request failed because the provided subscriber ID could not be found by SurePay in either then
SIM or UA tables.
52 = Success - More Records
This result code indicates the response is successfully returned, and also indicates that there is more information for the
request which is not included in this response message.
59 = Invalid Bundle ID
This result code indicates that can't find the specified bundle's information for the subscriber
99 = Internal Error
This error means that a request has failed because of an error internal to the SurePay service not fitting any of the other more
specific error types described above. For example, a failure encountered when reading an internal system database table.
From R26SU7, service supports more bundles or discounts per subscriber, so it is prossible that all the subscriber's bundle
information or discount information cannot be included in one response message.
1. Request Bundle Information with Subscriber ID, Request Index “1”, and Request Type “0” - bundle, then service shall return
1) Subscriber information, including Subscriber balance, balance type, SIM Expiration Date, Language Label, Currency Label,
Life cycle information, CED, Error Indicator, Home Zone etc
2) Return the first bundles’ information (could be kept in both SIM/Counter RTDB) (from R27.5, please refer to the note of
LDAP-6915 of how to set the start and end time of bundle.)
3) Return the PTP Tariff Plan COSP ID provisoined in FP table if has, FF numbers corresponding to the bundle if has, and 6
discounts’ information included in the bundle.
i.e. Discount ID 1~6 information in the response is for the bundle.
4) If subscriber has more bundles in following records, then service shall return with the new result code : Successful - More
Records; otherwise, if there is no bundle retrieved out in this query or no bundles in following records, then return with the
result 00- Successful.
5) If subscriber has more bundles, then operator can issue the LDAP request to get more bundle information with Subscriber
ID, Request Index “2”, and request Type “0” - bundle. Then service will return next one bundle, and so on.
Note: for Request Index is not “1”, the LDAP request will not include subscriber information in the response( specify in item (1)
above, i.e. only return bundle, FF number and discount information).
2. If only request Discounts information, then send LDAP request with subscriber ID, Request Index “1”, and request Type is
not '0', then service shall return
1) Subscriber information, including Subscriber balance, balance type, SIM Expiration Date, Language Label, Currency Label,
Life cycle information, CED, Error Indicator etc.
2) Return first 10 discounts’ information (all the subscriber level discount or all the discounts with specific discount type), kept
in SIM / Counter RTDB, including Discount 1~10 ID, status, start/end Date, Counter Value, Roll-over value, last usage
timestamp.
3) If subscriber has more Discounts besides first 10 discounts, then service shall return with the new result code: Successful -
More Records; otherwise, if there is no discounts retrieved out in this query or no discounts in following records, return with
the result 00- Successful.
4) If subscriber has more discounts, then operator can issue the LDAP request to get more discount information with
Subscriber ID, Request Index “2”, and request Type “1” - Discount, then service shall return next 10 discounts information and
so on.
Note: for Request Index is not “1", the LDAP request will not include subscriber information in the response, specify in item (1)
above and bundle information, i.e. only return Discount information.
From R27SU5, service supports to query bundle information by specified bundle id.
Request Bundle Information with Subscriber ID, Request Type “0” -bundle and Query ID(not "ALL"),
if the bundle id is found in the subscriber's account and there is an entry for it in FP table, the service shall return
1) Subscriber information, including Subscriber balance, balance type, SIM Expiration Date, Language Label, Currency Label,
Life cycle information, CED, Error Indicator, Home Zone etc
If the bundle id is not found in the subscriber's account or there is no according entry in Feature Package table, service should
return result code 59 - Invalid Bundle ID.
Note: the start time and end time of the bundle can be populated in Additional Info as HHMMHHMM, the first 4 characters are
for the start time of the bundle, left ones for the end time. And there are always 14 commas in the field to seperate it to 15
slots. Which slot can be populated should be sync with the other Bundle information's position.
From R27.5, service supports to query all bundles'(not including normal PTP) summary information.
Request Bundle Information with Subscriber ID, Request Type “0” -bundle, Request Index and Query ID with "ALL",
Up to 15 bundles from Request Index(default value is 1) can be returned in a single response, and only the following data
items shall be returned for each bundle:
Bundle ID
Bundle Status
Bundle Start Date
Bundle Start Time (null for non-24 hour bundles)
Bundle End Date
Bundle End Time (null for non-24 hour bundles)
Note: the format of Additional Info here is "HHMMHHMM,HHMMHHMM,...HHMMHHMM", the first 8 characters are for the start
and end time of the first bundle, followed by a comma. And then next bundle's start and end time plus comma, and so on. If
there is no start and end time for the bundle, just append a comma to seperate. There are always 14 commas in the field.
If subscriber has more bundles in following records, then service shall return with the result code : 52 - Successful - More
Records, and set Suggested Request Index as the start index of left bundles;
otherwise, if there is no bundles in following records, then return with the result 00- Successful and set Suggested Request
Index as "0".
If subscriber has more bundles, then operator can issue the LDAP request to get more bundles' information with Subscriber ID,
Request Index (can be set as "Suggested Request Index"), request Type “0” - bundle and Query ID with "ALL". Then service
will return next 15 bundles' information, and so on.
Note: for Request Index is not “1”, the LDAP request will not include subscriber information in the response.
A successful request shall cause two responses to be returned. The first Search Response shall include the objectName and attributes
parameters. The attributes parameter shall be a sequence of pairs of AttributeType and AttributeValue. The second Search Response shall
include only the resultCode set to "Success" (0).
An unsuccessful request shall cause a single Search Response including the resultCode containing the LDAP failure reason assigned by the
MAS platform.
The attributes returned in a successful LDAP Search Response shall be as follows:
Attribute Type Type Comments
res OCTET STRING(SIZE(2)) Application result code. As defined in the General
Requirements for e-Commerce section
b1 OCTET STRING(SIZE(15)) Subscriber's Primary Balance, presented as a string. May
include "." and up to 4 digits after the decimal point. May be
negative (prepended by "-").
bt1 OCTET STRING(SIZE(1)) Subscriber's Primary Balance Type.
0 = Prepaid, 1 = Postpaid
b2 OCTET STRING(SIZE(15)) Subscriber's Secondary Balance (if supported), presented
as a string. May include "." and up to 4 digits after the
decimal point. May be negative (prepended by "-").
bt2 OCTET STRING(SIZE(1)) Subscriber's Secondary Balance Type.
0 = Prepaid, 1 = Postpaid
cl OCTET STRING(SIZE(24)) Indicates the currency in which the subscriber's balance is
presented. This shall be the same as that present in the
original request. If no currency label was provided in the
original request then this shall be the currency label defined
for the subscriber in the Surepay SIM Table.
ed OCTET STRING(SIZE(8)) Indicates SIM expiry date. Format is DDMMYYYY
tp OCTET STRING(SIZE(15)) Indicates subscriber's default tariff plan.
ll OCTET STRING(SIZE(24)) Indicates subscriber's language.
ss OCTET STRING(SIZE(24)) Indicates current SIM life cycle state.
le1 OCTET STRING(SIZE(8)) Indicates life cycle expiration date for changing criteria as
"Life Cycle Expiry Date 1". Format is DDMMYYYY
le2 OCTET STRING(SIZE(8)) Indicates life cycle expiration date for changing criteria as
"Life Cycle Expiry Date 2". Format is DDMMYYYY
ced OCTET STRING(SIZE(8)) Indicates the date when credit is expired. Format is
DDMMYYYY
ei OCTET STRING(SIZE(1)) Indicates subscriber account status (SIM Error Indicator).
0 = Normal
1 = Inactive Usage Limit
2 = Inactive PIN Attempts
3 = Inactive Max Calls exceeded
4 = Inactive SMS Manual Action
5 = Balance Adjustments
6 = Deleted
7 = Inactive Consecutive calls
8 = Inactive Simultaneous Calls
9 = Suspended for PIN Attempts
A = Barred by HLR
sf OCTET STRING(SIZE(1)) Indicates whether subscriber is in frozen.
0 = False
1 = True
Each field shall be separated by the ":" character (colon). No padding characters are required and therefore no justification is
necessary. The parameter sizes above are maximums and fewer digits may be provided. If a parameter is optional then it may
be omitted, but the ":" separator is still required.
The following table describes those input parameters:
The output information shall be encoded as follows:
Result Code (string 2) Mandatory
Note: The Platform Result code shall refer to the subsection Platform Result Code in section e-Commerce LDAP Requests.
00 - Success
This result code indicates the request/operation is successful.
01 - Invalid or missing parameter
This result code indicates that mandatory parameter is missing or data is present but in wrong format.
02 - Account Not Found/ Invalid subscriber details/ Record Not Found
This result code indicates that there is no account found with input parameter subscriptionID as account ID. If the operation is
query RTDB and the queried table is not the SIMRTDB, this result code indicates that there is no record in queried table with
the input key.
Also, this result code will be returned if there is no prepaid balance available for balance transfer.
35 - Insufficient balance
This result code indicates remaining balance of the account is not enough to fund the specified AMT.
37 = Failed - Transaction ID Used
This result code means the provided Transaction ID has been previously used by a different request type, or for a different
subscriber. This will be an indication of non-unique transaction IDs being sent from a requesting application.
38 = Failed - Transaction ID Committed
This result code means the requested Transaction ID has already been received and successfully processed by SurePay. This
will be an indication that a successful response to the original transaction was lost, causing a re-send from the requesting
system. This error return can therefore actually be regarded as a success case.
41 = Failed - Transaction in Progress
This result code means that a request with this Transaction ID has already been received, and the processing is in progress.
This could be caused by a delay in responding to the original request and a re-send timer in the requesting system being set to
too small a value.
45 = Account Data Truncated
This result code indicates that return data field in response of LDAP query RTDB data has been truncated, since the total size
of fields exceeds the size limit of return data field.
52 - Success - More Records Exist
This result code indicates the required data was successfully retrieved, but further records exist. The LDAP client can access
these by sending another LDAP query, incrementing the RecInd in the Tbl_Key parameter.
Note: this result code is used for Request Data for query Vortex RTDB.
71 - Maximum call exceeded for third party call
This result code indicates that maximum simultaneous call exceeded for the account.
72 - Parameters not Provisioned Correctly
This result code indicates that the parameters, e.g. fieldname in LDAP query RTDB data request, are not provisioned or the
coresponding paraemeter/variables are not provisioned correctly in SurePay rc table.
85 - Inactive PIN attempts
This result code indicates that the account's error indicator has been set to "Inactive PIN attempts" due to the Cumulative
Incorrect PIN Attempts exceeding the threshold.
86 - Third party access blocked
This result code indicates that 3rd party access is blocked for the account.
87 - Third Party Access Attempted From Incorrect Account
This result code indicates that the input parameter provider ID doesn't match the one in account data.
Authenticate Balance
LDAP Query RTDB data
Account Information
Account Information
Party P IN
Balance Transfer
Information
Result Code
Transfer
user
rd
Modify 3
00 x x x x x x x x x
01 x x x x x x x x x
02 x x x x X x x x
03 x
04 x
05 x X X
06 X X
08 X X
13 x x X X
18 X X
35 X X
37 X
38 X
41 x
45 x
52 x
71 X
72 x
85 X
86 X
87 X
88 x
89 x
99 x x x x x x x x x
Parameter will be treated as not presented if there is no occurrence for the pair. If value is blank, service will think that the
parameter is presented with '' as the value.
These parameters shall be used to replace parameters with the same name in variable part from V10 SU11.
Note: the parameter is still in name=value pair format. For example, OP=A;ACTION=BAL_TRANS;TID=<xx>;PRTCL=
<xx>;RID=<xx>;CREF=<xx>#...
1. There is no requirement on parameters' occurrence order, except that OP=x shall be first part of the request .
2. If the same name/label appear more than once in the LDAP request, then service shall reject the command by returning a
response with Result Code "01 - Invalid or missing parameters", generate an alarm with assert code 200 to describe the
situation/error.
3. If there are any unknown/undefined name/label in the LDAP requests, service shall ignore the unknown/undefined
name/label and value, and continue the processing.
LDAP Search Request
The parameters sent in the LDAP Search Request shall be as follows:
LDAP Parameter Population Rules Comments
baseObject "dview=<scp_id> See General Requirements section
_request_data"
scope SingleLevel (1)
derefAliases neverDerefAliases (0) parameter not applicable
sizeLimit 0 (No size limit restrictions) MAS will only return 1 result
timeLimit 0 (No timelimit restrictions) MAS will respond within 4 seconds
attrsOnly 0 (FALSE) (attribute types and MAS will always return both names & values
values)
filter Choice equalityMatch[3] Must populate AttributeValueAssertion
attributes Empty, OR Empty = retrieve all attributes
Sequence of attribute names Seq = retrieve only a subset of attributes
AttributeValueAsserti AttributeType = "sid" sid = OCTET STRING(SIZE(1500))
on AttributeValue = <key attribute This is the table key field which shall be
value> composed of a concatenated
string of input parameters
The Query request shall have the following LDAP SEARCH key:
OP=Q;Tbl_Name=<RTDB Name>;Tbl_Key=<RTDB Key Value>;Field_Name=<Fieldname1,Fieldname2,.....,Fieldnamen>
From SP27.7, Last_Dial_Number_Flag will be added as LDAP SEARCH key. Only if Tbl_Name is SHRTDB, Last_Dial_Number_Flag is
meaningful.
The LDAP query request shall:
* Use semicolon " ; " as the delimiter for the different input parameters
* Use comma " , " as the delimiter for the different field name in the parameter "field_name". The blank is ignored before or after the delimiter.
* The key name (Label name) OP, Tbl_Name,Tbl_Key,Field_Name are case insensitive. e.g. both tbl_name and Tbl_Name are correct
when parsing. The value for each key shall be case sensitive.
* The total length of LDAP request is string(1500).
Example:
The LDAP request command could be
op=Q;tbl_name=SIMRTDB;tbl_key=7328631122;field_name=Class of Service ID,Currency Label,SCP Name,SIM State,Third Party Access
PIN,Error Indicator,Expiry Date,Language Label,SIM Credit Expiry Date
From V10SU15/R26SU7 SurePay supports the ability to retrieve data from the Counter RTDB. Note that there may be multiple records in this
RTDB. The response will indicate if this is the case and the client must send a separate request for each subsequent record.
The Query request shall have the following LDAP SEARCH key:
OP=Q;Tbl_Name=CTRTDB;Tbl_key=MSISDN:SubIndicator:CntType:ReservedKey:SeqNum;Field_name= <Fieldname1, Fieldname2, .....,
Example 1:
op=Q;tbl_name=CTRTDB;tbl_key=
913305011:0:1:ALL:1;field_name=BundleID1,StartDate1,EndDate1,Status1,BundleID2,StartDate2,EndDate2,Status2,BundleID3,StartDate3,E
ndDate3,Status3
Example 2:
op=Q;tbl_name=CTRTDB;tbl_key=913305022:0:1:ALL:1;
From SP27.5, SurePay supports the ability to retrieve data from SIMFF RTDB, the Query request shall have the following LDAP SEARCH key:
OP=Q;Tbl_Name=SFFRTDB;Tbl_key=MSISDN:FF_type;Field_name= <Fieldname1, Fieldname2, ....., Fieldnamen>
Example 1:
op=Q;tbl_name=SFFRTDB;tbl_key=
913305011:0;field_name=FF1,MOC1,MTC1,MO_SMS1,MTC_SMS1,Home1,Roma1,FF2,MOC2,MTC2,MO_SMS2,MTC_SMS2,Home2,Roam
ing2
Example 2:
op=Q;tbl_name=SFFRTDB;tbl_key=913305022:0;
From SP27.5, SurePay supports the ability to retrieve data from VTX RTDB, the Query request shall have the following LDAP SEARCH key:
OP=Q;Tbl_Name=VTXRTDB;Tbl_key=DataSource:DataSourceType:RecInd;Field_name= <Fieldname1, Fieldname2, ....., Fieldnamen>
Example 1:
op=Q;tbl_name=VTXRTDB;tbl_key=913305011:1:;field_name=b1,b2,b3,b4,b5,b6,b7
Example 2:
op=Q;tbl_name=VTXRTDB;tbl_key=913305022:1:1;
Example 3:
op=Q;tbl_name=VTXRTDB;tbl_key=913305022:1:;
This table describes the input parameters of LDAP Query Account RTDB data request.
1- true
Others means false
The Tbl_key field shall support a combination of sub-fields used to specify the keys to the CTRTDB with “:” as delimiter, as follows:
(Please refer to the SurePay OA&M data definition guide for details of the supported values for each sub-field).
If the table name is "PROFILE", then SurePay can return subscriber's information in both SIM RTDB and CT RTDB with multiple records in
one response, the Tbl_Key has the same content/format as that for CT RTDB query and is shared for both SIM/CT RTDB searching, but the
query only supports SubIndicator as "0"(Subscriber) , CntType as "0" (Rating Counter) and "1"(PTP/Bundle) for CT RTDB searching.
otherwise, the query will be regarded as invalid and the service will response with result code as "02" or "04"(Refer req. LDAP-4145) without
any return data, to indicate that there is no record available.
There are different subkey value combination for the Tbl_key for query CT RTDB, which have following meaning.
If the SeqNum in the query command from client (e.g. UMF) is "1", then it is the origial query (compare with consequent query which maybe
needed in case there are too many records to be covered in one return message), in this case, the service logic should involve the SIM RTDB
searching. If the SeqNum is not "1", this query should be regarded as an consequent one, and only CT RTDB is searched.
If the command Tbl_key is provisioned as "MSISDN:0:0:All:1", the service logic should search all possible records of CT RTDB from the begin
record "MSISDN:0:0:ALL:1" to the record with the last sequence number "MSISDN:0:0:ALL:m"(Note1), then the service logic should continue
searching all possible records of CT RTDB from the record "MSISDN:0:1:ALL:1" to the record with the last sequence number
"MSISDN:0:1:ALL:n" (Note 2).
If the command Tbl_key is provisioned as "MSISDN:0:x:All:y"(x = 0/1; 1<= y <= n), then the service logic should search all possible records of
CT RTDB from the record "MSISDN:0:x:ALL:y" to the record with the last sequence number "MSISDN:0:1:ALL:n"(Note3).
For the first query, service can also accept a simplified command format with ONLY MSISDN provided (Use Case 1 is an example):
OP=Q;Tbl_Name=PROFILE;Tbl_key=MSISDN;Field_Name=<Fieldname1, Fieldname2, ....., Fieldnamen>
In this case, Surepay treats it the same as the complete format:
OP=Q;Tbl_Name=PROFILE;Tbl_key=MSISDN:0:0:All:1;Field_Name=<Fieldname1, Fieldname2, ....., Fieldnamen>
Note1: "m" indicates the last record for Rating Counter (Discount/Bucket) in Counter RTDB.
Note2: "n" indicates the last record for PTP/Bundle in Counter RTDB.
Note3: This command is used to query the rest records after which is defined by the Tbl_key.
If the table name is "PROFILE", the Field_Name in the command can cover any field in both SIM/CT RTDB, the service should use both
"SIMRTDB" and "CTRTDB" as a key to search related record in RDM data to find the Field Variable Name for a Fieldname, as well as the
owner RTDB of the Fieldname. If no Fieldname is from SIM RTDB, then the service will regard it as no field of SIM RTDB is requested and
SIM RTDEB will not be searched, on the contray, if no Fieldname is for CT RTDB, the service should regard it as all of the fields of CT RTDB
are requested, and CT RTDB should be searched.
If the table name is "VTXRTDB", Tbl_key field shall support a combination of sub-fields used to specify the keys with “:” as delimiter, as
follows:
* DataSource: the key value of the data required for Vortex, it can be one of the following:
- an Account ID
- a COSP ID
- a Tariff Plan ID
- a Provider ID
- the eCS/MAS ID
- Master Account ID
* DataSourceType: the type of the data source required for Vortex, it can only be with one of the following:
1 = Account ID
2 = COSP ID
3 = Tariff Plan ID
4 = Provider ID
5 = eCS/MAS ID
6 = Master Account ID
* RecInd: the first or second half record indicator for Vortex RTDB:
1 = The first half records of Vortex RTDB, i.e. the sequence number of 0~4 will be queried from VTX RTDB
2 = The second half records of Vortex RTD, i.e. the sequence number of 5~9 will be queried from VTX RTDB
Note for OAM: for UC application or CMI application, "Account ID" should be used query VTX RTDB.
From SP27.5, in case no record can be found for the input table key for RTDB query except for SIM RTDB, if the following FF record is
provisioned, then the service will return the result code "02" or "04" based on the value of Feature Status; otherwise, the result code "02" will
be returned:
Feature Identifier: "RTDB_Query_Result_Code_For__Record_Not_Found"
Feature Status: "02" or "04"
If the RTDB being queried is NOT the CTRTDB and the LDAP Request does not include the Field_Name parameter or no value for
Field_Name in the request, then SurePay only checks if the subscriber's record exists in RTDB with the input table key. If yes, then return the
result code 00- success without Return Data in the response; otherwise, return the error code "02" or "04"(Refer req. LDAP-4145) without
Return Data in the response.
From SP27.5, the requirement is changed to LDAP-6934 for Tbl_Name "SFFRTDB" or LDAP-6935 for Tbl_Name "VTXRTDB".
If the RTDB being queried is the CTRTDB and the LDAP Request does not include the Field_Name parameter or there is no value for
Field_Name in the request, then SurePay shall return all the data fields found. In this case, the Field Names used will be fixed, as follows:
Counter ID 1 ... Counter ID 6 = CID1 ... CID6
Counter Value 1 ... Counter Value 6 = CV1 ... CV6
Extra Counter Value 1 ... Extra Counter Value 6 = ECV1 ... ECV6
Time Value 1 ... Time Value 6 = TV1 ... TV6
Start Date 1 ... Start Date 6 = SD1 ... SD6
End Date 1 ... End Date 6 = ED1 ... ED6
Counter Status 1 ... Counter Status 6 = CS1 ... CS6
From SP27.4, this requirement is also valid for searching CT RTDB while Tbl_Name is "PROFILE".
From SP27.4, if the table name is "PROFILE", and the LDAP Request does not include the Field_Name parameter or no value for Field_Name
in the request, SurePay should only check CT RTDB and return all fields in CT CTRTDB. In case there is no any record exists in CR RTDB,
the service should continue to check SIM RTDB with MSISDN, if a record can be found, then return the result code 00- success, otherwise,
return the error code 02 - Account Not Found/ Invalid subscriber,without Return Data in the response.
From SP27.5, for the table name is "SFFRTDB", the SIMFF RTDB will be queried as following:
• If no record can be found with the input MSISDN and FFtype, then just return the result code "02" or "04"(Refer req. LDAP-4145) in the
response; From R27.8, if the COSP data Hold On FF Number Changes is true and no record can be found with both input (MSISDN and
FFtype) and (MSISDN and FFtype+2), just return the result code (IMR689298) "02" or "04"(Refer req. LDAP-4145) in the response.
• If <fieldnamenn> are carried in the Field_Name paramter, then the service will query the field from SIMFF RTDB following the req. LDAP-
4146. From R27.8, the FF Zone could also be queried. If the COSP data Hold On FF Number Changes is true, the service should also return
the value according to the <fieldnamen> in the potential record if the potential record exists. And “P” will be added ahead of the fields
corresponding to the potential FF numbers. For example, PFF1 means the potential FF1. PMOC1 means the MOC1 flag for potential FF1, etc.
The potential record should be retrieved with the input MSISDN and FFtype + 2. If the FF Zone is queried, only the value in the SIMFF with
FFtype indicated by the FFTYPE will be returned.
• If the LDAP request does not include the Field_Name parameter or no value for Field_Name in the request, then the service will return all the
correspodning data fields found in SIMFF RTDB for the corresponding FF number to be non-NULL. From R27.8, FF Zone should also be
returned if it's non-NULL. If the COSP data Hold On FF Number Changes is true, the service should also return all the corresponding data
fields found in the potential record for the corresponding FF number to be non-NULL. The potential record should be retrieved with the input
MSISDN and FFtype + 2. The field name in the response will be fixed as following order:
FF Number 1~20 = FF1~20
MOC Flag 1~20 = MO1~20
MTC Flag 1~20 = MT1~20
MO_SMS Flag 1~20 = MOS1~20
MT_SMS Flag 1~20 = MTS1~20
Home Flag 1~20 = H1~20
Roaming Flag 1~20 = R1~20
Prefix Match Flag 1~20 = P1~20
FF Home Zone = FFZONE(From R27.8)
Potential FF Number 1~20 = PFF1~20
Potential MOC Flag 1~20 = PMO1~20
Potential MTC Flag 1~20 = PMT1~20
Potential MO_SMS Flag 1~20 = PMOS1~20
Potential MT_SMS Flag 1~20 = PMTS1~20
Potential Home Flag 1~20 = PH1~20
Potential Roaming Flag 1~20 = PR1~20
Potential Prefix Match Flag 1~20 = PP1~20
The result code 00- success will be returned in case the queried field value can be found.
From SP27.5, for the table name "VTXRTDB", the Vortex RTDB will be queried as following:
• If no record can be found in Vortex RTDB with the input DataSource and DataSourceType, then just return the result code "02" or "04"(Refer
req. LDAP-4145) in the response.
• If <fieldnamenn> are carried in the Field_Name paramter, the value of RecInd will not be cared, and the field value will be quired from all
name-value paires of all available Vortex RTDB records with the key of DataSource and DataSourceType, the service will return the value of
Value n for those Name n exact match with the input <fieldnamenn> as the quired value for the input <fieldnamenn> ; NULL will be returned
for those input <fieldnamenn> which can not be exact match with Name n;
• If the LDAP request does not include the Field_Name parameter or no value for Field_Name in the request, the field name and the field
value in the response will be the corresponding value of Name n and Value n from VTX RTDB, and the service will return the name and value
pair found in VTX RTDB according to the value of RecInd as following:
• If RecInd is "1" or no value carried for RecInd, then all available name and value pairs from the Vortex RTDB record with the sequence
number to be 0~4 will be returned, the result code will be 00 - Success if no more name and value pairs in the record sequence number
5~9 or the the result code will be 52-Succes - More records exists if there are additional name and value pairs existed in the record
sequence number 5~9;
• If RecInd is "2", then all available name and value pairs from the Vortex RTDB record with the sequence number to be 5~9 will be
returned, and NULL will be returned in case no available name and value pairs, the result code will be 00 - Success;
• If RecInd has any other value, service shall reject the command by returning a response with Result Code "01 - Invalid or missing
parameters", generate an alarm with assert code 200 to describe the situation/error.
SurePay shall access SurePay Request Data Mapping table by input table name and each fieldname n (truncate 48 characters string from left
if the input fieldname n 's length exceeds string 48) to get the real Variable Field Name defined in SLL code, so as to return corresponding
If any record is not provisioned in the Request Data Mapping table, OR the corresponding Variable Field Name is not provisoned correctly (i.e.
not match the actual SLL variable name) then SurePay shall
*Send out alarm message with assert code 102 and including the table name and all the field names from LDAP request that are not
provisioned correctly
* Only include the valid field names if provisioned in Request Data Mapping table and corresponding values in the return_data according to the
format specified in following requirement LDAP-4140 in LDAP response.
* Return result code 72 - Parameters not Provisioned Correctly in the response.
If SurePay retrieves record from RTDB, then SurePay shall return the values for corresponding queried fields from RTDB directly.
The return data shall be in the format of
fieldname1=<val>;fieldname2=<val>;fieldname3=<val>;......fieldnamen=<val>
Note: (feature 68832)when connection to eCGS, the configuration should ensure the comma"," and slash "\" is not included in the field value
as these are not allowed value at eCGS side.
* For the successful case, then return result code 00- Success and return data in response.
Example:
The return_data for querying the SIM RTDB could be:
Class of Service ID=FlatOne9000;Currency Label=dollar;SCP Name=scp1;SIM State=ACTIVE;Third Party Access PIN=;Error Indicator=
0;Expiry Date=20080801;Language Label=English;SIM Credit Expiry Date=20060530
From SP27.4, the return data format will have some enhancement specified for Tbl_Name is "PROFILE",
1. In Return Data, the RTDB name and searching Key should be provided in front of the set of fieldname for each record.
2. In each returned RTDB(SIMRTDB+ CTRTDB) record for rating counter (CntType = 0), with "Counter" acts as the Fieldname, all active
(Note) UBD/bucket name(%DN), value (%CV) and the distance to next threshod (%NT) should be provided with format "%DN,%CV,%NT", in
case any value for %DN,%CV,%NT is empty, "" should be used instead of the value. For
example,Counter="DN1,200,50";Counter="DN2,130,";Counter=",30,20";Counter=",160," are all possible content.
In case there is any call in progress, the counter value (as %CV) in CIPC should be returned.
Following is an example for a query which the length of Return Data is within the limitation.
Use Case 1:
In case the length of Return Data exceeds the size limit (3000 characters), the Return Data will only include the records not exceeding the
size in the response, and the result code shall be set to 03 - Success - More Records Exist.
The client (e.g.UMF) can send a consequent command with Tbl_key by increasing 1 to the SeqNum of last CT_Tbl_key in the Return data for
the continous query.
Following is an example of this scenario.
Use Case 2:
When SurePay receive this command, the service will continue to search CT RTDB from 13912345678:0:0:All:3, untill the last record
13912345678:0:1:All:n is reached, or another more query is still needed. In this case, the rest record length does not reach the return data
limitation.The Ruturn Code is 00-Success, the whole query and response is done.
From V10SU15/R26SU7, if SurePay successfully returns data from the CTRTDB then the Result Code will indicate whether there are any
more records existing for the same Account ID.
* Result code 00 - Success will be returned if there is no further record in the RTDB.
* Result code 03 - Success - More Records Exist will be returned if further records do exist. The LDAP client can access these by sending
another LDAP query, incrementing the Sequence Number in the Tbl_Key parameter.
Example:
The return_data for querying the CTRTDB RTDB could be:
Counter ID1=B001;Counter Value1=;Extra Counter Value 1=; Time Value1=;Start Date1=20070101;End Date1=20071221;Counter Status1
=A;Counter ID2=B002; Counter Value2=;Extra Counter Value2=; Time Value2=;Start Date2=20070501;End Date2=20081221;Status2=A
(note that the meanings of the returned values, e.g. counter status values, are documented elsewhere).
No AMA generated for the LDAP request of querying RTDB data.
"OP=A;ACTION=3RD_PARTY_AUTH#" shall be kept as it is, "xxx" shall be substituted with the proper value collected by the
requesting system.
Below table describes the variable part of LDAP SEARCH key.
Input parameter (Name) Required Type Comments
SubscriptionID Y String(16), 0~9, A~F only the user ID, card ID or
account ID, which SurePay
will used as key for
accessing account data.
If "Request Balance" logic fails, service will still return a success response for the action.
Following result of "Request Balance" logic will be joint with ',' and set to the "Return Data" output parameter of Authenticate
3rd party user LDAP request.
• balance_1
• bal_type_1
• currency_label
• acc_data
00 - Success
This result code indicates the authentication is successful.
99 - Internal error
This result code indicates all the other errors which could happen.
"OP=A;ACTION=MOD_3RD_PIN#" shall be kept as it is, "xxx" shall be substituted with the proper value collected by the
requesting system.
Below table describes the variable part of LDAP SEARCH key.
00 - Successful
01 - Invalid or missing parameter
02 - Invalid subscriber details
13 - Invalid or missing PIN
99 - internal error
"OP=A;ACTION=AUTH_BAL_TRANS#" shall be kept as it is, "xxx" shall be substituted with the proper value collected by the
requesting system.
0 - Not require.
1- Required.
3RD_PIN N String(18) 3RD party PIN of the
subscriptionID. If present,
PIN verification will be
done.
ROLE Y String(1), T or S Indicates whether the
"subscriptionID" is target or
source during balance
transfer.
T - Target
S - Source
SOURCE N String(16), 0~9, A~F only Source account ID of the
balance transfer.
0 - False
1- True
This request will have the same output parameter as the request of "Authenticate 3rd party user", the difference is that
"AUTH_BAL_TRANS" shall be used as the AccountDataGrpID input parameter of "Request Balance" logic if the
SubscriptionID is allowed to do balance transfer.
00 - Success
This result code indicates that the account is allowed to do balance transfer.
06 - Card in use
This result code indicates balance transfer is not allowed because of calls in progress.
13 - Invalid PIN
This result code indicates the provided PIN doesn't pass the validation.
18 - Invalid balance
This result code indicates that the provided balance indicator is not allowed to do balance transfer. (This case is not support in
V10.10)
Also, this result code will be returned if there is no prepaid balance available for balance transfer.
35 - Insufficient balance
This result code indicates remaining balance of the account is not enough to fund the specified AMT.
99 - Internal error
This result code indicates other errors which could happen.
There is mixed credit support, result code 00- Success can cover the result code of 05, 08, 18 already. and 18 in the context should be only
applicable for stand-alone balance.
The return data shall be in the format of
<val1>;<val2>;<val3>;<val4>
"OP=A;ACTION=BAL_TRANS#" shall be kept as it is, "xxx" shall be substituted with the proper value collected by the
requesting system.
This request has the same input parameters with authenticate balance transfer request with following exceptions:
• VERIFY_PIN and 3RD_PIN shall always be omitted.
• SOURCE and TARGET are required.
• METHOD is required.
89 - System Error
This result code indicates that service was failed to debit/credit the account.
"OP=A;ACTION=IMOM" is used to indicate that the operation is requesting an IMOM execution, <IMOM_Command> shall be
a valid IMOM command in SurePay.
Below table describes the output parameters of the request.
Output Parameter Required Type Comments
Result Code Y String(2) LDAP response result from
SurePay
Return Data N String(3000) Additional information
carried back to requesting
system.
The service will return result code - '00 - Successfull' if the IMOM command is executed successfully (STATUS is PASS).
Otherwise, result code '98 - Failure' will be used to indicate execution failure.
Return Data will contain the output message generated by IMOM command. Message format will follow the eSM format like
below:
<SMS Correlation Id> will be filled with TID if presented. Otherwise, left as blank.
Before SP27.4, only record update with SIMSD Special Destination Type set as "4 - Friends and Family List" is supported.
From SP27.4, SIMSD record update with any value of SIMSD Special Destination Type is supported.
Result code "'00' - Update Successful" shall be returned if the fields have been updated.
If Tbl_Name is not valid, result code "01 - Invalid or missing parameter" shall be returned.
If any of the specified field is not valid (can't found in LDAP request data mapping table or failed to set the value), result code
"72 - Parameters not Provisioned Correctly" shall be returned.
For SSDRTDB update, subscriber ID can be obtained from the Tbl_Key input parameter as specified in SurePay RTDB
definition.
Delimiter characters in field value shall be escaped by client as specified in "LDAP Query RTDB data" operation. Sevice will
remove the escape character before using.
<Announcement1>,<Announcement2>,...,<Announcementn>
For any other error occured during the request, service shall return with result code "98 - Failure". It's up to requesting system
to determine whether to continue it's service accordingly.
One or more announcemenst can be returned in Return_Data. If result_code is "00 - successful", requesting system shall
further check whether there is announcement to be played by checking Return_Data (is "" or not).
Delimiter characters in <variable part> and field value shall be escaped by '\' as specified in "LDAP Query RTDB data"
operation. Client will remove the escape character before using.
The output information shall be "encoded" in the LDAP SEARCH request key as follows:
As defined by the LDAP standard, a successful request shall cause two responses to be returned. The first Search Response
shall include the objectName and attributes parameters. The attributes parameter shall be a sequence of pairs of AttributeType
and AttributeValue. The second Search Response shall include only the resultCode set to "Success" (0).
An unsuccessful request shall cause a single Search Response including the resultCode containing the LDAP failure reason
assigned by the server.
The attributes returned in a successful LDAP Search Response shall be as follows:
Attribute Type Type Comments
ndig OCTET STRING(SIZE(26)) The new digit mapped digit string.
In cases of "no match", the server should respond with a single SearchResponse message containing the resultCode set to 0
"Success".
As defined by the LDAP standard, a successful request shall cause two responses to be returned. The first Search Response
shall include the objectName and attributes parameters. The attributes parameter shall be a sequence of pairs of AttributeType
and AttributeValue. The second Search Response shall include only the resultCode set to "Success" (0).
An unsuccessful request shall cause a single Search Response including the resultCode containing the LDAP failure reason
assigned by the server.
The attributes returned in a successful LDAP Search Response shall be as follows:
Attribute Type Type Comments
family_group OCTET STRING(SIZE(1)) The field identify the Cg, Cd's relationship
The Data Standard LDAP Client MNP SEARCH BaseObject in Common Parameter table if configured should be used to fill in
baseObject in Search Request.
LDAP SearchResultEntry
LDAP Parameter Population Rules Comments
objectName DN of the entry returned by the directory subscriberId=3490333444555, db=np
Server
HLR Id HLR Id where the subscriber’s data are Identifies the HLR where subscriber’s data
stored if found or a configurable value are stored (in case of VFI or VFI MVNO)
otherwise.
Network Id up to 16 character string Identifies the Operator (in case of OLO)
adminStatus AdministrativeStatus:
0: allocated (default value for mobile
numbers)
1: unallocated
2: barred
smsSupport SMS support:
0: no
1: yes (default value for mobile numbers)
LDAP SearchResultDone
LDAP Parameter Population Rules Comments
ResultCode Result Code returned from the directory
server
The CP Data Standard LDAP Client MNP SEARCH BaseObject if configured should be used to fill in baseObject in Search
Request.
LDAP SearchResultEntry
LDAP Parameter Population Rules Comments
dn DN of the entry returned by the directory uniqueIdentifier=310A01782687,
server ou=eplus.de, ou=customers, o=eplus.de
eplus_prepaid_gprs_tarif Tariff information of corresponding 20010021
subscriber
LDAP SearchResultDone
LDAP Parameter Population Rules Comments
ResultCode Result Code returned from the directory
server