Это старая версия документа!
API взаимодействия программных компонентов внутри единой CTI-платформы.
UniPhone API предназначено для объединения различных программных продуктов и телекоммуникационных платформ как участников единой CTI-платформы. Выделяются три категории участников:
Сервер UniPhone выступает выступает центральным узлом платформы, который в real-time режиме маршрутизирует сообщения между участниками.
Обмен сообщениями выполняется в режиме 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 указаны процедуры, которые необходимо зарегистрировать в системе, чтобы другие участники могли их вызывать. В замен каждый участник получает доступ к «темам» и процедурам остальных участников.
API реализуемое на стороне провайдера IP-телефонии.
Необходимо выступить в качестве издателя по указанным «темам»:
Информацию о звонке при первом наступлении события или смене состояния.
call_id | Глобальный идентификатор звонка (в формате провайдера). |
state | Текущие состояние звонка. Принимает следующие значения: Calling - инициация звонка; Connected - соединение двух абонентов; Hangup - завершение звонк. |
from | Данные инициатора звонка. |
from:extension (опция) | Внутренний номер абонента. |
from:number | Внешний номер абонента. |
to | Данные вызываемого. |
to:extension (опция) | Внутренний номер абонента. |
to:number | Внешний номер абонента. |
{ "call_id":"askozia-1445526019", "state":"Calling", "from":{ "extension":"SIP\140", "number":"140" }, "to":{ "extension":"SIP\112", "number":"112" } }
API реализуемое на стороне CRM приложения или сервиса.
Необходимо зарегистрировать процедуры для удаленного вызова:
Возвращает данные абонента, которому принадлежит заданный номер телефона.
number | Номер телефона. |
name | Имя абонента. |
link (опция) | Веб-ссылка к карточке абонента. |