Wiki Infinity X Опис модуля інтеграції

Модуль інтеграції Infinity X Версія

У цьому документі описані способи вирішення основних завдань з інтеграції з Infinity X відповідно до моделей First-Party і Third-Party. Використовувані технології: COM/ActiveX та .NET.

  • Моделі інтеграції
  • Технології інтеграції
  • Принцип інтеграції
  • Приклади вирішення типових завдань
  • Здійснення вихідного дзвінка
  • Детальний опис основних інтерфейсів та функцій
  • Інтерфейси COM/ActiveX
  • Інтерфейси .NET
  • Модель інтеграції First - Party передбачає управління системою першої особи, тобто. здійснювати всі дії від імені конкретного оператора. Як правило, ця модель використовується при інтеграції робочих місць різних інформаційних систем із Infinity X .

    Модель Third – Party дозволяє керувати системою від третьої особи, тобто. здійснювати операції від імені всіх операторів. Як правило, ця модель використовується при інтеграції сервера інформаційних систем Infinity X .

    Використання візуальних форм ActiveX можливе лише в моделі First-Party.

    Обидві моделі інтеграції передбачають використання однієї з двох технологій: COM/ActiveX або . NET.

    Технологія COM дозволяє за допомогою будь-якої мови програмування звертатися до об'єктів системи та керувати ними. Технологія ActiveX дозволяє вбудовувати візуальні інструменти Infinity X в інформаційну систему. Зокрема, ці технології зручно застосовувати при інтеграції Infinity X з платформою 1С, Lotus Notes, Excel і т.д.

    Приклад вбудовування інтерфейсів Infinity в Excel методом ActiveX

    Технологія. NET має на увазі проведення інтеграції з використанням засобів розробкипрограмного забезпечення, що підтримують платформу. NET Framework. Як правило, це Microsoft Visual Studio (мови C #. NET, VB. NET, C++. NET), а також Embarcadero / Borland Delphi.

    Взаємодія інформаційної системи з Infinity X складається з наступних етапів:

    1. Підготовчі операції

    a. Ініціалізація модуля інтеграції

    c. Отримання необхідних вирішення конкретних завдань інтерфейсів

    2. Основна змістовна частина

    a. Взаємодія з інтерфейсами (отримання інформації та здійснення операцій)

    3. Завершення роботи

    a. Відключення від сервера Infinity X

    b. Визволення ресурсів

    Для використання технології COM/ActiveX необхідно:

    • Встановити робоче місце Infinity X
    • Зареєструвати COM-об'єкти (запустити файл register.bat)
    • Створити COM-об'єкт "Cx.Integration.Core"

    Для використання технології .NET необхідно:

    • Встановити робоче місце Infinity X
    • Створити проект на базі платформи .NET Framework 4.0
    • Підключити до проекту такі зборки:
    • Створити екземпляр конектора «Infinity X»

    Приклади вирішення типових завдань

    1. Здійснення вихідного дзвінка

    Завдання: при запущеному робочому місці оператора з внутрішнім номером «101» підключитися до сервера в режимі Third-Party та здійснити від його імені вихідний дзвінок на номер «84956411010».

    Приклад використання технології COM (вміст файлу MakeCall.vbs, який можна виконати через командний рядок Windows):

    Set Srv = CreateObject("Cx.Integration.Core")

    LogonResult = Srv.LogonEx("IntegrationUser", "1234", "20000", "192.168.200.101", 10010)

    If (Not Srv.IsConnected) Then

    Set CallManagement =Srv.GetCallManagement("101")

    Приклад використання технології .NET (мовою C#):

    private void button1_Click( object sender, EventArgs e)

    factory = AgatInfinityConnectorManager .GetAvailableFactories().FirstOrDefault(item => item.FactoryName == "Infinity X" );

    if (factory == null )

    throw new Exception ("Factory Infinity X not found");

    connector = factory.CreateInstance( this );

    connector.Connected += new EventHandler (connector_Connected);

    connector.Connect( "Login:\"IntegrationUser\" Password:\"1234\" ServerAddress:\"192.168.200.101\" ServerPort:10010 BiDir" , true );

    void connector_Connected( object sender, EventArgs e)

    using ( ICallManagement callManagement = connector.GetCallManagement( "101" ))

    Детальний опис основних інтерфейсів та функцій

    public interface ICxIntegrationCore

    /// Ідентифікатор екземпляра ядра (використовується при відображенні ActiveX-форм)

    string Core >get; >

    /// Встановити режим обробки виняткових ситуацій

    True - виключення увімкнені , False - відключені

    void SetUseExceptions(bool Value);

    /// Опис останньої помилки

    /// Детальний опис останньої помилки

    /// Підключитися до сервера

    void Connect(string ConnectionString);

    Роль "20000" - Адміністратор, "20004" - Оператор, "20010" - ThirdParty

    /// 1 - успішно, інше - код помилки (див. LogonResult)

    int LogonEx (string Login, string Password, string Role, string ServerAddress, int ServerPort);

    /// Вийти з системи

    /// Вимкнутись від сервера

    /// Повертає стан поточного підключення до сервера

    string LogonResultToString( int Result);

    ////Отримати інтерфейс керування викликами

    Внутрішній номер абонента, з'єднання якого необхідно

    /// Керувати (FirstParty). Якщо порожньо - отримуємо інтерфейс для керування всіма дзвінками

    /// Інтерфейс керування викликами

    IComCallManagement GetCallManagement(string Extension);

    /// Отримати інтерфейс доступу до інформації про дзвінки, з'єднання та сеанси

    /// Інтерфейс доступу до інформації про виклики, з'єднання та сеанси

    /// Отримати інтерфейс керування користувачами

    /// Інтерфейс управління користувачами

    /// Отримати інтерфейс керування кампаніями

    /// Інтерфейс управління кампаніями

    AgatInfinityConnector. ICampaignsManagement GetCampaignsManagement();

    /// Отримати інтерфейс утиліт

    AgatInfinityConnector. IUtilsManager GetUtilsManager();

    /// Примусове збирання налаштувань інструментів та їх збереження в рамках робочого столу.

    /// Повертає чи вдалося зберегти налаштування.

    /// Налаштування можуть бути не збережені з наступних причин:

    /// Скидання робочих столів адміністратором,

    /// Помилка при збереженні,

    /// Метод призначений скидання налаштувань інструментів, до створення.

    void GetVersion (out int Ver1, out int Ver2, out int Ver3, out int Ver4);

    /// Отримати значення генератора до роботи з БД (Int64)

    /// Обробники подій для скриптових мов

    public interface ICxIntegrationCoreEvents

    // Викликається перед створенням немодального вікна

    // Через Info.HostID потрібно повернути ID HostCtrl-а в якому буде показано вікно

    void BeforeCreateTool( IToolDescr ToolInfo, об'єкт Info);

    // Event: 1 - Create - вікно створено

    // 2 - Destroy - вікно закрите

    // Params- не використовується

    void ToolStateChanged( IToolDescr ToolInfo, int Event, object Params);