Сервисное оповещение — различия между версиями

Материал из Oktell
Перейти к: навигация, поиск
 
(не показано 9 промежуточных версии этого же участника)
Строка 1: Строка 1:
'''Типы событий:'''
+
{|cellpadding="10" cellspacing="0" border="0"
 +
| [[Использование_COM_библиотеки_Oktell_из_других_приложений|Наверх]]
 +
| [[Исключительные ситуации|Исключительные ситуации<<<]]
 +
| [[Сервисное оповещение]]
 +
| [[Работа с номерным планом|>>>Работа с номерным планом]]
 +
|-
 +
|}
  
 +
== Канал сервисного оповещения ==
 +
 +
Сервисные события системы поступают по каналу события <span style="color:darkred">OnCommunicate</span>. Параметризованные строкой с XML содержимым в UTF-16. Формат поступающих xml обсуждаем. Общие принципы формирования структуры xml параметров представлены [[Форматы и договоренности|здесь]], примеры конкретных реализация представлены в текущем разделе. При использовании режима XmlLogging (метод <span style="color:darkred">SetXmlLogging</span>), все  генерируемые xml-параметры на выходе размещаются в '''CommonLog''' с заголовком xmlevent.
 +
 +
 +
'''Типы событий:'''
  
:<pre>ShutdownRequested                = 101 </pre>
+
:ShutdownRequested                = 101  
 
:RestartRequested                = 102  
 
:RestartRequested                = 102  
 
:ConnectionLost                  = 103  
 
:ConnectionLost                  = 103  
Строка 51: Строка 63:
 
:ConferenceNotifyInvite          = 267
 
:ConferenceNotifyInvite          = 267
 
:ConferenceUserStateChanged      = 268
 
:ConferenceUserStateChanged      = 268
 +
 +
 +
Описание и примеры событий 101 - 114 приведены ниже в текущем разделе, а остальных - в соответствующих им разделах.
 +
 +
 +
*'''<span style="color:darkred">ShutdownRequested</span> (101)'''. Возникает при запросе администратором oktell выгрузки клиентских (или клиентского) приложения. Дублируется в канале события <span style="color:darkred">OnServiceMessage</span> канале (13101 - Shutdown).
 +
 +
'''Пример:'''
 +
 +
<nowiki><?xml version="1.0" encoding="utf-16"?>
 +
<oktellcommapper version="80710">
 +
<data>
 +
  <event id="101" name="shutdownrequested" />
 +
</data>
 +
</oktellcommapper></nowiki>
 +
 +
 +
*'''<span style="color:darkred">RestartRequested</span> (102)'''. Возникает в случае падения TCP канала связи с сервером. Дублируется в канале события <span style="color:darkred">OnServiceMessage</span> канале (13102 - Restart).
 +
 +
'''Пример:'''
 +
 +
<nowiki><?xml version="1.0" encoding="utf-16"?>
 +
<oktellcommapper version="80710">
 +
<data>
 +
  <event id="102" name="restartrequested" />
 +
</data>
 +
</oktellcommapper></nowiki>
 +
 +
 +
*'''<span style="color:darkred">ConnectionLost</span> (103)'''. Возникает в случае падения TCP канала связи с сервером. Дублируется в канале события <span style="color:darkred">OnServiceMessage</span> канале (13103 - ConnectionLost).
 +
 +
'''Пример:'''
 +
 +
<nowiki><?xml version="1.0" encoding="utf-16"?>
 +
<oktellcommapper version="80710">
 +
<data>
 +
  <event id="103" name="connectionlost" />
 +
</data>
 +
</oktellcommapper></nowiki>
 +
 +
 +
*'''<span style="color:darkred">UserStateChanged</span> (111)'''. Возникает при смене состояния текущего зарегистрированного пользователя на сервере. Изменяется только сервером. Также вместе с состоянием приходит флаг-признак переадресации. Для изменения состояния по инициативе клиентского приложения существует метод <span style="color:darkred">SetUserState</span> ( <span style="color:blue">string</span> xml ), который посылает запрос серверу на проведения смены состояний. Сервер может отказать по своему усмотрению.
 +
 +
'''Возможные состояния:'''
 +
 +
:usDisconnected    = 0. Пользователь отключен. Для текущего пользователя - отсутствие связи с сервером логики.
 +
:usReady            = 1. Пользователь на месте в готовом состоянии, не занят в задачах, линия свободна.
 +
:usLunch            = 2. Оператор в перерыве.
 +
:usOff              = 3. Пользователя нет на месте. Выставляется, если пользователь не снял трубку в ходе поступающего вызова в течение установленного времени. Фильтрует дальнейшее поступление звонков
 +
:usFullbusy        = 5. Пользователь занят в задаче или в разговоре
 +
:usReserved        = 6. Пользователь зарезервирован задачей (быстрое состояние)
 +
:usWOphone          = 7. Пользователь зарегистрирован, но линия отсутствует, отключена или в неопределенном состоянии.
 +
 +
Состояния пользователей также используются в других событиях и методах (например событие <span style="color:darkred">PersonalStateChanged</span> (115) или метод <span style="color:darkred">SetUserState</span> )
 +
 +
'''Пример:'''
 +
 +
<nowiki><?xml version="1.0" encoding="utf-16"?>
 +
<oktellcommapper version="80710">
 +
<data>
 +
  <event id="111" name="userstatechanged">
 +
    <property_simple key="newstate" value="7" name="usWOphone" />
 +
    <property_simple key="redirect" value="0" />
 +
  </event>
 +
</data>
 +
</oktellcommapper></nowiki>
 +
 +
 +
*'''<span style="color:darkred">Notify</span> (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, Окошко изменяемого цвета из сценариев
 +
 +
'''Пример:'''
 +
 +
<nowiki><?xml version="1.0" encoding="utf-16"?>
 +
<oktellcommapper version="80710">
 +
<data>
 +
  <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>
 +
</data>
 +
</oktellcommapper></nowiki>
 +
 +
 +
*'''<span style="color:darkred">VoiceMail (113)</span>'''. Возникает при поступлении нового голосового сообщения. Тело сообщения отсутствует, служит для отображения статусной пиктограмки, запрос на получение почты производится в соответствующем модуле.
 +
 +
'''Пример:'''
 +
 +
<nowiki><?xml version="1.0" encoding="utf-16"?>
 +
<oktellcommapper version="80710">
 +
<data>
 +
  <event id="113" name="voicemail" />
 +
</data>
 +
</oktellcommapper></nowiki>
 +
 +
 +
*'''<span style="color:darkred">UserMessage</span> (114)'''. Поступление сообщения от другого пользователя системы через внутренний мессенджер.
 +
 +
'''Пример:'''
 +
 +
<nowiki><?xml version="1.0" encoding="utf-16"?>
 +
<oktellcommapper version="80710">
 +
<data>
 +
  <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>
 +
</data>
 +
</oktellcommapper></nowiki>
 +
 +
{|cellpadding="10" cellspacing="0" border="0"
 +
| [[Использование_COM_библиотеки_Oktell_из_других_приложений|Наверх]]
 +
| [[Исключительные ситуации|Исключительные ситуации<<<]]
 +
| [[Сервисное оповещение]]
 +
| [[Работа с номерным планом|>>>Работа с номерным планом]]
 +
|-
 +
|}

Текущая версия на 08:07, 26 марта 2015

Наверх Исключительные ситуации<<< Сервисное оповещение >>>Работа с номерным планом

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

Сервисные события системы поступают по каналу события 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">
 <data>
   <event id="101" name="shutdownrequested" />
 </data>
 </oktellcommapper>


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

Пример:

<?xml version="1.0" encoding="utf-16"?>
 <oktellcommapper version="80710">
 <data>
   <event id="102" name="restartrequested" />
 </data>
 </oktellcommapper>


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

Пример:

<?xml version="1.0" encoding="utf-16"?>
 <oktellcommapper version="80710">
 <data>
   <event id="103" name="connectionlost" />
 </data>
 </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">
 <data>
   <event id="111" name="userstatechanged">
     <property_simple key="newstate" value="7" name="usWOphone" />
     <property_simple key="redirect" value="0" />
   </event>
 </data>
 </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">
 <data>
   <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>
 </data>
 </oktellcommapper>


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

Пример:

<?xml version="1.0" encoding="utf-16"?>
 <oktellcommapper version="80710">
 <data>
   <event id="113" name="voicemail" />
 </data>
 </oktellcommapper>


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

Пример:

<?xml version="1.0" encoding="utf-16"?>
 <oktellcommapper version="80710">
 <data>
   <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>
 </data>
 </oktellcommapper>
Наверх Исключительные ситуации<<< Сервисное оповещение >>>Работа с номерным планом