Skip to main content

Message Relay Message Format Specification

Overview

This document specifies the JSON message format for relay messages used in uplink (device to backend) and downlink (backend to device) communications between Satellite devices and the enterprise backend system.

Note: We use UTF-8 Encoding.

Downlink messages (backend to device) can be either sent based on the recipient's IMSI or phone number

FieldTypeRequiredDescription
recipientDownlinkRecipientYes
timestampint32YesUnix timestamp in seconds
senderPhoneNumberstringNo (required if the chat feature is enabled)Phone number of the sender

DownlinkRecipient

FieldTypeRequiredDescription
type"PhoneNumber" / "IMSI"YesIdentifier type
numberstringYesPhone number or IMSI

Text Message

FieldTypeRequiredDescription
type"Text"Yes
payloadstringAt least one of payload or location must be presentPlain text message content
locationLocationAt least one of payload or location must be presentCurrent device location

Request:

{
"recipient": {
"type": "IMSI",
"number": "123456789012345"
},
"timestamp": 1742308785,
"type": "Text",
"payload": "Please reply back with your location"
}

Response:

{
"messageId": "0003505dcb762d67d8cde52d0002"
}

CloseSOS

FieldTypeRequiredDescription
type"CloseSOS"Yes

DeviceStatusRequest

FieldTypeRequiredDescription
type"DeviceStatusRequest"Yes
alertUserint8YesNumber of alerts (0 = silent, N = N alerts)
FieldTypeRequiredDescription
messageIdstringYesUnique message identifier
sentVia"Satellite" / "Internet"YesChannel the uplink message was sent through
senderstringNo (required if the chat feature is enabled)The phone number of the message sender
imsistringNo (required if the chat feature is disabled)The IMSI of the user's current device
timestampint32YesUnix timestamp in seconds

Text Message

FieldTypeRequiredDescription
type"Text"Yes
recipientstringNoReceiver mobile with country code (or "000000" for SOS)
payloadstringAt least one of payload or location must be presentPlain text message content
locationLocationAt least one of payload or location must be presentCurrent device location
{
"messageId": "0003505dcb762d67d8cde52d0001",
"sentVia": "Satellite",
"sender": "14045550000",
"imsi": "123456789012345",
"timestamp": 1742308785,
"type": "Text",
"payload": "I have reached the summit",
"location": {
"latitude": 12.121,
"longitude": 12.11
}
}

StartTracking

Uplink-only message to inform backend of a tracking session.

FieldTypeRequiredDescription
type"StartTracking"Yes
durationint16YesSession duration in minutes
frequencyint16YesReporting frequency in seconds
locationLocationYesStarting location
accuracyint8YesRequired accuracy in meters
{
"messageId": "0003505dcb762d67d8cde52d0001",
"sentVia": "Satellite",
"sender": "14045550000",
"imsi": "123456789012345",
"timestamp": 1742308785,
"type": "StartTracking",
"duration": 60,
"frequency": 180,
"location": { "latitude": 12.121, "longitude": 12.11 },
"accuracy": 15
}

TrackLocation

Uplink-only message for reporting tracking points.

FieldTypeRequiredDescription
type"TrackLocation"Yes
sessionEndbooleanYestrue if this is the final message in the session
locationsLocationWithTimestamp[]YesArray of location points
{
"messageId": "0003505dcb762d67d8cde52d0001",
"sentVia": "Satellite",
"imsi": "123456789012345",
"timestamp": 1742308785,
"type": "TrackLocation",
"sessionEnd": false,
"locations": [
{
"latitude": 12.121,
"longitude": 12.11,
"accuracy": 20,
"timestamp": 1742308782
},
{
"latitude": 12.121,
"longitude": 12.12,
"accuracy": 10,
"timestamp": 1742308775
}
]
}

OpenSOS

Uplink-only message to initiate an SOS alert.

FieldTypeRequiredDescription
type"OpenSOS"Yes
reasonint8YesAlert reason code (see reason codes table below)
locationLocationYesCurrent location
messagestringNoOptional additional details

Reason Codes: It is up to the client to decide what the reason codes correspond to. Below is just a demonstration of what they can mean.

CodeDescription
0None
1Fire Alert
2No Fuel
3Safety Concern
4Medical
......

CloseSOS

Message to end an SOS session.

FieldTypeRequiredDescription
type"CloseSOS"Yes

DeviceStatusResponse

Sent in response to a DeviceStatusRequest.

FieldTypeRequiredDescription
type"DeviceStatusResponse"Yes
batteryHealthint8YesBattery life percentage (0-100)
appConnectionbooleanYesStatus of connection to companion app
locationLocationWithAccuracyNoCurrent location

Custom Message

Flexible binary payload for custom enterprise or application-specific messaging.

Note: The payload structure and interpretation are defined by the client application. The Enterprise BSS functions solely as a transparent transport mechanism, requiring client-side handling for both sending and receiving directions.

FieldTypeRequiredDescription
type"CustomMessage"Yes
datastringYeshex encoded binary data

Common Structures

Location

Basic location structure:

FieldTypeRequiredDescription
latitudefloat32Yes
longitudefloat32Yes

LocationWithAccuracy

Extended location structure with accuracy:

FieldTypeRequiredDescription
latitudefloat32Yes
longitudefloat32Yes
accuracyint8YesAccuracy in meters

LocationWithTimestamp

Complete location structure for tracking:

FieldTypeRequiredDescription
latitudefloat32Yes
longitudefloat32Yes
accuracyint8YesAccuracy in meters
timestampint32YesUnix timestamp in seconds