|
|
(не показаны 3 промежуточные версии этого же участника) |
Строка 1: |
Строка 1: |
− | [[Веб-интерфейс|Наверх]]
| + | #REDIRECT [[Oktell Web-Socket Protocol]] |
− | | + | |
− | | + | |
− | В рамках настоящей статьи рассматриваются вопросы интеграции web-системы и коммуникационной системы (в дальнейшем WebCRM и Oktell). WebCRM на рабочем месте сотрудника используется через браузер. Телефон, находящийся на рабочем месте сотрудника подключен к серверу (узлу коммутаций) Oktell. Решается задача функционального объединения двух системы с предоставлением возможности приема и совершения звонков и управления телефоном из интерфейсов WebCRM.
| + | |
− | | + | |
− | | + | |
− | __TOC__
| + | |
− | | + | |
− | | + | |
− | <div id="OktellFunc"></div>
| + | |
− | ===Краткое описание возможностей телефонии Oktell===
| + | |
− | | + | |
− | | + | |
− | Стандартный функционал Oktell предоставляет пользователям:
| + | |
− | :* доступ к управлению телефонами (позвонить, переключить, отклонить звонок, организовать конференцию, пригласить других участников в конференцию, подключиться к разговору в режиме прослушивания, помощи и т.д.).
| + | |
− | :* доступ к управлению состояниями пользователей (перерыв - чтобы поток входящих звонков не поступал, занят - чтобы отметить факт обработки звонка, переадресация - чтобы все звонки на пользователя перенаправлялись в соответствии с настроенными правилами, готов - чтобы вернуться к обычному режиму).
| + | |
− | :* информацию о текущем состоянии телефонов, внутренних номеров, пользователей с т.з. занятости в операциях телефонии.
| + | |
− | :* информацию о поступающем звонке, абоненте
| + | |
− | :* доступ к статистике разговоров (по правам).
| + | |
− | :* доступ к записям разговоров (по правам).
| + | |
− | :* доступ к информации об ожидающей очереди абонентов в реальном времени.
| + | |
− | :* доступ к контентам сессий и линий.
| + | |
− | :* доступ к управлению режимом переадресации.
| + | |
− | :* возможность запуска служебных сценариев.
| + | |
− | и т.д.
| + | |
− | | + | |
− | | + | |
− | В рамках настройки сценариев Oktell, имеется возможность отправлять синхронные и асинхронные запросы в WebCRM (фактически исполнять методы по событиям в Oktell)и получать ответы и применять их в рамках проведения маршрутизации или любых других действий, реализуемых в сценариях. Например:
| + | |
− | :* Выяснить, какому клиенту/контакту принадлежит определившийся номер телефона или введенный им вручную с помощью DTMF-набора номер договора, отфильтровать по черному списку, переключить вызов на ответственного за работу с этим контактом пользователя, если пользователя нет в системе - переключить на секретаря, а если контакт новый - соединить с отделом продаж. Если ответственный пользователь занят, предложить оставить голосовое сообщение для VIP клиентов.
| + | |
− | :* В момент поступления звонка открыть карточку у пользователя, которому направляется звонок. Закрыть ее автоматически, если пользователь так и не снял трубку (а снял кто-то другой, или звонок потерялся).
| + | |
− | :* Выполнить какое-то важное с т.з. WebCRM действие в случае, например, если пользователь оставил заказ на встречный звонок, занести его в список задач.
| + | |
− | | + | |
− | | + | |
− | Именно сценарии придают жизнь Oktell и его сервисам.
| + | |
− | | + | |
− | Среди событий Oktell, отрабатываемых в сценариях:
| + | |
− | | + | |
− | :* поступление внешнего звонка.
| + | |
− | :* завершение звонка.
| + | |
− | :* переключение абонента на пользователя, группу пользователей, задачу коллцентра.
| + | |
− | :* любое из интересующих явлений в ходе обработки звонка (от преобразования номера абонента в нужный формат и сверки времени поступления звонка до обработки контента звонка после завершения и выявления там факта состоявшейся конференции).
| + | |
− | :* наступление определенного времени.
| + | |
− | :* периодический запуск по таймеру.
| + | |
− | :* поступление/отправка e-mail.
| + | |
− | :* поступление/отправка sms/icq/jabber.
| + | |
− | :* контрольные события call-центра (оператор первым положил трубку, оператор слишком долго находится в перерыве или поствызывной обработке, число операторов в задаче меньше минимально допустимого, число абонентов в очереди задачи больше допустимого и т.д.)
| + | |
− | :* ручной запуск сценария по инициативе пользователя или WebCRM.
| + | |
− | :* исходящий звонок от пользователя
| + | |
− | :* поступление голосовой почты
| + | |
− | :* появление где-то в базе данных интересующего события (например появление новой записи в таблице абонентов)
| + | |
− | :* появление где-то на веб-ресурсе интересующего события (например температура на улице опустилась ниже нуля)
| + | |
− | и т.д.
| + | |
− | | + | |
− | | + | |
− | | + | |
− | <div id="Arch1"></div>
| + | |
− | ===Схема интеграции 1 (WebSock сервер в CRM)===
| + | |
− | | + | |
− | | + | |
− | | + | |
− | [[Файл:Arch1.jpg|center]]
| + | |
− | | + | |
− | | + | |
− | Сервер Oktell взаимодействует с телефонами и с веб-сервером WebCRM.
| + | |
− | | + | |
− | Веб-сервер WebCRM взаимодействует ответно с сервером Oktell и с браузерами.
| + | |
− | | + | |
− | Между сервером Oktell и веб-сервером WebCRM существует только один [[#Exchange|канал для двустороннего обмена сообщениями]].
| + | |
− | | + | |
− | Установка соединения может производиться как сервером Oktell, так и веб-сервером WebCRM. В случае разрыва соединения сторона-инициатор вновь организует подключение.
| + | |
− | # При выборе соединения со стороны сервера WebCRM в [[Интеграция_с_Web-Socket_CRM|настройках Web-Socket]] Oktell должен быть выбран один из режимов «CRM к Oktell» с указанием требуемого способа авторизации. | + | |
− | # При выборе соединения со стороны сервера Oktell должен быть выбран один из режимов «Oktell к CRM» с указанием [[#websockver|версии]] протокола Web-Socket.
| + | |
− | | + | |
− | После установки соединения системы обмениваются данными друг о друге, об авторизованных пользователях, о динамических методах.
| + | |
− | Все авторизованные в WebCRM пользователи автоматически становятся авторизованными в Oktell. В дальнейшем авторизация подключающихся пользователей и вывод отключившихся осуществляется с помощью сообщений login и logoff.
| + | |
− | Считается, что авторизацию пользователь проходит на веб-сервере WebCRM, и повторной проверки пароля в Oktell не требуется. Поэтому при организации сообщений login поле password не требует указания.
| + | |
− | | + | |
− | Любой запрос от клиента к Oktell отправляется на сервер WebCRM, где формируется интеграционное сообщение и перенаправляется на сервер Oktell.
| + | |
− | Персональные сообщения/команды от Oktell клиенту также направляются на WebCRM, где они должны быть перенаправлены клиенту.
| + | |
− | Общие сообщения/команды от Oktell направляются к серверу, где проводится их обработка.
| + | |
− | | + | |
− | Часть общих событий, например изменение состояния абонента в номерном плане, отправляется в WebCRM однократно и без привязки к конкретному пользователю, подразумевая тем самым, что веб-сервер WebCRM самостоятельно размножит сообщение и отправит всем заинтересованным клиентам.
| + | |
− | | + | |
− | В рамках такой интеграции WebCRM может предоставлять в Oktell некоторые общие сервисы, которые доступны администратору при настройке сценариев Oktell. Например, доступ к БД WebCRM на поиск маршрута для обработки звонка конкретного клиента. Подробнее в разделе [[#Dynamic|Динамическое взаимодействие]].
| + | |
− | | + | |
− | | + | |
− | | + | |
− | <div id="Arch2"></div>
| + | |
− | ===Схема интеграции 2 (WebSock сервер только в Oktell)===
| + | |
− | | + | |
− | | + | |
− | | + | |
− | [[Файл:Arch2.jpg|center]]
| + | |
− | | + | |
− | | + | |
− | Сервер Oktell взаимодействует с телефонами и с конечными клиентами (браузерами).
| + | |
− | | + | |
− | Веб-сервер CRM взаимодействует только с клиентами и БД.
| + | |
− | | + | |
− | Между Oktell и каждым клиентом существует один или несколько [[#Exchange|каналов для двустороннего обмена сообщениями]] (поддерживается работа в нескольких вкладках браузера).
| + | |
− | | + | |
− | В данном случае клиенты (браузеры) производят коннект к серверу Oktell, и в его [[Интеграция_с_Web-Socket_CRM|настройках Web-Socket]] должен быть выбран способ соединения «Браузеры к Oktell», а в сообщениях login должен быть указан пароль (MD5).
| + | |
− | | + | |
− | При таком способе интеграции у WebCRM не требуется наличие собственного Web-Socket сервера. Каждый клиент (браузер) подключается по Web-Socket протоколу непосредственно к серверу Oktell. Веб-сервер занимается формированием страниц и предоставлением данных из БД WebCRM. Непосредственная взаимосвязь между серверами WebCRM и Oktell отсутствует, доступ не требуется, клиенты самостоятельно обрабатывают и объединяют данные двух систем.
| + | |
− | По такому принципу реализованы [http://www.oktell.ru/weboktell Web-клиент Oktell] и плагин [http://js.oktell.ru/ Oktell.js].
| + | |
− | | + | |
− | Поскольку клиентов может быть много, при рассылке событий возможна оптимизация за счет исключения тех клиентов, где конкретное событие не является необходимым. Достигается это путем подписки/отписки клиентов на определенные типы сообщений.
| + | |
− | | + | |
− | В отличие от [[#Arch1|схемы интеграции 1]], где Oktell запрашивает у сервера WebCRM список [[#Dynamic|динамических методов и форм]], здесь роль хранилища этих списков выполняет конфигурационный файл ''websock.config'' в рабочем каталоге сервера Oktell.
| + | |
− | | + | |
− | Применительно к этому способу интеграции существует ряд дополнительных методов интерфейса. Большинство таких методов доступно и при [[#Arch1|схеме интеграции 1]], но не являются там необходимыми, так как часть данных и работ проводится на веб-сервере WebCRM.
| + | |
− | Исключение составляет метод обращения к БД Oktell на исполнение хранимой процедуры и возврат результатов (<span style="color:green">''execpredefineddbstoredproc''</span>). Он существует только для этого способа интеграции, при этом разрешенные для исполнения хранимые процедуры содержатся там же в конфигурационном файле ''websock.config''.
| + | |
− | | + | |
− | | + | |
− | | + | |
− | <div id="UserPhone"></div>
| + | |
− | ===Привязка пользователя к телефону===
| + | |
− | | + | |
− | | + | |
− | Решению подлежит задача сопоставления конкретных пользователей CRM с конкретными телефонными устройствами. Поскольку элементы управления устройством находятся в браузере, а влияют они на поведение конкретного телефона. Например, так выглядит простейшая задача перевода звонка из браузера на врача Михайлова: звонок должен поступить на телефон, находящийся в кабинете 103, за компьютером в котором сейчас сидит Михайлов (в браузере открыта WebCRM и авторизован Михайлов).
| + | |
− | Настройка этого происходит в Oktell.
| + | |
− | | + | |
− | Пользователи могут работать:
| + | |
− | :* стационарно каждый за своим компьютером.
| + | |
− | :* перемещаться с одного рабочего место за другое.
| + | |
− | :* работать посменно за одним рабочим местом.
| + | |
− | (Рабочее место = компьютер + телефон)
| + | |
− | | + | |
− | Необходимо в каждый момент времени знать, около какого телефона какой пользователь сидит.
| + | |
− | | + | |
− | | + | |
− | Существуют два подхода к решению, также возможны их комбинации в рамках одного сервера.
| + | |
− | | + | |
− | '''1. Жесткая привязка пользователя к телефонной учетной записи.'''
| + | |
− | | + | |
− | ''Для этого в карте сети Oktell в свойствах телефона требуется указание пользователя WebCRM''
| + | |
− | | + | |
− | ''Плюсы'': При взаимодействии Oktell и WebCRM используются одни и те же идентификаторы (например логины пользователей), соответственно отсутствует проблема привязки как таковая.
| + | |
− | | + | |
− | ''Минусы'': Пользователь вынужден перемещаться с одного компьютера на другой вместе со своим телефоном, или переназначая учетную запись в телефонном аппарате.
| + | |
− | | + | |
− | | + | |
− | '''2. Телефон привязывается к компьютеру, а в момент логина пользователя сопоставление производится через этот компьютер.'''
| + | |
− | | + | |
− | ''Плюсы'': Кто бы ни залогинился с этого компьютера, приобретает управление телефоном, все звонки пользователю попадают на этот телефон.
| + | |
− | | + | |
− | ''Минусы'': Требует указания одного из постоянных идентификаторов компьютера в Oktell, а также передачи его из WebCRM в момент логина для привязки. Это может быть айпи адрес, хостнейм или любой другой постоянный идентификатор, задаваемый в конфигурации.
| + | |
− | | + | |
− | | + | |
− | Синхронизация учетных записей Oktell и WebCRM может производиться по логинам (по умолчанию) или по GUID-идентификаторам. Соответственно в персональных запросах должны указываться userlogin и/или userid.
| + | |
− | | + | |
− | Логин в Oktell нужен для приведения состояния пользователя в готовность. Без этого звонки на пользователя не поступают, а обрабатываются как и в случае, когда он недоступен. Логофф - обратная операция. В ходе взаимодействия пользователю доступны команды управления своим состоянием. Он может отлучиться, выставить перерыв, переадресацию, занятость и т.д. Все это нужно для того, чтобы изменить направление маршрутизации звонков и режим работы коллцентра. А в случае [[#Arch2|Схемы интеграции 2]] также для авторизации.
| + | |
− | | + | |
− | | + | |
− | <span style="color:red">ВНИМАНИЕ! Ограничение: Oktell не позволяет пользователям логиниться с разных рабочих мест одновременно. Делается это для того, чтобы каждому пользователю соответствовало не более одного телефона.
| + | |
− | | + | |
− | | + | |
− | | + | |
− | <div id="Exchange"></div>
| + | |
− | ===Взаимодействие по каналу связи===
| + | |
− | | + | |
− | | + | |
− | | + | |
− | [[Файл:Socket 3.jpg|center]]
| + | |
− | | + | |
− | | + | |
− | Все взаимодействие между Oktell и WebCRM (а также между Oktell и браузером) идет по общему каналу путем двустороннего обмена сообщениями между сторонами.
| + | |
− | | + | |
− | <div id="websockver"></div>
| + | |
− | Взаимодействие на транспортном уровне происходит по Web-Socket протоколу. Поддерживаются версии
| + | |
− | :* [http://tools.ietf.org/html/rfc6455 rfc6455 v13]
| + | |
− | :* [http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-08 v8]
| + | |
− | :* [http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-07 v7]
| + | |
− | :* [http://tools.ietf.org/html/draft-hixie-thewebsocketprotocol-75 75]
| + | |
− | :* [http://tools.ietf.org/html/draft-hixie-thewebsocketprotocol-76 76]
| + | |
− | | + | |
− | В зависимости от выбранной схемы интеграции и выбранного в настройках направления и способа подключения одна из сторон производит подключение (Oktell к серверу WebCRM, сервер WebCRM к Oktell, клиенты WebCRM к Oktell).
| + | |
− | Рукопожатие (handshake) на установление Web-Socket соединения предлагается также стороной-инициатором. [http://ru.wikipedia.org/wiki/WebSocket Подробнее].
| + | |
− | Рукопожатие является HTTP запросом и при необходимости поддерживает прохождение Basic или Digest-авторизации. В качестве логина и пароля выступают указанные в [[Интеграция_с_Web-Socket_CRM|настройках Web-Socket]] значения. Описание процедуры рукопожатия описывается в документации к каждой версии протокола Web-Socket.
| + | |
− | | + | |
− | Все сообщения имеют идентификаторы для организации серий типа «запрос-ответ» (поле <span style="color:green">''qid''</span>).
| + | |
− | Сообщения могут адресоваться конкретному пользователю или относиться к общим. В первом случае в сообщении должен присутствовать идентификатор, позволяющий различать одинаковые, но направляемые от разных пользователей команды из WebCRM в Oktell и наоборот соответственно.
| + | |
− | | + | |
− | Возможные направления и типы сообщений:
| + | |
− | :* Oktell генерирует события.
| + | |
− | :* Oktell производит запросы к веб-системе. WebCRM отправляет ответы на получаемые запросы.
| + | |
− | :* WebCRM производит запросы к Oktell. В том числе и команды. Oktell отправляет ответы на запросы.
| + | |
− | | + | |
− | Каждое сообщение представляет из себя строку [http://ru.wikipedia.org/wiki/JSON JSON] или [http://ru.wikipedia.org/wiki/XML XML] в кодировке [http://ru.wikipedia.org/wiki/UTF8 UTF-8]. Сообщения в общем потоке данных в канале отделяются друг от друга в соотвествии с версией используемого протокола Web-Socket:
| + | |
− | :*Версии [http://tools.ietf.org/html/rfc6455 rfc6455 v13], [http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-08 v8], [http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-07 v7] подразумевают использование фреймов, в заголовках которых определяется тип и размер.
| + | |
− | :*Версии [http://tools.ietf.org/html/draft-hixie-thewebsocketprotocol-76 76] и [http://tools.ietf.org/html/draft-hixie-thewebsocketprotocol-75 75] подразумевают отделение сообщений байтами 0 и 255. 0 - в начале сообщения, 255 - в конце. Форматы XML и JSON представления данных в текстовом виде гарантируют отсутствие байтов 0 и 255 в теле сообщений.
| + | |
− | | + | |
− | Формат самих сообщений определяется непосредственно [[#Список методов интерфейса|протоколом интеграции Oktell-WebCRM]]. Например вот так выглядит сообщение из Oktell в WebCRM о факте входящего вызова в формате json:
| + | |
− | | + | |
− | Сообщения длиной более 64 КБ упаковываются в [http://ru.wikipedia.org/wiki/Base64 Base64] и разбиваются на несколько сообщений длиной до 64К. Для этого используется формат multipart-сообщения в протоколе Oktell-WebCRM. Если версия протокола Web-Socket для передачи сообщений использует фреймы ([http://tools.ietf.org/html/rfc6455 rfc6455 v13], [http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-08 v8], [http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-07 v7]), то способ отправки длинных сообщений в нескольких фреймах определен в самом протоколе. Однако это имеет ограничение: при передаче одного длинного сообщения в нескольких фреймах, оно не может быть прервано передачей других сообщений.
| + | |
− | | + | |
− | Структура каждого сообщения - это список из двух объектов, первый из которых - тип сообщения, второй - словарь параметров. В словаре обязательно присутствует идентификатор запроса (поле <span style="color:green">''qid''</span> с любым текстовым уникальным значением). В случае, когда сообщение производится от имени пользователя, присутствуют его идентификаторы (<span style="color:green">''userid''</span>, <span style="color:green">''userlogin''</span>).
| + | |
− | | + | |
− | | + | |
− | Среди параметров находятся и индивидуальные параметры сообщения. Поддерживается произвольная вложенность объектов: строк, чисел, дат, словарей, списков.
| + | |
− | | + | |
− | | + | |
− | [[Файл:Json.jpg]]
| + | |
− | | + | |
− | | + | |
− | | + | |
− | <div id="Dynamic"></div>
| + | |
− | ===Динамическое взаимодействие===
| + | |
− | | + | |
− | | + | |
− | В момент создания сценариев в Oktell администратор имеет возможность настроить индивидуальное взаимодействие с WebCRM.
| + | |
− | Взаимодействие представляет собой вызов определенного метода WebCRM с передачей в него входных параметров, и возможно ожидание его исполнения с возвратом (нескольких) выходных значений.
| + | |
− | | + | |
− | Сразу после организации подключения к серверу WebCRM Oktell производит запрос доступных в WebCRM динамических методов (как было сказано выше, в рамках [[#Arch2|схемы интеграции 2]] вместо запроса к WebCRM осуществляется загрузка сведений из файла ''websock.config'').
| + | |
− | В ответ WebCRM перечисляет список действий, инициативу исполнения которых она готова отдать наружу в Oktell. При описании метода упоминаются:
| + | |
− | :* человеческое название,
| + | |
− | :* краткий код метода,
| + | |
− | :* описание для администратора, настраивающего Oktell,
| + | |
− | :* список входных параметров с упоминанием типов (и возможных значений для перечислений),
| + | |
− | :* список выходных параметров, если метод возвращает данные и призван влиять на алгоритм сценария в Oktell,
| + | |
− | :* признак того, нужно ли исполнять метод с привязкой к конкретному пользователю, или это обращение к серверу вообще,
| + | |
− | :* разрешено ли отменять исполнение (например для метода «открыть карточку такую-то» возможна отмена, означающая «закрыть карточку такую-то»),
| + | |
− | :* куда Oktell направлять запрос - через Web-Socket (стандартный для взаимодействия канал) или по HTTP на альтернативный URL веб-сервера.
| + | |
− | | + | |
− | По каждому методу дополнительно описывается перечень входных и выходных параметров, их типы, способ исполнения метода (по организованному каналу или отдельным http-подключением), возможность его отмены (для длительных асинхронных операций, например метод ''Открыть диалоговую форму'' может быть отменен обратным методом ''Закрыть диалоговую форму'', а может быть прерван с тем же результатом).
| + | |
− | | + | |
− | В [[#Interface|интеграционном интерфейсе Oktell-WebCRM]] отсутствует таким образом необходимость конкретизировать методы WebCRM.
| + | |
− | В момент настройки сценария Oktell администратор уже имеет о них информацию и настраивает конкретный сценарий под место.
| + | |
− | | + | |
− | Администратором определяется одно или несколько из доступных действий, определяется момент исполнения, определяются входные параметры или способ их вычисления, а также режим ожидания, таймаута или асинхронного выполнения.
| + | |
− | В момент работы Oktell отправляет команду на исполнение в соответствии с определенными администратором настройками.
| + | |
− | Если метод призван исполняться синхронно и возвращать некие значения, то сценарий приостанавливается, а после получения ответа сохраняет результаты в переменных сценария и продолжает выполнение.
| + | |
− | Работа с динамическими методами и формами производится в сценариях Oktell компонентом [[Общие_компоненты_сценариев#Действие/карточка_в_plugin_или_WebCRM|Действие в WebCRM]].
| + | |
− | | + | |
− |
| + | |
− | Для примера: в момент поступления вызова Oktell определил номер абонента. Производит синхронное исполнение динамического метода WebCRM ''Вернуть ид компании по номеру телефона'', дожидается ответа и принимает в сценарий значение. Далее исполняет динамический метод ''Ответственный сотрудник по компании'', дожидается ответа и принимает в сценарий значение. Все это время абоненту проигрывается голосовое или музыкальное приветствие. Когда воспроизведение завершается, Oktell производит маршрутизацию в соответствии с вернувшимися значениями, а также в момент поступления звонка сотруднику исполняет динамический метод ''Открыть карточку компании'' с передачей в качестве параметра идентификатора, вернувшегося на первом шаге. В случае, если сотрудник не снимает трубку, Oktell отменяет исполнение метода, тем самым отдавая команду на закрытие карточки компании.
| + | |
− | | + | |
− | Ни об одном из перечисленных в примере методов WebCRM сервер Oktell не знает, зато знает администратор, настраивающий систему на работу совместно с WebCRM.
| + | |
− | | + | |
− | | + | |
− | Подробно список и интерфейс методов динамического взаимодействия приведен в разделе [[#DynamicMethods|Методы динамического взаимодействия]].
| + | |
− | | + | |
− | | + | |
− | | + | |
− | <div id="Interface"></div>
| + | |
− | ===Список методов интерфейса===
| + | |
− | | + | |
− | | + | |
− | Взаимодействие происходит путем обмена сообщениями по установившемуся транспортному каналу.
| + | |
− | Часть сообщений носят вид событий, часть - вид запросов (команд), часть - вид ответов на запросы. Каждое сообщение представляет собой байтовое представление текста с escape-последовательностями, описывающего объект в виде структуры JSON (возможен вариант XML), преобразованного через кодировку UTF8.
| + | |
− | | + | |
− | На первом уровне объекта - массив из двух значений: строковый кодовый идентификатор сообщения, именованный список параметров:
| + | |
− | <pre>[ "messagecode", {"var1":"value1", "var2":"value2", ...} ]</pre>
| + | |
− | | + | |
− | В общем случае среди параметров могут присутствовать сложные объекты (массивы и словари):
| + | |
− | <pre>"var1":["a", "b", "c"] или "var2":{"a":1, "b":2, "c":3}</pre>
| + | |
− | | + | |
− | В каждом сообщении присутствует параметр <span style="color:green">''qid''</span>, содержащий уникальный строковый идентификатор сообщения, обеспечивающий возможность построения из сообщений серий вида «запрос-ответ».
| + | |
− | В случае, когда сообщение относится к конкретному пользователю (отправляется от его имени), в нем присутствуют параметры <span style="color:green">''userlogin''</span> и <span style="color:green">''userid''</span>. По умолчанию синхронизация учетных записей пользователей происходит по их уникальным логинам.
| + | |
− | | + | |
− | | + | |
− | | + | |
− | ====Обмен данными об активных пользователях====
| + | |
− | | + | |
− | -------------------------------------------------
| + | |
− | <span style="color:green">>>> '''getactiveusers'''</span>
| + | |
− | | + | |
− | Запрос из Oktell в CRM на возврат текущих активных (авторизованных) пользователей. Применяется при старте одной из систем в момент организации подключения.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "getactiveusers",
| + | |
− | {
| + | |
− | "qid": "9C44D978-E380-4405-B1B9-C4894BF188A7"
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− |
| + | |
− | <span style="color:green"><<< '''activeusers'''</span>
| + | |
− | | + | |
− | Ответное сообщение из CRM в Oktell со списком активных авторизованных пользователей CRM.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "activeusers",
| + | |
− | {
| + | |
− | "qid": "9C44D978-E380-4405-B1B9-C4894BF188A7",
| + | |
− | "users": [
| + | |
− | {"userlogin": "ivanov", "userid": "20394857203948752345"},
| + | |
− | {"userlogin": "petrov", "userid": "kasjdfhlaksjdfhlaks"},
| + | |
− | {"userlogin": "sidorov", "userid": "987495873948573945"}
| + | |
− | ]
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− |
| + | |
− | | + | |
− | -------------------------------------------------
| + | |
− | <span style="color:green"><<< '''login'''</span>
| + | |
− | | + | |
− | Сообщение из CRM в Oktell об авторизации пользователя. Запрос кросс-авторизации в Oktell.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "login",
| + | |
− | {
| + | |
− | "qid": "9D484E0E-BE08-47B5-ABBD-490936881056",
| + | |
− | "userlogin": "ivanov",
| + | |
− | "userid": "29834234234"
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− |
| + | |
− | <span style="color:green">>>> '''loginresult'''</span>
| + | |
− | | + | |
− | Сообщение из Oktell в CRM о результате кросс-авторизации пользователя. Может быть отправлено в ответ на запрос кросс-авторизации в Oktell, а может быть отправлено самостоятельно по результатам обработки сообщения activeusers.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "loginresult",
| + | |
− | {
| + | |
− | "qid": "939AA33E-011F-4FEC-B60A-8BC1B4888B5A",
| + | |
− | "userlogin": "ivanov",
| + | |
− | "userid": "29834234234",
| + | |
− | "result": 0,
| + | |
− | "error": 50093,
| + | |
− | "errormsg": "Пользователь уже зарегистрирован"
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | -------------------------------------------------
| + | |
− | <span style="color:green"><<< '''logout'''</span>
| + | |
− | | + | |
− | Сообщение из CRM в Oktell о выходе (логауте) пользователя. Команда на кросс-логаут в Oktell.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "logout",
| + | |
− | {
| + | |
− | "qid": "9D484E0E-BE08-47B5-ABBD-490936881056",
| + | |
− | "userlogin": "ivanov",
| + | |
− | "userid": "29834234234"
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | <span style="color:green">>>> '''logoutresult'''</span>
| + | |
− | | + | |
− | Сообщение из Oktell в CRM о результате кросс-логаута пользователя. Может быть отправлено в ответ на запрос кросс-логаута в Oktell, а может быть отправлено самостоятельно в случае длительного отсутствия откликов от пользователя (не задействовано).
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "logoutresult",
| + | |
− | {
| + | |
− | "qid": "4B25E210-2D67-4675-A5AE-46DC9CBC32F9",
| + | |
− | "userlogin": "ivanov",
| + | |
− | "userid": "29834234234",
| + | |
− | "result": 1
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | -------------------------------------------------
| + | |
− | <span style="color:green">>>> '''pbxnumberstatechanged'''</span>
| + | |
− | | + | |
− | Сообщение из Oktell о смене состояния внутреннего номера (или группы внутренних номеров)
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "pbxnumberstatechanged",
| + | |
− | {
| + | |
− | "qid": "5B9508DF-565B-44E1-A122-6FEB70ADA0B9",
| + | |
− | "numbers": [
| + | |
− | {"num": "425", "numstateid": 3},
| + | |
− | {"num": "427", "numstateid": 2},
| + | |
− | {"num": "#82", "numstateid": 3}
| + | |
− | ]
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | | + | |
− | | + | |
− | ====Обмен состояниями пользователей====
| + | |
− | | + | |
− | -------------------------------------------------
| + | |
− | <span style="color:green">>>> '''userstatechanged'''</span>
| + | |
− | | + | |
− | Сообщение из Oktell в CRM о смене состояния пользователя в Oktell. Отправляется на имя пользователя, чье состояние сменилось. Отправляется как результат запроса на смену состояния или независимо.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "userstatechanged",
| + | |
− | {
| + | |
− | "qid": "66F8D479-0234-47DF-B043-3A065FF464A7",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "userstateid": 2,
| + | |
− | "onredirect": true,
| + | |
− | "onlunch": false,
| + | |
− | "oncallcenter": false
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | -------------------------------------------------
| + | |
− | <span style="color:green"><<< '''setuserstate'''</span>
| + | |
− | | + | |
− | Запрос из CRM к Oktell на смену состояния пользователя от его имени. При проведении изменений в ответ отправляется сообщение userstatechanged.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "setuserstate",
| + | |
− | {
| + | |
− | "qid": "2A45010A-8EEA-4876-90CB-F062459D4BE2",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "userstateid": 2,
| + | |
− | "onredirect": false,
| + | |
− | "lunchreasonid": 120,
| + | |
− | "lunchreasonmsg": ""
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | <pre>
| + | |
− | //* lunchreasonid и lunchreasonmsg - расширение для будущей статистики, устанавливают причину перерыва.
| + | |
− | id - если причина одна из стандартных. msg - если что-то уникальное юзер ввел.
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | -------------------------------------------------
| + | |
− | <span style="color:green"><<< '''entercallcenter'''</span>
| + | |
− | | + | |
− | Запрос из CRM на вход в режим коллцентра. При проведении изменений в ответ отправляется сообщение userstatechanged.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "entercallcenter",
| + | |
− | {
| + | |
− | "qid": "7DD2ED7A-B6BF-4988-A780-99719C65CA5D",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | <span style="color:green"><<< '''exitcallcenter'''</span>
| + | |
− | | + | |
− | Запрос из CRM на выход из режима коллцентра. При проведении изменений в ответ отправляется сообщение userstatechanged.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "exitcallcenter",
| + | |
− | {
| + | |
− | "qid": "6E899456-C373-48EB-949E-E2C0D79D45EA",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | | + | |
− | | + | |
− | ====Текстовый чат====
| + | |
− |
| + | |
− | -------------------------------------------------
| + | |
− | <span style="color:green">>>> '''usertextmessagereceived'''</span>
| + | |
− | | + | |
− | Сообщение-событие из Oktell в CRM о новом входящем текстовом сообщении чата.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "usertextmessagereceived",
| + | |
− | {
| + | |
− | "qid": "D5582E04-2964-438C-A8DB-21AF898BBAE0",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "messageid": "0263C7BF-DEB3-406F-9CF9-6F56D828C755",
| + | |
− | "snduserlogin": "Петров",
| + | |
− | "snduserid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
| + | |
− | "sndusername": "Петров Антон Григорьевич",
| + | |
− | "messagetext": "раз два три четыре пять вышел зайчик погулять",
| + | |
− | "messagedate": "2011-03-27 14:12:28",
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | <span style="color:green">>>> '''usertextmessageviewed'''</span>
| + | |
− | | + | |
− | Сообщение-событие из Oktell в CRM о прочитанности отправленного сообщения.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "usertextmessageviewed",
| + | |
− | {
| + | |
− | "qid": "D5582E04-2964-438C-A8DB-21AF898BBAE0",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "vieweduserid": "66D12297-E400-4862-BD24-F6DACCFDF9DA",
| + | |
− | "messageids": [
| + | |
− | "0263C7BF-DEB3-406F-9CF9-6F56D828C755",
| + | |
− | "4B5110FD-899B-4429-A659-2B9695B4D89E"
| + | |
− | ]
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | <span style="color:green"><<< '''sendusertextmessage'''</span>
| + | |
− | | + | |
− | Запрос из CRM в Oktell на отправку текстового сообщения в рамках чата другому пользователю.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "sendusertextmessage",
| + | |
− | {
| + | |
− | "qid": "F14F31B7-F203-4462-975F-3A37DD16240B",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "messageid": "0B9A00D8-12F6-4A0F-A8A3-4C840E98C240",
| + | |
− | "recvuserlogin": "0B9A00D8-12F6-4A0F-A8A3-4C840E98C240",
| + | |
− | "recvuserid": "0B9A00D8-12F6-4A0F-A8A3-4C840E98C240",
| + | |
− | "messagetext": "раз два три четыре пять вышел зайчик погулять",
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | <span style="color:green"><<< '''setusermessageviewed'''</span>
| + | |
− | | + | |
− | Запрос из CRM в Oktell на выставление признака прочитанности текстового сообщения пользователем. В ответ возвращается количество реально отмеченных сообщений. Может быть больше или меньше указанного. Событие о прочитанности отправляется пользователю, указанному в поле senderuserid.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "setusermessageviewed",
| + | |
− | {
| + | |
− | "qid": "AA29AE60-50C3-48EE-A32E-3D98265D7412",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "senderuserid": "689BD58D-2288-4E93-8647-58FB0756F3CA",
| + | |
− | "messageids": [
| + | |
− | "0B9A00D8-12F6-4A0F-A8A3-4C840E98C240",
| + | |
− | "4748964E-9ADC-4999-9ACB-12B8B46660CF"
| + | |
− | ]
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | | + | |
− | | + | |
− | ====Голосовая почта====
| + | |
− |
| + | |
− | -------------------------------------------------
| + | |
− | <span style="color:green">>>> '''voicemailreceived'''</span>
| + | |
− | | + | |
− | Сообщение из Oktell в CRM о факте поступления голосовой почты на ящик пользователя.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "voicemailreceived",
| + | |
− | {
| + | |
− | "qid": "080C0DF2-442B-410E-9204-4ADB3399FCC0",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | | + | |
− | | + | |
− | ====Всплывающие уведомления====
| + | |
− | | + | |
− | -------------------------------------------------
| + | |
− | <span style="color:green">>>> '''shownotifymessage'''</span>
| + | |
− | | + | |
− | Сообщение(запрос) из Oktell об уведомлении пользователя по аналогии с всплывающими Oktellовскими уведомлениями
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "shownotifymessage",
| + | |
− | {
| + | |
− | "qid": "99CC8C57-1793-486A-AFB1-6E5CA3E6855E",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "sender": "0263C7BF-DEB3-406F-9CF9-6F56D828C755",
| + | |
− | "text": "Петров",
| + | |
− | "autohide": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
| + | |
− | "type": 262144,
| + | |
− | "backcolor": "00FF0000",
| + | |
− | "uniquekey": "E7899B61-55C3-4007-91EE-DDB348913AA8",
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | <pre>
| + | |
− | //* uniquekey - код сообщения. Может отсутствовать. Но если есть - допускается одновременное отображение только
| + | |
− | одного уведомления с таким кодом (либо закрывать автоматически предыдущее, либо не отображать это)
| + | |
− | //* backcolor - hex AARRGGBB
| + | |
− | //* type - тип сообщения из флагового списка кратных двойке кодов
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | | + | |
− | | + | |
− | ====Сообщения от АТС====
| + | |
− | | + | |
− | -------------------------------------------------
| + | |
− | <span style="color:green">>>> '''phoneevent_ringstarted'''</span>
| + | |
− | | + | |
− | Сообщение из Oktell в CRM о входящем звонке. Не имеет отношения к постановке звонка в очередь. Фактически когда телефон пользователя начал звенеть.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "phoneevent_ringstarted",
| + | |
− | {
| + | |
− | "qid": "00488421-97E4-443B-81B7-D645E403AEBB",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "chainid": "D6C8232D-4E4A-48BB-954E-C719582A4718",
| + | |
− | "callerlineid": "BC1FD50B-651F-459D-B659-28230E919673",
| + | |
− | "callerlinenum": "13027",
| + | |
− | "callerdirection": "oktell_pbx",
| + | |
− | "callerid": "73439170203",
| + | |
− | "callername": "ОАО Металлург",
| + | |
− | "callerdescription": "Металлоконструкции, изделия из черных и цветных металлов",
| + | |
− | "callerinfo": "Абонент: 315, Задача 'Входящие в коллцентр'",
| + | |
− | "callercomment": "Еще что-то об абоненте",
| + | |
− | "calleruserlogin": "",
| + | |
− | "calleruserid": "00000000-0000-0000-0000-000000000000",
| + | |
− | "isextline": true,
| + | |
− | "canfax": true,
| + | |
− | "canvideo": false,
| + | |
− | "isconference": false,
| + | |
− | "confid": "00000000-0000-0000-0000-000000000000",
| + | |
− | "confname": "",
| + | |
− | "confroom": 0,
| + | |
− | "confinviternumber": "",
| + | |
− | "confinviteruserid": "00000000-0000-0000-0000-000000000000",
| + | |
− | "confinviteruserlogin": "",
| + | |
− | "istask": true,
| + | |
− | "taskid": "F94BD1FE-B628-4CC3-B215-F3F84B275EDD",
| + | |
− | "taskname": "Входящие в коллцентр"
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | <pre>
| + | |
− | //* Частично могут отсутстовать параметры, описывающие абонента.
| + | |
− | // Если istask=false, то остутствуют taskid, taskname, tasktalklimitsec, taskfromhandlesec
| + | |
− | // Если звонок не от другого пользователя, то отсутствуют calleruserlogin, calleruserid
| + | |
− | // Если isconference=false, то отсутствует confid, confname, confroom
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | -------------------------------------------------
| + | |
− | <span style="color:green">>>> '''phoneevent_ringstopped'''</span>
| + | |
− | | + | |
− | Сообщение из Oktell в CRM о прекращении входящего вызова. Если пользователь не снял трубку, а вызов прекратился.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "phoneevent_ringstopped",
| + | |
− | {
| + | |
− | "qid": "BEB91146-BA27-4236-9CAC-EF562719E7E5",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "chainid": "D6C8232D-4E4A-48BB-954E-C719582A4718"
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | -------------------------------------------------
| + | |
− | <span style="color:green">>>> '''phoneevent_commstarted'''</span>
| + | |
− | | + | |
− | Сообщение из Oktell в CRM о коммутации
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "phoneevent_commstarted",
| + | |
− | {
| + | |
− | "qid": "B7ACFEC1-65BB-4773-A425-DC39F5D1A48C",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "chainid": "D6C8232D-4E4A-48BB-954E-C719582A4718",
| + | |
− | "commutationid": "072F2EE0-4B3B-49A7-AB5B-E213AE752A53"
| + | |
− | "callerlineid": "BC1FD50B-651F-459D-B659-28230E919673",
| + | |
− | "callerlinenum": "13027",
| + | |
− | "callerid": "73439170203",
| + | |
− | "callername": "ОАО Металлург",
| + | |
− | "callerdescription": "Металлоконструкции, изделия из черных и цветных металлов",
| + | |
− | "callerinfosimple": "Абонент: 315, Задача 'Входящие в коллцентр'",
| + | |
− | "callercomment": "Еще что-то об абоненте",
| + | |
− | "calleruserlogin": "",
| + | |
− | "calleruserid": "00000000-0000-0000-0000-000000000000",
| + | |
− | "isextline": true,
| + | |
− | "canfax": true,
| + | |
− | "canvideo": false,
| + | |
− | "cansendfiles": true,
| + | |
− | "canbuildconf": true,
| + | |
− | "isivrscript": false,
| + | |
− | "isconference": false,
| + | |
− | "confid": "00000000-0000-0000-0000-000000000000",
| + | |
− | "confname": "",
| + | |
− | "confroom": 0,
| + | |
− | "istask": true,
| + | |
− | "taskid": "F94BD1FE-B628-4CC3-B215-F3F84B275EDD",
| + | |
− | "taskname": "Входящие в коллцентр",
| + | |
− | "tasktalklimitsec": 180,
| + | |
− | "taskfromhandlesec": 24
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | <pre>
| + | |
− | //* Частично могут отсутстовать параметры, описывающие абонента.
| + | |
− | // Если istask=false, то остутствуют taskid, taskname, tasktalklimitsec, taskfromhandlesec
| + | |
− | // Если звонок не от другого пользователя, то отсутствуют calleruserlogin, calleruserid
| + | |
− | // Если isconference=false, то отсутствует confid, confname, confroom
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | -------------------------------------------------
| + | |
− | <span style="color:green">>>> '''phoneevent_commstopped'''</span>
| + | |
− | | + | |
− | Сообщение из Oktell в CRM о завершении коммутации. Не путать со звонком. Коммутаций в рамках обработки звонка может быть много.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "phoneevent_commstopped",
| + | |
− | {
| + | |
− | "qid": "D514511C-BD4F-406B-B9C7-695CDC6C40E7",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "chainid": "D6C8232D-4E4A-48BB-954E-C719582A4718",
| + | |
− | "commutationid": "072F2EE0-4B3B-49A7-AB5B-E213AE752A53"
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | -------------------------------------------------
| + | |
− | <span style="color:green">>>> '''phoneevent_ivrstarted'''</span>
| + | |
− | | + | |
− | Сообщение из Oktell в CRM о соединении с IVR-сценарием.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "phoneevent_ivrstarted",
| + | |
− | {
| + | |
− | "qid": "46E07742-0B24-4DD6-B4C6-12CDC1F7B938",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "scriptname": "(Служебный) Вход в АТС",
| + | |
− | "chainid": "D6C8232D-4E4A-48BB-954E-C719582A4718",
| + | |
− | "commutationid": "072F2EE0-4B3B-49A7-AB5B-E213AE752A53"
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | -------------------------------------------------
| + | |
− | <span style="color:green">>>> '''phoneevent_ivrstopped'''</span>
| + | |
− | | + | |
− | Сообщение из Oktell в CRM о завершении соединения с IVR сценарием.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "phoneevent_ivrstopped",
| + | |
− | {
| + | |
− | "qid": "FC9DD78C-1A5F-4E06-9AB5-A9CEDE025F6A",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | -------------------------------------------------
| + | |
− | <span style="color:green">>>> '''phoneevent_acmcallstarted'''</span>
| + | |
− | | + | |
− | Сообщение из Oktell в CRM о запуске автодозвона.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "phoneevent_acmcallstarted",
| + | |
− | {
| + | |
− | "qid": "410B1930-423E-4632-B3DE-54EC48C0E8A0",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "chainid": "D6C8232D-4E4A-48BB-954E-C719582A4718",
| + | |
− | "callnumber": "471",
| + | |
− | "isextline": false,
| + | |
− | "callername": "Сигизмунд Львович Кац",
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | -------------------------------------------------
| + | |
− | <span style="color:green">>>> '''phoneevent_acmcallstopped'''</span>
| + | |
− | | + | |
− | Сообщение из Oktell в CRM об остановке автодозвона.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "phoneevent_acmcallstopped",
| + | |
− | {
| + | |
− | "qid": "410B1930-423E-4632-B3DE-54EC48C0E8A0",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "chainid": "D6C8232D-4E4A-48BB-954E-C719582A4718",
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | -------------------------------------------------
| + | |
− | <span style="color:green">>>> '''phoneevent_faxstarted'''</span>
| + | |
− | | + | |
− | Сообщение из Oktell о начале факс-сеанса на оппозитном канале.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "phoneevent_faxstarted",
| + | |
− | {
| + | |
− | "qid": "28979AE8-8E06-4EED-9114-98CB126CA8F4",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "chainid": "D6C8232D-4E4A-48BB-954E-C719582A4718",
| + | |
− | "opponentlineid": "BC1FD50B-651F-459D-B659-28230E919673",
| + | |
− | "faxdirection": "send",
| + | |
− | "description": ""
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | -------------------------------------------------
| + | |
− | <span style="color:green">>>> '''phoneevent_faxstopped'''</span>
| + | |
− | | + | |
− | Сообщение из Oktell о завершении факс-сеанса на оппозитном канале (следом возврат в коммутацию, если трубку не положили там).
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "phoneevent_faxstopped",
| + | |
− | {
| + | |
− | "qid": "324CD087-BC2D-4FF3-A9BD-86A7276A4DED",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "chainid": "D6C8232D-4E4A-48BB-954E-C719582A4718",
| + | |
− | "result": 0,
| + | |
− | "error": 65289,
| + | |
− | "errormsg": "NoFaxPages"
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | -------------------------------------------------
| + | |
− | <span style="color:green">>>> '''phoneevent_faxreceived'''</span>
| + | |
− | | + | |
− | Cообщение из Oktell о завершении приема факса со ссылками на файлы.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "phoneevent_faxreceived",
| + | |
− | {
| + | |
− | "qid": "C20E48DF-628D-4954-ADDE-D2C3B31C6700",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "result": 1,
| + | |
− | "files": [
| + | |
− | {
| + | |
− | "filename": "",
| + | |
− | "filesize": 172934,
| + | |
− | "filelink": "\/temp\/receivedfax\/a802d3ea\/img01.tiff",
| + | |
− | "availabletill": "2011-03-27 23:39:18",
| + | |
− | },
| + | |
− | {...},
| + | |
− | {...}
| + | |
− | ]
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | <pre>
| + | |
− | //* Даже если result=0, могут быть частично полученные файлы.
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | | + | |
− | | + | |
− | ====Команды к АТС====
| + | |
− |
| + | |
− | -------------------------------------------------
| + | |
− | <span style="color:green"><<< '''pbxautocallstart'''</span>
| + | |
− | | + | |
− | Запрос из CRM к Oktell на совершение звонка. В зависимости от текущего состояния линии - запускается автодозвон или нет, звонок на внешнюю линию, во внутрений номерной план, или автоопределение, сначала вызываться сам пользователь будет, а потом звонок абоненту, или сначала дозвон до абонента, а потом вызов пользователя.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "pbxautocallstart",
| + | |
− | {
| + | |
− | "qid": "0423AABC-F20D-4A94-BF2B-94EEEAB1FE40",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "number": "425",
| + | |
− | "direction": "int",
| + | |
− | "sequence": "abonent"
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | <pre>
| + | |
− | //* direction: int, ext, undefined, -
| + | |
− | //* sequence: abonent, user, -
| + | |
− | </pre>
| + | |
− | | + | |
− |
| + | |
− | <span style="color:green">>>> '''pbxautocallstartresult'''</span>
| + | |
− | | + | |
− | Ответ из Oktell в CRM на запрос звонка.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "pbxautocallstartresult",
| + | |
− | {
| + | |
− | "qid": "0423AABC-F20D-4A94-BF2B-94EEEAB1FE40",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "number": "425",
| + | |
− | "direction": "int",
| + | |
− | "sequence": "abonent",
| + | |
− | "result": 0,
| + | |
− | "error": 5,
| + | |
− | "errormsg": "cntNumberNotFound"
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | <pre>
| + | |
− | //* error, errormsg: EACMAnswer:
| + | |
− | //* cntStartedSuccessfully = 0 //Звонок успешно взят в реализацию
| + | |
− | //* cntUserNotReady = 1 //У осуществляющего вызов пользователя не найдены линии, готовые линии, или состояние кривое
| + | |
− | //* cntBusy = 2 //При звонке на внутренний номер - признак занятости. В очереди и сам повисеть может
| + | |
− | //* cntExtLineNotFound = 3, //Не найдены готовые внешние линии
| + | |
− | //* cntError = 4, //Прочие ошибки, исключения.
| + | |
− | //* cntControlNotReady = 5, //Режим не доделан.
| + | |
− | //* cntNumberNotFound = 6 //Внутренний номер не найден (по факту, если сервер сам будет определять
| + | |
− | направление звонка, это вообще не будет задействовано)
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | -------------------------------------------------
| + | |
− | <span style="color:green"><<< '''pbxautocallabort'''</span>
| + | |
− | | + | |
− | Запрос из CRM к Oktell на прекращение автодозвона
| + | |
− | <pre>
| + | |
− | [
| + | |
− | "pbxautocallabort",
| + | |
− | {
| + | |
− | "qid": "28BF3E8F-1F97-47AB-BD42-92D174D4A705",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | -------------------------------------------------
| + | |
− | <span style="color:green"><<< '''pbxtransfercall'''</span>
| + | |
− | | + | |
− | Аналогично запросу из CRM на совершение звонка - запрос на совершение переключения. Если линия свободна - действует аналогично полностью запросу на звонок. Если пользователь в разговоре - через флэш набирает указанный номер.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "pbxtransfercall",
| + | |
− | {
| + | |
− | "qid": "81FBE5C2-E81B-4D0D-8AC0-72C22ACCD4E2",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "number": "425",
| + | |
− | "direction": "int",
| + | |
− | "sequence": "abonent"
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− |
| + | |
− | | + | |
− | <span style="color:green">>>> '''pbxtransfercallresult'''</span>
| + | |
− | | + | |
− | И аналогичный ответ из Oktell в CRM.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "pbxtransfercallresult",
| + | |
− | {
| + | |
− | "qid": "81FBE5C2-E81B-4D0D-8AC0-72C22ACCD4E2",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "number": "425",
| + | |
− | "direction": "int",
| + | |
− | "sequence": "abonent",
| + | |
− | "result": 0,
| + | |
− | "error": 5,
| + | |
− | "errormsg": "cntNumberNotFound"
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | -------------------------------------------------
| + | |
− | <span style="color:green">>>> '''pbxdeclinecall'''</span>
| + | |
− | | + | |
− | Запрос из CRM к Oktell на отклонение звонка.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "pbxdeclinecall",
| + | |
− | {
| + | |
− | "qid": "0AFB2B0C-A68F-448B-9B4B-AB42096D4E95",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | -------------------------------------------------
| + | |
− | <span style="color:green"><<< '''pbxabortcall'''</span>
| + | |
− | | + | |
− | Запрос из CRM к Oktell на обрыв текущего существующего сеанса связи. Не путать с DeclineCall. Прекращает коммутацию, если существует, прекращает автодозвон, если запущен.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "pbxabortcall",
| + | |
− | {
| + | |
− | "qid": "53F2EE86-46AF-4A37-8C60-2F27EADD10DE",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | -------------------------------------------------
| + | |
− | <span style="color:green"><<< '''pbxmakeflash'''</span>
| + | |
− | | + | |
− | Запрос из CRM в Oktell на программную эмуляцию флэш.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "pbxmakeflash",
| + | |
− | {
| + | |
− | "qid": "DD836C5D-4F3E-4FD2-9B60-24E330B03FC6",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | | + | |
− | | + | |
− | ====Запуск служебного сценария====
| + | |
− |
| + | |
− | -------------------------------------------------
| + | |
− | <span style="color:green"><<< '''startsvcscript'''</span>
| + | |
− | | + | |
− | Запрос из CRM в Oktell на запуск служебного сценария.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "startsvcscript",
| + | |
− | {
| + | |
− | "qid": "244E3867-470E-4A56-904D-D435D57CFBFE",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "scriptname": "Служебный сценарий получения почты",
| + | |
− | "startparam1": "значение параметра 1",
| + | |
− | "startparam2": "значение параметра 2",
| + | |
− | "startparam3": "значение параметра 3",
| + | |
− | "startparam4": "значение параметра 4",
| + | |
− | "startparam5": "значение параметра 5",
| + | |
− | "waitresponse": true,
| + | |
− | "waittimeoutsec": 10
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− |
| + | |
− | <span style="color:green">>>> '''startsvcscriptresult'''</span>
| + | |
− | | + | |
− | Ответ Oktell на запрос запуска служебного сценария.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "startsvcscriptresult",
| + | |
− | {
| + | |
− | "qid": "244E3867-470E-4A56-904D-D435D57CFBFE",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "scriptname": "Служебный сценарий получения почты",
| + | |
− | "result": 0,
| + | |
− | "returnvalue": "присвоенный в сценарии результат",
| + | |
− | "error": 10
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | <pre>
| + | |
− | //* error: 10 - файл не найден, 11 - исключение, 12 - таймаут
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | | + | |
− | | + | |
− | <div id="DynamicMethods"></div>
| + | |
− | ====Методы динамического взаимодействия====
| + | |
− | | + | |
− | Информация от CRM о поддерживаемых методах, доступных Oktell для инициации исполнения.
| + | |
− | | + | |
− | Серия методов forms - частный случай методов, позволяющий выделить в отдельную категорию работу с карточками. Смысл и способ работы тот же самый. Тем не менее карточки могут быть представлены как методы.
| + | |
− | | + | |
− | ----------------------------------------------
| + | |
− | | + | |
− | Методы:
| + | |
− | # <span style="color:green">>>> getavailablemethods<br>
| + | |
− | # <span style="color:green"><<< availablemethods<br>
| + | |
− | # <span style="color:green">>>> executemethod<br>
| + | |
− | # <span style="color:green">>>> cancelmethod<br>
| + | |
− | # <span style="color:green"><<< methodresult<br>
| + | |
− | | + | |
− | Формы:
| + | |
− | # <span style="color:green">>>> getavailableforms<br>
| + | |
− | # <span style="color:green"><<< availableforms<br>
| + | |
− | # <span style="color:green">>>> showform<br>
| + | |
− | # <span style="color:green">>>> closeform<br>
| + | |
− | # <span style="color:green"><<< formresult<br>
| + | |
− | | + | |
− | | + | |
− | ------------------------------------------------------------------------------
| + | |
− | <span style="color:green">>>> '''getavailablemethods'''</span>
| + | |
− | | + | |
− | Отправляет из Oktell в CRM сообщение-запрос на возврат доступных динамических методов CRM.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "getavailablemethods",
| + | |
− | {
| + | |
− | "qid": "76EF6E46-23DA-47B6-B3BD-A7076FEDE170"
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− |
| + | |
− | | + | |
− | <span style="color:green"><<< '''availablemethods'''</span>
| + | |
− | | + | |
− | Сообщение-ответ из CRM в Oktell со списком доступных динамических методов CRM.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "availablemethods",
| + | |
− | {
| + | |
− | "qid": "76EF6E46-23DA-47B6-B3BD-A7076FEDE170",
| + | |
− | "methods": [
| + | |
− | {
| + | |
− | "key": "16893E86-4D73-4F4C-8629-6E484B2CB5B0",
| + | |
− | "name": "Вернуть данные о компании",
| + | |
− | "description": "Возвращает информацию о компании по одному из выбранных идентификаторов, чтобы в дальнейшем использовать при открытии карточки данных о компании",
| + | |
− | "connectiontype": "http",
| + | |
− | "defineuser": false,
| + | |
− | "allowcancel": false,
| + | |
− | "inputparams": [
| + | |
− | {
| + | |
− | "key": "type",
| + | |
− | "name": "Тип поиска",
| + | |
− | "description": "",
| + | |
− | "type": "list",
| + | |
− | "items": [
| + | |
− | {
| + | |
− | id: "byphone",
| + | |
− | name: "По номеру телефона"
| + | |
− | },
| + | |
− | {
| + | |
− | id: "byaccount",
| + | |
− | name: "По номеру договора"
| + | |
− | }
| + | |
− | ]
| + | |
− | },
| + | |
− | {
| + | |
− | "key": "data",
| + | |
− | "name": "Значение идентификатора",
| + | |
− | "description": "Номер телефона или номер договора (в соответствии с выбранным типом)",
| + | |
− | "type": "string"
| + | |
− | },
| + | |
− | {...},
| + | |
− | {...}
| + | |
− | ]
| + | |
− | "outputparams": [
| + | |
− | {
| + | |
− | "key": "accountid",
| + | |
− | "name": "Идентификатор клиента",
| + | |
− | "description": "Для дальнейшей передачи на отображение карточки",
| + | |
− | "type": "string"
| + | |
− | },
| + | |
− | {...},
| + | |
− | {...}
| + | |
− | ]
| + | |
− | },
| + | |
− | {
| + | |
− | "key": "createrecord",
| + | |
− | "name": "Создать новое дело",
| + | |
− | "description": "Отображает контактные данные об абоненте (комании или человеке) при входящем/исходящем звонке",
| + | |
− | "connectiontype": "websock",
| + | |
− | "defineuser": true,
| + | |
− | "allowcancel": false,
| + | |
− | "inputparams": [
| + | |
− | {
| + | |
− | "key": "sessionid",
| + | |
− | "name": "Идентификатор сессии звонка",
| + | |
− | "description": "Для связи с номером дела",
| + | |
− | "type": "string"
| + | |
− | }
| + | |
− | ],
| + | |
− | "outputparams": [
| + | |
− | {
| + | |
− | "key": "recordid",
| + | |
− | "name": "Идентификатор созданного дела",
| + | |
− | "description": "Для дальнейшей передачи на отображение карточки",
| + | |
− | "type": "string"
| + | |
− | }
| + | |
− | {...},
| + | |
− | {...}
| + | |
− | ]
| + | |
− | },
| + | |
− | {
| + | |
− | "key": "card_records",
| + | |
− | "name": "Показать карточку «ДЕЛА»",
| + | |
− | "description": "Отображает контактные данные об абоненте (комании или человеке) при входящем/исходящем звонке",
| + | |
− | "connectiontype": "websock",
| + | |
− | "defineuser": true,
| + | |
− | "allowcancel": true,
| + | |
− | "inputparams": [
| + | |
− | {
| + | |
− | "key": "recordid",
| + | |
− | "name": "Номер дела",
| + | |
− | "description": "Номер дела, который ранее был создан при вызове метода «Создать запись дела»",
| + | |
− | "type": "string"
| + | |
− | },
| + | |
− | {
| + | |
− | "key": "accountid",
| + | |
− | "name": "Идентификатор клиента",
| + | |
− | "description": "Идентификатор клиента в базе данных CRM",
| + | |
− | "type": "string"
| + | |
− | },
| + | |
− | {...},
| + | |
− | {...}
| + | |
− | ]
| + | |
− | },
| + | |
− | {...},
| + | |
− | {...}
| + | |
− | ]
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | ------------------------------------------------------------------------------
| + | |
− | <span style="color:green">>>> '''executemethod'''</span>
| + | |
− | | + | |
− | Сообщение-команда из Oktell в CRM на выполнение динамического метода (возможно у конкретного пользователя).
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "executemethod",
| + | |
− | {
| + | |
− | "qid": "4A8E20A1-57F9-4CA6-B4EE-221E2EB00364",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "methodkey": "createrecord",
| + | |
− | "executionid": "25FC81FC-C5D0-40FB-B4E0-882352E12D86",
| + | |
− | "inputparameters": {
| + | |
− | "sessionid": "2A2C48FE-D8B6-4B51-951A-09D31543D000"
| + | |
− | }
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | <span style="color:green"><<< '''methodresult'''</span>
| + | |
− | | + | |
− | Сообщение-результат выполнения динамического метода из CRM в Oktell с возвратом выходных значений. Не отправляется, если исполнение прерывается командой CancelMethod.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "methodresult",
| + | |
− | {
| + | |
− | "qid": "A238110C-6B74-4980-AA23-41402B1E9B0E",
| + | |
− | "methodkey": "createrecord",
| + | |
− | "executionid": "25FC81FC-C5D0-40FB-B4E0-882352E12D86",
| + | |
− | "outputparameters": {
| + | |
− | "recordid": "ADCB1376-BA66-496C-A56E-AB7A7D5A9193"
| + | |
− | }
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | ------------------------------------------------------------------------------
| + | |
− | <span style="color:green">>>> '''cancelmethod'''</span>
| + | |
− | | + | |
− | Сообщение-команда из Oktell на прекращение выполнения ранее запущенного динамического метода.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "cancelmethod",
| + | |
− | {
| + | |
− | "qid": "6ADC3F1E-B1DD-4768-BAF8-3EEB477B2F17",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "methodkey": "card_records",
| + | |
− | "executionid": "25FC81FC-C5D0-40FB-B4E0-882352E12D86",
| + | |
− | "forcecancel": 0
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | ------------------------------------------------------------------------------
| + | |
− | <span style="color:green">>>> '''getavailableforms'''</span>
| + | |
− | | + | |
− | Отправляет из Oktell в CRM сообщение-запрос на возврат доступных карточек CRM.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "getavailableforms",
| + | |
− | {
| + | |
− | "qid": "7A1FF57A-ED91-4033-A42F-1D2AE630450E"
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | <span style="color:green"><<< '''availableforms'''</span>
| + | |
− | | + | |
− | Cообщение-ответ из CRM в Oktell со списком доступных карточек CRM.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "availableforms",
| + | |
− | {
| + | |
− | "qid": "7A1FF57A-ED91-4033-A42F-1D2AE630450E",
| + | |
− | "forms": [
| + | |
− | {
| + | |
− | "key": "B840825C-95BB-49B8-9B30-74D3225701BF",
| + | |
− | "name": "Данные о компании",
| + | |
− | "description": "Отображает контактные данные об абоненте (комании или человеке) при входящем/исходящем звонке",
| + | |
− | "inputparams": [
| + | |
− | {
| + | |
− | "key": "accountid",
| + | |
− | "name": "Код компании",
| + | |
− | "description": "Код компании, который CRM возвращает в поле [accountid] в ответ на запрос данных о компании по номеру телефона",
| + | |
− | "type": "string"
| + | |
− | },
| + | |
− | {
| + | |
− | "key": "page",
| + | |
− | "name": "Активная страница",
| + | |
− | "description": "Открываемая страница формы по умолчанию при открытии карточки",
| + | |
− | "type": "list",
| + | |
− | "items": [
| + | |
− | {
| + | |
− | id: "page1",
| + | |
− | name: "Контактные данные"
| + | |
− | },
| + | |
− | {
| + | |
− | id: "page2",
| + | |
− | name: "История взаимодействия"
| + | |
− | },
| + | |
− | {
| + | |
− | id: "page3",
| + | |
− | name: "Комментарии"
| + | |
− | }
| + | |
− | ]
| + | |
− | {...},
| + | |
− | {...}
| + | |
− | ]
| + | |
− | },
| + | |
− | {...},
| + | |
− | {...}
| + | |
− | ]
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | ------------------------------------------------------------------------------
| + | |
− | <span style="color:green">>>> '''showform'''</span>
| + | |
− | | + | |
− | Сообщение-команда из Oktell в CRM на открытие карточки у конкретного пользователя.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "showform",
| + | |
− | {
| + | |
− | "qid": "5CF770AE-E308-41DA-B89E-7BBCE75BE36F",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "formkey": "B840825C-95BB-49B8-9B30-74D3225701BF",
| + | |
− | "windowid": "9F5D8B1A-8818-41EA-A240-04DA07498C40",
| + | |
− | "inputparameters": {
| + | |
− | "accountid": "05379F49-AB22-4872-B2C2-0D4BA019EA0B",
| + | |
− | "page": "page2"
| + | |
− | }
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− |
| + | |
− | <span style="color:green"><<< '''formresult'''</span>
| + | |
− | | + | |
− | Сообщение-результат из CRM в Oktell при закрытии карточки пользователем с возвратом выходных значений. Не отправляется, если отображение прерывается командой CloseForm
| + | |
− | <pre>
| + | |
− | [
| + | |
− | "formresult",
| + | |
− | {
| + | |
− | "qid": "EC9E1619-AC1B-4071-98B9-30808B9ED0EC",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "formkey": "EC9E1619-AC1B-4071-98B9-30808B9ED0EC",
| + | |
− | "windowid": "25FC81FC-C5D0-40FB-B4E0-882352E12D86",
| + | |
− | "outputparameters": {
| + | |
− | "comment": "блаблабла"
| + | |
− | }
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− |
| + | |
− | ------------------------------------------------------------------------------
| + | |
− | <span style="color:green">>>> '''closeform'''</span>
| + | |
− | | + | |
− | Сообщение-команда из Oktell на закрытие карточки у конкретного пользователя.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "closeform",
| + | |
− | {
| + | |
− | "qid": "FAA1A503-FEC6-4D23-ADA9-2E4FD63F2C96",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "formkey": "B840825C-95BB-49B8-9B30-74D3225701BF",
| + | |
− | "windowid": "9F5D8B1A-8818-41EA-A240-04DA07498C40",
| + | |
− | "forceclose": 0
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | | + | |
− | | + | |
− | ====Конференц-связь====
| + | |
− |
| + | |
− | Запросы из CRM, ответы от Oktell, события из Oktell
| + | |
− | | + | |
− | ---------------------------------------------
| + | |
− | <span style="color:green"><<< '''confhandleevent'''</span>
| + | |
− | | + | |
− | Подписка/отписка на указанную категорию событий сервера конференций.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "confhandleevent",
| + | |
− | {
| + | |
− | "qid": "0423AABC-F20D-4A94-BF2B-94EEEAB1FE40",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3",
| + | |
− | "eventtype": "competitors",
| + | |
− | "handle": true
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | <pre>
| + | |
− | //* eventtype - уровень глубины получаемых сообщений. conferences|competitors|userstates
| + | |
− | // предполагается, что в общем случае инфа идет только о списке конференций (conferences)
| + | |
− | // когда юзер находится в конференции - дополнительно о внутреннем состоянии конференции (competitors)
| + | |
− | // когда юзер настраивает конференцию и выбирает из списка участников для автоматического приглашения - о состояниях всех пользователей (userstates)
| + | |
− | // Подписками управляет сам внешний модуль. Когда потребность уходит - необходимо отписываться, чтобы не заваливать канал порожняком.
| + | |
− | //* handle - true|false - подписаться/отписаться
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | ---------------------------------------------
| + | |
− | <span style="color:green"><<< '''checkcanconnecttogathertoconference'''</span>
| + | |
− | | + | |
− | Запрос из CRM к oktell. В момент коммутации, в случае если во флеш-буфере находится абонент, определяет, существует ли возможность переключиться всем вместе в конференцию единой командой. Это возможно, если один из абонентов - конференция, а другой - линия/пользователь.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "checkcanconnecttogathertoconference",
| + | |
− | {
| + | |
− | "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B"
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− |
| + | |
− | <span style="color:green">>>> '''confcheckcanconnecttogatherresult'''</span>
| + | |
− | | + | |
− | Ответ из Oktell в CRM на запрос возможности совместного переключения в конференцию.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "confcheckcanconnecttogatherresult",
| + | |
− | {
| + | |
− | "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "canconnecttogather": true,
| + | |
− | "inconference": false,
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | ---------------------------------------------
| + | |
− | <span style="color:green"><<< '''connecttogathertoconference'''</span>
| + | |
− | | + | |
− | Запрос из CRM к oktell. Производит совместное переключение текущего онлайн-абонента и флеш-абонента в существующую конференцию.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "connecttogathertoconference",
| + | |
− | {
| + | |
− | "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B"
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | ---------------------------------------------
| + | |
− | <span style="color:green"><<< '''buildconferencefromcommutation'''</span>
| + | |
− | | + | |
− | Запрос из CRM к oktell. Производит преобразование текущей коммутации в конференцию с двумя участниками.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "buildconferencefromcommutation",
| + | |
− | {
| + | |
− | "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B"
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | ---------------------------------------------
| + | |
− | <span style="color:green"><<< '''attachasghost'''</span>
| + | |
− | | + | |
− | Запрос из CRM к Oktell. Производит подключение к указанному каналу/пользователю на прослушку/помощь.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "attachasghost",
| + | |
− | {
| + | |
− | "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "ghostedid": "FE9D6B52-C267-4D39-AC9F-81A0F44713FF",
| + | |
− | "ghostedlogin": "Петров"
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− |
| + | |
− | <span style="color:green">>>> '''attachasghostresult'''</span>
| + | |
− | | + | |
− | Ответ из Oktell в CRM на запрос о подключении к каналу на прослушку.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "attachasghostresult",
| + | |
− | {
| + | |
− | "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "result": 0,
| + | |
− | "error": 52703
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | <pre>
| + | |
− | //* ghostedid - ид пользователя или линии, к которому подцепляться для прослушки
| + | |
− | //* ghostedlogin - логин пользователя, к которому подцепляться для прослушки
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | ---------------------------------------------
| + | |
− | <span style="color:green"><<< '''getconferences'''</span>
| + | |
− | | + | |
− | Запрос из CRM в Oktell на возврат текущих активных конференц-сессий.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "getconferences",
| + | |
− | {
| + | |
− | "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B"
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− |
| + | |
− | <span style="color:green">>>> '''getconferencesresult'''</span>
| + | |
− | | + | |
− | Ответ из Oktell в CRM со списком текущих активных конференц-сессий.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "getconferencesresult",
| + | |
− | {
| + | |
− | "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "conferencelist": [
| + | |
− | {
| + | |
− | "id": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3",
| + | |
− | "room": 884,
| + | |
− | "name": "Планерка",
| + | |
− | "description": "",
| + | |
− | "accessmode": 11,
| + | |
− | "accessmodestr": "Free",
| + | |
− | "isselector": true,
| + | |
− | "record": true,
| + | |
− | "creatorid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "creatorlogin": "Иванов",
| + | |
− | "creatorname": "Иван Иванович Иванов",
| + | |
− | "directorid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
| + | |
− | "directorlogin": "Петров",
| + | |
− | "directorname": "Петр Петрович Петров",
| + | |
− | "timestart": "2011-04-03 17:58:22",
| + | |
− | "canvieweachother": true,
| + | |
− | "everyonecaninvite": true,
| + | |
− | "recordrights": 2,
| + | |
− | "recordrightsstr": "Competitors",
| + | |
− | "isghost": false,
| + | |
− | "ghostmode": 11,
| + | |
− | "ghostmodestr": "Monitor"
| + | |
− | },
| + | |
− | {...},
| + | |
− | {...}
| + | |
− | ]
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | ---------------------------------------------
| + | |
− | <span style="color:green"><<< '''getconferencecompetitors'''</span>
| + | |
− | | + | |
− | Запрос из CRM в Oktell на возврат текущих участников указанной конференции.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "getconferencecompetitors",
| + | |
− | {
| + | |
− | "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "conferenceid": "F16D26E3-2A78-49C2-AFCE-815611A16E22"
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− |
| + | |
− | <span style="color:green">>>> '''getconferencecompetitorsresult'''</span>
| + | |
− | | + | |
− | Ответ из Oktell в CRM со списком текущих участников указанной в запросе конференции.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "getconferencecompetitorsresult",
| + | |
− | {
| + | |
− | "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "conferenceid": "F16D26E3-2A78-49C2-AFCE-815611A16E22",
| + | |
− | "competitorlist": [
| + | |
− | {
| + | |
− | "competitorid": "65AC0E98-64DE-41CF-B609-D00A4C8B07FD",
| + | |
− | "chainid": "91687102-E19F-466C-A0BE-B6C3EEF83EE7",
| + | |
− | "sessionid": "91687102-E19F-466C-A0BE-B6C3EEF83EE7",
| + | |
− | "userid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
| + | |
− | "userlogin": "Петров",
| + | |
− | "username": "Петр Петрович Петров",
| + | |
− | "lineid": "9F93FE9C-0B80-4242-BD24-D338BE8E4FC0",
| + | |
− | "linenumber": "17004",
| + | |
− | "number": "472",
| + | |
− | "intnumber": "472",
| + | |
− | "extnumber": "",
| + | |
− | "confstate": 11,
| + | |
− | "confstatestr": "OnlineTalking",
| + | |
− | "wanttalk": false,
| + | |
− | "isdirector": true,
| + | |
− | "iscreator": false,
| + | |
− | "isghost": false,
| + | |
− | "isghostmajor": false,
| + | |
− | "islifebuoy": false
| + | |
− | },
| + | |
− | {...},
| + | |
− | {...}
| + | |
− | ]
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | ---------------------------------------------
| + | |
− | <span style="color:green"><<< '''getusersforconferenceinvitelist'''</span>
| + | |
− | | + | |
− | Запрос из CRM в Oktell на возврат возможных участников конференции (учетных записей всех пользователей системы с указанием их состояний и присутствия в других конференциях).
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "getusersforconferenceinvitelist",
| + | |
− | {
| + | |
− | "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B"
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | <span style="color:green">>>> '''getusersforconferenceinvitelistresult'''</span>
| + | |
− | | + | |
− | Ответ из Oktell в CRM со списком учетных записей, доступных для приглашения в конференцию с их текущими состояниями и присутствием в других конференциях.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "getusersforconferenceinvitelistresult",
| + | |
− | {
| + | |
− | "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "possiblecompetitorlist": [
| + | |
− | {
| + | |
− | "userid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
| + | |
− | "userlogin": "Петров",
| + | |
− | "username": "Петр Петрович Петров",
| + | |
− | "groupid": "F72C315A-F9EA-471E-A679-D4BA4797DB51",
| + | |
− | "groupname": "Руководство"
| + | |
− | "userstate": 5,
| + | |
− | "userstatestr": "usFullbusy",
| + | |
− | "isredirect": false,
| + | |
− | "islunch": false,
| + | |
− | "inconference": true,
| + | |
− | "conferenceid": "F16D26E3-2A78-49C2-AFCE-815611A16E22",
| + | |
− | "confstate": 11,
| + | |
− | "confstatestr": "OnlineTalking"
| + | |
− | },
| + | |
− | {...},
| + | |
− | {...}
| + | |
− | ],
| + | |
− | "result": 1
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | ---------------------------------------------
| + | |
− | <span style="color:green"><<< '''createnewconference'''</span>
| + | |
− | | + | |
− | Запрос из CRM в Oktell на создание новой конференции. Указывает параметры самой конференц-сессии, список участников для приглашения на старте.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "createnewconference",
| + | |
− | {
| + | |
− | "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "conference": {
| + | |
− | "id": "17A3F9D2-040C-471B-A4F5-6A13BEB27667",
| + | |
− | "room": 578
| + | |
− | "name": "Совещание с заказчиком",
| + | |
− | "description": "",
| + | |
− | "accessmode": "free",
| + | |
− | "isselector": true,
| + | |
− | "record": true,
| + | |
− | "recordrights": "selected",
| + | |
− | "everyonecaninvite": true,
| + | |
− | "canvieweachother": true
| + | |
− | },
| + | |
− | "competitors": [
| + | |
− | {
| + | |
− | "userid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
| + | |
− | "userlogin": "Петров",
| + | |
− | "lineid": "F93FE9C-0B80-4242-BD24-D338BE8E4FC0",
| + | |
− | "intnumber": "472",
| + | |
− | "extnumber": "89047289889",
| + | |
− | "cantalk": true
| + | |
− | },
| + | |
− | {...},
| + | |
− | {...}
| + | |
− | ],
| + | |
− | "recordusers": [
| + | |
− | {
| + | |
− | "userid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
| + | |
− | "userlogin": "Петров",
| + | |
− | },
| + | |
− | {...},
| + | |
− | {...}
| + | |
− | ]
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | <span style="color:green">>>> '''createnewconferenceresult'''</span>
| + | |
− | | + | |
− | Ответ из Oktell в CRM с результатом исполнения команды на создание конференции.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "createnewconferenceresult",
| + | |
− | {
| + | |
− | "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "result": 0,
| + | |
− | "error": 1,
| + | |
− | "errormsg": "alreadyexists",
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | <pre>
| + | |
− | //* conference:accessmode - free|shared|closed
| + | |
− | //* conference:recordrights - director|competitors|selected
| + | |
− | //* competitors - список автоматически приглашаемых участников. Допускается/следует указывать только один параметр из набора {userid|userlogin, lineid, intnumber, extnumber}
| + | |
− | //* список recordusers имеет смысл только когда conference:recordrights=selected.
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | ---------------------------------------------
| + | |
− | <span style="color:green"><<< '''setupexistingconference'''</span>
| + | |
− | | + | |
− | Запрос из CRM в Oktell от имени управляющего конференции на изменение параметров указанной конференции.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "setupexistingconference",
| + | |
− | {
| + | |
− | "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "conference": {
| + | |
− | "id": "17A3F9D2-040C-471B-A4F5-6A13BEB27667",
| + | |
− | "room": 578
| + | |
− | "name": "Совещание с заказчиком",
| + | |
− | "description": "",
| + | |
− | "accessmode": "free",
| + | |
− | "isselector": true,
| + | |
− | "recordrights": "selected",
| + | |
− | "everyonecaninvite": true,
| + | |
− | "canvieweachother": true,
| + | |
− | "ghostmode": "monitor"
| + | |
− | },
| + | |
− | "recordusers": [
| + | |
− | {
| + | |
− | "userid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
| + | |
− | "userlogin": "Петров",
| + | |
− | },
| + | |
− | {...},
| + | |
− | {...}
| + | |
− | ]
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− |
| + | |
− | <span style="color:green">>>> '''setupexistingconferenceresult'''</span>
| + | |
− | | + | |
− | Ответ из Oktell в CRM с результатом исполнения команды на изменение параметров конференции.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "setupexistingconferenceresult",
| + | |
− | {
| + | |
− | "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "result": 0,
| + | |
− | "error": 1,
| + | |
− | "errormsg": "notfound",
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | <pre>
| + | |
− | //* conference:accessmode - free|shared|closed
| + | |
− | //* conference:recordrights - director|competitors|selected
| + | |
− | //* conference:ghostmode - monitor|help|talk
| + | |
− | //* список recordusers имеет смысл только когда conference:recordrights=selected.
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | ---------------------------------------------
| + | |
− | <span style="color:green"><<< '''getconferenceinfo'''</span>
| + | |
− | | + | |
− | Запрос из CRM в Oktell на возврат текущих параметров указанной конференции.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "getconferenceinfo",
| + | |
− | {
| + | |
− | "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3"
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− |
| + | |
− | <span style="color:green">>>> '''getconferenceinforesult'''</span>
| + | |
− | | + | |
− | Ответ из Oktell в CRM. Возвращает текущие настройки указанной в запросе конференции, текущих ее участников и их состояния.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "getconferenceinforesult",
| + | |
− | {
| + | |
− | "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "result": 1,
| + | |
− | "conference": {
| + | |
− | "id": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3",
| + | |
− | "room": 884,
| + | |
− | "name": "Планерка",
| + | |
− | "description": "",
| + | |
− | "accessmode": 11,
| + | |
− | "accessmodestr": "Free",
| + | |
− | "isselector": true,
| + | |
− | "record": true,
| + | |
− | "creatorid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "creatorlogin": "Иванов",
| + | |
− | "creatorname": "Иван Иванович Иванов",
| + | |
− | "directorid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
| + | |
− | "directorlogin": "Петров",
| + | |
− | "directorname": "Петр Петрович Петров",
| + | |
− | "timestart": "2011-04-03 17:58:22",
| + | |
− | "canvieweachother": true,
| + | |
− | "everyonecaninvite": true,
| + | |
− | "recordrights": 2,
| + | |
− | "recordrightsstr": "Competitors",
| + | |
− | "isghost": false,
| + | |
− | "ghostmode": 11,
| + | |
− | "ghostmodestr": "Monitor"
| + | |
− | },
| + | |
− | "competitors": [
| + | |
− | {
| + | |
− | "userid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
| + | |
− | "userlogin": "Петров",
| + | |
− | "lineid": "F93FE9C-0B80-4242-BD24-D338BE8E4FC0",
| + | |
− | "intnumber": "472",
| + | |
− | "extnumber": "89047289889",
| + | |
− | "cantalk": true
| + | |
− | },
| + | |
− | {...},
| + | |
− | {...}
| + | |
− | ],
| + | |
− | "recordusers": [
| + | |
− | {
| + | |
− | "userid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
| + | |
− | "userlogin": "Петров",
| + | |
− | },
| + | |
− | {...},
| + | |
− | {...}
| + | |
− | ]
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | ---------------------------------------------
| + | |
− | <span style="color:green"><<< '''stopconference'''</span>
| + | |
− | | + | |
− | Запрос из CRM в Oktell от имени управляющего конференции на прекращение указанной конференции.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "stopconference",
| + | |
− | {
| + | |
− | "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3"
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− |
| + | |
− |
| + | |
− | <span style="color:green">>>> '''stopconferenceresult'''</span>
| + | |
− | | + | |
− | Ответ из Oktell в CRM с результатом выполнения запроса на прекращение указанной конференции.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "stopconferenceresult",
| + | |
− | {
| + | |
− | "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3",
| + | |
− | "result": 0,
| + | |
− | "error": 1,
| + | |
− | "errormsg": "accessdenied"
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− |
| + | |
− | ---------------------------------------------
| + | |
− | <span style="color:green"><<< '''confsetvoiceparams'''</span>
| + | |
− | | + | |
− | Запрос из CRM в Oktell от имени управляющего конференции на изменение голосовых свойств канала указанного участника указанной конференции.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "confsetvoiceparams",
| + | |
− | {
| + | |
− | "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3",
| + | |
− | "competitor": {
| + | |
− | "competitorid": "249995A5-8A64-49CC-87CA-D797FCFB7782",
| + | |
− | "userid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
| + | |
− | "userlogin": "Петров",
| + | |
− | "lineid": "9F93FE9C-0B80-4242-BD24-D338BE8E4FC0",
| + | |
− | "cantalk": true,
| + | |
− | "canlisten": true,
| + | |
− | "ghosthelp": false
| + | |
− | }
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− |
| + | |
− | <span style="color:green">>>> '''confsetvoiceparamsresult'''</span>
| + | |
− | | + | |
− | Ответ из Oktell в CRM с результатом выполнения запроса на изменение голосовых свойств канала.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "confsetvoiceparamsresult",
| + | |
− | {
| + | |
− | "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3",
| + | |
− | "result": 0,
| + | |
− | "error": 1,
| + | |
− | "errormsg": "accessdenied"
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | <pre>
| + | |
− | //* competitor:cantalk - может ли говорить
| + | |
− | //* competitor:canlisten - может ли слышать
| + | |
− | //* competitor:ghosthelp - в режиме прослушки:помощи для одного из подслушиваемых каналов - может ли слышать подключившегося супервизора
| + | |
− | //* достаточно/следует указывать только один из набора определяющих участника идентификаторов {competitorid, userid|userlogin, lineid}
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | ---------------------------------------------
| + | |
− | <span style="color:green"><<< '''confsetwanttalk'''</span>
| + | |
− | | + | |
− | Запрос из CRM в Oktell от имени простого бесправного участника селекторного совещания на взятие голоса (сообщение для управляющего).
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "confsetwanttalk",
| + | |
− | {
| + | |
− | "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3",
| + | |
− | "wanttalk": true
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− |
| + | |
− | <span style="color:green">>>> '''confsetwanttalkresult'''</span>
| + | |
− | | + | |
− | Ответ из Oktell в CRM с результатом выполнения запроса на взятие голоса.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "confsetwanttalkresult",
| + | |
− | {
| + | |
− | "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3",
| + | |
− | "result": 1
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | ---------------------------------------------
| + | |
− | <span style="color:green"><<< '''confsetghostmode'''</span>
| + | |
− | | + | |
− | Запрос из CRM в Oktell от имени прослушивающего супервизора на изменение режима конференц-помощи.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "confsetghostmode",
| + | |
− | {
| + | |
− | "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3",
| + | |
− | "ghostmode": "help",
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− |
| + | |
− | <span style="color:green">>>> '''confsetghostmoderesult'''</span>
| + | |
− | | + | |
− | Ответ из Oktell в CRM с результатом выполнения запроса на изменение режима конференц-помощи.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "confsetghostmoderesult",
| + | |
− | {
| + | |
− | "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3",
| + | |
− | "result": 1
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | ---------------------------------------------
| + | |
− | <span style="color:green"><<< '''exitconference'''</span>
| + | |
− | | + | |
− | Запрос из CRM в Oktell от имени любого участника на выход из конференции. В канал подается отбой. Альтернативой является положение трубки на телефоне.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "exitconference",
| + | |
− | {
| + | |
− | "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3"
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− |
| + | |
− | <span style="color:green">>>> '''exitconferenceresult'''</span>
| + | |
− | | + | |
− | Ответ из Oktell в CRM с результатом выполнения запроса на выход из конференции.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "exitconferenceresult",
| + | |
− | {
| + | |
− | "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3",
| + | |
− | "result": 1
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | ---------------------------------------------
| + | |
− | <span style="color:green"><<< '''confdisconnectcompetitor'''</span>
| + | |
− | | + | |
− | Запрос из CRM в Oktell от имени управляющего конференцией на вывод из конференции указанного участника.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "confdisconnectcompetitor",
| + | |
− | {
| + | |
− | "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3",
| + | |
− | "competitor": {
| + | |
− | "competitorid": "249995A5-8A64-49CC-87CA-D797FCFB7782",
| + | |
− | "userid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
| + | |
− | "userlogin": "Петров",
| + | |
− | "lineid": "9F93FE9C-0B80-4242-BD24-D338BE8E4FC0",
| + | |
− | }
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− |
| + | |
− | | + | |
− | <span style="color:green">>>> '''confdisconnectcompetitorresult'''</span>
| + | |
− | | + | |
− | Ответ из Oktell в CRM с результатом выполнения запроса на вывод указанного в запросе участника.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "confdisconnectcompetitorresult",
| + | |
− | {
| + | |
− | "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3",
| + | |
− | "result": 1
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | ---------------------------------------------
| + | |
− | <span style="color:green"><<< '''enterconference'''</span>
| + | |
− | | + | |
− | Запрос из CRM в Oktell на вход в конференцию. При необходимости осуществляет запрос на вход у управляющего. Прерывание может производиться командой exitconference
| + | |
− | <pre>
| + | |
− | [
| + | |
− | "enterconference",
| + | |
− | {
| + | |
− | "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3"
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− |
| + | |
− | <span style="color:green">>>> '''enterconferenceresult'''</span>
| + | |
− | | + | |
− | Ответ из Oktell в CRM с результатом выполнения запроса на вход в конференцию.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "enterconferenceresult",
| + | |
− | {
| + | |
− | "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3",
| + | |
− | "result": 1
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | ---------------------------------------------
| + | |
− | <span style="color:green"><<< '''confdisconnectcompetitor'''</span>
| + | |
− | | + | |
− | Запрос-команда из CRM в Oktell от имени управляющего конференцией на разрешение/запрет входа в конференцию указанному участнику, ранее запросившему право входа.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "confpermitdenyentrance",
| + | |
− | {
| + | |
− | "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3",
| + | |
− | "competitor": {
| + | |
− | "competitorid": "249995A5-8A64-49CC-87CA-D797FCFB7782",
| + | |
− | "userid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
| + | |
− | "userlogin": "Петров",
| + | |
− | "lineid": "9F93FE9C-0B80-4242-BD24-D338BE8E4FC0",
| + | |
− | "permit": true
| + | |
− | }
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− |
| + | |
− | | + | |
− | <span style="color:green">>>> '''confpermitdenyentranceresult'''</span>
| + | |
− | | + | |
− | Ответ из Oktell в CRM с результатом выполнения запроса на разрешение/запрет входа в конференцию участнику.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "confpermitdenyentranceresult",
| + | |
− | {
| + | |
− | "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3",
| + | |
− | "result": 1
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | ---------------------------------------------
| + | |
− | <span style="color:green"><<< '''invitetoconference'''</span>
| + | |
− | | + | |
− | Запрос из CRM в Oktell от имени управляющего конференцией или любого другого участника на приглашение в конференцию стороннего абонента (пользователя, линию, абонента по внутреннему/внешнему номеру).
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "invitetoconference",
| + | |
− | {
| + | |
− | "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3",
| + | |
− | "competitors": [
| + | |
− | {
| + | |
− | "userid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
| + | |
− | "userlogin": "Петров",
| + | |
− | "lineid": "F93FE9C-0B80-4242-BD24-D338BE8E4FC0",
| + | |
− | "intnumber": "472",
| + | |
− | "extnumber": "89047289889",
| + | |
− | "cantalk": true
| + | |
− | },
| + | |
− | {...},
| + | |
− | {...}
| + | |
− | ]
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− |
| + | |
− | <span style="color:green">>>> '''invitetoconference'''</span>
| + | |
− | | + | |
− | Ответ из Oktell в CRM с результатом выполнения запроса на приглашение нового участника конференции.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "invitetoconference",
| + | |
− | {
| + | |
− | "qid": "4F78270D-B35F-48A9-B88A-557B1AA97A1B",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "conferenceid": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3",
| + | |
− | "result": 1
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | <pre>
| + | |
− | //* competitors - список автоматически приглашаемых участников. Допускается/следует указывать только один параметр из набора {userid|userlogin, lineid, intnumber, extnumber}
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | | + | |
− | | + | |
− | ====События из Oktell, касающиеся конференций====
| + | |
− | | + | |
− | ---------------------------------------------
| + | |
− | <span style="color:green">>>> '''conflistchanged'''</span>
| + | |
− | | + | |
− | Событие из Oktell в CRM об изменении списка текущих активных конференций.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "conflistchanged",
| + | |
− | {
| + | |
− | "qid": "2A6380B4-ADD4-4CD3-9A5C-9483A3B3723A",
| + | |
− | "conferencelist": [
| + | |
− | {
| + | |
− | "id": "519C0DDA-8DDF-4212-9AE1-9E4047AB4BE3",
| + | |
− | "room": 884,
| + | |
− | "name": "Планерка",
| + | |
− | "description": "",
| + | |
− | "accessmode": 11,
| + | |
− | "accessmodestr": "Free",
| + | |
− | "isselector": true,
| + | |
− | "record": true,
| + | |
− | "creatorid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "creatorlogin": "Иванов",
| + | |
− | "creatorname": "Иван Иванович Иванов",
| + | |
− | "directorid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
| + | |
− | "directorlogin": "Петров",
| + | |
− | "directorname": "Петр Петрович Петров",
| + | |
− | "timestart": "2011-04-03 17:58:22",
| + | |
− | "canvieweachother": true,
| + | |
− | "everyonecaninvite": true,
| + | |
− | "recordrights": 2,
| + | |
− | "recordrightsstr": "Competitors",
| + | |
− | "isghost": false,
| + | |
− | "ghostmode": 11,
| + | |
− | "ghostmodestr": "Monitor"
| + | |
− | },
| + | |
− | {...},
| + | |
− | {...}
| + | |
− | ]
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− |
| + | |
− | ---------------------------------------------
| + | |
− | <span style="color:green">>>> '''"conf***"'''</span>
| + | |
− | | + | |
− | Другие событие из Oktell в CRM об изменениях на сервере конференций. Общий список возможных событий приведен ниже.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "conf***",
| + | |
− | {
| + | |
− | "qid": "2A6380B4-ADD4-4CD3-9A5C-9483A3B3723A",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "eventinfo": {
| + | |
− | ***
| + | |
− | }
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | <pre>
| + | |
− | //* confparamschanged,
| + | |
− | //* confcompositionchanged,
| + | |
− | //* confcompetitorstatechanged,
| + | |
− | //* confentrancedenied,
| + | |
− | //* confentrancepermitted,
| + | |
− | //* confentrancerequest,
| + | |
− | //* confnotifyinvite,
| + | |
− | //* confpossiblecompetitorstatechanged
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | | + | |
− | | + | |
− | ====Состояния пользователей и линий====
| + | |
− | | + | |
− | -------------------------------------------------------------------
| + | |
− | <span style="color:green"><<< '''getuserstate'''</span>
| + | |
− | | + | |
− | Запрос из CRM в Oktell состояния указанного пользователя системы.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "getuserstate",
| + | |
− | {
| + | |
− | "qid": "C13CE714-A502-4699-BE1A-9C4DB28BB70A",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− |
| + | |
− | <span style="color:green">>>> '''getuserstateresult'''</span>
| + | |
− | | + | |
− | Ответ из Oktell в CRM с полным состоянием указанного в запросе пользователя системы.
| + | |
− | <pre>
| + | |
− | [
| + | |
− | "getuserstateresult",
| + | |
− | {
| + | |
− | "qid": "C13CE714-A502-4699-BE1A-9C4DB28BB70A",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "userstate": 5,
| + | |
− | "userstateid": 5,
| + | |
− | "userstatestr": "usFullbusy",
| + | |
− | "onredirect": true,
| + | |
− | "onlunch": false,
| + | |
− | "oncallcenter": false
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | -------------------------------------------------------------------
| + | |
− | <span style="color:green"><<< '''checkuserintask'''</span>
| + | |
− | | + | |
− | Запрос из CRM в Oktell о присутствии указанного пользователя в задачах коллцентра.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "checkuserintask",
| + | |
− | {
| + | |
− | "qid": "C13CE714-A502-4699-BE1A-9C4DB28BB70A",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− |
| + | |
− | <span style="color:green">>>> '''checkuserintaskresult'''</span>
| + | |
− | | + | |
− | Ответ из Oktell в CRM с ответом на запрос присутствия указанного в запросе пользователя в задачах коллчентра. Описание задачи в случае положительного ответа.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "checkuserintaskresult",
| + | |
− | {
| + | |
− | "qid": "C13CE714-A502-4699-BE1A-9C4DB28BB70A",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "intask": true,
| + | |
− | "task": {,
| + | |
− | "id": "1D565B41-1D16-46DE-B2C5-CF55ED5279F0",
| + | |
− | "name": "Исходящий обзвон",
| + | |
− | "code": "af-2329",
| + | |
− | "direction": "outgoing",
| + | |
− | "contacttype": 0,
| + | |
− | "contacttypestr": "Call",
| + | |
− | "projectid": "E6ADBA0D-C9FF-40F2-96FF-6D2F455F9D5A"
| + | |
− | }
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | -------------------------------------------------------------------
| + | |
− | <span style="color:green"><<< '''getcurrentlinestate'''</span>
| + | |
− | | + | |
− | Запрос из CRM в Oktell состояния телефонной линии указанного пользователя.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "getcurrentlinestate",
| + | |
− | {
| + | |
− | "qid": "C13CE714-A502-4699-BE1A-9C4DB28BB70A",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− |
| + | |
− | <span style="color:green">>>> '''getcurrentlinestateresult'''</span>
| + | |
− | | + | |
− | Ответ из Oktell в CRM с полным состоянием телефонной линии указанного в запросе пользователя системы.
| + | |
− | <pre>
| + | |
− | [
| + | |
− | "getcurrentlinestateresult",
| + | |
− | {
| + | |
− | "qid": "C13CE714-A502-4699-BE1A-9C4DB28BB70A",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "hasline": true,
| + | |
− | "lineid": "866692FC-DA08-459D-BAA1-428F9BA6A0D1",
| + | |
− | "linenumber": "17012",
| + | |
− | "linetype": 5,
| + | |
− | "linetypestr": "ltIntIP",
| + | |
− | "linestate": 32,
| + | |
− | "linestatestr": "lsCommutated"
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | -------------------------------------------------------------------
| + | |
− | <span style="color:green"><<< '''getcurrentlinestate'''</span>
| + | |
− | | + | |
− | Запрос из CRM в Oktell состояния очереди указанного пользователя.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "getcurrentqueue",
| + | |
− | {
| + | |
− | "qid": "C13CE714-A502-4699-BE1A-9C4DB28BB70A",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− |
| + | |
− | <span style="color:green">>>> '''getcurrentlinestateresult'''</span>
| + | |
− | | + | |
− | Ответ из Oktell в CRM с состоянием очереди указанного в запросе пользователя системы.
| + | |
− | <pre>
| + | |
− | [
| + | |
− | "getcurrentqueueresult",
| + | |
− | {
| + | |
− | "qid": "C13CE714-A502-4699-BE1A-9C4DB28BB70A",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "queue": [
| + | |
− | {
| + | |
− | "objectid": "723114EE-2ABF-4806-9BC6-FBB532C31B44",
| + | |
− | "objecttype": 0,
| + | |
− | "objecttypestr": "qotQueueLogic",
| + | |
− | "queuesource": 1,
| + | |
− | "queuesourcestr": "qsLineLogic",
| + | |
− | "queuepriority": 9,
| + | |
− | "srcelementid": "9F93FE9C-0B80-4242-BD24-D338BE8E4FC0",
| + | |
− | "srclineid": "9F93FE9C-0B80-4242-BD24-D338BE8E4FC0",
| + | |
− | "srclinenumber": "17004",
| + | |
− | "startqueuetime": "2011-04-05 15:02:28",
| + | |
− | "lenqueue": 72,
| + | |
− | "managedlineid": "9F93FE9C-0B80-4242-BD24-D338BE8E4FC0",
| + | |
− | "managedlinenumber": "17004",
| + | |
− | "callerid": "472",
| + | |
− | "calledid": "479",
| + | |
− | "isuser": true,
| + | |
− | "userid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
| + | |
− | "userlogin": "Петров",
| + | |
− | "username": "Петр Петрович Петров",
| + | |
− | "department": "Руководство",
| + | |
− | "chainid": "02B99AD3-C954-4FD3-B07D-DFEDD83C0BF5",
| + | |
− | "istask": true,
| + | |
− | "taskid": "95575C37-5FDE-412C-8F42-36D55B1EC6BB",
| + | |
− | "taskname": "Входящая кампания",
| + | |
− | "taskdirection": "incoming",
| + | |
− | "tasklistid": "7D9A3E9C-0AD3-4C68-BC02-4EBFE3684507",
| + | |
− | "tasklistinfo": [
| + | |
− | {
| + | |
− | "key": "Название организации",
| + | |
− | "value": "ООО МДГХ"
| + | |
− | },
| + | |
− | {...},
| + | |
− | {...}
| + | |
− | ]
| + | |
− | },
| + | |
− | {...},
| + | |
− | {...}
| + | |
− | ]
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | -------------------------------------------------------------------
| + | |
− | <span style="color:green"><<< '''getcallingoutabonentinfo'''</span>
| + | |
− | | + | |
− | Запрос из CRM в Oktell на возврат информации об абоненте, которому осуществляется исходящий вызов от имени указанного пользователя.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "getcallingoutabonentinfo",
| + | |
− | {
| + | |
− | "qid": "AF4B98AA-51D8-4944-B10C-04B0DE1E1BBC",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B"
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− |
| + | |
− | <span style="color:green">>>> '''getcallingoutabonentinforesult'''</span>
| + | |
− | | + | |
− | Ответ из Oktell в CRM. Возвращает информацию об абоненте, которому осуществляется исходящий вызов от имени указанного в запросе пользователя.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "getcallingoutabonentinforesult",
| + | |
− | {
| + | |
− | "qid": "AF4B98AA-51D8-4944-B10C-04B0DE1E1BBC",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "chainid": "19ADB2C3-A0B5-47AB-AB2C-CBE15CF98968",
| + | |
− | "number": "89032728973",
| + | |
− | "name": "",
| + | |
− | "lineid": "98F670D2-20E2-4883-B45E-42CDE1F3365F",
| + | |
− | "linenumber": "13005"
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | | + | |
− | | + | |
− | ====Контент звонка====
| + | |
− | | + | |
− | -------------------------------------------------------------------
| + | |
− | <span style="color:green"><<< '''getchaincontent'''</span>
| + | |
− | | + | |
− | Запрос из CRM в Oktell на возврат контента текущей сессии, в которой участвует линия указанного пользователя. Кто инициировал звонок, когда, с кем коммутировался, кто переключал, куда, на кого, когда, были ли комментарии какие-то установлены в контент...
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "getchaincontent",
| + | |
− | {
| + | |
− | "qid": "C13CE714-A502-4699-BE1A-9C4DB28BB70A",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B"
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− |
| + | |
− | <span style="color:green">>>> '''getchaincontentresult'''</span>
| + | |
− | | + | |
− | Ответ из Oktell в CRM с контентом текущей сессии указанного в запросе пользователя.
| + | |
− | <pre>
| + | |
− | [
| + | |
− | "getchaincontentresult",
| + | |
− | {
| + | |
− | "qid": "C13CE714-A502-4699-BE1A-9C4DB28BB70A",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "chainid": "19ADB2C3-A0B5-47AB-AB2C-CBE15CF98968",
| + | |
− | "result": 1,
| + | |
− | "content": {
| + | |
− | "chainid": "19ADB2C3-A0B5-47AB-AB2C-CBE15CF98968",
| + | |
− | "createtime": "2011-04-06 20:38:41",
| + | |
− | "customfield": "трололололо",
| + | |
− | "trace": [
| + | |
− | {
| + | |
− | "contentelementtype": "call",
| + | |
− | "pbxdirection": "internal",
| + | |
− | "objectid": "723114EE-2ABF-4806-9BC6-FBB532C31B44",
| + | |
− | "objecttype": 0,
| + | |
− | "objecttypestr": "qotQueueLogic",
| + | |
− | "queuesource": 5,
| + | |
− | "queuesourcestr": "qsIncomingTask",
| + | |
− | "queuepriority": 7,
| + | |
− | "srcelementid": "98F670D2-20E2-4883-B45E-42CDE1F3365F",
| + | |
− | "srclineid": "98F670D2-20E2-4883-B45E-42CDE1F3365F",
| + | |
− | "srclinenumber": "13005",
| + | |
− | "startqueuetime": "2011-04-06 20:38:41",
| + | |
− | "managedlineid": "9F93FE9C-0B80-4242-BD24-D338BE8E4FC0",
| + | |
− | "managedlinenumber": "17004",
| + | |
− | "callerid": "89048928835",
| + | |
− | "calledid": "4959211586",
| + | |
− | "isuser": false,
| + | |
− | "department": "",
| + | |
− | "istask": true,
| + | |
− | "taskid": "95575C37-5FDE-412C-8F42-36D55B1EC6BB",
| + | |
− | "taskname": "Входящая кампания",
| + | |
− | "taskdirection": "incoming",
| + | |
− | "tasklistid": "7D9A3E9C-0AD3-4C68-BC02-4EBFE3684507",
| + | |
− | "tasklistinfo": [
| + | |
− | {
| + | |
− | "key": "Название организации",
| + | |
− | "value": "ООО МДГХ"
| + | |
− | }
| + | |
− | ]
| + | |
− | },
| + | |
− | {
| + | |
− | "contentelementtype": "commutation",
| + | |
− | "commutationid": "58D76504-DA2D-42C2-9016-1089A94DC1BF",
| + | |
− | "timestart": "2011-04-06 20:40:01",
| + | |
− | "timeanswer": "2011-04-06 20:40:04",
| + | |
− | "connectiontype": 5,
| + | |
− | "connectiontypestr": "ctOuterInner",
| + | |
− | "isrecorded": true,
| + | |
− | "customfield": "траляляляля",
| + | |
− | "alineid": "98F670D2-20E2-4883-B45E-42CDE1F3365F",
| + | |
− | "alinenumber": "13005",
| + | |
− | "anumberdialed": "4959211586",
| + | |
− | "aoutnumber": "89048928835",
| + | |
− | "aisuser": false,
| + | |
− | "atext": "ООО «СДЗЦ» (89048928835)",
| + | |
− | "blineid": "9F93FE9C-0B80-4242-BD24-D338BE8E4FC0",
| + | |
− | "blinenumber": "17004",
| + | |
− | "bnumberdialed": "",
| + | |
− | "boutnumber": "472",
| + | |
− | "bisuser": true,
| + | |
− | "buserid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
| + | |
− | "buserlogin": "Петров",
| + | |
− | "busername": "Петр Петрович Петров",
| + | |
− | "btext": "Петр Петрович Петров",
| + | |
− | "timestop": "2011-04-06 20:42:12",
| + | |
− | "length": 128.32,
| + | |
− | "stopside": "a",
| + | |
− | "stopreason": 2,
| + | |
− | "stopreasonstr": "scrAbonentHangOff"
| + | |
− | },
| + | |
− | {...},
| + | |
− | {...}
| + | |
− | ]
| + | |
− | }
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | <pre>
| + | |
− | * trace:contentelementtype:
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | -------------------------------------------------------------------
| + | |
− | <span style="color:green"><<< '''setchaincontentcustomfield'''</span>
| + | |
− | | + | |
− | Запрос из CRM в Oktell на установку комментария в контент текущей сессии, в которой участвует канал указанного пользователя.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "setchaincontentcustomfield",
| + | |
− | {
| + | |
− | "qid": "C13CE714-A502-4699-BE1A-9C4DB28BB70A",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "customfield": "фывафыдвлаожфыдлвао"
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− |
| + | |
− | <span style="color:green">>>> '''setchaincontentcustomfieldresult'''</span>
| + | |
− | | + | |
− | Ответ из Oktell в CRM с результатом установки комментария в контент текущей сессии, в которой участвует канал указанного в запросе пользователя.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "setchaincontentcustomfieldresult",
| + | |
− | {
| + | |
− | "qid": "C13CE714-A502-4699-BE1A-9C4DB28BB70A",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "chainid": "19ADB2C3-A0B5-47AB-AB2C-CBE15CF98968",
| + | |
− | "result": 1
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | -------------------------------------------------------------------
| + | |
− | <span style="color:green"><<< '''setchaincontentcustomfield'''</span>
| + | |
− | | + | |
− | Запрос из CRM в Oktell на возврат комментария из контента текущей сессии, в которой участвует канал указанного пользователя.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "getchaincontentcustomfield",
| + | |
− | {
| + | |
− | "qid": "AF4B98AA-51D8-4944-B10C-04B0DE1E1BBC",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− |
| + | |
− | <span style="color:green">>>> '''getchaincontentcustomfieldresult'''</span>
| + | |
− | | + | |
− | Ответ из Oktell в CRM. Возвращает комментарий из контента текущей сессии, в которой участвует канал указанного в запросе пользователя.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "getchaincontentcustomfieldresult",
| + | |
− | {
| + | |
− | "qid": "AF4B98AA-51D8-4944-B10C-04B0DE1E1BBC",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "chainid": "19ADB2C3-A0B5-47AB-AB2C-CBE15CF98968",
| + | |
− | "customfield": "фывафыдвлаожфыдлвао",
| + | |
− | "result": 1
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | | + | |
− | | + | |
− | ====Номерной план====
| + | |
− | | + | |
− | -------------------------------------------------------------------
| + | |
− | <span style="color:green"><<< '''getusersbynumbers'''</span>
| + | |
− | | + | |
− | Запрос из CRM в Oktell на возврат информации о пользователях системы по указанным внутренним номерам от имени указанного пользователя.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "getusersbynumbers",
| + | |
− | {
| + | |
− | "qid": "20D0F23E-F26A-4BD9-BE65-B6F76D91880A",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "numbers": [
| + | |
− | "883",
| + | |
− | "470",
| + | |
− | "472",
| + | |
− | "485"
| + | |
− | ]
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− |
| + | |
− | <span style="color:green">>>> '''getusersbynumbersresult'''</span>
| + | |
− | | + | |
− | Ответ из Oktell в CRM. Возвращает информацию о пользователях, которые обнаруживаются системой при парсинге указанных в запросе внутренних номеров.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "getusersbynumbersresult",
| + | |
− | {
| + | |
− | "qid": "20D0F23E-F26A-4BD9-BE65-B6F76D91880A",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "result": 1,
| + | |
− | "users": [
| + | |
− | {
| + | |
− | "userid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
| + | |
− | "userlogin": "Петров",
| + | |
− | "username": "Петр Петрович Петров",
| + | |
− | },
| + | |
− | {
| + | |
− | "userid": "2AC66E31-ADF0-4F84-A589-417A5A599EEA",
| + | |
− | "userlogin": "Сидоров",
| + | |
− | "username": "Сидор Сидорович Сидоров"
| + | |
− | }
| + | |
− | ]
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | -------------------------------------------------------------------
| + | |
− | <span style="color:green"><<< '''getitemsbynumbers'''</span>
| + | |
− | | + | |
− | Запрос из CRM в Oktell на возврат информации о пользователях и линиях системы по указанным внутренним номерам от имени указанного пользователя.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "getitemsbynumbers",
| + | |
− | {
| + | |
− | "qid": "0A8B1B7C-E4DD-47FC-A17F-A9200602A8DE",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "numbers": [
| + | |
− | "883",
| + | |
− | "470",
| + | |
− | "472",
| + | |
− | "485"
| + | |
− | ]
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− |
| + | |
− | <span style="color:green">>>> '''getitemsbynumbersresult'''</span>
| + | |
− | | + | |
− | Ответ из Oktell в CRM. Возвращает информацию о пользователях и линиях, которые обнаруживаются системой при парсинге указанных в запросе внутренних номеров.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "getitemsbynumbersresult",
| + | |
− | {
| + | |
− | "qid": "0A8B1B7C-E4DD-47FC-A17F-A9200602A8DE",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "result": 1,
| + | |
− | "items": [
| + | |
− | {
| + | |
− | "type": "user",
| + | |
− | "userid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
| + | |
− | "userlogin": "Петров",
| + | |
− | "username": "Петр Петрович Петров",
| + | |
− | },
| + | |
− | {
| + | |
− | "type": "user",
| + | |
− | "userid": "2AC66E31-ADF0-4F84-A589-417A5A599EEA",
| + | |
− | "userlogin": "Сидоров",
| + | |
− | "username": "Сидор Сидорович Сидоров"
| + | |
− | },
| + | |
− | {
| + | |
− | "type": "line",
| + | |
− | "lineid": "50203B8C-8079-4B52-8D24-ECDA4BF7877A",
| + | |
− | "linenumber": "17025"
| + | |
− | }
| + | |
− | ]
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | -------------------------------------------------------------------
| + | |
− | <span style="color:green"><<< '''getsystemnumberbyuser'''</span>
| + | |
− | | + | |
− | Запрос из CRM в Oktell на возврат системного внутреннего номера, по которому может быть произведен вызов указанного в суб-параметре пользователя от имени указанного пользователя.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "getsystemnumberbyuser",
| + | |
− | {
| + | |
− | "qid": "0A8B1B7C-E4DD-47FC-A17F-A9200602A8DE",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "user": {
| + | |
− | "userid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
| + | |
− | "userlogin": "Петров"
| + | |
− | }
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− |
| + | |
− | <span style="color:green">>>> '''getsystemnumberbyuserresult'''</span>
| + | |
− | | + | |
− | Ответ из Oktell в CRM. Возвращает системный внутренний номер указанного в суб-параметре пользователя.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "getsystemnumberbyuserresult",
| + | |
− | {
| + | |
− | "qid": "0A8B1B7C-E4DD-47FC-A17F-A9200602A8DE",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "result": 1,
| + | |
− | "systemnumber": "U28CA980EF9F84B83B4934454AA54FCD8"
| + | |
− | ]
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | -------------------------------------------------------------------
| + | |
− | <span style="color:green"><<< '''getpbxnumbersforitem'''</span>
| + | |
− | | + | |
− | Запрос из CRM в Oktell на возврат текстового списка внутренних номеров указанного в суб-параметре пользователя.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "getpbxnumbersforitem",
| + | |
− | {
| + | |
− | "qid": "F19E223C-3EF3-4002-B1D6-B756DF8E978F",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B"
| + | |
− | "itemtype": "user",
| + | |
− | "itemuserid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
| + | |
− | "itemuserlogin: "Петров"
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | <span style="color:green">>>> '''getpbxnumbersforitemresult'''</span>
| + | |
− | | + | |
− | Ответ из Oktell в CRM. Возвращает список несистемных внутренних номеров через запятую, по которым возможен вызов пользователя, указанного в суб-параметре запроса.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "getpbxnumbersforitemresult",
| + | |
− | {
| + | |
− | "qid": "F19E223C-3EF3-4002-B1D6-B756DF8E978F",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "itemtype": "user",
| + | |
− | "itemuserid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
| + | |
− | "itemuserlogin: "Петров",
| + | |
− | "itemnumbers": "403, 472"
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | <pre>
| + | |
− | /* "itemtype": "line",
| + | |
− | /* "itemlineid": "9F93FE9C-0B80-4242-BD24-D338BE8E4FC0",
| + | |
− | /* "itemlinenumber": "17004"
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | -------------------------------------------------------------------
| + | |
− | <span style="color:green"><<< '''getmainpbxnumberforitem'''</span>
| + | |
− | | + | |
− | Запрос из CRM в Oktell на возврат основного несистемного внутреннего номера, по которому возможен вызов объекта системы (пользователя/линии), указанного в суб-параметре.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "getmainpbxnumberforitem",
| + | |
− | {
| + | |
− | "qid": "F19E223C-3EF3-4002-B1D6-B756DF8E978F",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B"
| + | |
− | "itemtype": "user",
| + | |
− | "itemuserid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
| + | |
− | "itemuserlogin: "Петров"
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | <span style="color:green">>>> '''getmainpbxnumberforitemresult'''</span>
| + | |
− | | + | |
− | Ответ из Oktell в CRM. Возвращает основной несистемный внутренний номер, по которому возможен вызов объекта системы (пользователя/линии), указанного в суб-параметре запроса.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "getmainpbxnumberforitemresult",
| + | |
− | {
| + | |
− | "qid": "F19E223C-3EF3-4002-B1D6-B756DF8E978F",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "itemtype": "user",
| + | |
− | "itemuserid": "8232C52D-ACFF-4DC9-B33A-C2A3CD2FC002",
| + | |
− | "itemuserlogin: "Петров",
| + | |
− | "itemnumber": "472"
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | <pre>
| + | |
− | /* "itemtype": "line",
| + | |
− | /* "itemlineid": "9F93FE9C-0B80-4242-BD24-D338BE8E4FC0",
| + | |
− | /* "itemlinenumber": "17004"
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | -------------------------------------------------------------------
| + | |
− | <span style="color:green"><<< '''getpbxnumbers'''</span>
| + | |
− | | + | |
− | Запрос из CRM в Oktell на возврат всех внутренних номеров системы. В примере приведен запрос для формирования ответа с перечнем номеров в простом виде.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "getpbxnumbers",
| + | |
− | {
| + | |
− | "qid": "F19E223C-3EF3-4002-B1D6-B756DF8E978F",
| + | |
− | "mode": "simple"
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | <span style="color:green"><<< '''getpbxnumbers'''</span>
| + | |
− | | + | |
− | Запрос из CRM в Oktell на возврат всех внутренних номеров системы от имени указанного пользователя. В примере приведен запрос для формирования ответа с перечнем номеров в простом виде.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "getpbxnumbers",
| + | |
− | {
| + | |
− | "qid": "F19E223C-3EF3-4002-B1D6-B756DF8E978F",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "mode": "simple"
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− |
| + | |
− | <span style="color:green">>>> '''getpbxnumbersresult'''</span>
| + | |
− | | + | |
− | Ответ из Oktell в CRM. Возвращает список всех внутренних номеров системы. В примере приведен ответ на запрос с перечнем номеров в простом виде.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "getpbxnumbersresult",
| + | |
− | {
| + | |
− | "qid": "F19E223C-3EF3-4002-B1D6-B756DF8E978F",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "mode": "simple",
| + | |
− | "numbers": [
| + | |
− | "401",
| + | |
− | "402",
| + | |
− | "403",
| + | |
− | "404",
| + | |
− | "405",
| + | |
− | "471",
| + | |
− | "472",
| + | |
− | "473"
| + | |
− | ]
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− |
| + | |
− | | + | |
− | <span style="color:green"><<< '''getpbxnumbers'''</span>
| + | |
− | | + | |
− | Запрос из CRM в Oktell на возврат всех внутренних номеров системы. В примере приведен запрос для формирования ответа с перечнем номеров в полном виде.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "getpbxnumbers",
| + | |
− | {
| + | |
− | "qid": "F19E223C-3EF3-4002-B1D6-B756DF8E978F",
| + | |
− | "mode": "full"
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− |
| + | |
− | <span style="color:green"><<< '''getpbxnumbers'''</span>
| + | |
− | | + | |
− | Запрос из CRM в Oktell на возврат всех внутренних номеров системы от имени указанного пользователя. В примере приведен запрос для формирования ответа с перечнем номеров в полном виде.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "getpbxnumbers",
| + | |
− | {
| + | |
− | "qid": "F19E223C-3EF3-4002-B1D6-B756DF8E978F",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "mode": "full"
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | | + | |
− |
| + | |
− | <span style="color:green">>>> '''getpbxnumbersresult'''</span>
| + | |
− | | + | |
− | Ответ из Oktell в CRM. Возвращает список всех внутренних номеров системы. В примере приведен ответ на запрос с перечнем номеров в полном виде со всеми описаниями и состояниями.
| + | |
− | | + | |
− | <pre>
| + | |
− | [
| + | |
− | "getpbxnumbersresult",
| + | |
− | {
| + | |
− | "qid": "F19E223C-3EF3-4002-B1D6-B756DF8E978F",
| + | |
− | "userlogin": "Иванов",
| + | |
− | "userid": "3357F4D2-B37C-4809-9A1A-E4D64808DE1B",
| + | |
− | "mode": "full",
| + | |
− | "numbers": [
| + | |
− | {
| + | |
− | "id": "9079E514-FECF-4DFD-BF48-5EDE4241E3A1",
| + | |
− | "number": "472",
| + | |
− | "type": 0,
| + | |
− | "typestr": "intRule",
| + | |
− | "isgroup": false,
| + | |
− | "caption": "Петров",
| + | |
− | "state": 5,
| + | |
− | "statestr": "usFullbusy",
| + | |
− | "department": "Руководство"
| + | |
− | },
| + | |
− | {...},
| + | |
− | {...}
| + | |
− | ]
| + | |
− | }
| + | |
− | ]
| + | |
− | </pre>
| + | |
− | <pre>
| + | |
− | /* number:type - intRule(0)|intFast(2)|intIVR(3)|intEmergency(4)
| + | |
− | /* number:state - usDisconnected(0)|usReady(1)|usLunch(2)|usOff(3)|usFullbusy(5)|usReserved(6)|usWOPhone(7)|usError(100)|usRinging(201)
| + | |
− | </pre>
| + | |