
Конфигурационный файл представляет собой файл в формате XML, который оформлен в соответствии со схемой данных, приведенной в файле ecss_modificators.xsd.
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <!-- categoryType --> <xs:simpleType name="categoryType"> <xs:restriction base="xs:string"> <xs:enumeration value="unknownAtThisTime"/> <xs:enumeration value="operatorFrench"/> <xs:enumeration value="operatorEngish"> <xs:annotation> <xs:documentation xml:lang="en">Obsolete value. Correct value is operatorEnglish</xs:documentation> </xs:annotation> </xs:enumeration> <xs:enumeration value="operatorEnglish"/> <xs:enumeration value="operatorGerman"/> <xs:enumeration value="operatorRussian"/> <xs:enumeration value="operatorSpanish"/> <xs:enumeration value="reserved"/> <xs:enumeration value="ordinarySubscriber"/> <xs:enumeration value="subscriberWithPriority"/> <xs:enumeration value="dataCall"/> <xs:enumeration value="testCall"/> <xs:enumeration value="spare"/> <xs:enumeration value="payphone"/> <xs:enumeration value="category0"/> <xs:enumeration value="hotelsSubscriber"/> <xs:enumeration value="freeSubscriber"/> <xs:enumeration value="paidSubscriber"/> <xs:enumeration value="localSubscriber"/> <xs:enumeration value="localTaksofon"/> <xs:enumeration value="autoCallI"/> <xs:enumeration value="semiautoCallI"/> <xs:enumeration value="autoCallII"/> <xs:enumeration value="semiautoCallII"/> <xs:enumeration value="autoCallIII"/> <xs:enumeration value="semiautoCallIII"/> <xs:enumeration value="autoCallIV"/> <xs:enumeration value="semiautoCallIV"/> <xs:enumeration value="0"/> <xs:enumeration value="1"/> <xs:enumeration value="2"/> <xs:enumeration value="3"/> <xs:enumeration value="4"/> <xs:enumeration value="5"/> <xs:enumeration value="6"/> <xs:enumeration value="7"/> <xs:enumeration value="8"/> <xs:enumeration value="9"/> <xs:enumeration value="10"/> <xs:enumeration value="11"/> <xs:enumeration value="12"/> <xs:enumeration value="13"/> <xs:enumeration value="14"/> <xs:enumeration value="15"/> <xs:enumeration value="16"/> <xs:enumeration value="17"/> <xs:enumeration value="18"/> <xs:enumeration value="19"/> <xs:enumeration value="20"/> <xs:enumeration value="21"/> <xs:enumeration value="22"/> <xs:enumeration value="23"/> <xs:enumeration value="24"/> <xs:enumeration value="25"/> <xs:enumeration value="26"/> <xs:enumeration value="27"/> <xs:enumeration value="28"/> <xs:enumeration value="29"/> <xs:enumeration value="30"/> <xs:enumeration value="31"/> <xs:enumeration value="32"/> <xs:enumeration value="33"/> <xs:enumeration value="34"/> <xs:enumeration value="35"/> <xs:enumeration value="36"/> <xs:enumeration value="37"/> <xs:enumeration value="38"/> <xs:enumeration value="39"/> <xs:enumeration value="40"/> <xs:enumeration value="41"/> <xs:enumeration value="42"/> <xs:enumeration value="43"/> <xs:enumeration value="44"/> <xs:enumeration value="45"/> <xs:enumeration value="46"/> <xs:enumeration value="47"/> <xs:enumeration value="48"/> <xs:enumeration value="49"/> <xs:enumeration value="50"/> <xs:enumeration value="51"/> <xs:enumeration value="52"/> <xs:enumeration value="53"/> <xs:enumeration value="54"/> <xs:enumeration value="55"/> <xs:enumeration value="56"/> <xs:enumeration value="57"/> <xs:enumeration value="58"/> <xs:enumeration value="59"/> <xs:enumeration value="60"/> <xs:enumeration value="61"/> <xs:enumeration value="62"/> <xs:enumeration value="63"/> <xs:enumeration value="64"/> <xs:enumeration value="65"/> <xs:enumeration value="66"/> <xs:enumeration value="67"/> <xs:enumeration value="68"/> <xs:enumeration value="69"/> <xs:enumeration value="70"/> <xs:enumeration value="71"/> <xs:enumeration value="72"/> <xs:enumeration value="73"/> <xs:enumeration value="74"/> <xs:enumeration value="75"/> <xs:enumeration value="76"/> <xs:enumeration value="77"/> <xs:enumeration value="78"/> <xs:enumeration value="79"/> <xs:enumeration value="80"/> <xs:enumeration value="81"/> <xs:enumeration value="82"/> <xs:enumeration value="83"/> <xs:enumeration value="84"/> <xs:enumeration value="85"/> <xs:enumeration value="86"/> <xs:enumeration value="87"/> <xs:enumeration value="88"/> <xs:enumeration value="89"/> <xs:enumeration value="90"/> <xs:enumeration value="91"/> <xs:enumeration value="92"/> <xs:enumeration value="93"/> <xs:enumeration value="94"/> <xs:enumeration value="95"/> <xs:enumeration value="96"/> <xs:enumeration value="97"/> <xs:enumeration value="98"/> <xs:enumeration value="99"/> <xs:enumeration value="100"/> <xs:enumeration value="101"/> <xs:enumeration value="102"/> <xs:enumeration value="103"/> <xs:enumeration value="104"/> <xs:enumeration value="105"/> <xs:enumeration value="106"/> <xs:enumeration value="107"/> <xs:enumeration value="108"/> <xs:enumeration value="109"/> <xs:enumeration value="110"/> <xs:enumeration value="111"/> <xs:enumeration value="112"/> <xs:enumeration value="113"/> <xs:enumeration value="114"/> <xs:enumeration value="115"/> <xs:enumeration value="116"/> <xs:enumeration value="117"/> <xs:enumeration value="118"/> <xs:enumeration value="119"/> <xs:enumeration value="120"/> <xs:enumeration value="121"/> <xs:enumeration value="122"/> <xs:enumeration value="123"/> <xs:enumeration value="124"/> <xs:enumeration value="125"/> <xs:enumeration value="126"/> <xs:enumeration value="127"/> <xs:enumeration value="128"/> <xs:enumeration value="129"/> <xs:enumeration value="130"/> <xs:enumeration value="131"/> <xs:enumeration value="132"/> <xs:enumeration value="133"/> <xs:enumeration value="134"/> <xs:enumeration value="135"/> <xs:enumeration value="136"/> <xs:enumeration value="137"/> <xs:enumeration value="138"/> <xs:enumeration value="139"/> <xs:enumeration value="140"/> <xs:enumeration value="141"/> <xs:enumeration value="142"/> <xs:enumeration value="143"/> <xs:enumeration value="144"/> <xs:enumeration value="145"/> <xs:enumeration value="146"/> <xs:enumeration value="147"/> <xs:enumeration value="148"/> <xs:enumeration value="149"/> <xs:enumeration value="150"/> <xs:enumeration value="151"/> <xs:enumeration value="152"/> <xs:enumeration value="153"/> <xs:enumeration value="154"/> <xs:enumeration value="155"/> <xs:enumeration value="156"/> <xs:enumeration value="157"/> <xs:enumeration value="158"/> <xs:enumeration value="159"/> <xs:enumeration value="160"/> <xs:enumeration value="161"/> <xs:enumeration value="162"/> <xs:enumeration value="163"/> <xs:enumeration value="164"/> <xs:enumeration value="165"/> <xs:enumeration value="166"/> <xs:enumeration value="167"/> <xs:enumeration value="168"/> <xs:enumeration value="169"/> <xs:enumeration value="170"/> <xs:enumeration value="171"/> <xs:enumeration value="172"/> <xs:enumeration value="173"/> <xs:enumeration value="174"/> <xs:enumeration value="175"/> <xs:enumeration value="176"/> <xs:enumeration value="177"/> <xs:enumeration value="178"/> <xs:enumeration value="179"/> <xs:enumeration value="180"/> <xs:enumeration value="181"/> <xs:enumeration value="182"/> <xs:enumeration value="183"/> <xs:enumeration value="184"/> <xs:enumeration value="185"/> <xs:enumeration value="186"/> <xs:enumeration value="187"/> <xs:enumeration value="188"/> <xs:enumeration value="189"/> <xs:enumeration value="190"/> <xs:enumeration value="191"/> <xs:enumeration value="192"/> <xs:enumeration value="193"/> <xs:enumeration value="194"/> <xs:enumeration value="195"/> <xs:enumeration value="196"/> <xs:enumeration value="197"/> <xs:enumeration value="198"/> <xs:enumeration value="199"/> <xs:enumeration value="200"/> <xs:enumeration value="201"/> <xs:enumeration value="202"/> <xs:enumeration value="203"/> <xs:enumeration value="204"/> <xs:enumeration value="205"/> <xs:enumeration value="206"/> <xs:enumeration value="207"/> <xs:enumeration value="208"/> <xs:enumeration value="209"/> <xs:enumeration value="210"/> <xs:enumeration value="211"/> <xs:enumeration value="212"/> <xs:enumeration value="213"/> <xs:enumeration value="214"/> <xs:enumeration value="215"/> <xs:enumeration value="216"/> <xs:enumeration value="217"/> <xs:enumeration value="218"/> <xs:enumeration value="219"/> <xs:enumeration value="220"/> <xs:enumeration value="221"/> <xs:enumeration value="222"/> <xs:enumeration value="223"/> <xs:enumeration value="224"/> <xs:enumeration value="225"/> <xs:enumeration value="226"/> <xs:enumeration value="227"/> <xs:enumeration value="228"/> <xs:enumeration value="229"/> <xs:enumeration value="230"/> <xs:enumeration value="231"/> <xs:enumeration value="232"/> <xs:enumeration value="233"/> <xs:enumeration value="234"/> <xs:enumeration value="235"/> <xs:enumeration value="236"/> <xs:enumeration value="237"/> <xs:enumeration value="238"/> <xs:enumeration value="239"/> <xs:enumeration value="240"/> <xs:enumeration value="241"/> <xs:enumeration value="242"/> <xs:enumeration value="243"/> <xs:enumeration value="244"/> <xs:enumeration value="245"/> <xs:enumeration value="246"/> <xs:enumeration value="247"/> <xs:enumeration value="248"/> <xs:enumeration value="249"/> <xs:enumeration value="250"/> <xs:enumeration value="251"/> <xs:enumeration value="252"/> <xs:enumeration value="253"/> <xs:enumeration value="254"/> <xs:enumeration value="255"/> </xs:restriction> </xs:simpleType> <!-- naiType --> <xs:simpleType name="naiType"> <xs:restriction base="xs:string"> <xs:enumeration value="spare"/> <xs:enumeration value="subscriberNumber"/> <xs:enumeration value="unknown"/> <xs:enumeration value="nationalNumber"/> <xs:enumeration value="internationNumber"/> </xs:restriction> </xs:simpleType> <!-- inniType --> <xs:simpleType name="inniType"> <xs:restriction base="xs:string"> <xs:enumeration value="routingToInternalNumberAllowed"/> <xs:enumeration value="routingToInternalNumberNotAllowed"/> </xs:restriction> </xs:simpleType> <!-- npiType --> <xs:simpleType name="npiType"> <xs:restriction base="xs:string"> <xs:enumeration value="spare"/> <xs:enumeration value="isdnTelephony"/> <xs:enumeration value="dataNumberingPlan"/> <xs:enumeration value="telexNumberingPlan"/> <xs:enumeration value="reserved1"/> <xs:enumeration value="reserved2"/> <xs:enumeration value="reserved3"/> </xs:restriction> </xs:simpleType> <!-- niType --> <xs:simpleType name="niType"> <xs:restriction base="xs:string"> <xs:enumeration value="private"/> <xs:enumeration value="local"/> <xs:enumeration value="zone"/> <xs:enumeration value="intercity"/> <xs:enumeration value="international"/> <xs:enumeration value="emergency"/> </xs:restriction> </xs:simpleType> <!-- apriType --> <xs:simpleType name="apriType"> <xs:restriction base="xs:string"> <xs:enumeration value="presentationAllowed"/> <xs:enumeration value="presentationRestricted"/> <xs:enumeration value="addressNotAvailable"/> <xs:enumeration value="spare"/> </xs:restriction> </xs:simpleType> <!-- screeningType --> <xs:simpleType name="screeningType"> <xs:restriction base="xs:string"> <xs:enumeration value="userProvidedNotVerified"/> <xs:enumeration value="userProvidedVerifiedAndPassed"/> <xs:enumeration value="userProvidedVerifiedAndFailed"/> <xs:enumeration value="networkProvided"/> </xs:restriction> </xs:simpleType> <!-- booleanType --> <xs:simpleType name="booleanType"> <xs:restriction base="xs:boolean"/> </xs:simpleType> <!-- ruleType --> <xs:complexType name="ruleType"> <xs:sequence> <xs:element name="conditions" minOccurs="0"> <xs:complexType> <xs:all> <xs:element name="cgpn" type="cgpnType" minOccurs="0"/> <xs:element name="cdpn" type="cdpnType" minOccurs="0"/> <xs:element name="rgn" type="rgnConditionType" minOccurs="0"/> <xs:element name="rnn" type="rnnConditionType" minOccurs="0"/> <xs:element name="ocdpn" type="ocdpnConditionType" minOccurs="0"/> <xs:element name="cn" type="cnConditionType" minOccurs="0"/> <xs:element name="time" type="valueType" minOccurs="0"/> <xs:element name="date" type="valueType" minOccurs="0"/> <xs:element name="weekday" type="valueType" minOccurs="0"/> <xs:element name="tag" type="valueType" minOccurs="0"/> </xs:all> </xs:complexType> </xs:element> <xs:element name="actions" minOccurs="0"> <xs:complexType> <xs:all> <xs:element name="cgpn" type="cgpnType" minOccurs="0"/> <xs:element name="cdpn" type="cdpnType" minOccurs="0"/> <xs:element name="rgn" type="rgnActionType" minOccurs="0"/> <xs:element name="rnn" type="rnnActionType" minOccurs="0"/> <xs:element name="ocdpn" type="ocdpnActionType" minOccurs="0"/> <xs:element name="cn" type="cnActionType" minOccurs="0"/> <xs:element name="empty_rgn" type="nullType" minOccurs="0"> <xs:annotation><xs:documentation xml:lang="en">Remove routing number.</xs:documentation></xs:annotation> </xs:element> <xs:element name="empty_ocdpn" type="nullType" minOccurs="0"> <xs:annotation><xs:documentation xml:lang="en">Remove original called number.</xs:documentation></xs:annotation> </xs:element> <xs:element name="empty_cn" type="nullType" minOccurs="0"> <xs:annotation><xs:documentation xml:lang="en">Remove connected number.</xs:documentation></xs:annotation> </xs:element> </xs:all> </xs:complexType> </xs:element> <xs:element name="result"> <xs:complexType> <xs:choice> <xs:element name="finish" type="finishResultType"/> <xs:element name="error" type="errorResultType"/> <xs:element name="next" type="nextResultType"/> <xs:element name="continue" type="continueResultType"/> </xs:choice> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="name" type="xs:string" use="required"/> <xs:attribute name="description" type="xs:string" use="optional"/> </xs:complexType> <!-- modificatorsType --> <xs:complexType name="modificatorsType"> <xs:all> <xs:element name="in" minOccurs="0" maxOccurs="1"> <xs:complexType> <xs:sequence> <xs:element name="rule" type="ruleType" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="out" minOccurs="0" maxOccurs="1"> <xs:complexType> <xs:sequence> <xs:element name="rule" type="ruleType" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> </xs:all> <xs:attribute name="name" type="xs:string" use="required"> <xs:annotation> <xs:documentation>The name of the current modificators.</xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name="description" type="xs:string" use="optional"> <xs:annotation> <xs:documentation>Text description of the current modificators.</xs:documentation> </xs:annotation> </xs:attribute> </xs:complexType> <!-- adaptationType --> <xs:complexType name="adaptationType"> <xs:sequence> <xs:element name="rule" type="ruleType" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="name" type="xs:string" use="required"> <xs:annotation> <xs:documentation>The name of the current adaptation.</xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name="description" type="xs:string" use="optional"> <xs:annotation> <xs:documentation>Text description of the current adaptation.</xs:documentation> </xs:annotation> </xs:attribute> </xs:complexType> <!-- modificators --> <xs:element name="modificators" type="modificatorsType"/> <!-- adaptation --> <xs:element name="adaptation" type="adaptationType"/> <!-- cdpnType --> <xs:complexType name="cdpnType"> <xs:attribute name="digits" type="xs:string"/> <xs:attribute name="nai" type="naiType"/> <xs:attribute name="incomplete" type="xs:boolean"/> <xs:attribute name="inni" type="inniType"/> <xs:attribute name="npi" type="npiType"/> <xs:attribute name="ni" type="niType"/> <xs:attribute name="category" type="categoryType"/> <xs:attribute name="in_list" type="xs:string"/> <xs:attribute name="display_name" type="xs:string"/> <xs:attribute name="city" type="xs:string"/> <xs:attribute name="region" type="xs:string"/> <xs:attribute name="operator" type="xs:string"/> </xs:complexType> <!-- cgpnType --> <xs:complexType name="cgpnType"> <xs:attribute name="nai" type="naiType"/> <xs:attribute name="incomplete" type="xs:boolean"/> <xs:attribute name="npi" type="npiType"/> <xs:attribute name="apri" type="apriType"/> <xs:attribute name="screening" type="screeningType"/> <xs:attribute name="digits" type="xs:string"/> <xs:attribute name="ni" type="niType"/> <xs:attribute name="in_list" type="xs:string"/> <xs:attribute name="display_name" type="xs:string"/> <xs:attribute name="transit_display_name" type="booleanType"/> <xs:attribute name="caller_id" type="xs:string"/> <xs:attribute name="city" type="xs:string"/> <xs:attribute name="region" type="xs:string"/> <xs:attribute name="operator" type="xs:string"/> </xs:complexType> <!-- rgnConditionType --> <xs:complexType name="rgnConditionType"> <xs:attribute name="digits" type="xs:string"/> <xs:attribute name="nai" type="naiType"/> <xs:attribute name="incomplete" type="xs:boolean"/> <xs:attribute name="apri" type="apriType"/> <xs:attribute name="npi" type="npiType"/> <xs:attribute name="ni" type="niType"/> <xs:attribute name="in_list" type="xs:string"/> <xs:attribute name="empty" type="booleanType"> <xs:annotation> <xs:documentation>In case of empty attribute set - other attributes MUST NOT be set.</xs:documentation> </xs:annotation> </xs:attribute> </xs:complexType> <!-- rnnConditionType --> <xs:complexType name="rnnConditionType"> <xs:attribute name="digits" type="xs:string"/> <xs:attribute name="nai" type="naiType"/> <xs:attribute name="incomplete" type="xs:boolean"/> <xs:attribute name="inni" type="inniType"/> <xs:attribute name="npi" type="npiType"/> <xs:attribute name="ni" type="niType"/> <xs:attribute name="in_list" type="xs:string"/> <xs:attribute name="empty" type="booleanType"> <xs:annotation> <xs:documentation>In case of empty attribute set - other attributes MUST NOT be set.</xs:documentation> </xs:annotation> </xs:attribute> </xs:complexType> <!-- ocdpnConditionType --> <xs:complexType name="ocdpnConditionType"> <xs:attribute name="digits" type="xs:string"/> <xs:attribute name="nai" type="naiType"/> <xs:attribute name="ni" type="niType"/> <xs:attribute name="npi" type="npiType"/> <xs:attribute name="apri" type="apriType"/> <xs:attribute name="category" type="categoryType"/> <xs:attribute name="incomplete" type="xs:boolean"/> <xs:attribute name="in_list" type="xs:string"/> <xs:attribute name="empty" type="booleanType"> <xs:annotation> <xs:documentation>In case of empty attribute set - other attributes MUST NOT be set.</xs:documentation> </xs:annotation> </xs:attribute> </xs:complexType> <!-- cnConditionType --> <xs:complexType name="cnConditionType"> <xs:attribute name="nai" type="naiType"/> <xs:attribute name="npi" type="npiType"/> <xs:attribute name="apri" type="apriType"/> <xs:attribute name="digits" type="xs:string"/> <xs:attribute name="ni" type="niType"/> <xs:attribute name="in_list" type="xs:string"/> <xs:attribute name="empty" type="booleanType"> <xs:annotation> <xs:documentation>In case of empty attribute set - other attributes MUST NOT be set.</xs:documentation> </xs:annotation> </xs:attribute> </xs:complexType> <!-- rgnActionType --> <xs:complexType name="rgnActionType"> <xs:attribute name="display_name" type="xs:string"/> <xs:attribute name="digits" type="xs:string"/> <xs:attribute name="nai" type="naiType"/> <xs:attribute name="incomplete" type="xs:boolean"/> <xs:attribute name="apri" type="apriType"/> <xs:attribute name="npi" type="npiType"/> <xs:attribute name="ni" type="niType"/> </xs:complexType> <!-- rnnActionType --> <xs:complexType name="rnnActionType"> <xs:attribute name="display_name" type="xs:string"/> <xs:attribute name="digits" type="xs:string"/> <xs:attribute name="nai" type="naiType"/> <xs:attribute name="incomplete" type="xs:boolean"/> <xs:attribute name="inni" type="inniType"/> <xs:attribute name="npi" type="npiType"/> <xs:attribute name="ni" type="niType"/> </xs:complexType> <!-- ocdpnActionType --> <xs:complexType name="ocdpnActionType"> <xs:attribute name="display_name" type="xs:string"/> <xs:attribute name="digits" type="xs:string"/> <xs:attribute name="nai" type="naiType"/> <xs:attribute name="ni" type="niType"/> <xs:attribute name="npi" type="npiType"/> <xs:attribute name="apri" type="apriType"/> <xs:attribute name="category" type="categoryType"/> <xs:attribute name="incomplete" type="xs:boolean"/> </xs:complexType> <!-- cnActionType --> <xs:complexType name="cnActionType"> <xs:attribute name="display_name" type="xs:string"/> <xs:attribute name="nai" type="naiType"/> <xs:attribute name="npi" type="npiType"/> <xs:attribute name="apri" type="apriType"/> <xs:attribute name="digits" type="xs:string"/> <xs:attribute name="ni" type="niType"/> <xs:attribute name="caller_id" type="xs:string"/> <xs:attribute name="transit_display_name" type="booleanType"/> </xs:complexType> <!-- valueType --> <xs:complexType name="valueType"> <xs:attribute name="value" type="xs:string" use="required"/> </xs:complexType> <!-- nullType --> <xs:complexType name="nullType"/> <!-- Result types --> <!-- finishResultType --> <xs:complexType name="finishResultType"/> <!-- errorResultType --> <xs:complexType name="errorResultType"> <xs:attribute name="acp_cause" type="xs:string" use="optional"/> <xs:attribute name="isup_cause" type="xs:string" use="optional"/> <xs:attribute name="description" type="xs:string" use="optional"/> </xs:complexType> <!-- continueResultTypeType --> <xs:simpleType name="continueResultTypeType"> <xs:restriction base="xs:string"> <xs:enumeration value="start"/> <xs:enumeration value="next"/> </xs:restriction> </xs:simpleType> <!-- nextResultType --> <xs:complexType name="nextResultType"> <xs:attribute name="tag" type="xs:string" use="optional"/> </xs:complexType> <!-- continueResultType --> <xs:complexType name="continueResultType"> <xs:attribute name="tag" type="xs:string" use="optional"/> <xs:attribute name="type" type="continueResultTypeType" default="start" use="optional"/> </xs:complexType> </xs:schema> |
Актуальный файл с описанием схемы данных находится на развернутой системе по пути /usr/lib/ecss/ecss-ds/lib/rm_lib-x.x.x.x/priv/ecss_modificators.xsd.
Каждый XML-файл представляет собой описание одного контекста адаптации (группы правил) в рамках виртуальной АТС.
Формат описания контекста адаптации:
<adaptation>
<rule>
<conditions>
</conditions>
<actions>
</actions>
<result>
</result>
</rule>
<rule>
</rule>
</adaptation |
1. <adaptation>
Базовый элемент файла адаптации, описывающий параметры контекста адаптации.
Структура элемента <adaptation> имеет следующий вид:
<adaptation name="string" description="string">
</adaptation> |
где
- name - строка с именем контекста адаптации, должна быть уникальной в рамках виртуальной АТС;
- description - текстовое описание контекста адаптации.
Далее в рамках тега <adaptation> между закрывающим и открывающим тегом идет набор тегов, описывающих правила адаптации.
Анализ условий срабатывания правил производится в том порядке, в котором они указаны в файле - сверху вниз.
Примечание: в одном контексте адаптации не может быть больше 1000 правил. Ограничение введено искусственно, так как количество правил влияет на скорость обработки адаптации. |
2. <rule>
Элементом <rule> описывается правило адаптации.
Структура правила адаптации имеет следующий вид:
<rule name="RuleName">
<conditions>
</conditions>
<actions>
</actions>
<result>
</result>
</rule> |
где
- RuleName - имя правила адаптации. Строка, которая должна быть уникальной в рамках контекста адаптации, выводится при трассировке адаптации;
- <conditions> - обязательный элемент, описывающий условия срабатывания правила адаптации;
- <actions> - опциональный элемент, описывающий набор операций, которые применяются к параметрам вызова при срабатывании правила адаптации;
- <result> - обязательный элемент, описывающий результат отработки правила адаптации.
2.1 <conditions>
В элементе <conditions> описывается набор условий, выполнение которых приводит к выполнению правила.
Формат описания элемента <conditions> имеет следующий вид:
<conditions>
<cgpn/>
<cdpn/>
<rgn/>
<rnn/>
<ocdpn/>
<cn/>
<time/>
<date/>
<weekday/>
<tag/>
</conditions> |
где
- cdpn - поле сравнения номера вызываемого абонента (номер Б и его параметры);
- cgpn - поле сравнения номера вызывающего абонента (номер А и его параметры);
- rgn - поле сравнения номера который выполнил переадресацию;
- rnn - поле сравнения номера на который выполнили переадресацию;
- ocdpn - поле сравнения оригинального номера на который выполнили вызов;
- cn - поле сравнения подключенного номера;
- time - дата и время суток;
- tag - вспомогательный параметр для организации многошаговой адаптации в рамках одного контекста, по умолчанию установлено значение "undefined";
Каждый из указанных выше элементов в рамках <conditions> является опциональным и может быть использован не более одного раза.
Пустой набор критериев говорит об отсутствии ограничений.
2.1.1 <cgpn>
Параметры номера вызывающего абонента:
<cgpn digits="Digits"
nai="Nai"
incomplete="boolean"
npi="Npi"
apri="Apri"
screening="Screening"
ni="Ni"
in_list="List"
city="City"
region="Region"
operator="Operator"
display_name="Display_name"
caller_id="Caller_id"/> |
где
- digits - маска цифр номера вызывающего абонента, подробное описание приведено в разделе Маска цифр номера
- nai - тип номера (NatureOfAddressInformation), принимает значения: spare, subscriberNumber, unknown, nationalNumber, internationNumber;
- incomplete - признак полного номера, принимает значения:
- false - номер полный,
- true - номер не полный;
- npi - код плана нумерации (NumberingPlanIndicator), принимает значения: spare, isdnTelephony, dataNumberingPlan, telexNumberingPlan, reserved1 (код 5), reserved2 (код 6), reserved3 (код 7);
- apri - индикатор ограничения предоставления номера вызывающего абонента (AddressPresentationRestrictionIndicator):
- presentationRestricted – запрет,
- presentationAllowed – разрешение,
- addressNotAvailable – недоступность номера;
- spare – зарезервирован;
- screening - индикатор контроля номера вызывающего абонента, принимает значения:
- userProvidedNotVerified – предоставлена пользователем, не проверена;
- userProvidedVerifiedAndPassed – предоставлена пользователем, проверка пройдена;
- userProvidedVerifiedAndFailed – предоставлена пользователем, проверка не пройдена;
- networkProvided – предоставлена сетью.
- ni - индикатор номера (NumberIndicator), принимает значения:
- private - частная сеть;
- local - местная сеть;
- zone - зоновая сеть;
- intercity - междугородная сеть;
- international - международная сеть;
- emergency – спецслужбы.
- in_list - имя списка номеров определенных для домена;
- city - город абонента полученный из БД реестра плана нумерации РФ
При задании через xml нужно учитывать знаки: точки, тире, пробелы. Для обозначения города используется сокращения: - Г. - город;
- ПГТ. - поселок городского типа;
- Р-Н - район
|
- operator - оператор абонента полученный из БД реестра плана нумерации РФ;
- region - регион абонента полученный из БД реестра плана нумерации РФ;
- display_name - имя (псевдоним) вызывающего абонента;
- caller_id - маска цифр идентификатора вызывающего абонента, эквивалентен по правилам полю digits.
2.1.2 <cdpn>
Параметры номера вызываемого абонента:
<cgpn digits="Digits"
nai="Nai"
incomplete="boolean"
npi="Npi"
category="Category"
ni="Ni"
inni="Inni"
in_list="List"
city="City"
region="Region"
operator="Operator"
display_name="Display_name"/> |
где
- digits - маска цифр номера вызываемого абонента, подробное описание приведено в разделе Маска цифр номера;
- nai - тип номера (NatureOfAddressInformation), принимает значения: subscriberNumber, unknown, nationalNumber, internationNumber;
- incomplete - признак полного номера, принимает значения:
- false - номер полный,
- true - номер не полный;
- inni - индикатор внутрисетевого номера (InternalNetworkNumberIndicator), принимает значения:
- routingToInternalNumberAllowed – маршрутизация на внутренний номер разрешена,
- routingToInternalNumberNotAllowed – маршрутизация на внутренний номер не разрешена;
- npi - код плана нумерации (NumberingPlanIndicator), принимает значения: isdnTelephony, dataNumberingPlan, telexNumberingPlan, reserved1 (код 5), reserved2 (код 6), reserved3 (код 7);
- ni - признак номера (NumberIndicator), принимает значения:
- private - частная сеть,
- local - местная сеть,
- zone - зоновая сеть,
- intercity - междугородная сеть,
- international - международная сеть,
- emergency - спецслужбы.
- in_list - имя списка номеров определенных для домена;
- city - город абонента полученный из БД реестра плана нумерации РФ;
При задании через xml нужно учитывать знаки: точки, тире, пробелы. Для обозначения города используется сокращения: - Г. - город;
- ПГТ. - поселок городского типа;
- Р-Н - район
|
- operator - оператор абонента полученный из БД реестра плана нумерации РФ;
- display_name - имя (псевдоним) вызывающего абонента;
- region - регион абонента полученный из БД реестра плана нумерации РФ.
- category - категория абонента, может принимать строковое либо цифровое значение согласно таблице:
Таблица 1 – Категории абонента
| Строковое значение | Цифровой код (ISUP) | Цифровой код (АОН) |
|---|
| unknownAtThisTime | 0 |
|
| operatorFrench | 1 |
|
| operatorEngish | 2 |
|
| operatorGerman | 3 |
|
| operatorRussian | 4 |
|
| operatorSpanish | 5 |
|
| reserved | 9 |
|
| ordinarySubscriber | 10 | 1 - ОАО "Ростелеком" |
| subscriberWithPriority | 11 | 4 - ООО "Эквант" |
| dataCall | 12 | 8 - ОАО "АРКТЕЛ" |
| testCall | 13 |
|
| spare | 14 |
|
| payphone | 15 | 6 - ЗАО "Компания ТрансТелеКом" |
| category0 | 224 |
|
| hotelsSubscriber | 225 | 2 - ОАО "КОМСТАР-ОТС" |
| freeSubscriber | 226 |
|
| paidSubscriber | 227 | 7 - ЗАО "Синтерра" |
| localSubscriber | 228 | 3 - ОАО "Вымпелком" (ранее ООО "СЦС Совинтел") |
| localTaksofon | 229 | 9 - ОАО "Межрегиональный Транзит Телеком" |
| autoCallI | 240 |
|
| semiautoCallI | 241 |
|
| autoCallII | 242 |
|
| semiautoCallII | 243 |
|
| autoCallIII | 244 |
|
| semiautoCallIII | 245 |
|
| autoCallIV | 246 |
|
| semiautoCallIV | 247 |
|
2.1.3 <rgn>
Параметры номера, который выполнил переадресацию:
<rgn digits="Digits"
nai="Nai"
incomplete="boolean"
npi="Npi"
apri="Apri"
ni="Ni"
empty="Empty"
in_list="List"
display_name="Display_name"/> |
где
- digits - маска цифр номера вызывающего абонента, подробное описание приведено в разделе Маска цифр номера:
- nai - тип номера (NatureOfAddressInformation), принимает значения: subscriberNumber, unknown, nationalNumber, internationNumber;
- incomplete - признак полного номера, принимает значения:
- false - номер полный,
- true - номер не полный;
- npi - код плана нумерации (NumberingPlanIndicator), принимает значения: isdnTelephony, dataNumberingPlan, telexNumberingPlan, reserved1 (код 5), reserved2 (код 6), reserved3 (код 7);
- apri - индикатор ограничения предоставления номера вызывающего абонента (AddressPresentationRestrictionIndicator):
- presentationRestricted – запрет,
- presentationAllowed – разрешение,
- addressNotAvailable – недоступность номера;
- ni - индикатор номера (NumberIndicator), принимает значения:
- private - частная сеть;
- local - местная сеть;
- zone - зоновая сеть;
- intercity - междугородная сеть;
- international - международная сеть;
- emergency – спецслужбы;
- empty - присутствует ли в сигнализации вызова параметр RedirectingNumber (В случае, если данный параметр выставлен - все остальные параметры (digits, nai, incompele, npi, apri, ni) не должны выставляться
- false - RedirectingNumber не присутствует в сигнализации;
- true - RedirectingNumber присутствует;
- display_name - имя (псевдоним) вызывающего абонента;
- in_list - имя списка номеров определенных для домена.
2.1.4 <rnn>
Параметры номера на который выполнили переадресацию:
<rnn digits="Digits"
nai="Nai"
incomplete="boolean"
npi="Npi"
apri="Apri"
ni="Ni"
empty="Empty"
category="Category"
in_list="List"
display_name="Display_name"/> |
где
- digits - маска цифр номера вызывающего абонента, подробное описание приведено в разделе Маска цифр номера;
- nai - тип номера (NatureOfAddressInformation), принимает значения: subscriberNumber, unknown, nationalNumber, internationNumber;
- incomplete - признак полного номера, принимает значения:
- false - номер полный,
- true - номер не полный;
- npi - код плана нумерации (NumberingPlanIndicator), принимает значения: isdnTelephony, dataNumberingPlan, telexNumberingPlan, reserved1 (код 5), reserved2 (код 6), reserved3 (код 7);
- apri - индикатор ограничения предоставления номера вызывающего абонента (AddressPresentationRestrictionIndicator):
- presentationRestricted – запрет,
- presentationAllowed – разрешение,
- addressNotAvailable – недоступность номера;
- ni - индикатор номера (NumberIndicator), принимает значения:
- private - частная сеть;
- local - местная сеть;
- zone - зоновая сеть;
- intercity - междугородная сеть;
- international - международная сеть;
- emergency – спецслужбы;
- empty - присутствует ли в сигнализации вызова параметр RedirectionNumber (В случае, если данный параметр выставлен - все остальные параметры (digits, nai, incompele, npi, apri, ni) не должны выставляться
- false - RedirectionNumber не присутствует в сигнализации;
- true - RedirectionNumber присутствует;
- display_name - имя (псевдоним) вызывающего абонента;
- in_list - имя списка номеров определенных для домена.
- category - категория абонента, может принимать строковое либо цифровое значение согласно Таблице 1.
2.1.5 <ocdpn>
Параметры оригинального номера на который выполнили вызов:
<ocdpn digits="Digits"
nai="Nai"
incomplete="boolean"
npi="Npi"
apri="Apri"
ni="Ni"
empty="Empty"
category="Category"
in_list="List"
display_name="Display_name"/> |
где
- digits - маска цифр номера вызывающего абонента, подробное описание приведено в разделе Маска цифр номера;
- nai - тип номера (NatureOfAddressInformation), принимает значения: subscriberNumber, unknown, nationalNumber, internationNumber;
- incomplete - признак полного номера, принимает значения:
- false - номер полный,
- true - номер не полный;
- npi - код плана нумерации (NumberingPlanIndicator), принимает значения: isdnTelephony, dataNumberingPlan, telexNumberingPlan, reserved1 (код 5), reserved2 (код 6), reserved3 (код 7);
- apri - индикатор ограничения предоставления номера вызывающего абонента (AddressPresentationRestrictionIndicator):
- presentationRestricted – запрет,
- presentationAllowed – разрешение,
- addressNotAvailable – недоступность номера;
- ni - индикатор номера (NumberIndicator), принимает значения:
- private - частная сеть;
- local - местная сеть;
- zone - зоновая сеть;
- intercity - междугородная сеть;
- international - международная сеть;
- emergency – спецслужбы;
- empty - присутствует ли в сигнализации вызова параметр OriginalCalledNumber (В случае, если данный параметр выставлен - все остальные параметры (digits, nai, incompele, npi, apri, ni) не должны выставляться
- false - OriginalCalledNumber не присутствует в сигнализации;
- true - OriginalCalledNumber присутствует;
- display_name - имя (псевдоним) вызывающего абонента;
- in_list - имя списка номеров определенных для домена.
- category - категория абонента, может принимать строковое либо цифровое значение согласно Таблице 1.
2.1.6 <cn>
Параметры номера подключенного номера
<cn digits="Digits"
nai="Nai"
npi="Npi"
apri="Apri"
ni="Ni"
empty="Empty"
in_list="List"
display_name="Display_name"/> |
где
- digits - маска цифр номера вызывающего абонента, подробное описание приведено в разделе Маска цифр номера;
- nai - тип номера (NatureOfAddressInformation), принимает значения: subscriberNumber, unknown, nationalNumber, internationNumber;
- incomplete - признак полного номера, принимает значения:
- false - номер полный,
- true - номер не полный;
- npi - код плана нумерации (NumberingPlanIndicator), принимает значения: isdnTelephony, dataNumberingPlan, telexNumberingPlan, reserved1 (код 5), reserved2 (код 6), reserved3 (код 7);
- apri - индикатор ограничения предоставления номера вызывающего абонента (AddressPresentationRestrictionIndicator):
- presentationRestricted – запрет,
- presentationAllowed – разрешение,
- addressNotAvailable – недоступность номера;
- ni - индикатор номера (NumberIndicator), принимает значения:
- private - частная сеть;
- local - местная сеть;
- zone - зоновая сеть;
- intercity - междугородная сеть;
- international - международная сеть;
- emergency – спецслужбы;
- empty - присутствует ли в сигнализации вызова параметр ConnectedNumber (В случае, если данный параметр выставлен - все остальные параметры (digits, nai, incompele, npi, apri, ni) не должны выставляться
- false - ConnectedNumber не присутствует в сигнализации;
- true - ConnectedNumber присутствует;
- display_name - имя (псевдоним) вызывающего абонента;
- in_list - имя списка номеров определенных для домена.
2.1.7 <time>
Время суток, задается в виде: ЧЧ:ММ - ЧЧ:ММ, где ЧЧ - часы, ММ - минуты:
где
- value - маска времени суток. Подробное описание приведено в разделе Маска времени
2.1.8 <date>
Дата, задается в виде: ДД1.ММ1.ГГГГ1 - ДД2.ММ2.ГГГГ2, где ДД - день, ММ - месяц, ГГГГ - год:
где
- value - маска даты. Подробное описание приведено в разделе Маска даты.
2.1.9 <weekday>
День недели, задается в виде ДН1,ДН2,...,ДНX, где ДН - номер дня недели (числа от 1 до 7). Может быть указано от 1 до 7 дней недели.
<weekday value="WeekdayMask"/> |
где
- value - маска дня недели. Подробное описание приведено в разделе Маска дня недели;
2.1.10 <tag>
Специальный параметр, который можно установить для вызова при адаптации.
Параметр действует только на этапе адаптации, устанавливается в правиле адаптации и в последующем используется для изменения отработки логики адаптации.
где
- value - строка, значение поля "tag" для вызова, проверяется на полное совпадение. По умолчанию значение - "undefined".
2.2 <actions>
Формат описания элемента <actions> имеет следующий вид:
<actions>
<cgpn/>
<cdpn/>
<rgn/>
<rnn/>
<ocdpn/>
<cn/>
<empty_rgn/>
<empty_ocdpn/>
<empty_cn/>
</actions> |
где
- cgpn - адаптация параметров номера вызывающего абонента;
- cdpn - адаптация параметров номера вызываемого абонента;
- rgn - адаптация параметров номера который выполнил переадресацию;
- rnn - адаптация параметров номера на который выполнили переадресацию;
- ocdpn - адаптация параметров оригинального номера на который выполнили вызов;
- cn - адаптация параметров подключенного номера;
- empty_cn - удалить из сигнализации параметр ConnectedNumber;
- empty_rgn - удалить из сигнализации параметр RedirectingNumber;
- empty_ocdpn - удалить из сигнализации параметр OriginalCalledNumber;
Действия указываются в порядке их выполнения. Все действия являются опциональными.
2.2.1 <cgpn>
Операция адаптации параметров номера вызывающего абонента.
<cgpn digits="Digits"
nai="Nai"
incomplete="boolean"
npi="Npi"
apri="Apri"
screening="Screening"
ni="Ni"
display_name="DisplayName"
caller_id="CallerId"/> |
где
- digits - маска адаптации цифр номера или новые цифры номера.
Подробное описание приведено в разделе Модификация цифр номера. - display_name - адаптация имени абонента описана в разделе Модификация имени абонента.
- caller_id - маска адаптации caller id, синтаксис аналогичен полю digits.
Описание параметров "nai", "incomplete", "npi", "apri", "screening", "ni" аналогично описанию параметров элемента "cgpn" секции "conditions".
2.2.2 <cdpn>
Операция адаптации параметров номера вызываемого абонента.
<cdpn digits="Digits"
nai="Nai"
incomplete="boolean"
npi="Npi"
category="Category"
ni="Ni"
inni="Inni"
display_name="DisplayName"/> |
где
- digits - маска адаптации цифр номера или новые цифры номера. Подробное описание приведено в разделе Модификация цифр номера
- display_name - адаптация имени абонента описана в разделе Модификация имени абонента;
Описание параметров "nai", "incomplete", "npi", "category", "inni", "ni" аналогично описанию параметров элемента "cdpn" секции "conditions".
2.2.3 <rgn>
Операция адаптации параметров номера, который выполнил переадресацию.
<rgn digits="Digits"
nai="Nai"
incomplete="boolean"
npi="Npi"
apri="Apri"
ni="Ni"
display_name="DisplayName"/> |
где
- digits - маска адаптации цифр номера или новые цифры номера. Подробное описание приведено в разделе Модификация цифр номера;
- display_name - адаптация имени абонента описана в разделе Модификация имени абонента;
Описание параметров "nai", "incomplete", "npi", "apri", "ni" аналогично описанию параметров элемента "rgn" секции "conditions".
2.2.3 <rnn>
Операция адаптации параметров номера на который выполнили переадресацию.
<rnn digits="Digits"
nai="Nai"
incomplete="boolean"
npi="Npi"
category="Category"
inni="Inni"
ni="Ni"
display_name="DisplayName"/> |
где
- digits - маска адаптации цифр номера или новые цифры номера.
Подробное описание приведено в разделе Модификация цифр номера; - display_name - адаптация имени абонента описана в разделе Модификация имени абонента;
Описание параметров "nai", "incomplete", "npi", "inni", category", "ni" аналогично описанию параметров элемента "rnn" секции "conditions".
2.2.4 <ocdpn>
Операция адаптации параметров оригинального номера на который выполнили вызов.
<ocdpn digits="Digits"
nai="Nai"
incomplete="boolean"
npi="Npi"
category="Category"
apri="Apri"
ni="Ni"
display_name="DisplayName"/> |
где
- digits - маска адаптации цифр номера или новые цифры номера.
Подробное описание приведено в разделе Модификация цифр номера; - display_name - адаптация имени абонента описана в разделе Модификация имени абонента;
Описание параметров "nai", "incomplete", "npi", "category", "apri", "ni" аналогично описанию параметров элемента "rnn" секции "conditions".
2.2.5 <cn>
Операция адаптации параметров подключенного номера.
<cn digits="Digits"
nai="Nai"
npi="Npi"
apri="Apri"
ni="Ni"
empty="Empty"
display_name="DisplayName"
caller_id="CallerId"
transit_display_name="boolean"/> |
где
- digits - маска адаптации цифр номера или новые цифры номера.
Подробное описание приведено в разделе Модификация цифр номера; - display_name - адаптация имени абонента описана в разделе Модификация имени абонента;
- caller_id - маска адаптации caller id, синтаксис аналогичен полю digits.
- empty - удалить из сигнализации параметр ConnectedNumber (если выставлен в true, то остальные атрибуты не должны быть выставлены).
Описание параметров "nai", "npi", "apri", "ni" аналогично описанию параметров элемента "cn" секции "conditions".
2.2.6 <empty_cn>
Удалить из сигнализации параметр ConnectedNumber.
Этот элемент атрибутов не имеет.
2.2.7 <empty_rgn>
Удалить из сигнализации параметр RedirectingNumber.
Этот элемент атрибутов не имеет.
2.2.8 <empty_ocdpn>
Удалить из сигнализации параметр OriginalNumber.
Этот элемент атрибутов не имеет.
2.3 <result>
В этом обязательном элементе <result> описывается результат отработки правила адаптации.
<result>
Result
</result> |
где
- Result - результат выполнения правила, принимает значения: finish; error; next; continue.
2.3.1 <finish>
Завершение адаптации.
Модификация прошла успешно, будет возвращен результат адаптации номеров в соответствии с правилами.
Синтаксис в упрощенном варианте:
<result>
<finish/>
</result> |
2.3.2 <error>
Ошибка адаптации.
Синтаксис:
<result>
<error isup_cause="ISUPCause"
acp_cause="ACPCause"
description="Description"/>
</result> |
где
- isup_cause - опциональный параметр, число, isup причины, которое будет использовано в сообщении rel.
- acp_cause - опциональный параметр, строка, acp причины, которая будет использована в сообщении rel.
- description - опциональный параметр, описание причины, которое будут использованы в сообщении rel.
2.3.3 <continue>
Продолжить адаптацию в текущем контексте данной виртуальной АТС (домена).
Синтаксис:
<result>
<continue type="Type" tag="Tag"/>
</result> |
- type - опциональное поле, может принимать значения:
- start - продолжить в текущем контексте с первого правила;
- next - продолжить в текущем контексте со следующего правила (будет сконвертирован в <next>).
- tag - опциональное поле, возможность выставить значение параметра "tag", который далее можно использовать в условиях срабатывания правил адаптации при последующем анализе, дает возможность делать некое подобие условной параметрической адаптации.
2.3.4 <next>
Продолжить адаптацию в текущем контексте со следующего правила. Если условия выполняются, будет применен набор действий из элемента <actions>.
Синтаксис:
<result>
<next tag="Tag"/>
</result> |
- tag - опциональное поле, возможность выставить значение параметра "tag", который далее можно использовать в условиях срабатывания правил адаптации при последующем анализе, дает возможность делать некое подобие условной параметрической адаптации.
