auxwork_profile_event.xsd
Схема предназначена:
- для агента, чтобы он мог выбирать причину технического перерыва с последующим переходом в технический перерыв. Свой профиль агент должен знать по подписке на событие agent_info_event.
- для супервизора, чтобы он мог переводить произвольного агента в технический перерыв с заданной причиной. Профиль агента супервизор может знать по подписке на конфигурацию очередей.
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:include schemaLocation="monitor.xsd"/>
<!-- event -->
<xs:element name="event">
<xs:complexType>
<xs:complexContent>
<xs:extension base="baseEventType">
<xs:choice>
<xs:element name="full" type="fullType"/>
<xs:element name="partial" type="partialType"/>
</xs:choice>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<!-- resultFullType -->
<xs:complexType name="fullType">
<xs:sequence>
<xs:element name="profile" type="profileType" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<!-- resultPartialType -->
<xs:complexType name="partialType">
<xs:sequence>
<xs:element name="action" type="actionType" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<!-- actionType -->
<xs:complexType name="actionType">
<xs:sequence>
<xs:element name="profile" type="profileType" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="type" type="actionTypeContent"/>
</xs:complexType>
<!-- profileType -->
<xs:complexType name="profileType">
<xs:sequence maxOccurs="unbounded">
<xs:element name="reason" type="reasonType"/>
</xs:sequence>
<xs:attribute name="name" type="xs:string"/>
</xs:complexType>
<!-- reasonType -->
<xs:complexType name="reasonType">
<xs:attribute name="name" type="xs:string"/>
<xs:attribute name="en" type="xs:string"/>
<xs:attribute name="ru" type="xs:string"/>
</xs:complexType>
<!-- actionTypeContent -->
<xs:simpleType name="actionTypeContent">
<xs:restriction base="xs:string">
<xs:enumeration value="added"/>
<xs:enumeration value="removed"/>
<xs:enumeration value="changed"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
XML
Примеры:
full:
<?xml version="1.0"?>
<event name="queue_profile_event" timestamp="1970/01/01 07:00:00">
<full>
<profile name="test">
<reason name="124" en="124" ru="124"/>
<reason name="busy" en="Busy" ru="Занят"/>
<reason name="callback" en="Callback" ru="Обратный звонок"/>
<reason name="dinner" en="Dinner" ru="Обед"/>
<reason name="handle_call" en="Call handling" ru="Обработка вызова"/>
<reason name="locality_transfer" en="Transfering to another locality" ru="Передача в другой населенный пункт"/>
<reason name="not_available" en="" ru=""/>
<reason name="rest" en="Rest" ru="Отдых"/>
</profile>
<profile name="new">
<reason name="busy" en="Busy" ru="Занят"/>
<reason name="custom_reason" en="" ru=""/>
</profile>
<profile name="default">
<reason name="busy" en="Busy" ru="Занят"/>
</profile>
<profile name="103">
<reason name="busy" en="Busy" ru="Занят"/>
<reason name="dinner" en="Dinner" ru="Обед"/>
<reason name="124" en="124" ru="124"/>
<reason name="handle_call" en="Call handling" ru="Обработка вызова"/>
<reason name="callback" en="Callback" ru="Обратный звонок"/>
<reason name="rest" en="Rest" ru="Отдых"/>
<reason name="locality_transfer" en="Transfering to another locality" ru="Передача в другой населенный пункт"/>
</profile>
</full>
</event>
CODE
partial:
<?xml version="1.0"?>
<event name="queue_profile_event" timestamp="1970/01/01 07:00:00">
<partial>
<action type="changed">
<profile name="profile2">
<reason name="busy" en="Busy" ru="Занят"/>
<reason name="callback" en="Callback" ru="Обратный звонок"/>
</profile>
</action>
<action type="removed">
<profile name="profile3">
<reason name="busy" en="Busy" ru="Занят"/>
</profile>
</action>
<action type="added">
<profile name="profile1">
<reason name="busy" en="Busy" ru="Занят"/>
</profile>
</action>
</partial>
</event>
CODE