Работа со статусом пользователя — различия между версиями
(Новая страница: «Наверх __TOC__ ==Методы для работы по ...») |
|||
(не показано 8 промежуточных версии этого же участника) | |||
Строка 1: | Строка 1: | ||
− | [[Использование_COM_библиотеки_Oktell_из_других_приложений|Наверх]] | + | {|cellpadding="10" cellspacing="0" border="0" |
+ | | [[Использование_COM_библиотеки_Oktell_из_других_приложений|Наверх]] | ||
+ | | [[Работа с номерным планом|Работа с номерным планом<<<]] | ||
+ | | [[Работа со статусом пользователя]] | ||
+ | | [[Работа с правилами переадресации|>>>Работа с правилами переадресации]] | ||
+ | |- | ||
+ | |} | ||
__TOC__ | __TOC__ | ||
Строка 5: | Строка 11: | ||
==Методы для работы по смене и определению текущего статуса авторизованного пользователя== | ==Методы для работы по смене и определению текущего статуса авторизованного пользователя== | ||
− | *string GetCurrentUserFullInfo ( ). Возвращает xml-структуру с описанием текущего авторизованного пользователя, включающую расширенное ролевое описание права доступа к модулям. При расширении прав впоследствии формат значения может видоизменяться количественно и качественно. | + | *'''<span style="color:blue">string</span> GetCurrentUserFullInfo ( )'''. Возвращает xml-структуру с описанием текущего авторизованного пользователя, включающую расширенное ролевое описание права доступа к модулям. При расширении прав впоследствии формат значения может видоизменяться количественно и качественно. |
Формат возвращаемого xml (на примере): | Формат возвращаемого xml (на примере): | ||
− | <?xml version="1.0" encoding="utf-16"?> | + | <nowiki><?xml version="1.0" encoding="utf-16"?> |
<oktellcommapper version="80710"> | <oktellcommapper version="80710"> | ||
<data name="userinfo"> | <data name="userinfo"> | ||
Строка 73: | Строка 79: | ||
</property_collection> | </property_collection> | ||
</data> | </data> | ||
− | </oktellcommapper> | + | </oktellcommapper></nowiki> |
− | *string GetUserState ( ). Возвращает текущее состояние и статус переадресации текущего авторизованного пользователя. | + | *'''<span style="color:blue">string</span> GetUserState ( )'''. Возвращает текущее состояние и статус переадресации текущего авторизованного пользователя. |
Формат возвращаемого xml (на примере): | Формат возвращаемого xml (на примере): | ||
− | <?xml version="1.0" encoding="utf-16"?> | + | <nowiki><?xml version="1.0" encoding="utf-16"?> |
<oktellcommapper version="80710"> | <oktellcommapper version="80710"> | ||
<data name="userstate"> | <data name="userstate"> | ||
Строка 88: | Строка 94: | ||
</property_set> | </property_set> | ||
</data> | </data> | ||
− | </oktellcommapper> | + | </oktellcommapper></nowiki> |
− | *void SetUserState ( string xml ). Передает серверу команду на смену состояния и/или статуса переадресации текущего авторизованного пользователя. Не любое состояние может быть установлено. Смена состояния осуществляется сервером только в случае успешного контроля корректности. | + | *'''<span style="color:blue">void</span> SetUserState ( <span style="color:blue">string</span> xml )'''. Передает серверу команду на смену состояния и/или статуса переадресации текущего авторизованного пользователя. Не любое состояние может быть установлено. Смена состояния осуществляется сервером только в случае успешного контроля корректности. |
Формат передаваемого параметра xml (на примере): | Формат передаваемого параметра xml (на примере): | ||
Строка 97: | Строка 103: | ||
'''Пример 1''' | '''Пример 1''' | ||
− | <?xml version="1.0" encoding="utf-16"?> | + | <nowiki><?xml version="1.0" encoding="utf-16"?> |
<oktellcommapper version="80710"> | <oktellcommapper version="80710"> | ||
<data name="userstate"> | <data name="userstate"> | ||
Строка 106: | Строка 112: | ||
</property_set> | </property_set> | ||
</data> | </data> | ||
− | </oktellcommapper> | + | </oktellcommapper></nowiki> |
− | + | ||
'''Пример 2''' | '''Пример 2''' | ||
− | <?xml version="1.0" encoding="utf-16"?> | + | <nowiki><?xml version="1.0" encoding="utf-16"?> |
<oktellcommapper version="80710"> | <oktellcommapper version="80710"> | ||
<data name="userstate"> | <data name="userstate"> | ||
Строка 119: | Строка 124: | ||
</property_set> | </property_set> | ||
</data> | </data> | ||
− | </oktellcommapper> | + | </oktellcommapper></nowiki> |
− | + | ||
− | string GetLineState ( ). Возвращает текущее состояние линии пользователя. В случае ее отсутствия возвращает код состояния "отключена", в случае нескольких линий возвращает состояние первой из них. | + | *'''<span style="color:blue">string</span> GetLineState ( )'''. Возвращает текущее состояние линии пользователя. В случае ее отсутствия возвращает код состояния "отключена", в случае нескольких линий возвращает состояние первой из них. |
Формат возвращаемого xml (на примере): | Формат возвращаемого xml (на примере): | ||
− | <?xml version="1.0" encoding="utf-16"?> | + | <nowiki><?xml version="1.0" encoding="utf-16"?> |
<oktellcommapper version="80710"> | <oktellcommapper version="80710"> | ||
<data name="linestate"> | <data name="linestate"> | ||
Строка 133: | Строка 138: | ||
</property_set> | </property_set> | ||
</data> | </data> | ||
− | </oktellcommapper> | + | </oktellcommapper></nowiki> |
Строка 140: | Строка 145: | ||
Пользователь (оператор, супервизор или любой другой) в каждый момент времени в процессе работы имеет одно из следующих состояний: | Пользователь (оператор, супервизор или любой другой) в каждый момент времени в процессе работы имеет одно из следующих состояний: | ||
− | public enum EUserState | + | <span style="color:blue">public enum</span> EUserState |
{ | { | ||
− | usDisconnected = 0, | + | usDisconnected = 0, <span style="color:darkviolet">//Не авторизован. Для всех, когда нет связи с сервером логики </span> |
− | usReady = 1, | + | usReady = 1, <span style="color:darkviolet">//Готов, на месте. Для всех, когда готовность </span> |
− | usLunch = 2, | + | usLunch = 2, <span style="color:darkviolet">//Перерыв в call-центре. Для операторов, когда готовность </span> |
− | usOff = 3, | + | usOff = 3, <span style="color:darkviolet">//Нет на месте. Для всех, когда не была снята трубка в момент вызова и </span> |
− | usFullbusy = 5, | + | <span style="color:darkviolet">//установлен режим перевода пользователей в OFF в настройках системы. </span> |
− | usReserved = 6, | + | usFullbusy = 5, <span style="color:darkviolet">//Занят. Для всех, когда осуществляется работа в задаче или в разговоре </span> |
− | usWOphone = 7 | + | usReserved = 6, <span style="color:darkviolet">//Зарезервирован. Для всех, когда свободный пользователь зарезервирован</span> |
+ | <span style="color:darkviolet">//транзакцией для осуществления намеченных действий и не может быть разделен </span> | ||
+ | <span style="color:darkviolet">//с другими транзакциями </span> | ||
+ | usWOphone = 7 <span style="color:darkviolet">//Без телефона. Для всех, когда линия пользователя находится в одном из нерабочих</span> | ||
+ | <span style="color:darkviolet">// состояний или отсутствует вовсе </span> | ||
} | } | ||
Строка 156: | Строка 165: | ||
Каждый канал в процессе работы изменяет свое состояние и находится в одном из нижеперечисленных состояний. Несмотря на флаговые коды, каждое состояние может быть только в единственном виде. | Каждый канал в процессе работы изменяет свое состояние и находится в одном из нижеперечисленных состояний. Несмотря на флаговые коды, каждое состояние может быть только в единственном виде. | ||
− | public enum ELineState | + | <span style="color:blue">public enum</span> ELineState |
{ | { | ||
− | lsDisconnected = 0x00000001, //Отсутствует/не подключена. | + | lsDisconnected = 0x00000001, <span style="color:darkviolet">//Отсутствует/не подключена.</span> |
− | lsOff = 0x00000002, //Выключена. | + | lsOff = 0x00000002, <span style="color:darkviolet">//Выключена. </span> |
− | lsReady = 0x00000004, //Готовность. | + | lsReady = 0x00000004, <span style="color:darkviolet">//Готовность. </span> |
− | lsHookUp = 0x00000008, //Снятая трубка. | + | lsHookUp = 0x00000008, <span style="color:darkviolet">//Снятая трубка. </span> |
− | lsIncomingCall = 0x00000010, //Входящий вызов. | + | lsIncomingCall = 0x00000010, <span style="color:darkviolet">//Входящий вызов. </span> |
− | lsCommutated = 0x00000020, //Коммутация. | + | lsCommutated = 0x00000020, <span style="color:darkviolet">//Коммутация. </span> |
− | lsWait = 0x00000040, //Ожидание. | + | lsWait = 0x00000040, <span style="color:darkviolet">//Ожидание. </span> |
− | lsFlash = 0x00000080, //Флеш. | + | lsFlash = 0x00000080, <span style="color:darkviolet">//Флеш. </span> |
− | lsWaitDown = 0x00000100, //Ожидание обратного вызова. | + | lsWaitDown = 0x00000100, <span style="color:darkviolet">//Ожидание обратного вызова. </span> |
− | lsListenBusy = 0x00000200, | + | lsListenBusy = 0x00000200, <span style="color:darkviolet"> //Сигнал отбоя. </span> |
− | lsUndefined = 0x00000400, | + | lsUndefined = 0x00000400, <span style="color:darkviolet"> //Неопределенное состояние. </span> |
− | lsReserved = 0x00000800, //Зарезервирована. | + | lsReserved = 0x00000800, <span style="color:darkviolet">//Зарезервирована. </span> |
− | lsReservedByTask = 0x00001000 //Зарезервирована задачей. | + | lsReservedByTask = 0x00001000 <span style="color:darkviolet">//Зарезервирована задачей. </span> |
} | } | ||
Строка 178: | Строка 187: | ||
Режим call-центра предоставляет доступ пользователей к работе с проектами. Это касается как визуальных интерфейсов, так и участия в обработке звонков по задачам. Режим колл-центра лицензируется, лицензии являются конкурентными. Одновременно в режиме может находиться не более установленного ключом числа пользователей (операторов и/или супервизоров). При попытке входа очередного пользователя и отсутствии свободных лицензий сервер во входе отказывает. При выходе пользователя, находящегося в call-центре, (остановке клиентского приложения) его присутствие в режиме остается. Таким образом при следующей загрузке он автоматически попадает в call-центр. Однако, если в момент отсутствия (неавторизованности) пользователя, находящегося по умолчанию в call-центре, будет осуществлен вход любого другого пользователя, запросившего лицензию, в условиях нехватки отсутствующий пользователь будет принудительно выведен из режима call-центра, и его лицензия будет использована. | Режим call-центра предоставляет доступ пользователей к работе с проектами. Это касается как визуальных интерфейсов, так и участия в обработке звонков по задачам. Режим колл-центра лицензируется, лицензии являются конкурентными. Одновременно в режиме может находиться не более установленного ключом числа пользователей (операторов и/или супервизоров). При попытке входа очередного пользователя и отсутствии свободных лицензий сервер во входе отказывает. При выходе пользователя, находящегося в call-центре, (остановке клиентского приложения) его присутствие в режиме остается. Таким образом при следующей загрузке он автоматически попадает в call-центр. Однако, если в момент отсутствия (неавторизованности) пользователя, находящегося по умолчанию в call-центре, будет осуществлен вход любого другого пользователя, запросившего лицензию, в условиях нехватки отсутствующий пользователь будет принудительно выведен из режима call-центра, и его лицензия будет использована. | ||
− | *bool CallCenter_IsInside ( ). Возвращает признак присутствия текущего авторизованного пользователя в режиме call-центра системы. TRUE - пользователь в call-центре, FALSE - вне. | + | *'''<span style="color:blue">bool</span> CallCenter_IsInside ( )'''. Возвращает признак присутствия текущего авторизованного пользователя в режиме call-центра системы. <span style="color:blue">TRUE</span> - пользователь в call-центре, <span style="color:blue">FALSE</span> - вне. |
− | *bool CallCenter_Enter ( ). Осуществляет попытку входа в режим call-центра системы. В случае успеха возвращает TRUE, в случае отказа по отсутствию лицензий или сбоя возвращает FALSE. | + | *'''<span style="color:blue">bool</span> CallCenter_Enter ( )'''. Осуществляет попытку входа в режим call-центра системы. В случае успеха возвращает <span style="color:blue">TRUE</span>, в случае отказа по отсутствию лицензий или сбоя возвращает <span style="color:blue">FALSE</span>. |
− | *void CallCenter_Exit ( ). Осуществляет выход текущего пользователя из режима call-центра. | + | *'''<span style="color:blue">void</span> CallCenter_Exit ( )'''. Осуществляет выход текущего пользователя из режима call-центра. |
==Методы для взаимодействия с менеджером задач== | ==Методы для взаимодействия с менеджером задач== | ||
− | *bool CallCenter_SetBusyInExternalTask ( ). Осуществляет резервирование пользователя в виртуальной для Oktell внешней задаче CRM. Фактически блокирует анализатор очереди и перевод пользователя в состояние ГОТОВ после разрыва связи. | + | *'''<span style="color:blue">bool</span> CallCenter_SetBusyInExternalTask ( )'''. Осуществляет резервирование пользователя в виртуальной для Oktell внешней задаче CRM. Фактически блокирует анализатор очереди и перевод пользователя в состояние ГОТОВ после разрыва связи. |
Может быть использована например для того, чтобы при осуществлении внешней пост-вызывной обработки в карточке интегрирующего приложения до момента ее закрытия (вызова обратного метода) пользователь не резервировался системой под другие задачи, а также не производился обратный вызов его канала для соединения с абонентами в очереди. | Может быть использована например для того, чтобы при осуществлении внешней пост-вызывной обработки в карточке интегрирующего приложения до момента ее закрытия (вызова обратного метода) пользователь не резервировался системой под другие задачи, а также не производился обратный вызов его канала для соединения с абонентами в очереди. | ||
− | Вызов метода может производиться в любое время. Рекомендуется осуществлять резервирование в момент начала работы с внешним блоком (карточкой, формой), но после коммутации. Не запрещается также использовать режим резервирования и в отсутствие коммутации, однако следует иметь в виду, что пользователь не сможет воспользоваться телефонным аппаратом, так как для работы в АТС ему необходимо иметь возможность быть зарезервированным на работу в ней; резервирование же в задаче блокирует сервис АТС. Отмена режима виртуального резервирования производится с помощью вызова метода CallCenter_SetFreeInExternalTask, выходом из Call-центра или выгрузкой модуля. Возвращает TRUE, если резервирование произведено, и FALSE, если пользователь уже был в резервировании задачей (внешней или внутренней к Oktell). | + | Вызов метода может производиться в любое время. Рекомендуется осуществлять резервирование в момент начала работы с внешним блоком (карточкой, формой), но после коммутации. Не запрещается также использовать режим резервирования и в отсутствие коммутации, однако следует иметь в виду, что пользователь не сможет воспользоваться телефонным аппаратом, так как для работы в АТС ему необходимо иметь возможность быть зарезервированным на работу в ней; резервирование же в задаче блокирует сервис АТС. Отмена режима виртуального резервирования производится с помощью вызова метода <span style="color:darkred">CallCenter_SetFreeInExternalTask</span>, выходом из Call-центра или выгрузкой модуля. Возвращает <span style="color:blue">TRUE</span>, если резервирование произведено, и <span style="color:blue">FALSE</span>, если пользователь уже был в резервировании задачей (внешней или внутренней к Oktell). |
− | *bool CallCenter_SetFreeInExternalTask ( ). Осуществляет вывод пользователя из резервирования в виртуальной для Oktell внешней задаче CRM. Вместе с этим осуществляет анализ очереди и обратный дозвон на канал пользователя в случае, если в очереди кто-либо ожидает соединения. В противном случае переводит пользователя в состояние ГОТОВ и разрешает всем службам резервировать его под свои нужды. Возвращает TRUE, если резервирование отменено, и FALSE, если пользователь не был зарезервирован или был зарезервирован во внутреннюю задачу Oktell. | + | *'''<span style="color:blue">bool</span> CallCenter_SetFreeInExternalTask ( )'''. Осуществляет вывод пользователя из резервирования в виртуальной для Oktell внешней задаче CRM. Вместе с этим осуществляет анализ очереди и обратный дозвон на канал пользователя в случае, если в очереди кто-либо ожидает соединения. В противном случае переводит пользователя в состояние ГОТОВ и разрешает всем службам резервировать его под свои нужды. Возвращает <span style="color:blue">TRUE</span>, если резервирование отменено, и <span style="color:blue">FALSE</span>, если пользователь не был зарезервирован или был зарезервирован во внутреннюю задачу Oktell. |
− | *bool CallCenter_CheckBusyInExternalTask ( ). Проверяет, является ли текущий пользователь зарезервированным в виртуальную для Oktell внешнюю задачу CRM (метод CallCenter_SetBusyInExternalTask). Возвращает TRUE, если зарезервирован, FALSE, если не зарезервирован или задача не является внешней виртуальной CRM-задачей. | + | *'''<span style="color:blue">bool</span> CallCenter_CheckBusyInExternalTask ( )'''. Проверяет, является ли текущий пользователь зарезервированным в виртуальную для Oktell внешнюю задачу CRM (метод <span style="color:darkred">CallCenter_SetBusyInExternalTask</span>). Возвращает <span style="color:blue">TRUE</span>, если зарезервирован, <span style="color:blue">FALSE</span>, если не зарезервирован или задача не является внешней виртуальной CRM-задачей. |
− | *string TM_SetTaskActive ( string ). Позволяет активировать/деактивировать задачи call-центра. | + | *'''<span style="color:blue">string</span> TM_SetTaskActive ( <span style="color:blue">string</span> )'''. Позволяет активировать/деактивировать задачи call-центра. |
Формат передаваемого параметра xml (на примере): | Формат передаваемого параметра xml (на примере): | ||
− | <?xml version="1.0" encoding="utf-16"?> | + | <nowiki><?xml version="1.0" encoding="utf-16"?> |
<oktellcommapper version="80710"> | <oktellcommapper version="80710"> | ||
<data name="settaskactive"> | <data name="settaskactive"> | ||
Строка 213: | Строка 222: | ||
</property_set> | </property_set> | ||
</data> | </data> | ||
− | </oktellcommapper> | + | </oktellcommapper></nowiki> |
Строка 220: | Строка 229: | ||
Пример возвращаемого значения xml (на примере): | Пример возвращаемого значения xml (на примере): | ||
− | <?xml version="1.0" encoding="utf-16"?> | + | <nowiki><?xml version="1.0" encoding="utf-16"?> |
<oktellcommapper version="80710"> | <oktellcommapper version="80710"> | ||
<data name="settaskactiveresult"> | <data name="settaskactiveresult"> | ||
Строка 228: | Строка 237: | ||
</property_set> | </property_set> | ||
</data> | </data> | ||
− | </oktellcommapper> | + | </oktellcommapper></nowiki> |
При работе операторов на рабочих станциях в интегрированном приложении интерфейс call-центра практически недоступен. Сам Oktell непосредственно не отображает диалоговые окна и окна запросов. При работе операторов в задачах наравне с пользователями клиентского приложения Oktell, все запросы сервер считает отвеченными по умолчанию. Так, задачи с прогрессивным набором осуществляют просто подключение телефонных аппаратов в разговор, задачи с ручным выбором не принимают в обслуживающий персонал операторов за интегрированными рабочими местами. Задачи же с резервированием и уведомлением работают по умолчанию, однако имеют интерфейс взаимодействия с интегрированным приложением. Команды на отображение информации с целью уведомления или запроса на дозвон осуществляются с помощью сервисных интерфейсных событий TMInterfaceReserve = 122 и TMInterfaceConfirm = 121. При отмене/обрыве задания отправляется событие TMInterfaceClose = 123, рассматриваемое как скрытие информации и запросов. | При работе операторов на рабочих станциях в интегрированном приложении интерфейс call-центра практически недоступен. Сам Oktell непосредственно не отображает диалоговые окна и окна запросов. При работе операторов в задачах наравне с пользователями клиентского приложения Oktell, все запросы сервер считает отвеченными по умолчанию. Так, задачи с прогрессивным набором осуществляют просто подключение телефонных аппаратов в разговор, задачи с ручным выбором не принимают в обслуживающий персонал операторов за интегрированными рабочими местами. Задачи же с резервированием и уведомлением работают по умолчанию, однако имеют интерфейс взаимодействия с интегрированным приложением. Команды на отображение информации с целью уведомления или запроса на дозвон осуществляются с помощью сервисных интерфейсных событий TMInterfaceReserve = 122 и TMInterfaceConfirm = 121. При отмене/обрыве задания отправляется событие TMInterfaceClose = 123, рассматриваемое как скрытие информации и запросов. | ||
− | *void TM_SetConfirmUsage ( bool ). При участии пользователя в задаче с установленным режимом «с запросом у оператора» происходит генерация события на отображение запроса. Все время, пока оператор не произведет ответ, он находится в зарезервированном состоянии, при котором не может ни совершать вызовы, ни принимать их. Для отправки ответа служит нижеописанный метод TM_SetConfirmResult, однако если интегрирующий модуль не занимается обслуживанием событий менеджера задач, есть риск (при размещении пользователя в качестве оператора в соответствующей задаче в Oktell), что оператор будет вечно находиться в зарезервированном состоянии. Поэтому по умолчанию принято, что ответ, разрешающий дозвон, генерирует само ядро клиентского приложения. При необходимости участия интегрирующего приложения или пользователя, работающего в нем в принятии решения, необходимо вызвать данный метод с передачей значения TRUE в качестве параметра. После этого ядро перестанет терминировать события и организует туннель. Ожидается, что после этого интегрирующее приложение не оставит без внимания ни одно событие с типом TMInterfaceConfirm = 121 без внимания и без соответствующего ему ответа путем вызова метода TM_SetConfirmResult. | + | *'''<span style="color:blue">void</span> TM_SetConfirmUsage ( <span style="color:blue">bool</span> )'''. При участии пользователя в задаче с установленным режимом «с запросом у оператора» происходит генерация события на отображение запроса. Все время, пока оператор не произведет ответ, он находится в зарезервированном состоянии, при котором не может ни совершать вызовы, ни принимать их. Для отправки ответа служит нижеописанный метод TM_SetConfirmResult, однако если интегрирующий модуль не занимается обслуживанием событий менеджера задач, есть риск (при размещении пользователя в качестве оператора в соответствующей задаче в Oktell), что оператор будет вечно находиться в зарезервированном состоянии. Поэтому по умолчанию принято, что ответ, разрешающий дозвон, генерирует само ядро клиентского приложения. При необходимости участия интегрирующего приложения или пользователя, работающего в нем в принятии решения, необходимо вызвать данный метод с передачей значения <span style="color:blue">TRUE</span> в качестве параметра. После этого ядро перестанет терминировать события и организует туннель. Ожидается, что после этого интегрирующее приложение не оставит без внимания ни одно событие с типом TMInterfaceConfirm = 121 без внимания и без соответствующего ему ответа путем вызова метода TM_SetConfirmResult. |
− | *bool TM_SetConfirmResult ( string ). Отправляет на сервер ответ на предварительно полученный от него запрос о необходимости совершения звонка по задаче (с установленным режимом запроса у оператора). Актуально только при обработке сервисного события TMInterfaceConfirm = 121, которое было предварительно получено. | + | *'''<span style="color:blue">bool</span> TM_SetConfirmResult ( <span style="color:blue">string</span> )'''. Отправляет на сервер ответ на предварительно полученный от него запрос о необходимости совершения звонка по задаче (с установленным режимом запроса у оператора). Актуально только при обработке сервисного события TMInterfaceConfirm = 121, которое было предварительно получено. |
Аналогично клиентскому приложению Oktell у оператора есть 3 возможности: подтвердить вызов, пропустить вызов, исключить абонента из списка. В случае, если все корректно, и сервер ожидал ответа, возвращается TRUE, иначе FALSE. | Аналогично клиентскому приложению Oktell у оператора есть 3 возможности: подтвердить вызов, пропустить вызов, исключить абонента из списка. В случае, если все корректно, и сервер ожидал ответа, возвращается TRUE, иначе FALSE. | ||
Строка 242: | Строка 251: | ||
Структура передаваемого значения на примере: | Структура передаваемого значения на примере: | ||
− | <?xml version="1.0" encoding="utf-16"?> | + | <nowiki><?xml version="1.0" encoding="utf-16"?> |
<oktellcommapper version="80710"> | <oktellcommapper version="80710"> | ||
<data name="confirmresult"> | <data name="confirmresult"> | ||
<property_set name="confirmresult"> | <property_set name="confirmresult"> | ||
− | <property_simple key="result" value="0" /> <!-- варианты: 0/1/2 или ok/skip/delete --> | + | <property_simple key="result" value="0" /> <span style="color:darkviolet"><!-- варианты: 0/1/2 или ok/skip/delete --></span> |
</property_set> | </property_set> | ||
</data> | </data> | ||
− | </oktellcommapper> | + | </oktellcommapper></nowiki> |
− | *TMInterfaceConfirm (121). Событие сервера, запрашивающее подтверждение на звонок указанному абоненту в ходе обслуживания голосовой задачи с установленным режимом «с запросом у оператора». В качестве содержимого передаются идентификатор код и название задачи, идентификатор проекта, идентификатор таблицы абонентов, идентификатор абонента в таблице, выбранный для набора номер абонента, а также текст в base64 формате, состоящий из информационных полей таблицы абонентов по данному конкретному абоненту. | + | *'''<span style="color:darkred">TMInterfaceConfirm</span> (121)'''. Событие сервера, запрашивающее подтверждение на звонок указанному абоненту в ходе обслуживания голосовой задачи с установленным режимом «с запросом у оператора». В качестве содержимого передаются идентификатор код и название задачи, идентификатор проекта, идентификатор таблицы абонентов, идентификатор абонента в таблице, выбранный для набора номер абонента, а также текст в base64 формате, состоящий из информационных полей таблицы абонентов по данному конкретному абоненту. |
При установленном режиме формирования ответов во внешнем приложении (метод TM_SetConfirmUsage(true)) в ответ на данное событие необходимо отправить ответ с использованием метода TM_SetConfirmResult. В противном случае пользователь будет находиться в зарезервированном состоянии без возможности принять/совершить вызов неограниченное время. | При установленном режиме формирования ответов во внешнем приложении (метод TM_SetConfirmUsage(true)) в ответ на данное событие необходимо отправить ответ с использованием метода TM_SetConfirmResult. В противном случае пользователь будет находиться в зарезервированном состоянии без возможности принять/совершить вызов неограниченное время. | ||
Строка 258: | Строка 267: | ||
Пример: | Пример: | ||
− | <?xml version="1.0" encoding="utf-16"?> | + | <nowiki><?xml version="1.0" encoding="utf-16"?> |
<oktellcommapper version="80710"> | <oktellcommapper version="80710"> | ||
<data> | <data> | ||
Строка 272: | Строка 281: | ||
</event> | </event> | ||
</data> | </data> | ||
− | </oktellcommapper> | + | </oktellcommapper></nowiki> |
− | *TMInterfaceReserve (122). Событие сервера, информирующее оператора об осуществляющемся в реальном времени наборе номера абонента в ходе обслуживания голосовой задачи с установленным режимом «с уведомлением оператора», а также «с запросом у оператора» после получения подтверждающего набор ответа на событие TMInterfaceReserve = 121. В качестве содержимого передаются идентификатор код и название задачи, идентификатор проекта, идентификатор таблицы абонентов, идентификатор абонента в таблице, выбранный для набора номер абонента, а также текст в base64 формате, состоящий из информационных полей таблицы абонентов по данному конкретному абоненту. | + | *'''<span style="color:darkred">TMInterfaceReserve</span> (122)'''. Событие сервера, информирующее оператора об осуществляющемся в реальном времени наборе номера абонента в ходе обслуживания голосовой задачи с установленным режимом «с уведомлением оператора», а также «с запросом у оператора» после получения подтверждающего набор ответа на событие TMInterfaceReserve = 121. В качестве содержимого передаются идентификатор код и название задачи, идентификатор проекта, идентификатор таблицы абонентов, идентификатор абонента в таблице, выбранный для набора номер абонента, а также текст в base64 формате, состоящий из информационных полей таблицы абонентов по данному конкретному абоненту. |
Формат параметра аналогичен событию TMInterfaceConfirm = 121 (с разницей в идентификаторе и названии события): | Формат параметра аналогичен событию TMInterfaceConfirm = 121 (с разницей в идентификаторе и названии события): | ||
Строка 281: | Строка 290: | ||
− | * | + | *'''<span style="color:darkred">TMInterfaceClose</span> (123)'''. Событие сервера, уведомляющее клиентское приложение о необходимости свернуть отображение информации по событиям TMInterfaceConfirm = 121 и TMInterfaceReserve = 122. Может происходить как в связи с отменой звонка, с неудачным ответом линии абонента, так и в связи с переходом к разговору. |
Формат параметра на примере: | Формат параметра на примере: | ||
− | <?xml version="1.0" encoding="utf-16"?> | + | <nowiki><?xml version="1.0" encoding="utf-16"?> |
<oktellcommapper version="80710"> | <oktellcommapper version="80710"> | ||
<data> | <data> | ||
Строка 292: | Строка 301: | ||
</event> | </event> | ||
</data> | </data> | ||
− | </oktellcommapper> | + | </oktellcommapper></nowiki> |
+ | |||
+ | |||
+ | {|cellpadding="10" cellspacing="0" border="0" | ||
+ | | [[Использование_COM_библиотеки_Oktell_из_других_приложений|Наверх]] | ||
+ | | [[Работа с номерным планом|Работа с номерным планом<<<]] | ||
+ | | [[Работа со статусом пользователя]] | ||
+ | | [[Работа с правилами переадресации|>>>Работа с правилами переадресации]] | ||
+ | |- | ||
+ | |} |
Текущая версия на 12:59, 14 декабря 2016
Наверх | Работа с номерным планом<<< | Работа со статусом пользователя | >>>Работа с правилами переадресации |
Содержание
Методы для работы по смене и определению текущего статуса авторизованного пользователя
- string GetCurrentUserFullInfo ( ). Возвращает xml-структуру с описанием текущего авторизованного пользователя, включающую расширенное ролевое описание права доступа к модулям. При расширении прав впоследствии формат значения может видоизменяться количественно и качественно.
Формат возвращаемого xml (на примере):
<?xml version="1.0" encoding="utf-16"?> <oktellcommapper version="80710"> <data name="userinfo"> <property_simple key="id" value="da803f01-ea77-40fa-bc9d-e2efb36fd5a8" /> <property_simple key="type" value="1" name="utUser" /> <property_cdata key="name"><![CDATA[Петр]]></property_cdata> <property_simple key="isoperator" value="1" /> <property_simple key="group" value="c4e3b424-3048-4cce-a2e4-033c532a7d99" name="Программисты" /> <property_cdata key="login"><![CDATA[Peter]]></property_cdata> <property_cdata key="password"><![CDATA[123]]></property_cdata> <property_cdata key="role" value="41fbf675-8f73-488e-83ca-c108b915f51d"><![CDATA[Администратор]]></property_cdata> <property_simple key="callerid" value="" /> <property_cdata key="info"><![CDATA[]]></property_cdata> <property_collection name="properties" count="1"> <property_set name="role" id="41fbf675-8f73-488e-83ca-c108b915f51d"> <property_cdata key="extwp" value="1"><![CDATA[Расширенное рабочее место]]></property_cdata> <property_cdata key="candeleterecords" value="1"><![CDATA[Возможность удалять записи статистики]]></property_cdata> <property_cdata key="showspecialscripts" value="1"><![CDATA[Показывать cистемные сценарии]]></property_cdata> <property_cdata key="caneditreports" value="1"><![CDATA[Возможность редактировать индикаторы call-центра]]></property_cdata> <property_cdata key="caneditindicators" value="1"><![CDATA[Возможность редактировать отчеты статистики сall-центра]]></property_cdata> <property_cdata key="viewsvctasks" value="1"><![CDATA[Доступ к служебным задачам]]></property_cdata> <property_cdata key="canuseacm" value="1"><![CDATA[Доступ к сервису автодозвона]]></property_cdata> <property_cdata key="canusemessagingout" value="1"><![CDATA[Возможность отправки сообщений]]></property_cdata> <property_cdata key="canusefax" value="1"><![CDATA[Доступ к офис-факсу]]></property_cdata> <property_cdata key="showphoneindialogcards" value="1"><![CDATA[Отображать телефон в диалоговых формах]]></property_cdata> <property_cdata key="viewoffice" value="1"><![CDATA[Офис]]></property_cdata> <property_cdata key="viewofficepersonels" value="1"><![CDATA[Сотрудники]]></property_cdata> <property_cdata key="viewofficestatistics" value="1"><![CDATA[Статистика]]></property_cdata> <property_cdata key="viewofficemycalls" value="1"><![CDATA[Мои звонки]]></property_cdata> <property_cdata key="viewofficeclients" value="1"><![CDATA[Клиенты]]></property_cdata> <property_cdata key="viewofficecabinet" value="1"><![CDATA[Кабинет]]></property_cdata> <property_cdata key="viewofficeredirect" value="1"><![CDATA[Переадресация]]></property_cdata> <property_cdata key="viewcallcenter" value="1"><![CDATA[Call-центр]]></property_cdata> <property_cdata key="viewcallcenteroperators" value="1"><![CDATA[Операторы]]></property_cdata> <property_cdata key="viewcallcenterprojects" value="1"><![CDATA[Проекты]]></property_cdata> <property_cdata key="viewcallcenterlists" value="1"><![CDATA[Таблицы абонентов]]></property_cdata> <property_cdata key="viewcallcenterscripts" value="1"><![CDATA[Сценарии]]></property_cdata> <property_cdata key="viewcallcentertasks" value="1"><![CDATA[Задачи]]></property_cdata> <property_cdata key="viewcallcentercontrolevents" value="1"><![CDATA[Контрольные события]]></property_cdata> <property_cdata key="viewcallcenterresources" value="1"><![CDATA[Ресурсы]]></property_cdata> <property_cdata key="viewcallcenterindicators" value="1"><![CDATA[Индикаторы]]></property_cdata> <property_cdata key="viewcallcenterstat" value="1"><![CDATA[Статистика call-центра]]></property_cdata> <property_cdata key="viewcallcenterreports" value="1"><![CDATA[Отчеты]]></property_cdata> <property_cdata key="viewcallcenterworkplace" value="1"><![CDATA[Мое рабочее место]]></property_cdata> <property_cdata key="viewadmin" value="1"><![CDATA[Администрирование]]></property_cdata> <property_cdata key="viewadminusers" value="1"><![CDATA[Пользователи]]></property_cdata> <property_cdata key="viewadminofficemap" value="1"><![CDATA[Карта сети]]></property_cdata> <property_cdata key="viewadminlines" value="1"><![CDATA[Линии]]></property_cdata> <property_cdata key="viewadminrights" value="1"><![CDATA[Права]]></property_cdata> <property_cdata key="viewadmininnernumbers" value="1"><![CDATA[Внутренние номера]]></property_cdata> <property_cdata key="viewadminclientforms" value="1"><![CDATA[Управление клиентами]]></property_cdata> <property_cdata key="viewadminsettings" value="1"><![CDATA[Общие настройки]]></property_cdata> <property_cdata key="viewadminscripts" value="1"><![CDATA[Сценарии]]></property_cdata> <property_cdata key="viewadminmonitoring" value="1"><![CDATA[Мониторинг]]></property_cdata> <property_cdata key="viewadminmobilemasks" value="1"><![CDATA[Мобильные маски]]></property_cdata> <property_cdata key="viewadminmobilestatistics" value="1"><![CDATA[Мобильная статистика]]></property_cdata> <property_cdata key="viewofficeclientscustomfilter" value="1"><![CDATA[Произвольные фильтры]]></property_cdata> <property_cdata key="viewofficeclientsadd" value="1"><![CDATA[Добавление клиентов]]></property_cdata> <property_cdata key="viewofficeclientsdelete" value="1"><![CDATA[Удаление клиентов]]></property_cdata> <property_cdata key="viewofficeclientsedit" value="1"><![CDATA[Редактирование клиентов]]></property_cdata> </property_set> </property_collection> </data> </oktellcommapper>
- string GetUserState ( ). Возвращает текущее состояние и статус переадресации текущего авторизованного пользователя.
Формат возвращаемого xml (на примере):
<?xml version="1.0" encoding="utf-16"?> <oktellcommapper version="80710"> <data name="userstate"> <property_set name="currentstateinfo"> <property_simple key="state" value="1" name="usReady" /> <property_simple key="redirect" value="0" /> </property_set> </data> </oktellcommapper>
- void SetUserState ( string xml ). Передает серверу команду на смену состояния и/или статуса переадресации текущего авторизованного пользователя. Не любое состояние может быть установлено. Смена состояния осуществляется сервером только в случае успешного контроля корректности.
Формат передаваемого параметра xml (на примере):
Пример 1
<?xml version="1.0" encoding="utf-16"?> <oktellcommapper version="80710"> <data name="userstate"> <property_set name="currentstateinfo"> <property_simple key="state" value="2" /> <property_cdata key="description"><![CDATA[Ушел на обед]]></property_cdata> <property_simple key="redirect" value="0" /> </property_set> </data> </oktellcommapper>
Пример 2
<?xml version="1.0" encoding="utf-16"?> <oktellcommapper version="80710"> <data name="userstate"> <property_set name="currentstateinfo"> <property_simple key="state" value="1" /> <property_simple key="redirect" value="1" /> </property_set> </data> </oktellcommapper>
- string GetLineState ( ). Возвращает текущее состояние линии пользователя. В случае ее отсутствия возвращает код состояния "отключена", в случае нескольких линий возвращает состояние первой из них.
Формат возвращаемого xml (на примере):
<?xml version="1.0" encoding="utf-16"?> <oktellcommapper version="80710"> <data name="linestate"> <property_set name="currentlinestateinfo"> <property_simple key="state" value="4" name="lsReady" /> </property_set> </data> </oktellcommapper>
Допустимые состояния пользователя
Пользователь (оператор, супервизор или любой другой) в каждый момент времени в процессе работы имеет одно из следующих состояний:
public enum EUserState { usDisconnected = 0, //Не авторизован. Для всех, когда нет связи с сервером логики usReady = 1, //Готов, на месте. Для всех, когда готовность usLunch = 2, //Перерыв в call-центре. Для операторов, когда готовность usOff = 3, //Нет на месте. Для всех, когда не была снята трубка в момент вызова и //установлен режим перевода пользователей в OFF в настройках системы. usFullbusy = 5, //Занят. Для всех, когда осуществляется работа в задаче или в разговоре usReserved = 6, //Зарезервирован. Для всех, когда свободный пользователь зарезервирован //транзакцией для осуществления намеченных действий и не может быть разделен //с другими транзакциями usWOphone = 7 //Без телефона. Для всех, когда линия пользователя находится в одном из нерабочих // состояний или отсутствует вовсе }
Допустимые состояния линии
Каждый канал в процессе работы изменяет свое состояние и находится в одном из нижеперечисленных состояний. Несмотря на флаговые коды, каждое состояние может быть только в единственном виде.
public enum ELineState { lsDisconnected = 0x00000001, //Отсутствует/не подключена. lsOff = 0x00000002, //Выключена. lsReady = 0x00000004, //Готовность. lsHookUp = 0x00000008, //Снятая трубка. lsIncomingCall = 0x00000010, //Входящий вызов. lsCommutated = 0x00000020, //Коммутация. lsWait = 0x00000040, //Ожидание. lsFlash = 0x00000080, //Флеш. lsWaitDown = 0x00000100, //Ожидание обратного вызова. lsListenBusy = 0x00000200, //Сигнал отбоя. lsUndefined = 0x00000400, //Неопределенное состояние. lsReserved = 0x00000800, //Зарезервирована. lsReservedByTask = 0x00001000 //Зарезервирована задачей. }
Методы для определения присутствия в call-центре
Режим call-центра предоставляет доступ пользователей к работе с проектами. Это касается как визуальных интерфейсов, так и участия в обработке звонков по задачам. Режим колл-центра лицензируется, лицензии являются конкурентными. Одновременно в режиме может находиться не более установленного ключом числа пользователей (операторов и/или супервизоров). При попытке входа очередного пользователя и отсутствии свободных лицензий сервер во входе отказывает. При выходе пользователя, находящегося в call-центре, (остановке клиентского приложения) его присутствие в режиме остается. Таким образом при следующей загрузке он автоматически попадает в call-центр. Однако, если в момент отсутствия (неавторизованности) пользователя, находящегося по умолчанию в call-центре, будет осуществлен вход любого другого пользователя, запросившего лицензию, в условиях нехватки отсутствующий пользователь будет принудительно выведен из режима call-центра, и его лицензия будет использована.
- bool CallCenter_IsInside ( ). Возвращает признак присутствия текущего авторизованного пользователя в режиме call-центра системы. TRUE - пользователь в call-центре, FALSE - вне.
- bool CallCenter_Enter ( ). Осуществляет попытку входа в режим call-центра системы. В случае успеха возвращает TRUE, в случае отказа по отсутствию лицензий или сбоя возвращает FALSE.
- void CallCenter_Exit ( ). Осуществляет выход текущего пользователя из режима call-центра.
Методы для взаимодействия с менеджером задач
- bool CallCenter_SetBusyInExternalTask ( ). Осуществляет резервирование пользователя в виртуальной для Oktell внешней задаче CRM. Фактически блокирует анализатор очереди и перевод пользователя в состояние ГОТОВ после разрыва связи.
Может быть использована например для того, чтобы при осуществлении внешней пост-вызывной обработки в карточке интегрирующего приложения до момента ее закрытия (вызова обратного метода) пользователь не резервировался системой под другие задачи, а также не производился обратный вызов его канала для соединения с абонентами в очереди.
Вызов метода может производиться в любое время. Рекомендуется осуществлять резервирование в момент начала работы с внешним блоком (карточкой, формой), но после коммутации. Не запрещается также использовать режим резервирования и в отсутствие коммутации, однако следует иметь в виду, что пользователь не сможет воспользоваться телефонным аппаратом, так как для работы в АТС ему необходимо иметь возможность быть зарезервированным на работу в ней; резервирование же в задаче блокирует сервис АТС. Отмена режима виртуального резервирования производится с помощью вызова метода CallCenter_SetFreeInExternalTask, выходом из Call-центра или выгрузкой модуля. Возвращает TRUE, если резервирование произведено, и FALSE, если пользователь уже был в резервировании задачей (внешней или внутренней к Oktell).
- bool CallCenter_SetFreeInExternalTask ( ). Осуществляет вывод пользователя из резервирования в виртуальной для Oktell внешней задаче CRM. Вместе с этим осуществляет анализ очереди и обратный дозвон на канал пользователя в случае, если в очереди кто-либо ожидает соединения. В противном случае переводит пользователя в состояние ГОТОВ и разрешает всем службам резервировать его под свои нужды. Возвращает TRUE, если резервирование отменено, и FALSE, если пользователь не был зарезервирован или был зарезервирован во внутреннюю задачу Oktell.
- bool CallCenter_CheckBusyInExternalTask ( ). Проверяет, является ли текущий пользователь зарезервированным в виртуальную для Oktell внешнюю задачу CRM (метод CallCenter_SetBusyInExternalTask). Возвращает TRUE, если зарезервирован, FALSE, если не зарезервирован или задача не является внешней виртуальной CRM-задачей.
- string TM_SetTaskActive ( string ). Позволяет активировать/деактивировать задачи call-центра.
Формат передаваемого параметра xml (на примере):
<?xml version="1.0" encoding="utf-16"?> <oktellcommapper version="80710"> <data name="settaskactive"> <property_set name="params"> <property_simple key="tasktype" value="call" /> <!-- варианты: call/text --> <property_simple key="idtask" value="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" /> <property_simple key="active" value="1" /> <!-- значения: 1-активировать, 2-деактивировать --> </property_set> </data> </oktellcommapper>
Возвращает NULL или XML-структуру с результатом выполнения операции. В случае, если операция по каким-то причинам была аннулирована сервером, в содержании ответа будет присутствовать описательная строка errormessage.
Пример возвращаемого значения xml (на примере):
<?xml version="1.0" encoding="utf-16"?> <oktellcommapper version="80710"> <data name="settaskactiveresult"> <property_set name="settaskactiveresult"> <property_simple key="success" value="0" /> <!-- варианты: 0/1 --> <property_cdata key="errormessage"><![CDATA[Задачу монопольно редактирует Сидоров Иван]]></property_cdata> </property_set> </data> </oktellcommapper>
При работе операторов на рабочих станциях в интегрированном приложении интерфейс call-центра практически недоступен. Сам Oktell непосредственно не отображает диалоговые окна и окна запросов. При работе операторов в задачах наравне с пользователями клиентского приложения Oktell, все запросы сервер считает отвеченными по умолчанию. Так, задачи с прогрессивным набором осуществляют просто подключение телефонных аппаратов в разговор, задачи с ручным выбором не принимают в обслуживающий персонал операторов за интегрированными рабочими местами. Задачи же с резервированием и уведомлением работают по умолчанию, однако имеют интерфейс взаимодействия с интегрированным приложением. Команды на отображение информации с целью уведомления или запроса на дозвон осуществляются с помощью сервисных интерфейсных событий TMInterfaceReserve = 122 и TMInterfaceConfirm = 121. При отмене/обрыве задания отправляется событие TMInterfaceClose = 123, рассматриваемое как скрытие информации и запросов.
- void TM_SetConfirmUsage ( bool ). При участии пользователя в задаче с установленным режимом «с запросом у оператора» происходит генерация события на отображение запроса. Все время, пока оператор не произведет ответ, он находится в зарезервированном состоянии, при котором не может ни совершать вызовы, ни принимать их. Для отправки ответа служит нижеописанный метод TM_SetConfirmResult, однако если интегрирующий модуль не занимается обслуживанием событий менеджера задач, есть риск (при размещении пользователя в качестве оператора в соответствующей задаче в Oktell), что оператор будет вечно находиться в зарезервированном состоянии. Поэтому по умолчанию принято, что ответ, разрешающий дозвон, генерирует само ядро клиентского приложения. При необходимости участия интегрирующего приложения или пользователя, работающего в нем в принятии решения, необходимо вызвать данный метод с передачей значения TRUE в качестве параметра. После этого ядро перестанет терминировать события и организует туннель. Ожидается, что после этого интегрирующее приложение не оставит без внимания ни одно событие с типом TMInterfaceConfirm = 121 без внимания и без соответствующего ему ответа путем вызова метода TM_SetConfirmResult.
- bool TM_SetConfirmResult ( string ). Отправляет на сервер ответ на предварительно полученный от него запрос о необходимости совершения звонка по задаче (с установленным режимом запроса у оператора). Актуально только при обработке сервисного события TMInterfaceConfirm = 121, которое было предварительно получено.
Аналогично клиентскому приложению Oktell у оператора есть 3 возможности: подтвердить вызов, пропустить вызов, исключить абонента из списка. В случае, если все корректно, и сервер ожидал ответа, возвращается TRUE, иначе FALSE.
Структура передаваемого значения на примере:
<?xml version="1.0" encoding="utf-16"?> <oktellcommapper version="80710"> <data name="confirmresult"> <property_set name="confirmresult"> <property_simple key="result" value="0" /> <span style="color:darkviolet"><!-- варианты: 0/1/2 или ok/skip/delete --></span> </property_set> </data> </oktellcommapper>
- TMInterfaceConfirm (121). Событие сервера, запрашивающее подтверждение на звонок указанному абоненту в ходе обслуживания голосовой задачи с установленным режимом «с запросом у оператора». В качестве содержимого передаются идентификатор код и название задачи, идентификатор проекта, идентификатор таблицы абонентов, идентификатор абонента в таблице, выбранный для набора номер абонента, а также текст в base64 формате, состоящий из информационных полей таблицы абонентов по данному конкретному абоненту.
При установленном режиме формирования ответов во внешнем приложении (метод TM_SetConfirmUsage(true)) в ответ на данное событие необходимо отправить ответ с использованием метода TM_SetConfirmResult. В противном случае пользователь будет находиться в зарезервированном состоянии без возможности принять/совершить вызов неограниченное время.
Пример:
<?xml version="1.0" encoding="utf-16"?> <oktellcommapper version="80710"> <data> <event id="121" name="tminterfaceconfirm"> <property_simple key="idtask" value="0f398eb4-5d78-446c-84f4-6892ab72751b" /> <property_simple key="idproject" value="ab37c6e6-e983-458a-8621-5e0921ade3d1" /> <property_cdata key="taskname"><![CDATA[Прозвон клиентов]]></property_cdata> <property_simple key="taskcode" value="" /> <property_simple key="idlist" value="9ac6f54c-d042-4e89-b9a3-5ad2e20c3410" /> <property_simple key="idinlist" value="67" /> <property_simple key="number" value="120151112" /> <property_cdata key="textb64"><![CDATA[0JLRiyDQt9Cw0YDQtdC30LXRgNCy0LjRgNC+0LLQsNC90Ysg0L3QsCDQstGL0L/QvtC70L3QtdC90LjQtSDQt9Cw0LTQsNGH0LgKCtCY0L3RhNC+0YDQvNCw0YbQuNGPOgoK0JfQsNC00LDRh9CwIMKr0JLQuNGA0YLRg9Cw0LvRjNC90LDRjyDQvNCw0YjQuNC90LDCuwoKCtCX0LLQvtC90L7QuiDQvdCwINC90L7QvNC10YA6IDEyMDE1MTExMgoK0J/RgNC+0LTQvtC70LbQuNGC0Ywg0LTQvtC30LLQvtC9INC/0L4g0YPQutCw0LfQsNC90L3Ri9C8INC/0LDRgNCw0LzQtdGC0YDQsNC8PyojKg==]]></property_cdata> </event> </data> </oktellcommapper>
- TMInterfaceReserve (122). Событие сервера, информирующее оператора об осуществляющемся в реальном времени наборе номера абонента в ходе обслуживания голосовой задачи с установленным режимом «с уведомлением оператора», а также «с запросом у оператора» после получения подтверждающего набор ответа на событие TMInterfaceReserve = 121. В качестве содержимого передаются идентификатор код и название задачи, идентификатор проекта, идентификатор таблицы абонентов, идентификатор абонента в таблице, выбранный для набора номер абонента, а также текст в base64 формате, состоящий из информационных полей таблицы абонентов по данному конкретному абоненту.
Формат параметра аналогичен событию TMInterfaceConfirm = 121 (с разницей в идентификаторе и названии события):
<event id="122" name="tminterfacereserve">
- TMInterfaceClose (123). Событие сервера, уведомляющее клиентское приложение о необходимости свернуть отображение информации по событиям TMInterfaceConfirm = 121 и TMInterfaceReserve = 122. Может происходить как в связи с отменой звонка, с неудачным ответом линии абонента, так и в связи с переходом к разговору.
Формат параметра на примере:
<?xml version="1.0" encoding="utf-16"?> <oktellcommapper version="80710"> <data> <event id="123" name="tminterfaceclose"> <property_simple key="idtask" value="0f398eb4-5d78-446c-84f4-6892ab72751b" /> </event> </data> </oktellcommapper>
Наверх | Работа с номерным планом<<< | Работа со статусом пользователя | >>>Работа с правилами переадресации |