2 Cartridge Pack Overview

This chapter contains an overview of Oracle Communications Offline Mediation Controller AMA CDK cartridge pack.

New Features

This section lists the new features.

AMA CDK 6.0.0

This cartridge pack now works with Oracle Communications Offline Mediation Controller 6.0.

AMA CDK 2.1.3

The following feature was added in this version of the AMA cartridge pack:

  • The AMA cartridge pack now supports incrementing Block Count across output files and Distribution Cartridge (DC) node restarts, for CDMA services.

AMA CDK 2.1.2

The following feature was added in this version of the AMA cartridge pack:

  • The AMA cartridge pack now supports CDMA services. The AMA DNS XML schema allows you to configure the type of supported service as either GSM or CDMA.

The following field definition should be added in the XML file:

<xsd:attribute name="hexStructCode" type="xsd:boolean"/>
<definition name="dms_mtx_15_ama" xmlns:xsd="http://www.w3.org/2001/XMLSchema-instance" xsd:noNamespaceSchemaLocation="AMADNSSchema.xsd">

To specify CDMA or GSM set the hexadecimal structure code to true or false respectively.

Sample amaBlock in XML file:

<?xml version="1.0" standalone="yes"?>
    <amaStructure>
        <amaBlock BDW="false" RDW="false" blockSize="2048" hexStructCode="true">
            <blockHeaderRec>
                <structureCode>193</structureCode>
            </blockHeaderRec>
        </amaBlock>

AMA CDK 2.1.1

The following feature was added in this version of the AMA cartridge pack:

  • The AMA DNS XML schema was updated to allow you to customize the block filler character used to maintain the fixed block size if the block size is not variable. Using the defined block filler character, the block will be filled. You can specify the block filler character as a regular hexadecimal value or by default the block filler is zero.

Sample amaBlock in XML file:

<amaBlock BDW="false" RDW="true" blockSize="2048" blockFiller="E">
<xsd:sequence>

</amaBlock>

XML Schema

The following is the XML schema for the AMA DNS DC. The schema is packaged inside the cartridge jar file. To access the schema, you must un-jar the file by executing the command:

jar xvf amadns_r2_1_3.jar

and navigating to:

com/metasolv/nm/amadns/AMADNSSchema.xsd
<?xml version="1.0" encoding="ISO-8859-1" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 <xsd:annotation>
  <xsd:documentation>
    AMA DNS Schema. Copyright 2004 MetaSolv Software Inc. All rights reserved.
   </xsd:documentation>
</xsd:annotation>
<xsd:element name="definition" type="amaDefType"/>

The XML definition file you create must conform to this schema.

<xsd:complexType name="amaDefType">
        <xsd:element name="amaStructure" type="amaStructureType"/>
        <xsd:sequence>
            <xsd:element name="structure" minOccurs="1" maxOccurs="unbounded" type="structure_module_Type"/>
        </xsd:sequence>
        <xsd:sequence>
            <xsd:element name="module" minOccurs="0" maxOccurs="unbounded" type="structure_module_Type"/>
        </xsd:sequence>
    </xsd:sequence>
    <xsd:attribute name="name" type="xsd:string"/>
</xsd:complexType>
<xsd:complexType name="amaStructureType">
<xsd:sequence>
<xsd:element name="fileHeader" type="fileHeaderType" minOccurs="0" maxOccurs="1"/>
        <!-- File header block, headerBlock should be the first block in the AMA file and contains no data block -->
        <xsd:element name="headerBlock" type="amaBlockType" minOccurs="0" maxOccurs="1"/>
        <!-- AMA data block -->
        <xsd:element name="amaBlock" type="amaBlockType"/>
        <!-- File footer block, footerBlock should be the last block in the AMA file and contains no data block -->
        <xsd:element name="footerBlock" type="amaBlockType" minOccurs="0" maxOccurs="1"/>
        <xsd:element name="operationsInFooterRecordOnly" type="operationsType"/>
        <xsd:sequence>
            <xsd:element name="counterInfo" type = "counterInfoType" minOccurs="0" maxOccurs="2"/>
        </xsd:sequence>
        <xsd:element name="structureCodeField" type="xsd:string"/>
    </xsd:sequence>
</xsd:complexType>
<xsd:complexType name="fileHeaderType">
<xsd:sequence>
<xsd:element name="field" type="fieldType" minOccurs="1" maxOccurs="unbounded"/>
    </xsd:sequence>
</xsd:complexType>
<xsd:complexType name="counterInfoType">
<xsd:sequence>
<xsd:element name="max" type="counter"/>
        <xsd:element name="min" type="counter"/>
    </xsd:sequence>
    <xsd:attribute name="name" type="counterNameType"/>
</xsd:complexType>
<xsd:simpleType name="counterNameType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="FileCounter"/>
        <xsd:enumeration value="BlockCounter"/>
    </xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="counter">
<xsd:restriction base="xsd:int">
<xsd:minInclusive value="0"/>
    </xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="operationsType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="getTotalRecordsInFile,getTotalDataRecordsInFile,getTotalBlocksInFile,getTotalRecordsInBlock,getTotalDataRecordsInBlock,getTimeStampFromBlockHeader,getTimeFromBlockHeader,getDateFromBlockHeader,getTimeStampFromFileHeader,getTimeFromFileHeader,getDateFromFileHeader"/>
    </xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="amaBlockType">
<xsd:sequence>
<!-- Block Header Record -->
        <xsd:element name="blockHeaderRec" type="recordType" minOccurs="0" maxOccurs="1"/>
        <!--    Special header record in this block    -->
        <xsd:element name="headerRec" type="recordType" minOccurs="0" maxOccurs="1"/>
        <!--    Special footer record in this block    -->
        <xsd:element name="footerRec" type="recordType" minOccurs="0" maxOccurs="1"/>
    </xsd:sequence>
    <!--  Block Descriptor Word is presented or not  -->
    <xsd:attribute name="BDW" type="xsd:boolean"/>
    <!--  Record Descriptor Word is presented or not  -->
    <xsd:attribute name="RDW" type="xsd:boolean"/>
    <!--  The size of a block  -->
    <xsd:attribute name="blockSize" type="blockSizeType"/>
    <xsd:attribute name="blockFiller" type="blockFillerType"/>
</xsd:complexType>
<xsd:complexType name="recordType">
<xsd:sequence>
<!-- The structure code of a record, should match the "id" in "structure_module_Type". -->
        <xsd:element name="structureCode" type="xsd:string"/>
    </xsd:sequence>
</xsd:complexType>
<xsd:simpleType name="blockSizeType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="2048"/>
        <xsd:enumeration value="variable"/>
    </xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="blockFillerType">
<xsd:restriction base="xsd:string">
<xsd:pattern value="[0-9a-fA-F]{1}"/>
  </xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="structure_module_Type">
<xsd:sequence>
<!-- Structure code or module code -->
        <xsd:element name="id" type="xsd:string"/>
        <xsd:sequence>
            <!--      This element is for Module only.      -->
            <xsd:element name="allowedstruct" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
        </xsd:sequence>
        <xsd:sequence>
            <xsd:element name="field" type="fieldType" minOccurs="1" maxOccurs="unbounded"/>
        </xsd:sequence>
    </xsd:sequence>
    <xsd:attribute name="name" type="xsd:string"/>
    <xsd:attribute name="multivalued" type="xsd:boolean"/>
</xsd:complexType>
<xsd:complexType name="fieldType">
<xsd:sequence>
<xsd:element name="length" type="xsd:int"/>
        <xsd:element name="narid" type="xsd:string"/>
        <xsd:element name="pattern" type="xsd:string" minOccurs="0" maxOccurs="1"/>
        <xsd:element name="default" type="xsd:string" minOccurs="0" maxOccurs="1"/>
        <xsd:element name="const" type="xsd:string" minOccurs="0" maxOccurs="1"/>
    </xsd:sequence>
    <xsd:attribute name="name" type="xsd:string"/>
    <xsd:attribute name="signdelimited" type="xsd:boolean"/>
    <xsd:attribute name="signCharacterInRegularValue" type="signCharType"/>
    <xsd:attribute name="signCharacterInNullValue" type="signCharType"/>
    <xsd:attribute name="max" type="xsd:int"/>
    <xsd:attribute name="min" type="xsd:int"/>
    <xsd:attribute name="operation" type="operationType"/>
    <xsd:attribute name="spacePrefix" type="xsd:boolean"/>
    <xsd:attribute name="encoding" type="encodingType"/>
</xsd:complexType>
<!--  Define field encoding type.   -->
<!--  By default (if not defined in XML), encoding type is BCD.  -->
<xsd:simpleType name="encodingType">
    <xsd:restriction base="xsd:string">
        <xsd:enumeration value="BCD"/>
        <xsd:enumeration value="EBCDIC"/>
    </xsd:restriction>
</xsd:simpleType>
<!--  Define sign character if a field is sign delimited.   -->
<!--  By default (if not defined in XML), sign character is "c" in regular value, for example, "03dc".    -->
<!-- By default (if not defined in XML), sign character is "f" in null value, for example, "ffff". -->
<xsd:simpleType name="signCharType">
    <xsd:restriction base="xsd:string">
        <xsd:enumeration value="f"/>
        <xsd:enumeration value="c"/>
    </xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="operationType">
<xsd:restriction base="xsd:string">
<!-- Get total number of records in the file, only available in File Footer -->
        <xsd:enumeration value="getTotalRecordsInFile"/>
        <!--  Get total number of data records (excluding header/footer records) in the file, only available in File Footer  -->
        <xsd:enumeration value="getTotalDataRecordsInFile"/>
        <!--  Get file name      -->
        <xsd:enumeration value="getFileName"/>
        <!--  Get DMS MSC AMA (GSM 13, 15, and 16) time stamp      -->
        <xsd:enumeration value="getDmsMscTimeStamp"/>
        <!--  Get DMS MSC AMA GSM 17 time stamp      -->
        <xsd:enumeration value="getDmsMscGsm17TimeStamp"/>
        <!--  Get AMA DNS time stamp (includes date and time)      -->
        <xsd:enumeration value="getAmaDnsTimeStamp"/>
        <!--  Get AMA DNS time of day      -->
        <xsd:enumeration value="getAmaDnsTime"/>
        <!--  Get AMA DNS date      -->
        <xsd:enumeration value="getAmaDnsDate"/>
        <!--  Get file sequence number      -->
        <xsd:enumeration value="getFileSequenceNumber"/>
        <!--  Get total number of blocks in a file, only available in File Footer      -->
        <xsd:enumeration value="getTotalBlocksInFile"/>
        <!--  Get block identifier, for multiple switch system      -->
        <xsd:enumeration value="getBlockIdentifier"/>
        <!--  Get block sequence number      -->
        <xsd:enumeration value="getBlockSequenceNumber"/>
        <!--  Get total number of records in a block, only available in Block Footer      -->
        <xsd:enumeration value="getTotalRecordsInBlock"/>
        <!--  Get total number of data records (excluding header/footer records) in a block, only available in Block Footer  -->
        <xsd:enumeration value="getTotalDataRecordsInBlock"/>
        <!--  Use this operation if the field value is presented in the input NAR   -->
        <xsd:enumeration value="getValueFromFieldContainer:Key"/>
        <!--  These are for block footer only, use them if you want the timestamp in the block footer is the same as the one in the block header.   -->
        <xsd:enumeration value="getTimeStampFromBlockHeader"/>
        <xsd:enumeration value="getTimeFromBlockHeader"/>
        <xsd:enumeration value="getDateFromBlockHeader"/>
        <!--  These are for footer only, use them if you want the timestamp in the footer is the same as the one in the file header.  -->
        <xsd:enumeration value="getTimeStampFromFileHeader"/>
        <xsd:enumeration value="getTimeFromFileHeader"/>
        <xsd:enumeration value="getDateFromFileHeader"/>
        <!--   Ignore this field  -->
        <xsd:enumeration value="ignore"/>
    </xsd:restriction>
</xsd:simpleType>
</xsd:schema>

AMA CDK 2.1.0

The following feature was added to this version of the AMA cartridge pack:

  • AMAViewer-converts AMA files to human-readable XML files.