Схема предназначена:

  • для агента, чтобы он мог выбирать причину технического перерыва с последующим переходом в технический перерыв. Свой профиль агент должен знать по подписке на событие 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