Академический Документы
Профессиональный Документы
Культура Документы
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
vip
XDS/LDS XDS/LDS
…n
› 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
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
1. From the machine hosting the SOAP Client application connect to the SDM Web
Server by specifying the following URL for the SOAP service :
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)
Authentication request
› 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.
› 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
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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<req name="delete">
<ent name=“Subscriber " ns="policy"/>
<where>
<expr><attr name="AccountId"/><op value="="/><value val="10404723525"/></expr>
</where>
</req>
<req name="select">
<select>
<expr><attr name="Status"/></expr>
</select>
<where>
</where>
</req>
<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>
<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>
› 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
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>
<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.
as a 3GPP User Data Repository (UDR) for the VAS › Used by the VAS App X using XML
›
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
<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>]]>
<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>]]>
<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>]]>
<!– 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>
<!– 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>
<! 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>
› 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>
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>