|
|
(не показано 11 промежуточных версии этого же участника) |
Строка 1: |
Строка 1: |
| + | [[Заглавная_страница|Наверх]] |
| + | |
| {|width="100%" | | {|width="100%" |
| | | |
| |width="33%" valign="top"| | | |width="33%" valign="top"| |
| | | |
− | === Использование COM библиотеки Oktell из других приложений ===
| + | Программный комплекс Oktell предоставляет возможности глубокой интеграции со сторонними приложениями. Поддерживаются два радикально различающихся направления интеграции. |
− | | + | |
− | Настоящий раздел руководства описывает COM интерфейс клиентского уровня платформы для включения в другие проекты. Подобная архитектура предоставляет возможность разработчикам использовать в своих продуктах коммуникационные сервисы, предоставляемые сервером Oktell.
| + | |
− | | + | |
− | Для разработчиков программных продуктов на платформе .NET существует возможность исключить COM-взаимодействие и напрямую работать с объектом .NET платформы Oktell по аналогичному интерфейсу.
| + | |
− | | + | |
− | Итоговый продукт предполагает наличие коммуникационного сервера(ов) с установленным программным (и при необходимости аппаратным) обеспечением серверной части коплекса Oktell. Клиентские рабочие станции с установленным на них обеспечением, использующим зарегистрированный в ОС COM-объект клиентского уровня платформы, могут быть снабжены USB-телефонами и гарнитурами (USB и jack), а также аналоговыми и IP-телефонами, управляемыми коммуникационным сервером.
| + | |
− | | + | |
− | Взаимодействие комплексов осуществляется по описанному интерфейсу с передачей сложных параметров в виде XML-структур. COM объект OktellComClient предоставляет методы, генерирует события, управляет подключенным к рабочей станции устройством, а также обеспечивает сетевое взаимодействие с коммуникационным сервером.
| + | |
− | | + | |
− | Пользователю итогового продукта доступны два режима работы:
| + | |
− | :* через интегрирующее приложение;
| + | |
− | :*через стандартное клиентское приложение Oktell.
| + | |
− | | + | |
− | Массовая работа пользователей, подключенных к серверу, осуществляется через интегрирующее приложение. В этом случае все визуальные интерфейсы принадлежат именно ему. Работающая в этом случае прослойка Oktell предоставляет лишь невизуальные сервисы самому приложению. Необходимость работы в клиентском приложении Oktell диктуется задачами, решаемыми администратором и менеджерами проектов для детальной настройки режимов работы сервера, и носит индивидуальный характер.
| + | |
− | | + | |
− | :*[[Регистрация библиотеки]]
| + | |
− | :*[[Форматы и договоренности]]
| + | |
− | :*[[Загрузка и выгрузка модуля]]
| + | |
− | :*[[Служебные сообщения]]
| + | |
− | :*[[Исключительные ситуации]]
| + | |
− | :*[[Сервисное оповещение]]
| + | |
− | :*[[Работа с номерным планом]]
| + | |
− | :*[[Работа со статусом пользователя]]
| + | |
− | :*[[Работа с правилами переадресации]]
| + | |
− | :*[[Работа с голосовой почтой]]
| + | |
− | :*[[Работа с заказами на встречные звонки]]
| + | |
− | :*[[Статистика коммутаций]]
| + | |
− | :*[[Работа с логикой АТС]]
| + | |
− | :*[[Работа с HAL]]
| + | |
− | :*[[Обмен пользовательскими сообщениями]]
| + | |
− | :*[[Файловые операции на сервере]]
| + | |
− | :*[[Запуск служебных сценариев]]
| + | |
− | :*[[Исполнение запросов в БД]]
| + | |
− | :*[[Вспомогательные методы]]
| + | |
− | :*[[Осуществление и прием вызовов]]
| + | |
− | | + | |
− | === Встраиваемые plugin-модули ===
| + | |
− | | + | |
− | Раздел руководства описывает технологию и интерфейс для подключения сторонних Plugin-модулей. Подобная архитектура предоставляет возможность разработчикам внедрять в стандартное клиентское приложение Oktell свои наработки, модули, визуальные формы и пользоваться полным спектром сервисов, предоставляемых коммуникационным сервером собственному клиентскому приложению.
| + | |
− | | + | |
− | В версии 2.5-90101 доступен режим подключения plugin-модулей в виде .NET сборок. В дальнейшем будет реализована возможность подключения плагинов через COM.
| + | |
− | | + | |
− | Plugin-модуль представляет собой совокупность сборок, одна из которых является главной (стартовой), и других файлов, расположенных рядом со сборками, возможно в произвольной структуре каталогов. В частном случае плагин - это единственный файл - главная сборка. Вся совокупность файлов модуля в дальнейшем будет называться plugin-программой.
| + | |
− | | + | |
− | Основная проблема, решаемая подключением внешних модулей, - доступ пользователей к информации с отображением в специфичном виде, не имеющем возможности быть настроенным средствами стандартного приложения Oktell.
| + | |
− | | + | |
− | Например, возможны случаи, когда средствами встроенного редактора форм не удается «красиво» решить поставленную задачу обработки звонков операторами, а применение веб-технологий затруднено по тем или иным причинам. В частности с этой потребностью можно столкнуться, когда необходимо в зависимости от выбираемых оператором значений отображать сильно отличающиеся по структуре данные в форме и при этом оставлять возможность перевыбора. Или когда в операторскую форму необходимо загружать большой объем данных (это замедляет отображение формы), тем более это нехорошо, если часть данных может вовсе не потребоваться в соответствии с выбором оператора. Может понадобиться отображение специфичных элементов управления, или возможность редактирования данных в таблице. Все эти задачи позволяет решить технология подключения plugin-программ.
| + | |
− | | + | |
− | | + | |
− | [[Файл:COM-001.png]]
| + | |
− | | + | |
− | В то же время другой вариант применения описываемой plugin-технологии основывается на необходимости доступа операторов к данным в БД по своей инициативе. Данные, редактируемые при поступлении или осуществлении вызовов по голосовым задачам средствами операторских диалоговых форм (любого типа), недоступны пользователю стандартного приложения Oktell для редактирования в любое время по его инициативе. Для этого необходимы услуги администратора, имеющего доступ к БД, или разработка специальных отчетов, что в общем случае неудобно. Plugin-технология дает возможность разработки специальных подпрограмм, запускаемых из меню клиентского приложения Oktell и работающими по аналогии со стандартными модулями приложения. В визуальных формах plugin-программы известным ее разработчику способом программируется некоторая модель взаимодействия пользователя с данными в БД. Часть пользователей получают доступ к форме, которая в общем случае может быть очень сложной и содержать в себе несколько различных вариантов наполнения. В зависимости или вне зависимости от того какой пользователь ее открывает, она может принимать или не принимать тот или иной вид. В общем случае таким образом организованная plugin-программа позволяет реализовывать и другие задачи, не связанные явно с редактированием данных в БД.
| + | |
− | | + | |
− | | + | |
− | [[Файл:COM-002.png]]
| + | |
− | | + | |
− | | + | |
− | | + | |
− | Яркий оранжевый цвет форм в приведенных скриншотах дает понять, где место дислокации внешнего по отношению к приложению Oktell модуля.
| + | |
− | | + | |
− | Plugin-программы с визуальным содержимым используются только клиентскими приложениями.
| + | |
− | | + | |
− | Также возможно использование подключаемых компонентов при выполнении сценариев сервера (компонент «Плагин»). Подробно индивидуально о них в разделе [[Описание базовых элементов интерфейса]]
| + | |
− | | + | |
− | В целом внутри plugin-программы может быть произвольная объектная модель: различные классы, визуальные формы, компоненты, контролы. Взаимодействие же с клиентским приложением осуществляется через класс, находящийся в главной сборке и реализующий описанный в данном разделе руководства интерфейс. Клиентским приложением создается один экземпляр объекта этого класса для осуществления взаимодействия. В дальнейшем он будет называться объектом управления.
| + | |
− | | + | |
− | Plugin-программа может содержать произвольное число форм и компонентов (в дальнейшем plugin-форма) для отображения
| + | |
− | *среди стандартных модулей Oktell-клиента в отдельном разделе, по умолчанию именуемом «Внешние модули»;
| + | |
− | *в диалоговом режиме (в сценариях диалога в качестве компонента plugin-форма).
| + | |
− | | + | |
− | Plugin-форма может быть реализована как объект класса
| + | |
− | *System.Windows.Forms.Form;
| + | |
− | *System.Windows.Forms.Control;
| + | |
− | или иметь невизуальное представление (как реализация компонентов сценариев, выполняемых на сервер).
| + | |
− | | + | |
− | В зависимости от способа реализации клиентским приложением Oktell задействуются различные механизмы использования и отображения plugin-форм.
| + | |
− | | + | |
− | Plugin-формы, заявленные объектом управления, являют собой различные точки входа. Однако каждая из них может быть представлена алгоритмами отображения любой сложности (например стартовая форма может иметь несколько нижестоящих по структуре визуальных объектов, которые отображаются в теле формы в ходе проведения каких-либо действий (в общем случае изменяют свои свойства).
| + | |
− | | + | |
− | В любой момент времени у управляющего объекта есть возможность обратиться к клиентскому приложению Oktell с запросом. Результат его выполнения будет возвращен в управляющий объект. Часть запросов для корректного выполнения требует указания plugin-формы и кода ее экземпляра (например смена заголовка модуля), другие же могут выполняться в произвольном формате (например запрос в БД средствами Oktell или запрос на осуществление телефонного вызова).
| + | |
− | | + | |
− | Регистрация plugin-программы в системе осуществляется в модуле администрирования (подробно в руководстве пользователя комплекса Oktell, разделы «Клиентское приложение. Администрирование. Внешние модули», «Клиентское приложение. Call-центр. Сценарии. Сценарии диалога»). При регистрации производится тестовая загрузка и подключение на компьютере администратора. В случае обнаружения класса с требуемым интерфейсом производится сохранение всех файлов plugin-программы на сервере для дальнейшего обновления клиентских рабочих станций, а также регистрационная информация в БД.
| + | |
− | | + | |
− | Клиентские станции обновляют плагины при запуске приложения или принудительно по соответствующей команде администратора. Допускается обновление плагинов на работающей системе. Однако необходимо иметь в виду, что в момент обновления плагин выгружается, и все его активные формы закрываются, теряя несохраненные данные.
| + | |
− | | + | |
− | Сборки, загруженные в домен приложения не имеют возможности быть выгруженными и требуют перезапуска клиентских приложений, о необходимости чего производится уведомление пользователей.
| + | |
− | | + | |
− | Сервер не требует перезапуска для вступления в силу новых обновлений plugin-программ. В случае, если сервер использует подпрограмму в реализации сценариев, каждый компонент при передаче ему управления будет взят из последнего активного обновления. Это производится путем загрузки подпрограмм из временной папки с предварительным копированием.
| + | |
− | | + | |
− | :*[[Структура интерфейса]]
| + | |
− | :*[[Формат параметров и выходных значений]]
| + | |
− | :*[[Описание базовых элементов интерфейса]]
| + | |
− | :*[[Сервисное взаимодействие]]
| + | |
− | :*[[Рекомендации разработчику]]
| + | |
− | :*[[Объектная модель XML-парсера]]
| + | |
− | :*[[Пример plugin-сборки]]
| + | |
− | | + | |
− | | + | |
− | === Аудио и видео звонки из информационных терминалов и банкоматов ===
| + | |
− | | + | |
− | Настоящий раздел руководства описывает COM интерфейс библиотеки, встраиваемой в другие приложения и проекты и обеспечивающей связь их пользователей с единым сервером, работающим в центральном офисе. Подобная архитектура предоставляет разработчикам возможность обеспечивать пользователей своих продуктов прямой связью со службами техподдержки, консультантов и т.д., а также передавать на сервер всю необходимую информацию для осуществления верной маршрутизации, для сохранения информации в БД, для формирования отчетов, для заполнения диалоговых форм операторов, для подготовки и вывода персонифицированной информации пользователю. Также подобная архитектура может быть использована для осуществления вызовов с различных терминалов в центральный call-центр.
| + | |
− | | + | |
− | В центральном офисе (или сети офисов, связанных в единую телефонную инфраструктуру сервером Oktell), с сотрудниками которого требуется соединение абонентов - пользователей стороннего продукта, сервер Oktell занимается маршрутизацией вызовов. Там могут быть настроены и доступны любые сервисы, обеспечиваемые сервером. Вызовы могут обрабатываться IVR, операторами, также могут производиться видео-вызовы.
| + | |
− | | + | |
− | При возникновении вопросов пользователи некоторого внешнего продукта в привычном режиме снимают трубки своих телефонов и набирают записанный в лицензионном соглашении или на сайте номер офиса разработчика. Возможно звонок проходит по межгороду с соответствующей тарификацией. Попав на секретаря или в какой-либо отдел, абоненту зачастую приходится неоднократно объяснять кто он, какая версия продукта установлена, по какому вопросу и в какой именно отдел он звонит. Возможно он просит соединить его с кем-то конкретным, с кем он накануне уже обсуждал свою проблему.
| + | |
− | | + | |
− | После реализации описываемого механизма интеграции на сервере в офисе разработчика появляются каналы для обработки подключений таких абонентов. Пользователи продукта в визуальном интерфейсе получают доступ к некоторой кнопке "звонок в офис". Приложение, в которое интегрирована библиотека, собирает всю нужную информацию, которая может понадобиться серверу или сотрудникам офиса для ускорения и удобства обработки вызова. Вызовом соответствующего метода COM-библиотеки с передачей собранных параметров, указанием IP-адреса или доменного имени коммуникационного сервера в офисе производится прямое соединение через интернет с сервером. Вызов приходит на сервер по отведенным для этого каналам. Настроенная в главном сценарии ветка для обработки таких вызовов может содержать разбор передаваемых параметров компонентом сценария «Разбор текста». Привычным способом производится настройка и маршрутизация, при необходимости вход в задачу, переключение на какой-либо конкретный отдел или даже сотрудника (информация о предыдущих звонках может уже содержаться в БД), заполнение параметров диалоговых форм, переключение на автоматический информатор, на дополнительные поля ввода. Может быть настроено неголосовое взаимодействие внешнего приложения с центральным офисом с целью передачи данных и запуска некоторых бизнес-процессов. Все это определяется архитектором интеграции и как результатом совместно настроенными сценариями oktell и передаваемыми внешним ПО данными.
| + | |
− | | + | |
− | Настройка комплекса достаточно глубока. Проработка концепции подобных вызовов и проведение работ по интеграции достаточно сложны. Но в итоге одним щелчком мыши производится соединение. Все остальное осталось незаметно ни для сотрудников call-центра, ни для пользователей программного продукта. Эти звонки, как и прочие, отражаются в статистике коммутаций сервера и доступны для анализа и подведения итогов.
| + | |
− | | + | |
− | | + | |
− | [[Файл:COM-003.png]]
| + | |
− | | + | |
− | | + | |
− | Для корректной работы необходимо наличие доступа в интернет у пользователя внешнего приложения. Для организации звонков используется SIP-протокол, поэтому необходим доступ к соответствующим портам.
| + | |
− | | + | |
− | Сервер поддерживает подключение таких абонентов в режиме входящих вызовов, то есть связь устанавливается только по инициативе внешнего приложения. Исходящие звонки для связи с терминалом по инициативе сервера Oktell невозможны.
| + | |
− | | + | |
− | Преимущество такого способа интеграции состоит в том, что внешние приложения подключаются к основному серверу только на момент осуществления вызова и считаются внешними абонентами. Таким образом не создают большой нагрузки на поддержание подключений, не резервируют TCP порты подобно клиентским приложениям, что обеспечивает возможность иметь неограниченное число потенциальных абонентов, подключенных таким способом. Сервер настраивается на поддержку ограниченного числа одновременных сессий (транков) по данному направлению, что гарантирует отсутствие чрезмерной загрузки и перенасыщения при любых масштабах. Поскольку эти вызовы считаются внешними, то они полноценно поддерживаются менеджером задач и могут быть обработаны во входящих задачах.
| + | |
| | | |
− | В случае, если все транки заняты, любой поступающий вызов будет получать отбой. Это может рассматриваться как повод увеличить количество одновременно обрабатываемых сессий (при необходимости увеличить серверные мощности, расширить call-центр), либо к перестроению процесса взаимодействия внешних абонентов с центральным call-центром (уменьшить время обработки и как следствие время коммутации, либо перестроить бизнес-процесс с целью уменьшить поток обращений).
| + | Разработчикам существующих распределенных программных продуктов предоставляется возможность включать в состав своего обеспечения функционал коммуникационного сервера со всеми дополнительными возможностями, которые он имеет помимо телефонии. Это и обработка и осуществление одиночных звонков, и call-центр, и массовая рассылка сообщений e-mail, sms, icq, и многое другое. Программный комплекс Oktell предоставляет смежному интегрирующему продукту свое ядро. Клиентские приложения продукта полностью используют только собственные визуальные интерфейсы, а коммуникационный сервис обеспечивается взаимодействием с прослойкой, также запущенной и инициализированной на клиентской рабочей станции. Прослойка осуществляет подключение к коммуникационному серверу, транляцию его событий в приложение, трансляцию запросов приложения к нему, поддержку локальной аппаратуры (гарнитур, USB-телефонов). Подробно в разделе [[Использование COM библиотеки Oktell из других приложений]]. |
| | | |
− | Рассматриваемый способ интеграции представляет интерес только при взаимодействии абонентов с сервером через глобальную сеть. Таким образом сервер должен иметь соизмеримую с потоком обращений ширину канала доступа к сети интернет. Видеосвязь предъявляет более жесткие требования к ширине канала.
| + | Для служб внедрения, программистов, а также служб АСУ предприятий, в которых установлена и работает система Oktell, существует возможность дописывать модули, обеспечивающие специфический для формата деятельности компании функционал. Это могут быть особые операторские диалоговые формы для диалоговых сценариев голосовых задач (динамическое взаимодействие с БД, осуществление специальных переводов, и т.д.), а также модули, доступные из главного меню клиентского приложения Oktell по аналогии с его собственными модулями. В этом случае интерфейс полностью принадлежит Oktell, однако в некоторых режимах его работы становится доступен разработанный сторонними программистами функционал - визуальные формы, а также возможно дополнительные алгоритмы. Подробно в разделе [[Встраиваемые plugin-модули]]. |
| | | |
− | *[[Варианты реализации]]
| + | Разработчики программных продуктов могут использовать еще одно отдельное направление интеграции: звонок пользователя своего программного продукта в офис компании одной кнопкой. Особенностью в этой схеме является возможность вместе со звонком передавать произвольную информацию (XML-структуру или строку), куда могут быть размещены любые собранные приложением параметры. На их основании сервер Oktell, обеспечивающий связь в офисе разработчика, осуществит верную маршрутизацию, а также начальное заполнение операторских диалоговых форм. COM-библиотека обеспечивает только связной функционал без визуальной части. Интерфейс же полностью принадлежит программному продукту. Одна, две или несколько кнопок для обеспечения звонка в отдел продаж, в отдел техподдержки, на консультантов. Передача информации о клиенте - номер ключа, номер версии. Некоторая статистика - как часто продукт используется.. Все, что может собрать программное приложение, может быть использовано для осуществления звонка по наиболее оптимальному направлению. Подробно в разделе [[Аудио и видео звонки из информационных терминалов и банкоматов]]. |
− | :*[[Подключение к COM-объекту]] | + | |
− | ::*[[Регистрация библиотеки]]
| + | |
− | ::*[[Интерфейс взаимодействия]]
| + | |
− | :*[[Использования native win32 библиотеки]]
| + | |
− | ::*[[Интерфейс взаимодействия]]
| + | |
− | :*[[Использование .NET сборки]]
| + | |
− | ::*[[Интерфейс взаимодействия]]
| + | |
− | :*[[Тестовое приложение]]
| + | |
− | :*[[Веб-интерфейс]]
| + | |
| | | |
− | ([http://www.oktell.ru/loadfile/manual_dev.chm Скачать документацию по интеграции в формате chm ])
| + | Этот же режим интеграции может использоваться для работы удаленных терминалов. Указанные каналы подключаются к серверу только на момент совершения вызова, что предоставляет возможность масштабировать сеть удаленных терминалов. Поддерживается видео-передача. |
| | | |
− | <span style="color:red"> ВНИМАНИЕ: Если при открытии chm файла вы видите только его содержание (в левой колонке), а самого содержимого не видите то откройте Проводник - правый клик на файле - свойства - внизу “разблокировать”.
| + | * [[Использование COM библиотеки Oktell из других приложений]] |
| + | * [[Встраиваемые plugin-модули]] |
| + | * [[Аудио и видео звонки из информационных терминалов и банкоматов]] |