Вы находитесь на странице: 1из 49

Tekelec Subscriber Data Management

Back-End (BE) Database


Product Line Management

This document is for informational purposes only, and Tekelec reserves the right to change any aspect of the products, features or
functionality described in this document without notice. Please contact Tekelec for additional information and updates.
SECTION - Provisioning

2 I Tekelec. For What’s Next. Tekelec Confidential


Provisioning loadshare and failover
Client Applications
Notes
• 1+1 redundancy at the Provisioning interface with
single virtual IP address
• XDS/LDS can be instantiated on all blades
…n
App1 App2
• Plug-in provisioning validations on DAS for specific FEs
• DAS accesses Global Schema like any other FE
• End-to-end transactions supported

vip

XDS/LDS XDS/LDS
…n

DAS DAS DAS DAS

3 I Tekelec. For What’s Next. Tekelec Confidential


Provisioning highlights

› WebCI, BlueCLI
› Direct access
 XML /SOAP or XML /TCP
› Bulk file provisioning
 Package a set of requests into a file
 File of results is created
› Transactions
 Support for “start”, “commit” and “rollback”
› Templates
 Groups a set of requests together to simplify XML request
 Handled as transactions
› Error reporting capabilities
› Parallel provisioning support

4 I Tekelec. For What’s Next. Tekelec Confidential


SDM XML Interface highlights (1/2)
› Different options to issue XML requests to SDM
 Direct XML request over TCP socket
• First request should be an authentication request
• Message consists of an 4 bytes header (indicating the size in bytes of the XML part)
followed by the XML request
• The maximum length of a request is 32K bytes (excluding the request size) and
must be in XML format.
• Can contain the invocation of a Command Template
 XML requests inside a SOAP envelop
• The authentication is part of the SOAP Envelope Header
• SOAP interface supports provisioning with or without templates
 XML requests within Command Files (Bulk Provisioning)
• Requires an SSH session for loading the XML Command File(s)
• Supports Subscribers Bulk Provisioning allowing to process many subscribers
(multiple requests) at the same time.
• Command File Loader Tool supports provisioning with or without templates

5 I Tekelec. For What’s Next. Tekelec Confidential


SDM XML Interface highlights (2/2)
› Transactions
 Support for “start”, “commit” and “rollback”
› Templates
 Groups a set of requests together to simplify XML request
 Handled as transactions
› Error reporting capabilities
› Parallel provisioning support

6 I Tekelec. For What’s Next. Tekelec Confidential


SPR XML Interface
› Different options to issue XML requests to SPR
 Restful
• Legacy MSR XML-Restful interface also supported on SDM
 Direct XML request over TCP socket
• First request should be an authentication request
• Message consists of an 4 bytes header (indicating the size in bytes of the XML part) followed by
the XML request
• The maximum length of a request is 14K bytes (excluding the request size) and must be in XML
format.
• Can contain the invocation of a Command Template
 XML requests inside a SOAP envelop
• The authentication is part of the SOAP Envelope Header
• SOAP interface supports provisioning with or without templates
 XML requests within Command Files (Bulk Provisioning)
• Requires an SSH session for loading the XML Command File(s)
• Supports Subscribers Bulk Provisioning allowing to process many subscribers (multiple
requests) at the same time.
• Command File Loader Tool supports provisioning with or without templates

7 I Tekelec. For What’s Next. Tekelec Confidential


Provisioning via Direct XML requests
How to do that

1. Open TCP connection with the server (in case of DL 360 HW config) or blade (in case of
aTCA, HP C-class HW config) hosting the Active System Controller

2. Perform user authentication by sending an XML authentication request (Request Type:


Operation) as the first request after establishing the connection. It is nothing else than the
invocation of an operation against a specific Global Schema entity. (see Authentication
request example in one of the following XML sample charts)

3. Send the XML provisioning requests

8 I Tekelec. For What’s Next. Tekelec Confidential


Provisioning via SOAP/XML
How to do that

1. From the machine hosting the SOAP Client application connect to the SDM Web
Server by specifying the following URL for the SOAP service :

http://<System Controller IP address>:8080/axis/services/MessageService

where the system controller IP address is the external Provisioning VIP address of the
SDM Active System Controller server (in case of DL 360 HW config) or SDM Active
System Controller blade (in case of ATCA or HP C-class HW config)

2. In SOAP messages, the authentication is part of the SOAP Envelope Header (see
example in next chart)

3. Include the XML request inside the SOAP body message

9 I Tekelec. For What’s Next. Tekelec Confidential


XML/SOAP Request message example

Authentication request

Contains the XML request

10 I Tekelec. For What’s Next. Tekelec Confidential


XML/SOAP Interface – Successful Response message example

Contains the XML response

11 I Tekelec. For What’s Next. Tekelec Confidential


XML/SOAP Interface – Errors

If an error occurred in processing the request or with the format of the


message, an error result code will be sent as shown below:
› Message error="0"
 normal, request transaction was sent and processed.

› Message error ="0" but the message content has following error indication in
the response content: <res error=”ErrorCode” affected=”count”</res>.
 This implies there is a problem with the content of the request message (e.g., a
problem with format or value out of range). The Error code numbers are generated
by the SDM
 For details on the error code numbers, refer to the “System Replies and Error
Codes” chapter of the SDM Monitoring, Maintaining, Troubleshooting-Reference
Manual document.
› Message error="10" -> Communication problem, unable to process the
request transaction.

12 I Tekelec. For What’s Next. Tekelec Confidential


XML/SOAP Interface – Unuccessful SOAP Response message
Communication problem example

<?xml version="1.0" encoding="UTF-8"?>


<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header>
<ns1:UserName soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next" soapenv:mustUnderstand="0"
xsi:type="soapenc:string" xmlns:ns1="blueslice.com"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">admin</ns1:UserName>
<ns2:Passwd soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next" soapenv:mustUnderstand="0"
xsi:type="soapenc:string" xmlns:ns2="blueslice.com"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">admin</ns2:Passwd>
</soapenv:Header>
<soapenv:Body>
<message error="10"><![CDATA[BLUESLICE TRANSACTION RESPONSE]]></message>
</soapenv:Body>
</soapenv:Envelope>

Contains the XML response

13 I Tekelec. For What’s Next. Tekelec Confidential


XML – the baseline provisioning syntax

› The XML syntax supports the following request types:


 Insert : adds instances to entities
 Update: modifies instances of entities
 Delete : deletes instances of entities
 Select: select instances from entities
 Operation : invokes an operation type of entity (Example: authentication request)

› XML request is structured as follows (not all following parts are mandatory):
<tx> Request identification
<req name=”RequestType”> (Insert/Update/Delete/Select/Operation)
• entity identification
… request properties • set of attributes and values
• criteria:
</req>
• Also called „where‟
</tx> • can be an expression (expr) or set of expressions separated by
operators (op).
• Supported operators: =, =!, >, >=, <, <=, AND, OR

› One line format supported for all requests


› Short format supported for the Insert requests

14 I Tekelec. For What’s Next. Tekelec Confidential


XML Select request - format
Select Request
<req name=“select"> • request identification
<ent name=“EntityName" ns=“Namespace"/> • entity identification
• set of attributes (one or more)
<select> • criteria (also called „where‟)
<expr>
<attr name=“AttributeName"/>
<expr>
<select>
<where> Equivalent Select Request using short form
<expr> (all in one line):
<attr name="AttributeName"/> <req name="select"><ent name =
“EntityName”ns=“Namespace"/><select><e
<op value="operator"/>
xpr><attr name=" AttributeName "/><value
<value val="value"/> val="value"/></expr></select><where><exp
</expr> r><attr name="AttributeName"/><op
</where> value="operator"/><valueval=
"value"/></expr></where></req>
</req>
15 I Tekelec. For What’s Next. Tekelec Confidential
XML Request Examples – Insert request

Insert Request Identifies the namespace


<ent name="MSISDN" ns="bn"/>
<SubscriptionID>1</SubscriptionID>
<MsIsdn>15634210100"></MsIsdn>
</ent>
or Insert Request
Identifies the
<req name="insert"> namespace
<ent name="MSISDN" ns="bn"/>
<set>
<expr><attr name="SubscriptionID"/><value
val="1"/></expr>
<expr><attr name="MsIsdn"/><value
val="15634210100"/></expr>
</set>
</req>

16 I Tekelec. For What’s Next. Tekelec Confidential


XML Request Examples – Delete request

Delete Request
Identifies the namespace
<req name="delete">
<ent name="MSISDN" ns="bn"/>
<where>
<expr>
<attr name="MsIsdn" />
<op value="="/>
<value val="15634210100"/>
</expr>
</where>
</req>

17 I Tekelec. For What’s Next. Tekelec Confidential


XML Request Examples – Operation request
Example: Authentication request
Operation Request - Example: the Authentication request

<req name="operation">
<oper name = "RequestUserAuc" ent=”UserAuthentication” ns="bn"/>
<expr>
<param name="UserName"/>
<op value="="/>
<value val="USER_NAME"/>
</expr>
<expr>
<param name=”UserPasswd”/>
<op value=”=”/>
<value val="USER_PASSWD"/>
</expr>
<expr>
<param name=”InterfaceModuleId”/>
<op value=”=”/>
<value val=”27"/>
</expr>
</oper>
</req>

18 I Tekelec. For What’s Next. Tekelec Confidential


SPR XML requests examples
Adding Policy Profile

<req name="insert">
<ent name="Subscriber" ns="policy"/>
<set>
<expr><attr name="AccountID"/><value val="10404723525"/></expr>
<expr><attr name="MSISDN"/><value val="+33123654862"/></expr>
<expr><attr name="IMSI"/><value val="184569547984229"/></expr>
<expr><attr name="BillingDay"/><value val="1"/></expr>
<expr><attr name="Entitlement"/><value val="DayPass,DayPassPlus"/></expr>
</set>
</req>

19 I Tekelec. For What’s Next. Tekelec Confidential


SPR XML requests examples
Query by AccountID

<req name="select">
<ent name=“Subscriber" ns="policy"/>
<select>
<expr><attr name="MSISDN"/></expr>
<expr><attr name="Entitlement"/></expr>
<expr><attr name="Tier"/></expr>
<expr><attr name="BillingDay"/></expr>
</select>
<where>
<expr><attr name="AccountId"/><op value="="/><value val="10404723525"/></expr>
</where>
</req>

20 I Tekelec. For What’s Next. Tekelec Confidential


SPR XML requests examples
Update the Billing Day by IMSI

<req name="update">
<ent name=“Subscriber" ns="policy"/>
<set>
<expr><attr name="BillingDay"/><value val="23"/></expr>
</set>
<where>
<expr><attr name="IMSI"/><op value="="/><value val="184569547984229"/></expr>
</where>
</req>

21 I Tekelec. For What’s Next. Tekelec Confidential


SPR XML requests examples
Update the Entitlement to append a new value

<req name="update">
<ent name=“Subscriber" ns="policy"/>
<set>
<oper name="AddToSet" ns="bn">
<expr><attr name="Entitlement"/><value val="a"/></expr>
</oper>
</set>
<where>
<expr><attr name="IMSI"/><op value="="/><value val="184569547984229"/></expr>
</where>
</req>

22 I Tekelec. For What’s Next. Tekelec Confidential


SPR XML requests examples
Update the Entitlement to remove a value

<req name="update">
<ent name=“Subscriber " ns="policy"/>
<set>
<oper name="RemoveFromSet" ns="bn">
<expr><attr name="Entitlement"/><value val="a"/></expr>
</oper>
</set>
<where>
<expr><attr name="IMSI"/><op value="="/><value val="184569547984229"/></expr>
</where>
</req>

23 I Tekelec. For What’s Next. Tekelec Confidential


SPR XML requests examples
Delete a field

<req name="update">
<ent name=“Subscriber " ns="policy"/>
<set>
<expr><attr name="BillingDay"/><op value="="/><value val="" isnull="y"/></expr>
</set>
<where>
<expr><attr name="IMSI"/><op value="="/><value val="184569547984229"/></expr>
</where>
</req>

24 I Tekelec. For What’s Next. Tekelec Confidential


SPR XML requests examples
Delete a profile

<req name="delete">
<ent name=“Subscriber " ns="policy"/>
<where>
<expr><attr name="AccountId"/><op value="="/><value val="10404723525"/></expr>
</where>
</req>

25 I Tekelec. For What’s Next. Tekelec Confidential


SPR XML requests examples
Request to add a new Status Blob
<req name="update">
<
<ent name=“Subscriber " ns="policy"/>
/set>
<set>
<where>
<expr><attr name="Status"/><op value="="/><cdata>
<expr><attr name="IMSI"/><op value="="/><value
<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?> val="184569547984229"/></expr>
<state> </where>
<version>1</version> </req>
<property>
<name>mcc</name>
<value>315</value>
</property>
<property>
<name>expire</name>
<value>2010-02-09T11:20:32</value>
</property>
<property>
<name>approved</name>
<value>yes</value>
</property>
</state>
]]></cdata></expr>
26 I Tekelec. For What’s Next. Tekelec Confidential
SPR XML requests examples
Request to select a Status Blob

<req name="select">

<ent name=“Subscriber" ns="policy"/>

<select>

<expr><attr name="Status"/></expr>

</select>

<where>

<expr><attr name="IMSI"/><op value="="/><value val="184569547984229"/></expr>

</where>

</req>

27 I Tekelec. For What’s Next. Tekelec Confidential


SPR XML requests examples
Request to delete a Status Blob

<req name="update">
<ent name=“Subscriber " ns="policy"/>
<set>
<expr><attr name="Status"/><op value="="/><value val="" isnull="y"/></expr>
</set>
<where>
<expr><attr name="IMSI"/><op value="="/><value
val="184569547984229"/></expr>
</where>
</req>

28 I Tekelec. For What’s Next. Tekelec Confidential


SPR XML requests examples
Request to add a new Quota Blob
<req name="update">
<ent name=“Subscriber" ns="policy"/> </set>
<set> <where>
<expr><attr name="IMSI"/><op value="="/><value
<expr><attr name="Quota"/><op value="="/><cdata> val="184569547984229"/></expr>
<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?> </where>
</req>
<usage>
<version>1</version>
<quota name="AggregateLimit">
<cid>9223372036854775807</cid>
<time>3422</time>
<totalVolume>1000</totalVolume>
<inputVolume>980</inputVolume>
<outputVolume>20</outputVolume>
<serviceSpecific>12</serviceSpecific>
<nextResetTime>2010-05-22T00:00:00-
05:00</nextResetTime>
</quota>
</ usage >
]]></cdata></expr>

29 I Tekelec. For What’s Next. Tekelec Confidential


XML Request Examples – Operation request
Example: Authentication request
Operation Request - Example: the Authentication request

<req name="operation">
<oper name = "RequestUserAuc" ent=”UserAuthentication” ns="bn"/>
<expr>
<param name="UserName"/>
<op value="="/>
<value val="USER_NAME"/>
</expr>
<expr>
<param name=”UserPasswd”/>
<op value=”=”/>
<value val="USER_PASSWD"/>
</expr>
<expr>
<param name=”InterfaceModuleId”/>
<op value=”=”/>
<value val=”27"/>
</expr>
</oper>
</req>

30 I Tekelec. For What’s Next. Tekelec Confidential


Provisioning Command Templates
Benefits & features
› Templates simplify provisioning
 Templates are recommended for complex or repetitive provisioning actions
 Templates allow to define parameters with default values
 Templates allow to define parameters with empty values
 Once loaded, can be subsequently invoked by providing the actual values of parameters for the
concerned provisioning action
› Templates hide upgrade changes
 The template interface always stays the same
 Only the template content needs to be tested and (if required) adapted to the new release

› Templates features
 It is possible to group several templates into a transaction by issuing a “Start Transaction” request,
then execute several templates, then issue a “Commit” or “RollBack”
 Template requests which are not sent between a ”StartTransaction” and a “Commit” request are by
default automatically executed within a transaction context, which means that a template will either be
fully executed, or not executed at all.
 When running a template, any failure encountered automatically provokes a roll back of all the
changes already processed from this template. All the requests in the template succeed or they are all
rolled back.
 Error reporting provides details when a template is not successfully executed, by indicating the error
and the request that failed within a template

Tekelec Confidential
Provisioning Command Templates
Making of provisioning an easy task

› Templates simplify provisioning


 Are recommended for complex or repetitive provisioning actions
 Makes use of default or empty values for parameters
 Once loaded can be subsequently invoked by providing the actual values of parameters for the
concerned provisioning action

Create Basic Subscriber Profile Create Basic Subscriber Profile


XML provisioning Without using Leveraging Templates…. Only the Template
Templates…. invocation shall be

To be repeated for every subscriber Profile


<file>

<!-- Add/modify basic subscriber. -->


<!-- Subscription must exists -->
-----------Create Basic Subscriber profile------------------
<!-- Template requests for adding/modifying basic subscriber. -->
performed for every
<req name="insert">
<ent name="SubscriberProfile" ns="bn" />
<set>
<req name="insert" id="101">
<ent name="SubscriberProfile" ns="bn" />
<set>
subscriber Profile
<expr><attr name="SubscriptionID"/><value val=""/></expr>
<expr><attr name="SubscriptionID"/><value val=""/></expr> <expr><attr name="HlrServiceProfileID"/><value val="1"/></expr>
<expr><attr name="HlrServiceProfileID"/><value val="1"/></expr> <expr><attr name="TeleServiceList"/><value
<expr><attr name="TeleServiceList"/><value val="TS11,TS21,TS22"/></expr> <file>
<expr><attr name="OdbMask"/><value
val="TS11,TS21,TS22"/></expr> val="PremiumRateInfo,PremiumRateEntertainment,RoamingOutsideHplmnCountry"/></
<expr><attr name="OdbMask"/><value expr> <!--Request template to add/modify basic
<expr><attr name="MsIsdnAlertInd"/><value val=""/></expr>
val="PremiumRateInfo,PremiumRateEntertainment,RoamingOutsideHplmnCountry"/></ <expr><attr name="PreferredRoutingNetworkDomain"/><value subscriber.
expr> val="1"/></expr> <tp id="1">
<expr><attr name="MsIsdnAlertInd"/><value val=""/></expr> <expr><attr name="OCPlmnTemplateId"/><value val="0"/></expr>
<tpi nm="SubscriptionID
<expr><attr name="PreferredRoutingNetworkDomain"/><value <expr><attr name="Nam"/><value val="0"/></expr>
</set> <tpi nm="Imsi" val="310910421000106"/>
val="1"/></expr> </req>
<expr><attr name="OCPlmnTemplateId"/><value val="0"/></expr> <tpi nm="MsIsdn" val="15634210106"/>
<expr><attr name="Nam"/><value val="0"/></expr> <req name="insert" id="102"> <tpi nm="Nam" val="1"/>
<ent name="MSISDN" ns="bn" /> </tp>
</set> <set>
</req> <expr><attr name="SubscriptionID"/><value val=""/></expr> </file
<expr><attr name="MsIsdn"/><value val=""/></expr>
<req name="insert"> </set>
<ent name="MSISDN" ns="bn" /> </req>
<set>
<req name="insert" id="103">
<expr><attr name="SubscriptionID"/><value val=""/></expr> <ent name="MsIsdnImsiProfileAssociation" ns="bn" />
<expr><attr name="MsIsdn"/><value val=""/></expr> <set>
<expr><attr name="SubscriptionID"/><value val=""/></expr>
<expr><attr name="Imsi"/><value val=""/></expr>
</set> <expr><attr name="MsIsdn"/><value val=""/></expr>
</req> <expr><attr name="Displayed"/><value val="1"/></expr>
<expr><attr name="HlrServiceProfileID"/><value val="1"/></expr>
<req name="insert"> </set>
</req>
<ent name="MsIsdnImsiProfileAssociation" ns="bn" />
<set>
<!-- Template for adding/modifying basic subscriber. -->

<template id="1" otherAttributesModifiable="N">


XML Template
<expr><attr name="SubscriptionID"/><value val=""/></expr>
<expr><attr name="Imsi"/><value val=""/></expr>
<expr><attr name="MsIsdn"/><value val=""/></expr>
<attr name="SubscriptionID" mandatory="Y"/>
<attr name="Imsi" mandatory="Y"/>
<attr name="MsIsdn" mandatory="Y"/>
Loaded only once
<expr><attr name="Displayed"/><value val="1"/></expr> <attr name="Nam" mandatory="N"/>
<tr id="101"/>
<expr><attr name="HlrServiceProfileID"/><value val="1"/></expr> <tr id="102"/>
</set> <tr id="103"/>
</req> </template>
</file>

Tekelec Confidential
Provisioning Command Templates
Example
XML Template File Note: in general the XML Template file
may contain multiple XML Template
Requests (one for each Global Schema
entity) in order to provision once multiple
default or common parameters. Please
<file> refer to the examples included in “SDM
XML Template Request <req name="insert" id="11100"> Subscriber Provisioning-User Guide”
<ent name="Subscription" ns="bn" /> (910-6074-001)
for adding a basic <set>
subscription entity instance <expr><attr name="SubscriptionID"/><value val=""/></expr>
</set>
</req>

<template Id="111" otherAttributesModifiable="N">


<attr name="SubscriptionID" mandatory="Y"/>
XML Command Template <tr id="11100"/>
for adding/modifying basic </template>
</file>
subscriber

XML Invoking File

<file>
<!-- Request templates to add basic Subscription. -->
Invokes the Command Template
<tp id="111">
<tpi nm="SubscriptionID" val="7"/> “111” and adds a basic subscription
</tp> by providing the specific
</file> SubscriptionID.

XML Template loaded only once.


Only the Template invocation FileTekelec
shall Confidential
be performed for every subscriber Profile
Provisioning using Templates XML Template File
Example of provisioning SIM cards 1 <file>
<!-- Template request for creating SIM. -->
<req name="insert" id="10001">
<ent name="Sim" ns="bn" />
<set>
<expr><attr name="SimId"/><value val=""/> </expr>
<expr><attr name="SubscriptionID"/><value val=""/></expr>
<expr><attr name="AlgorithmName"/><value val="XOR"/></expr>
<expr><attr name="Ki32HexChar"/><value val=""/></expr>
<expr><attr name="PUK"/><value val=""/></expr>
2 XML Template Request <expr><attr name="ManufacturerId"/><value val=""/></expr>
<expr><attr name="SimType"/><value val="SIM"/></expr>
for creating SIM </set>
XML Invoking File </req>
<file> <req name="insert" id="10002">
<ent name="SimImsiMap" ns="bn" />
<file> <set>
<!-- Request template to create SIM for a subscriber. --> <expr><attr name="SimId"/><value val=""/> </expr>
<tp id="1000"> <expr><attr name="Imsi"/><value val=""/></expr>
<tpi nm="SimId" val="234445666006"/> <expr><attr name="PrimaryImsi"/><value val="1"/></expr>
<tpi nm="Imsi" val="310910421000106"/> </set>
<tpi nm="SubscriptionID" val="7"/> </req>
<tpi nm="Ki32HexChar“
val="A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5"/> <!—Command Template for creating SIM. -->
<tpi nm="PUK" val="2345522333"/> <template id="1000" otherAttributesModifiable="N">
</tp> <attr name="SimId" mandatory="Y"/>
</file> <attr name="SubscriptionID" mandatory="Y"/>
<attr name="Imsi" mandatory="Y"/>
XML Command Template <attr name="Ki32HexChar" mandatory="Y"/>
<attr name="PUK" mandatory="Y"/>
for creating SIM <tr id="10001"/>
<tr id="10002"/>
</template>
</file>

XML Template loaded only once.


Tekelec Confidential
Only the Template invocation File shall be performed for every subscriber Profile
VAS App Access to Subscriber-AppX-profile on SDM
Use case example
› The SDM back-end (called the Subscriber Data Server) acts › New Namespace = VAS _X

as a 3GPP User Data Repository (UDR) for the VAS › Used by the VAS App X using XML

Application › Other apps could also access via SDS


Subscription (XML, SOAP, LDAP) if they have the
› A new namespace VAS X has been created, which,
SubscriptionID
rights to do that

for the purpose of this example, is made of: 1


1
0..1
 One new entity object: subscriber-AppX-profile 1
0..n 0..n
subscriber-AppX-profile
 Several new attributes as defined in the VAS MSISDN SIM


SubscriptionID
The customer‟s Provisioning system would use the Tekelec Imsi
Custom-attr-1
SDM XML API to provision the subscriber profiles 1 1
…….
0..n Custom-atrr-10
 Recommendation is to use XML provisioning templates, please IMSI
refer to documentation

› There could be 4 commands available:


1
 Create a new profile (Insert) 0..n 0..n
HLRsubsProfile
 Update a profile (Update)

 Delete the profile (Delete)

 Read a profile (Select) HLR Domain

› More granularity is possible, i.e. read just one attribute, etc.


Richard to review
35 I Tekelec. For What’s Next. Tekelec Confidential
Examples using Direct XML/SOAP commands

36 I Tekelec. For What’s Next. Tekelec Confidential


SOAP request to create a profile (long format)

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance"><soapenv:Header><ns1:UserName soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next"
soapenv:mustUnderstand="0" xsi:type="soapenc:string" xmlns:ns1="blueslice.com"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">admin</ns1:UserName><ns2:Passwd
soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next" soapenv:mustUnderstand="0"
xsi:type="soapenc:string" xmlns:ns2="blueslice.com"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">admin</ns2:Passwd></soapenv:Header><soap
env:Body><processTransaction xmlns="http://webservice.blueslice.com"><![CDATA[
<req name="insert">
<ent name="subscriber-AppX-profile" ns="VAS_X"/>
<set>
<expr><attr name="SubscriptionID"/><value val="71122334455"/></expr>
<expr><attr name="imsi"/><value val=“123456789012345"/></expr>
<expr><attr name=“custom-attr-1"/><value val=“1"/></expr>
<expr><attr name=“custom-attr-2"/><value val=“2"/></expr>
<expr><attr name=“custom-attr-3"/><value val=“3"/></expr>
</set>
</req>]]>

37 I Tekelec. For What’s Next. Tekelec Confidential


SOAP request to select a profile based by IMSI

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance"><soapenv:Header><ns1:UserName soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next"
soapenv:mustUnderstand="0" xsi:type="soapenc:string" xmlns:ns1="blueslice.com"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">admin</ns1:UserName><ns2:Passwd
soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next" soapenv:mustUnderstand="0"
xsi:type="soapenc:string" xmlns:ns2="blueslice.com"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">admin</ns2:Passwd></soapenv:Header><soap
env:Body><processTransaction xmlns="http://webservice.blueslice.com"><![CDATA[
<req name="select">
<ent name="subscriber-AppX-profile" ns="VAS_X"/>
<select>
<expr><attr name=“custom-attr-3"/></expr>
</select>
<where>
<expr><attr name=“imsi"/><op value="="/><value val=" 123456789012345"/></expr>
</where>
</req>]]>

38 I Tekelec. For What’s Next. Tekelec Confidential


SOAP request to update a profile by IMSI

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance"><soapenv:Header><ns1:UserName soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next"
soapenv:mustUnderstand="0" xsi:type="soapenc:string" xmlns:ns1="blueslice.com"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">admin</ns1:UserName><ns2:Passwd
soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next" soapenv:mustUnderstand="0"
xsi:type="soapenc:string" xmlns:ns2="blueslice.com"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">admin</ns2:Passwd></soapenv:Header><soap
env:Body><processTransaction xmlns="http://webservice.blueslice.com"><![CDATA[
<req name="update">
<ent name="subscriber-AppX-profile" ns="VAS_X"/>
<set>
<expr><attr name=“custom-attr-1"/><value val=“111"/></expr>
</set>
<where>
<expr><attr name=“imsi"/><value val=“123456789012345"/></expr>
</where>
</req>]]>

39 I Tekelec. For What’s Next. Tekelec Confidential


Provisioning using Direct XML commands

40 I Tekelec. For What’s Next. Tekelec Confidential


Direct XML command / sent from Prov system / long format

<!– Direct XML command for Creating New Subs – long format-->
<tx>
<req name="insert“ >
<ent name="Subscription" ns="global"/>
<set>
<expr><attr name="SubscriptionID"/><value
val=“71122334455"/></expr>
</set>
</req>
<req name="insert“ >
<ent name="subscriber-AppX-profile" ns="VAS_X"/>
<set>
<expr><attr name="SubscriptionID"/><value val="71122334455"/></expr>
<expr><attr name="imsi"/><value val=“123456789012345"/></expr>
<expr><attr name=“custom-attr-1"/><value val=“1"/></expr>
<expr><attr name=“custom-attr-2"/><value val=“2"/></expr>
<expr><attr name=“custom-attr-3"/><value val=“3"/></expr>
</set>
</req>
</tx>

41 I Tekelec. For What’s Next. Tekelec Confidential


Direct XML command / sent from Prov system / short format

<!– Direct XML command for Creating New Subs – short format -->
<tx>
<ent name="Subscription" ns="global”>
<SubscriptionID>71122334455</SubscriptionID>
</ent>
<ent name=“subscriber-AppX-profile" ns=“VAS_X”>
<SubscriptionID>71122334455</SubscriptionID>
<imsi>123456789012345</imsi>
<custom-attr-1>1</custom-attr-1>
<custom-attr-2>2</custom-attr-2>
<custom-attr-3>3</custom-attr-3>
</ent>
</tx>

42 I Tekelec. For What’s Next. Tekelec Confidential


Data query using Direct XML commands

43 I Tekelec. For What’s Next. Tekelec Confidential


Example XML ‘select’

<! Example to read the custom-attr-1 and custom-attr-2 attributes for a given
imsi------>
<req name=“select“ >
<ent name=“subscriber-AppX-profile" ns=“VAS_X”>
<expr><attr name=“custom-attr-1"/></expr>
<expr><attr name=“custom-attr-2"/></expr>
<where>
<expr><attr name=“imsi"/><value val=“123456789012345"/></expr>
</where>
</req>

44 I Tekelec. For What’s Next. Tekelec Confidential


Examples using Templates

45 I Tekelec. For What’s Next. Tekelec Confidential


Provisioning Command Templates
Benefits & features
› Templates simplify provisioning
 Templates are recommended for complex or repetitive provisioning actions
 Templates allow to define parameters with default values
 Templates allow to define parameters with empty values
 Once loaded, can be subsequently invoked by providing the actual values of parameters for the
concerned provisioning action
› Templates hide upgrade changes
 The template interface always stays the same
 Only the template content needs to be tested and (if required) adapted to the new release

› Templates features
 It is possible to group several templates into a transaction by issuing a “Start Transaction” request,
then execute several templates, then issue a “Commit” or “RollBack”
 Template requests which are not sent between a ”StartTransaction” and a “Commit” request are by
default automatically executed within a transaction context, which means that a template will either be
fully executed, or not executed at all.
 When running a template, any failure encountered automatically provokes a roll back of all the
changes already processed from this template. All the requests in the template succeed or they are all
rolled back.
 Error reporting provides details when a template is not successfully executed, by indicating the error
and the request that failed within a template

Tekelec Confidential
Template File example for Creation of sub profile for VAS_X (Template ID 1)
(stored in SDS / not sent by prov system)
<file>
<!-- Template definition for Creating New Subs -->
<!-- Requests -->
<req name="insert" id="100">
<ent name="Subscription" ns="global"/>
<set>
<expr><attr name="SubscriptionID"/><value val=""/></expr>
</set>
</req>
<req name="insert" id="101">
<ent name=“subscriber-AppX-profile" ns=“VAS_X"/>
<set>
<expr><attr name="SubscriptionID"/><value val=""/></expr>
<expr><attr name=“imsi"/><value val=""/></expr>
<expr><attr name=“custom-attr-1"/><value val=“1"/></expr>
<expr><attr name=“custom-attr-2"/><value val=“2"/></expr>
<expr><attr name=“custom-attr-3"/><value val=“"/></expr>
</set>
</req>
<template id="1" otherAttributesModifiable="N">
<attr name="SubscriptionID" mandatory="Y"/>
<attr name=“imsi" mandatory=“Y"/>
<attr name=“custom-attr-3" mandatory=“N"/>
<tr id="100"/>
<tr id="101"/>
</template>

</file>

47 I Tekelec. For What’s Next. Tekelec Confidential


Invoke File examples (sent from prov system to SDS)
Create new subscriber profile for VAS_X using XML and template
Create new subs:
<tp id="1">
<tpi nm="SubscriptionID" val=“71122334455"/>
<tpi nm=“imsi" val=“123456789012345"/>
<tpi nm=“custom-attr-3" val=“3"/>
</tp>

48 I Tekelec. For What’s Next. Tekelec Confidential


Invoke File example (sent from prov system to SDS)
Create new subscriber profile for VAS_X using SOAP interface and template
<?xml version="1.0"encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header>
<ns1:UserName soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next"
soapenv:mustUnderstand="0" xsi:type="soapenc:string"
xmlns:ns1="blueslice.com"

xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">admin</ns1:UserName>
<ns2:Passwd soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next"
soapenv:mustUnderstand="0" xsi:type="soapenc:string"
xmlns:ns2="blueslice.com"

xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">admin</ns2:Passwd>
</soapenv:Header>
<soapenv:Body>
<tp id="1">
<tpi nm="SubscriptionID" val=“71122334455"/>
<tpi nm=“imsi" val=“123456789012345"/>
<tpi nm=“custom-attr-3" val=“1"/>
</tp>
</soapenv:Body>
</soapenv:Envelope>

49 I Tekelec. For What’s Next. Tekelec Confidential

Вам также может понравиться