Это старая версия документа!
API взаимодействия программных компонентов внутри единой CTI-платформы.
UniPhone API предназначено для объединения различных программных продуктов и телекоммуникационных платформ как участников единой CTI-платформы. Выделяются три категории участников:
Сервер UniPhone выступает центральным узлом платформы, который в real-time режиме маршрутизирует сообщения между участниками.
TO DO: рисунок общая схема
Обмен сообщениями выполняется в режиме real-time по средством технологии WebSocket. Сообщения оформляются по протоколу WAMP v2 (Web Application Messaging Protocol).
В UniPhone API применяются две модели взаимодействия между участниками:
В модели PubSub отправитель и получатель сообщений связаны друг с другом косвенно. Отправитель предоставляет информацию в абстрактной «теме» (topic), а получатели принимают сообщения объявив о своей заинтересованности к соответствующей «теме». Отправителя обычно называют издателем (publisher), а получателя - подписчиком (subscriber).
TO DO: схема PubSub
Модель RPC подразумевает получение интересующей информации по средством обращения к ее поставщику. Выполнение запроса и его обработка выполняется асинхронно. Сервер UniPhone выступает посредником при вызове удаленной процедуры и возврате результата работы.
TO DO: схема RPC
TO DO: Пример
Для работы с API потребуется одна из реализаций WAMP-клиента.
TO DO: Написать про аутентификацию
Каждому участнику отведена своя роль в зависимости от его специализации. Потому от него требуется реализация только своей части API.
Структура API представлена в виде требований к участникам платформы. В подразделе PubSub указаны «темы», к которым участнику необходимо предоставить доступ по правилам WAMP-протокола. В подразделе RPC указаны процедуры, которые необходимо зарегистрировать в системе, чтобы другие участники могли их вызывать. В замен каждый участник получает доступ к «темам» и процедурам остальных участников.
UniPhone API использует URI формат для именование ресурсов включая «темы», зарегистрированные процедуры и ошибки. Все они образуют единую, глобальную иерархию имен.
Имена ресурсов формируется следующим образом: /<тип_участника>.<вид_ресурса>.<имя_ресурса>. Например, обозначение ресурса call как «темы» публикуемого на стороне провайдера выглядит так:
/provider.topics.call
Содержание API: