Работа со статусом пользователя — различия между версиями

Материал из Oktell
Перейти к: навигация, поиск
(Новая страница: «Наверх __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,       //Перерыв в call-центре. Для операторов, когда готовность  
+
  usLunch = 2,         <span style="color:darkviolet">//Перерыв в call-центре. Для операторов, когда готовность </span>
  usOff = 3,       //Нет на месте. Для всех, когда не была снята трубка в момент вызова и установлен режим перевода пользователей в OFF в настройках системы.  
+
  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:
  
  
*TMInterfaceReserve (123). Событие сервера, уведомляющее клиентское приложение о необходимости свернуть отображение информации по событиям TMInterfaceConfirm = 121 и TMInterfaceReserve = 122. Может происходить как в связи с отменой звонка, с неудачным ответом линии абонента, так и в связи с переходом к разговору.
+
*'''<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>


Наверх Работа с номерным планом<<< Работа со статусом пользователя >>>Работа с правилами переадресации