Сервисное оповещение
Канал сервисного оповещения
Сервисные события системы поступают по каналу события 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>