Hc_change_context - Команда импорта контекста маршрутизации
Команда предназначена для импорта контекста в домен (в случае, если контекст с данным именем уже существует, он будет обновлен; если контекст с данным именем не существует, он будет создан).
Метод http запроса
POST
Шаблон http запроса
http://host:port/commands/change_context
Код http ответа
201 – в случае успеха;
404 – в случае ошибки.
Xsd схема xml файла с запросом
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:include schemaLocation="error.xsd" />
<xs:complexType name="valueType">
<xs:attribute name="value" type="xs:string" use="required"/>
</xs:complexType>
<!-- progressType -->
<xs:complexType name="progressType">
<xs:sequence>
<xs:element name="ref" minOccurs="1" maxOccurs="1" type="valueType" />
<xs:element name="text" minOccurs="1" maxOccurs="1" type="valueType" />
</xs:sequence>
</xs:complexType>
<!-- in -->
<xs:element name="in">
<xs:complexType>
<xs:sequence>
<xs:element name="request">
<xs:complexType>
<xs:sequence>
<xs:element name="context" type="xs:base64Binary" />
</xs:sequence>
<xs:attribute name="domain" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- out -->
<xs:element name="out">
<xs:complexType>
<xs:sequence>
<xs:element name="error" type="errorType" />
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- progress -->
<xs:element name="progress" type="progressType"/>
</xs:schema>
CODE
Внимание: в base64 должен быть закодирован целевой контекст маршрутизации, т.е. xml элемент типа contextType (тип определен в context.xsd).
context.xsd:
Схема xml-файла определена в разделе Информация-о-контексте.
Пример
Запрос: http://192.168.23.34:9999/commands/change_context
Параметры:
<?xml version="1.0" encoding="UTF-8"?>
<in>
<request domain="biysk.local">
<context>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KICA8Y29udGV4dCB4bWxuczp4cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhzOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249ImVjc3Nfcm91dGluZy54c2QiIG5hbWU9ImN0eF9mcm9tX2xvY2FsIiBucD0ibnBfMjQwIiBkaWdpdG1hcD0iYXV0byI+CiAgICA8cnVsZSBuYW1lPSJzbWctNSI+CiAgICAgIDxjb25kaXRpb25zPgogICAgICAgIDxjZHBuIGRpZ2l0cz0iMjQwOD8/Ii8+CiAgICAgICAgPGZpbmFsIHZhbHVlPSJ0cnVlIi8+CiAgICAgIDwvY29uZGl0aW9ucz4KICAgICAgPGFjdGlvbnM+CiAgICAgICAgPGNhbGxlZCBzb3JtX25pPSJsb2NhbCIgc29ybV9kaWdpdHM9InsxLDIsMyw0LDUsNn0iLz4KICAgICAgICA8Y2RwbiBkaWdpdHM9IjM4NTR7YWJjZGVmfSIgbmFpPSJuYXRpb25hbE51bWJlciIvPgogICAgICA8L2FjdGlvbnM+CiAgICAgIDxyZXN1bHQ+CiAgICAgICAgPGNvbnRpbnVlIGNvbnRleHQ9ImN0eF9jaXR5X2NvbW1vbiIvPgogICAgICA8L3Jlc3VsdD4KICAgIDwvcnVsZT4KICAgIDxydWxlIG5hbWU9InNvcm1fdGVzdCI+CiAgICAgIDxjb25kaXRpb25zPgogICAgICAgIDxjZHBuIGRpZ2l0cz0iMjQwPz8/Ii8+CiAgICAgICAgPGZpbmFsIHZhbHVlPSJ0cnVlIi8+CiAgICAgIDwvY29uZGl0aW9ucz4KICAgICAgPGFjdGlvbnM+CiAgICAgICAgPGNhbGxlZCBzb3JtX25pPSJwcml2YXRlIiBzb3JtX2RpZ2l0cz0iezEsMiwzLDQsNSw2fSIvPgogICAgICAgIDxjZHBuIG5pPSJsb2NhbCIgbmFpPSJzdWJzY3JpYmVyTnVtYmVyIi8+CiAgICAgIDwvYWN0aW9ucz4KICAgICAgPHJlc3VsdD4KICAgICAgICA8bG9jYWwvPgogICAgICA8L3Jlc3VsdD4KICAgIDwvcnVsZT4KICAgIDxydWxlIG5hbWU9Im5vcm1hbGl6ZV9zdWJzY3JpYmVyX3RvX25hdGlvbmFsIj4KICAgICAgPGNvbmRpdGlvbnM+CiAgICAgICAgPGNncG4gZGlnaXRzPSIyNDA/Pz8iIG5haT0ic3Vic2NyaWJlck51bWJlciIvPgogICAgICA8L2NvbmRpdGlvbnM+CiAgICAgIDxhY3Rpb25zPgogICAgICAgIDxjYWxsaW5nIHNvcm1fbmk9InByaXZhdGUiIHNvcm1fZGlnaXRzPSI3Mzg1NHsxLDIsMyw0LDUsNn0iLz4KICAgICAgICA8Y2dwbiBkaWdpdHM9IjM4NTQyNDB7ZGVmfSIgbmFpPSJuYXRpb25hbE51bWJlciIvPgogICAgICA8L2FjdGlvbnM+CiAgICAgIDxyZXN1bHQ+CiAgICAgICAgPGNvbnRpbnVlLz4KICAgICAgPC9yZXN1bHQ+CiAgICA8L3J1bGU+CiAgICA8cnVsZSBuYW1lPSJ0b19jaXR5X2VtZXJnZW5jeV8weCI+CiAgICAgIDxjb25kaXRpb25zPgogICAgICAgIDxjZHBuIGRpZ2l0cz0iMCgxLDIsMyw0LDcsOSkiLz4KICAgICAgICA8ZmluYWwgdmFsdWU9InRydWUiLz4KICAgICAgPC9jb25kaXRpb25zPgogICAgICA8YWN0aW9ucz4KICAgICAgICA8Y2FsbGVkIHNvcm1fbmk9ImVtZXJnZW5jeSIgc29ybV9kaWdpdHM9InsxLDJ9Ii8+CiAgICAgICAgPGNkcG4gbmk9ImVtZXJnZW5jeSIgbmFpPSJzdWJzY3JpYmVyTnVtYmVyIi8+CiAgICAgIDwvYWN0aW9ucz4KICAgICAgPHJlc3VsdD4KICAgICAgICA8Y29udGludWUgY29udGV4dD0iY3R4X3RvX2V3c2QiLz4KICAgICAgPC9yZXN1bHQ+CiAgICA8L3J1bGU+CiAgICA8cnVsZSBuYW1lPSJ0b19jaXR5X2VtZXJnZW5jeV8wMHgiPgogICAgICA8Y29uZGl0aW9ucz4KICAgICAgICA8Y2RwbiBkaWdpdHM9IjAwKDIsNCkiLz4KICAgICAgICA8ZmluYWwgdmFsdWU9InRydWUiLz4KICAgICAgPC9jb25kaXRpb25zPgogICAgICA8YWN0aW9ucz4KICAgICAgICA8Y2FsbGVkIHNvcm1fbmk9ImVtZXJnZW5jeSIgc29ybV9kaWdpdHM9InsxLDIsM30iLz4KICAgICAgICA8Y2RwbiBuaT0iZW1lcmdlbmN5IiBuYWk9InN1YnNjcmliZXJOdW1iZXIiLz4KICAgICAgPC9hY3Rpb25zPgogICAgICA8cmVzdWx0PgogICAgICAgIDxjb250aW51ZSBjb250ZXh0PSJjdHhfdG9fZXdzZCIvPgogICAgICA8L3Jlc3VsdD4KICAgIDwvcnVsZT4KICAgIDxydWxlIG5hbWU9InRvX2NpdHlfZW1lcmdlbmN5X3h4eCI+CiAgICAgIDxjb25kaXRpb25zPgogICAgICAgIDxjZHBuIGRpZ2l0cz0iKDA1PywwNj8sMT8/KSIvPgogICAgICAgIDxmaW5hbCB2YWx1ZT0idHJ1ZSIvPgogICAgICA8L2NvbmRpdGlvbnM+CiAgICAgIDxhY3Rpb25zPgogICAgICAgIDxjYWxsZWQgc29ybV9uaT0iZW1lcmdlbmN5IiBzb3JtX2RpZ2l0cz0iezEsMiwzfSIvPgogICAgICAgIDxjZHBuIG5pPSJlbWVyZ2VuY3kiIG5haT0ic3Vic2NyaWJlck51bWJlciIvPgogICAgICA8L2FjdGlvbnM+CiAgICAgIDxyZXN1bHQ+CiAgICAgICAgPGNvbnRpbnVlIGNvbnRleHQ9ImN0eF90b19ld3NkIi8+CiAgICAgIDwvcmVzdWx0PgogICAgPC9ydWxlPgogICAgPHJ1bGUgbmFtZT0idG9fZW1lcmdfODgwMCI+CiAgICAgIDxjb25kaXRpb25zPgogICAgICAgIDxjZHBuIGRpZ2l0cz0iODgwMD8/Pz8/Pz8iLz4KICAgICAgICA8ZmluYWwgdmFsdWU9InRydWUiLz4KICAgICAgPC9jb25kaXRpb25zPgogICAgICA8YWN0aW9ucz4KICAgICAgICA8Y2FsbGVkIHNvcm1fbmk9ImVtZXJnZW5jeSIgc29ybV9kaWdpdHM9Ijd7MiwzLDQsNSw2LDcsOCw5LDEwLDExfSIvPgogICAgICAgIDxjZHBuIG5pPSJlbWVyZ2VuY3kiIGRpZ2l0cz0ie2JjZGVmZ2hpamt9IiBuYWk9Im5hdGlvbmFsTnVtYmVyIi8+CiAgICAgIDwvYWN0aW9ucz4KICAgICAgPHJlc3VsdD4KICAgICAgICA8Y29udGludWUgY29udGV4dD0iY3R4X2NpdHlfY29tbW9uIi8+CiAgICAgIDwvcmVzdWx0PgogICAgPC9ydWxlPgogICAgPHJ1bGUgbmFtZT0iY29sbGVjdF9leHRlcm5hbF9zdWJzY3JpYmVycyI+CiAgICAgIDxjb25kaXRpb25zPgogICAgICAgIDxjZHBuIGRpZ2l0cz0iKDItNSw3LDkpPz8/Pz8iLz4KICAgICAgPC9jb25kaXRpb25zPgogICAgICA8YWN0aW9ucz4KICAgICAgICA8Y2FsbGVkIHNvcm1fbmk9ImxvY2FsIiBzb3JtX2RpZ2l0cz0iezEsMiwzLDQsNSw2fSIvPgogICAgICAgIDxjZHBuIGRpZ2l0cz0iMzg1NHthYmNkZWZ9IiBuYWk9Im5hdGlvbmFsTnVtYmVyIi8+CiAgICAgIDwvYWN0aW9ucz4KICAgICAgPHJlc3VsdD4KICAgICAgICA8Y29udGludWUgY29udGV4dD0iY3R4X2NpdHlfY29tbW9uIi8+CiAgICAgIDwvcmVzdWx0PgogICAgPC9ydWxlPgogICAgPHJ1bGUgbmFtZT0iY29sbGVjdF9pbnRlcm5hdGlvbmFsX3N1YnNjcmliZXJzIj4KICAgICAgPGNvbmRpdGlvbnM+CiAgICAgICAgPGNkcG4gZGlnaXRzPSI4MTAlIi8+CiAgICAgICAgPGZpbmFsIHZhbHVlPSJ0cnVlIi8+CiAgICAgIDwvY29uZGl0aW9ucz4KICAgICAgPGFjdGlvbnM+CiAgICAgICAgPGNhbGxlZCBzb3JtX25pPSJpbnRlcm5hdGlvbmFsIiBzb3JtX2RpZ2l0cz0ieyV9Ii8+CiAgICAgICAgPGNkcG4gbmk9ImludGVybmF0aW9uYWwiIGRpZ2l0cz0ieyV9IiBuYWk9ImludGVybmF0aW9uTnVtYmVyIi8+CiAgICAgIDwvYWN0aW9ucz4KICAgICAgPHJlc3VsdD4KICAgICAgICA8Y29udGludWUgY29udGV4dD0iY3R4X2NpdHlfY29tbW9uIi8+CiAgICAgIDwvcmVzdWx0PgogICAgPC9ydWxlPgogICAgPHJ1bGUgbmFtZT0idG9fQkFNVFNfc3ByYXYiPgogICAgICA8Y29uZGl0aW9ucz4KICAgICAgICA8Y2RwbiBkaWdpdHM9IjgxPz8iLz4KICAgICAgICA8ZmluYWwgdmFsdWU9InRydWUiLz4KICAgICAgPC9jb25kaXRpb25zPgogICAgICA8YWN0aW9ucz4KICAgICAgICA8Y2FsbGVkIHNvcm1fbmk9ImludGVyY2l0eSIgc29ybV9kaWdpdHM9IjcxezMsNH0iLz4KICAgICAgICA8Y2RwbiBuaT0iaW50ZXJjaXR5IiBkaWdpdHM9IntiY2R9IiBuYWk9Im5hdGlvbmFsTnVtYmVyIi8+CiAgICAgIDwvYWN0aW9ucz4KICAgICAgPHJlc3VsdD4KICAgICAgICA8Y29udGludWUgY29udGV4dD0iY3R4X2NpdHlfY29tbW9uIi8+CiAgICAgIDwvcmVzdWx0PgogICAgPC9ydWxlPgogICAgPHJ1bGUgbmFtZT0idG9faW50ZXJjaXR5X2J5X29wZXIiPgogICAgICA8Y29uZGl0aW9ucz4KICAgICAgICA8Y2RwbiBkaWdpdHM9Ijg1Pz8/Pz8/Pz8/Pz8iLz4KICAgICAgICA8ZmluYWwgdmFsdWU9InRydWUiLz4KICAgICAgPC9jb25kaXRpb25zPgogICAgICA8YWN0aW9ucz4KICAgICAgICA8Y2FsbGVkIHNvcm1fbmk9ImludGVyY2l0eSIgc29ybV9kaWdpdHM9Ijc1ezMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTN9Ii8+CiAgICAgICAgPGNkcG4gbmk9ImludGVyY2l0eSIgZGlnaXRzPSJ7YmNkZWZnaGlqa2xtfSIgbmFpPSJuYXRpb25hbE51bWJlciIvPgogICAgICA8L2FjdGlvbnM+CiAgICAgIDxyZXN1bHQ+CiAgICAgICAgPGNvbnRpbnVlIGNvbnRleHQ9ImN0eF9jaXR5X2NvbW1vbiIvPgogICAgICA8L3Jlc3VsdD4KICAgIDwvcnVsZT4KICAgIDxydWxlIG5hbWU9ImNvbGxlY3RfbmF0aW9uYWxfc3Vic2NyaWJlcnMiPgogICAgICA8Y29uZGl0aW9ucz4KICAgICAgICA8Y2RwbiBkaWdpdHM9Ijg/Pz8/Pz8/Pz8/Ii8+CiAgICAgICAgPGZpbmFsIHZhbHVlPSJ0cnVlIi8+CiAgICAgIDwvY29uZGl0aW9ucz4KICAgICAgPGFjdGlvbnM+CiAgICAgICAgPGNhbGxlZCBzb3JtX25pPSJpbnRlcmNpdHkiIHNvcm1fZGlnaXRzPSI3ezIsMyw0LDUsNiw3LDgsOSwxMCwxMX0iLz4KICAgICAgICA8Y2RwbiBuaT0iaW50ZXJjaXR5IiBkaWdpdHM9IntiY2RlZmdoaWprfSIgbmFpPSJuYXRpb25hbE51bWJlciIvPgogICAgICA8L2FjdGlvbnM+CiAgICAgIDxyZXN1bHQ+CiAgICAgICAgPGNvbnRpbnVlIGNvbnRleHQ9ImN0eF9jaXR5X2NvbW1vbiIvPgogICAgICA8L3Jlc3VsdD4KICAgIDwvcnVsZT4KICAgIDxydWxlIG5hbWU9ImNvbGxlY3Rfem9uZV9zdWJzY3JpYmVycyI+CiAgICAgIDxjb25kaXRpb25zPgogICAgICAgIDxjZHBuIGRpZ2l0cz0iMzg1Pz8/Pz8/PyIvPgogICAgICA8L2NvbmRpdGlvbnM+CiAgICAgIDxhY3Rpb25zPgogICAgICAgIDxjYWxsZWQgc29ybV9uaT0iaW50ZXJjaXR5IiBzb3JtX2RpZ2l0cz0iN3sxLDIsMyw0LDUsNiw3LDgsOSwxMH0iLz4KICAgICAgICA8Y2RwbiBuYWk9Im5hdGlvbmFsTnVtYmVyIi8+CiAgICAgIDwvYWN0aW9ucz4KICAgICAgPHJlc3VsdD4KICAgICAgICA8Y29udGludWUgY29udGV4dD0iY3R4X2NpdHlfY29tbW9uIi8+CiAgICAgIDwvcmVzdWx0PgogICAgPC9ydWxlPgogICAgPHJ1bGUgbmFtZT0idG9faXZyIj4KICAgICAgPGNvbmRpdGlvbnM+CiAgICAgICAgPGNkcG4gZGlnaXRzPSJDPz8/Ii8+CiAgICAgIDwvY29uZGl0aW9ucz4KICAgICAgPHJlc3VsdD4KICAgICAgICA8Y29udGludWUgY29udGV4dD0iY3R4X3RvX2l2ciIvPgogICAgICA8L3Jlc3VsdD4KICAgIDwvcnVsZT4KICA8L2NvbnRleHQ+Cg==</context>
</request>
</in>
CODE
Данная base64 строка соответствует контексту:
<?xml version="1.0" encoding="UTF-8"?>
<context xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="ecss_routing.xsd" name="ctx_from_local" np="np_240" digitmap="auto">
<rule name="smg-5">
<conditions>
<cdpn digits="2408??"/>
<final value="true"/>
</conditions>
<actions>
<called sorm_ni="local" sorm_digits="{1,2,3,4,5,6}"/>
<cdpn digits="3854{abcdef}" nai="nationalNumber"/>
</actions>
<result>
<continue context="ctx_city_common"/>
</result>
</rule>
<rule name="sorm_test">
<conditions>
<cdpn digits="240???"/>
<final value="true"/>
</conditions>
<actions>
<called sorm_ni="private" sorm_digits="{1,2,3,4,5,6}"/>
<cdpn ni="local" nai="subscriberNumber"/>
</actions>
<result>
<local/>
</result>
</rule>
<rule name="normalize_subscriber_to_national">
<conditions>
<cgpn digits="240???" nai="subscriberNumber"/>
</conditions>
<actions>
<calling sorm_ni="private" sorm_digits="73854{1,2,3,4,5,6}"/>
<cgpn digits="3854240{def}" nai="nationalNumber"/>
</actions>
<result>
<continue/>
</result>
</rule>
<rule name="to_city_emergency_0x">
<conditions>
<cdpn digits="0(1,2,3,4,7,9)"/>
<final value="true"/>
</conditions>
<actions>
<called sorm_ni="emergency" sorm_digits="{1,2}"/>
<cdpn ni="emergency" nai="subscriberNumber"/>
</actions>
<result>
<continue context="ctx_to_ewsd"/>
</result>
</rule>
<rule name="to_city_emergency_00x">
<conditions>
<cdpn digits="00(2,4)"/>
<final value="true"/>
</conditions>
<actions>
<called sorm_ni="emergency" sorm_digits="{1,2,3}"/>
<cdpn ni="emergency" nai="subscriberNumber"/>
</actions>
<result>
<continue context="ctx_to_ewsd"/>
</result>
</rule>
<rule name="to_city_emergency_xxx">
<conditions>
<cdpn digits="(05?,06?,1??)"/>
<final value="true"/>
</conditions>
<actions>
<called sorm_ni="emergency" sorm_digits="{1,2,3}"/>
<cdpn ni="emergency" nai="subscriberNumber"/>
</actions>
<result>
<continue context="ctx_to_ewsd"/>
</result>
</rule>
<rule name="to_emerg_8800">
<conditions>
<cdpn digits="8800???????"/>
<final value="true"/>
</conditions>
<actions>
<called sorm_ni="emergency" sorm_digits="7{2,3,4,5,6,7,8,9,10,11}"/>
<cdpn ni="emergency" digits="{bcdefghijk}" nai="nationalNumber"/>
</actions>
<result>
<continue context="ctx_city_common"/>
</result>
</rule>
<rule name="collect_external_subscribers">
<conditions>
<cdpn digits="(2-5,7,9)?????"/>
</conditions>
<actions>
<called sorm_ni="local" sorm_digits="{1,2,3,4,5,6}"/>
<cdpn digits="3854{abcdef}" nai="nationalNumber"/>
</actions>
<result>
<continue context="ctx_city_common"/>
</result>
</rule>
<rule name="collect_international_subscribers">
<conditions>
<cdpn digits="810%"/>
<final value="true"/>
</conditions>
<actions>
<called sorm_ni="international" sorm_digits="{%}"/>
<cdpn ni="international" digits="{%}" nai="internationNumber"/>
</actions>
<result>
<continue context="ctx_city_common"/>
</result>
</rule>
<rule name="to_BAMTS_sprav">
<conditions>
<cdpn digits="81??"/>
<final value="true"/>
</conditions>
<actions>
<called sorm_ni="intercity" sorm_digits="71{3,4}"/>
<cdpn ni="intercity" digits="{bcd}" nai="nationalNumber"/>
</actions>
<result>
<continue context="ctx_city_common"/>
</result>
</rule>
<rule name="to_intercity_by_oper">
<conditions>
<cdpn digits="85???????????"/>
<final value="true"/>
</conditions>
<actions>
<called sorm_ni="intercity" sorm_digits="75{3,4,5,6,7,8,9,10,11,12,13}"/>
<cdpn ni="intercity" digits="{bcdefghijklm}" nai="nationalNumber"/>
</actions>
<result>
<continue context="ctx_city_common"/>
</result>
</rule>
<rule name="collect_national_subscribers">
<conditions>
<cdpn digits="8??????????"/>
<final value="true"/>
</conditions>
<actions>
<called sorm_ni="intercity" sorm_digits="7{2,3,4,5,6,7,8,9,10,11}"/>
<cdpn ni="intercity" digits="{bcdefghijk}" nai="nationalNumber"/>
</actions>
<result>
<continue context="ctx_city_common"/>
</result>
</rule>
<rule name="collect_zone_subscribers">
<conditions>
<cdpn digits="385???????"/>
</conditions>
<actions>
<called sorm_ni="intercity" sorm_digits="7{1,2,3,4,5,6,7,8,9,10}"/>
<cdpn nai="nationalNumber"/>
</actions>
<result>
<continue context="ctx_city_common"/>
</result>
</rule>
<rule name="to_ivr">
<conditions>
<cdpn digits="C???"/>
</conditions>
<result>
<continue context="ctx_to_ivr"/>
</result>
</rule>
</context>
CODE