Сервисное оповещение

Материал из Oktell
Перейти к: навигация, поиск

Наверх

Канал сервисного оповещения

Сервисные события системы поступают по каналу события OnCommunicate. Параметризованные строкой с XML содержимым в UTF-16. Формат поступающих xml обсуждаем. Общие принципы формирования структуры xml параметров представлены здесь, примеры конкретных реализация представлены в текущем разделе. При использовании режима XmlLogging (метод SetXmlLogging), все генерируемые xml-параметры на выходе размещаются в CommonLog с заголовком xmlevent.


Типы событий:

ShutdownRequested                = 101 
RestartRequested                 = 102 
ConnectionLost                   = 103 


UserStateChanged                 = 111 
Notify                           = 112 
VoiceMail                        = 113 
UserMessage                      = 114 
PersonalStateChanged             = 115 


HALSrvRegSuccess                 = 201 
HALSrvRegTimeout                 = 202 
HALDeviceFound                   = 203 
HALDeviceLost                    = 204 
HALLightenKey                    = 211 
HALHeadsetParams                 = 212 
HALClearNFieldNow                = 213 
HALClearNFieldNext               = 214 


TMInterfaceConfirm               = 121 
TMInterfaceReserve               = 122 
TMInterfaceClose                 = 123 
CommutationStarted               = 231 
CommutationStopped               = 232 
FaxStarted                       = 233 
FaxStopped                       = 234 
FaxFilesReceived                 = 235 
RingStarted                      = 236 
RingFinished                     = 237 
ACMStarted                       = 238 
ACMFinished                      = 239 
FlashHoldAction                  = 240 
ChainStateChange                 = 241 
LineStateChange                  = 242 
CallDetected                     = 243 


ConferenceListChanged            = 261
ConferenceCompositionChanged     = 262
ConferenceCompetitorStateChanged = 263
ConferenceEntranceRequest        = 264
ConferenceEntranceDenied         = 265
ConferenceEntrancePermitted      = 266
ConferenceNotifyInvite           = 267
ConferenceUserStateChanged       = 268

Описание и примеры событий 101 - 114 приведены ниже в текущем разделе, а остальных - в соответствующих им разделах.


  • ShutdownRequested (101). Возникает при запросе администратором oktell выгрузки клиентских (или клиентского) приложения. Дублируется в канале события OnServiceMessage канале (13101 - Shutdown).

Пример:

<?xml version="1.0" encoding="utf-16"?>
<oktellcommapper version="80710">

  <event id="101" name="shutdownrequested" />

</oktellcommapper>


  • RestartRequested (102). Возникает в случае падения TCP канала связи с сервером. Дублируется в канале события OnServiceMessage канале (13102 - Restart).

Пример:

<?xml version="1.0" encoding="utf-16"?>
<oktellcommapper version="80710">

  <event id="102" name="restartrequested" />

</oktellcommapper>


  • ConnectionLost (103). Возникает в случае падения TCP канала связи с сервером. Дублируется в канале события OnServiceMessage канале (13103 - ConnectionLost).

Пример:

<?xml version="1.0" encoding="utf-16"?>
<oktellcommapper version="80710">

  <event id="103" name="connectionlost" />

</oktellcommapper>


  • UserStateChanged (111). Возникает при смене состояния текущего зарегистрированного пользователя на сервере. Изменяется только сервером. Также вместе с состоянием приходит флаг-признак переадресации. Для изменения состояния по инициативе клиентского приложения существует метод SetUserState ( string xml ), который посылает запрос серверу на проведения смены состояний. Сервер может отказать по своему усмотрению.

Возможные состояния:

usDisconnected     = 0. Пользователь отключен. Для текущего пользователя - отсутствие связи с сервером логики. 
usReady            = 1. Пользователь на месте в готовом состоянии, не занят в задачах, линия свободна. 
usLunch            = 2. Оператор в перерыве. 
usOff              = 3. Пользователя нет на месте. Выставляется, если пользователь не снял трубку в ходе поступающего вызова в течение установленного времени. Фильтрует дальнейшее поступление звонков 
usFullbusy         = 5. Пользователь занят в задаче или в разговоре 
usReserved         = 6. Пользователь зарезервирован задачей (быстрое состояние) 
usWOphone          = 7. Пользователь зарегистрирован, но линия отсутствует, отключена или в неопределенном состоянии. 

Состояния пользователей также используются в других событиях и методах (например событие PersonalStateChanged (115) или метод SetUserState )

Пример:

<?xml version="1.0" encoding="utf-16"?>
<oktellcommapper version="80710">

  <event id="111" name="userstatechanged">
    <property_simple key="newstate" value="7" name="usWOphone" />
    <property_simple key="redirect" value="0" />
  </event>

</oktellcommapper>


  • Notify (112). Возникает при поступлении системного уведомления, которые генерирует сервер или нижняя прослойка клиентского приложения. Существуют различные типы(направления). По аналогии с клиентским приложением oktell уведомления содержат признаки: автоскрытие, цвет, тип, время поступления, признак сохранения в БД (в случае TRUE можно в разделе истории уведомлений увидеть), отправитель, текст. Каждый тип уведомления имеет свой установленный цвет отображения и иконку (это делается для привыкания к аналоговой информации и последующего быстрого подсознательного реагирования). Свойство "цвет" используется только типом nltColor поступающих уведомлений.

Типы уведомлений - флаговые, но ходят по одному.

nltNone               = 0x00000, 
nltControlEvent       = 0x00002, Контрольное событие 
nltPBXinfo            = 0x00008, Служебная информация АТС 
nltInformation        = 0x00010, Общая информация 
nltIncomingCall       = 0x00020, Входящий вызов 
nltTimer              = 0x00080, ?? 
nltCallbackOrder      = 0x00100, Заказ на встречный звонок 
nltApplication        = 0x00200, Сообщение клиентского приложения 
nltApplicationWarn    = 0x00400, Предупреждение клиентского приложения 
nltApplicationInfo    = 0x00800, Общая информация клиентского приложения 
nltApplicationErr     = 0x01000, Ошибка клиентского приложения 
nltColor              = 0x40000, Окошко изменяемого цвета из сценариев 

Пример:

<?xml version="1.0" encoding="utf-16"?>
<oktellcommapper version="80710">

  <event id="112" name="notify">
    <property_simple key="guid" value="00000000-0000-0000-0000-000000000000" />
    <property_simple key="autohide" value="1" />
    <property_simple key="backcolor_argb" value="0" />
    <property_simple key="type" value="8" name="nltPBXinfo" />
    <property_simple key="datetime" value="12.07.2008 18:35:06" />
    <property_simple key="dbsaved" value="1" />
    <property_cdata key="sender"><![CDATA[Системная АТС]]></property_cdata>
    <property_cdata key="text"><![CDATA[Зарегистрирована линия 16016]]></property_cdata>
  </event>

</oktellcommapper>


  • VoiceMail (113). Возникает при поступлении нового голосового сообщения. Тело сообщения отсутствует, служит для отображения статусной пиктограмки, запрос на получение почты производится в соответствующем модуле.

Пример:

<?xml version="1.0" encoding="utf-16"?>
<oktellcommapper version="80710">

  <event id="113" name="voicemail" />

</oktellcommapper>


  • UserMessage (114). Поступление сообщения от другого пользователя системы через внутренний мессенджер.

Пример:

<?xml version="1.0" encoding="utf-16"?>
<oktellcommapper version="80710">

  <event id="112" name="usermessage">
    <property_simple key="guid" value="37ccb224-ff71-3836-c410-a73782ef8d19" />
    <property_simple key="datetime" value="12.07.2008 20:29:11" />
    <property_simple key="senderid" value="d03a522f-b399-aa37-cb2a-943cf24d113e" />
    <property_cdata key="sendername"><![CDATA[Бочкарев Евгений]]></property_cdata>
    <property_cdata key="text"><![CDATA[Зайди плиз как освободишься..]]></property_cdata>
  </event>

</oktellcommapper>