Сервисное оповещение — различия между версиями
| (не показаны 2 промежуточные версии этого же участника) | |||
| Строка 1: | Строка 1: | ||
| − | [[Использование_COM_библиотеки_Oktell_из_других_приложений|Наверх]] | + | {|cellpadding="10" cellspacing="0" border="0" |
| + | | [[Использование_COM_библиотеки_Oktell_из_других_приложений|Наверх]] | ||
| + | | [[Исключительные ситуации|Исключительные ситуации<<<]] | ||
| + | | [[Сервисное оповещение]] | ||
| + | | [[Работа с номерным планом|>>>Работа с номерным планом]] | ||
| + | |- | ||
| + | |} | ||
== Канал сервисного оповещения == | == Канал сервисного оповещения == | ||
| Строка 8: | Строка 14: | ||
'''Типы событий:''' | '''Типы событий:''' | ||
| − | :ShutdownRequested | + | :ShutdownRequested = 101 |
| − | :RestartRequested | + | :RestartRequested = 102 |
| − | :ConnectionLost | + | :ConnectionLost = 103 |
| − | :UserStateChanged | + | :UserStateChanged = 111 |
| − | :Notify | + | :Notify = 112 |
| − | :VoiceMail | + | :VoiceMail = 113 |
| − | :UserMessage | + | :UserMessage = 114 |
| − | :PersonalStateChanged | + | :PersonalStateChanged = 115 |
| − | :HALSrvRegSuccess | + | :HALSrvRegSuccess = 201 |
| − | :HALSrvRegTimeout | + | :HALSrvRegTimeout = 202 |
| − | :HALDeviceFound | + | :HALDeviceFound = 203 |
| − | :HALDeviceLost | + | :HALDeviceLost = 204 |
| − | :HALLightenKey | + | :HALLightenKey = 211 |
| − | :HALHeadsetParams | + | :HALHeadsetParams = 212 |
| − | :HALClearNFieldNow | + | :HALClearNFieldNow = 213 |
| − | :HALClearNFieldNext | + | :HALClearNFieldNext = 214 |
| − | :TMInterfaceConfirm | + | :TMInterfaceConfirm = 121 |
| − | :TMInterfaceReserve | + | :TMInterfaceReserve = 122 |
| − | :TMInterfaceClose | + | :TMInterfaceClose = 123 |
| − | :CommutationStarted | + | :CommutationStarted = 231 |
| − | :CommutationStopped | + | :CommutationStopped = 232 |
| − | :FaxStarted | + | :FaxStarted = 233 |
| − | :FaxStopped | + | :FaxStopped = 234 |
| − | :FaxFilesReceived | + | :FaxFilesReceived = 235 |
| − | :RingStarted | + | :RingStarted = 236 |
| − | :RingFinished | + | :RingFinished = 237 |
| − | :ACMStarted | + | :ACMStarted = 238 |
| − | :ACMFinished | + | :ACMFinished = 239 |
| − | :FlashHoldAction | + | :FlashHoldAction = 240 |
| − | :ChainStateChange | + | :ChainStateChange = 241 |
| − | :LineStateChange | + | :LineStateChange = 242 |
| − | :CallDetected | + | :CallDetected = 243 |
| − | :ConferenceListChanged | + | :ConferenceListChanged = 261 |
| − | :ConferenceCompositionChanged | + | :ConferenceCompositionChanged = 262 |
| − | :ConferenceCompetitorStateChanged | + | :ConferenceCompetitorStateChanged = 263 |
| − | :ConferenceEntranceRequest | + | :ConferenceEntranceRequest = 264 |
| − | :ConferenceEntranceDenied | + | :ConferenceEntranceDenied = 265 |
| − | :ConferenceEntrancePermitted | + | :ConferenceEntrancePermitted = 266 |
| − | :ConferenceNotifyInvite | + | :ConferenceNotifyInvite = 267 |
| − | :ConferenceUserStateChanged | + | :ConferenceUserStateChanged = 268 |
| + | |||
Описание и примеры событий 101 - 114 приведены ниже в текущем разделе, а остальных - в соответствующих им разделах. | Описание и примеры событий 101 - 114 приведены ниже в текущем разделе, а остальных - в соответствующих им разделах. | ||
| Строка 65: | Строка 72: | ||
'''Пример:''' | '''Пример:''' | ||
| − | <?xml version="1.0" encoding="utf-16"?> | + | <nowiki><?xml version="1.0" encoding="utf-16"?> |
<oktellcommapper version="80710"> | <oktellcommapper version="80710"> | ||
<data> | <data> | ||
<event id="101" name="shutdownrequested" /> | <event id="101" name="shutdownrequested" /> | ||
</data> | </data> | ||
| − | </oktellcommapper> | + | </oktellcommapper></nowiki> |
| Строка 77: | Строка 84: | ||
'''Пример:''' | '''Пример:''' | ||
| − | <?xml version="1.0" encoding="utf-16"?> | + | <nowiki><?xml version="1.0" encoding="utf-16"?> |
<oktellcommapper version="80710"> | <oktellcommapper version="80710"> | ||
<data> | <data> | ||
<event id="102" name="restartrequested" /> | <event id="102" name="restartrequested" /> | ||
</data> | </data> | ||
| − | </oktellcommapper> | + | </oktellcommapper></nowiki> |
| Строка 89: | Строка 96: | ||
'''Пример:''' | '''Пример:''' | ||
| − | <?xml version="1.0" encoding="utf-16"?> | + | <nowiki><?xml version="1.0" encoding="utf-16"?> |
<oktellcommapper version="80710"> | <oktellcommapper version="80710"> | ||
<data> | <data> | ||
<event id="103" name="connectionlost" /> | <event id="103" name="connectionlost" /> | ||
</data> | </data> | ||
| − | </oktellcommapper> | + | </oktellcommapper></nowiki> |
| Строка 101: | Строка 108: | ||
'''Возможные состояния:''' | '''Возможные состояния:''' | ||
| − | :usDisconnected | + | :usDisconnected = 0. Пользователь отключен. Для текущего пользователя - отсутствие связи с сервером логики. |
| − | :usReady | + | :usReady = 1. Пользователь на месте в готовом состоянии, не занят в задачах, линия свободна. |
| − | :usLunch | + | :usLunch = 2. Оператор в перерыве. |
| − | :usOff | + | :usOff = 3. Пользователя нет на месте. Выставляется, если пользователь не снял трубку в ходе поступающего вызова в течение установленного времени. Фильтрует дальнейшее поступление звонков |
| − | :usFullbusy | + | :usFullbusy = 5. Пользователь занят в задаче или в разговоре |
| − | :usReserved | + | :usReserved = 6. Пользователь зарезервирован задачей (быстрое состояние) |
| − | :usWOphone | + | :usWOphone = 7. Пользователь зарегистрирован, но линия отсутствует, отключена или в неопределенном состоянии. |
Состояния пользователей также используются в других событиях и методах (например событие <span style="color:darkred">PersonalStateChanged</span> (115) или метод <span style="color:darkred">SetUserState</span> ) | Состояния пользователей также используются в других событиях и методах (например событие <span style="color:darkred">PersonalStateChanged</span> (115) или метод <span style="color:darkred">SetUserState</span> ) | ||
| Строка 113: | Строка 120: | ||
'''Пример:''' | '''Пример:''' | ||
| − | <?xml version="1.0" encoding="utf-16"?> | + | <nowiki><?xml version="1.0" encoding="utf-16"?> |
<oktellcommapper version="80710"> | <oktellcommapper version="80710"> | ||
<data> | <data> | ||
| Строка 121: | Строка 128: | ||
</event> | </event> | ||
</data> | </data> | ||
| − | </oktellcommapper> | + | </oktellcommapper></nowiki> |
| Строка 128: | Строка 135: | ||
Типы уведомлений - флаговые, но ходят по одному. | Типы уведомлений - флаговые, но ходят по одному. | ||
| − | :nltNone | + | :nltNone = 0x00000, |
| − | :nltControlEvent | + | :nltControlEvent = 0x00002, Контрольное событие |
| − | :nltPBXinfo | + | :nltPBXinfo = 0x00008, Служебная информация АТС |
| − | :nltInformation | + | :nltInformation = 0x00010, Общая информация |
| − | :nltIncomingCall | + | :nltIncomingCall = 0x00020, Входящий вызов |
| − | :nltTimer | + | :nltTimer = 0x00080, ?? |
| − | :nltCallbackOrder | + | :nltCallbackOrder = 0x00100, Заказ на встречный звонок |
| − | :nltApplication | + | :nltApplication = 0x00200, Сообщение клиентского приложения |
| − | :nltApplicationWarn | + | :nltApplicationWarn = 0x00400, Предупреждение клиентского приложения |
| − | :nltApplicationInfo | + | :nltApplicationInfo = 0x00800, Общая информация клиентского приложения |
| − | :nltApplicationErr | + | :nltApplicationErr = 0x01000, Ошибка клиентского приложения |
| − | :nltColor | + | :nltColor = 0x40000, Окошко изменяемого цвета из сценариев |
'''Пример:''' | '''Пример:''' | ||
| − | <?xml version="1.0" encoding="utf-16"?> | + | <nowiki><?xml version="1.0" encoding="utf-16"?> |
<oktellcommapper version="80710"> | <oktellcommapper version="80710"> | ||
<data> | <data> | ||
| Строка 157: | Строка 164: | ||
</event> | </event> | ||
</data> | </data> | ||
| − | </oktellcommapper> | + | </oktellcommapper></nowiki> |
| Строка 164: | Строка 171: | ||
'''Пример:''' | '''Пример:''' | ||
| − | <?xml version="1.0" encoding="utf-16"?> | + | <nowiki><?xml version="1.0" encoding="utf-16"?> |
<oktellcommapper version="80710"> | <oktellcommapper version="80710"> | ||
<data> | <data> | ||
<event id="113" name="voicemail" /> | <event id="113" name="voicemail" /> | ||
</data> | </data> | ||
| − | </oktellcommapper> | + | </oktellcommapper></nowiki> |
| Строка 176: | Строка 183: | ||
'''Пример:''' | '''Пример:''' | ||
| − | <?xml version="1.0" encoding="utf-16"?> | + | <nowiki><?xml version="1.0" encoding="utf-16"?> |
<oktellcommapper version="80710"> | <oktellcommapper version="80710"> | ||
<data> | <data> | ||
| Строка 187: | Строка 194: | ||
</event> | </event> | ||
</data> | </data> | ||
| − | </oktellcommapper> | + | </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>
| Наверх | Исключительные ситуации<<< | Сервисное оповещение | >>>Работа с номерным планом |