Коммутационный модуль высокой доступности

Простой в использовании интерфейс прикладного программирования

SECDATA

»

Api

Обмен данными по API HAsm осуществляется в виде обычного текста (опционально зашифрованного), и соединение может осуществляться через различные носители, включая TCP/IP, последовательный порт (RS-232 или RS-485), шину CAN и многое другое. Сообщения состоят из пар “ключ-значение”, при этом каждое сообщение состоит из двух или более пар “ключ-значение”, за которыми следует пустая строка. Каждое сообщение должно содержать уникальный идентификатор, тип сообщения и параметры, соответствующие типу. Поддерживаются три типа сообщений:
  • Команда: Запрос от одной стороны к другой. Запрос предписывает другой стороне предпринять какие-либо действия или предоставить информацию.
  • Ответ: За каждой командой должен следовать ответ. Как минимум, он подтверждает команду, но также может содержать данные, полученные в результате выполнения команды. Если ответ не будет получен от другой стороны в течение заранее определенного периода времени, клиентский API вернет ответ с истекшим временем ожидания локальному клиенту.
  • Уведомление: Уведомление от одной стороны к другой о том, что состояние изменилось, произошло событие или получен какой-либо сигнал.
HAs
Клиентские приложения могут взаимодействовать с HAsm так же легко, как чтение/запись файла (с помощью интерфейса доменного сокета) или чтение/запись с TCP-порта (с помощью интерфейса TCP/IP). Заказчик может использовать любой язык разработки (например: C, Python, JavaScript, C++, Perl и т.д.) для взаимодействия с HAsm API. Telium также предлагает предварительно скомпилированный клиент клиентского API (Linux .so или .a file, или Windows .dll), который обрабатывает все аспекты связи. Предварительно скомпилированный клиентский API необходим при использовании шифрования API, но также может ускорить разработку продукта.

Пример ответа команды

Изображение справа содержит два сообщения, команду и связанный с ней ответ. Каждое сообщение состоит из пар “ключ-значение” в текстовом формате, за которыми следует пустая строка, указывающая конец сообщения. Пример команды указывает другой стороне (в данном случае HAsm) отключить выполняемый вызов. Обязательным параметром является идентификатор вызова (который мог быть получен ранее в виде команды/ответа или уведомления).

Под командой находится соответствующее ответное сообщение. Обратите внимание, что ответное сообщение содержит тот же идентификатор, что и команда, что позволяет клиенту согласовывать ответы с командами. Поскольку многие команды могут быть отправлены последовательно, не существует гарантированного порядка ответов, поэтому необходимо учитывать идентификаторы. В этом случае ответ указывает на успешное выполнение (код результата 0), а более подробная информация доступна в следующем параметре (сообщении результата).
Эти команды и ответы приведены только в качестве примера и могут существовать не во всех клиентских развертываниях. Telium будет включать только те команды/ответы, которые необходимы для предоставления функций, указанных клиентом. Все лишние команды/ответы удаляются.
API Message Command Response

Пример уведомления

Изображение справа содержит два сообщения, оба уведомления. Сообщения состоят из пар “ключ-значение” в текстовом формате, за которыми следует пустая строка, обозначающая конец сообщения. В первом примере другая сторона (в данном случае клиентское приложение) уведомляется о том, что агент пользователя зарегистрирован. Обязательными параметрами являются уведомление (о каком типе уведомления идет речь), идентифицированный агент пользователя, строка агента пользователя и строка контакта для UA. В данном примере это поля, необходимые клиенту (но доступно гораздо больше информационных полей). Второе сообщение уведомляет другую сторону (опять же клиентское приложение) о том, что локальный узел переходит в активный, так как он потерял связь со своим одноранговым узлом. Обязательными параметрами являются код причины (129) и сообщение о причине.

Эти уведомления приведены только в качестве примера и могут существовать не во всех клиентских развертываниях. Telium будет включать только те уведомления, которые необходимы для предоставления функций, указанных клиентом. Все лишние уведомления и поля удаляются.
API Notification Message