Skip to main content

Cellular routing API

This API is based on the Device Configuration API framework. For guidance on how to use these APIs, please refer to Device Configuration APIs.

warning

This API is in BETA stage and provided for testing purposes. It is subject to backward-incompatible changes, including modifications to its functionality, behavior and availability. The API should not be used in production environments.

Overview

The VAPIX® Cellular routing API provides a routing and port mapping system for managing network traffic between the cellular WWAN interface and Ethernet LAN network port. It provides high-level configuration for network interfaces, DHCP services, and port forwarding to enable cellular network connectivity for Ethernet-connected devices. The underlying service handles implementation details such as NAT and firewall rules, which allows the API to provide practical and comprehensive use-case driven functionality.

Network hosts

  • Cellular host: The device running this API that provides cellular connectivity, for example, Axis cellular back box.
  • LAN host: A locally connected network device, such as a camera, accessible via the Ethernet interface of the cellular host.

Predefined network modes

The API provides predefined network modes to simplify network configuration, with no iptables management required.

Main mode

In main mode, DUAL_UPLINK is enabled by default and the device operates with both Ethernet and WWAN available as uplinks:

  1. Connect the device to a local LAN network via Ethernet.
  2. Access the device through its DHCP-assigned IP address on Ethernet.
  3. Configure multiple devices simultaneously on the same LAN.
  4. Test and verify cellular connection establishment.
  5. Once cellular connection verified, set Main mode to WWAN_ROUTING.
  6. The device operates as a standalone cellular router.
  7. LAN hosts connect via Ethernet and receive cellular connectivity through the device.

Port mapping mode

This API is primarily designed for private cellular networks, which are closed networks requiring specifically provisioned SIM cards for access. A private cellular network operates similarly to a private Ethernet LAN from a network device and access perspective. Security and privacy are enforced through PCN infrastructure integrity and SIM card authorization, with all connected devices considered trusted members of the network. When deploying on public cellular networks, external ports must not be opened for inbound connections due to security risks.

Values for private network:

  • PRIMARY_LAN_HOST: The cellular host can only retrieve a single IP from the cellular network. This single IP will be used to access both the cellular host itself and the connected LAN host(s). It forwards all normal ports to the connected LAN host, typically a camera, except for reserved management ports of the portMapping.cellularHost.defaultPorts. Management ports for the cellular host and LAN host are mutually exclusive.

  • PRIMARY_CELLULAR_HOST: The cellular host owns all normal ports and only management ports of the LAN host portMapping.lanHost.defaultPorts are forwarded to the connected LAN host camera. Management ports for the cellular host and LAN host are mutually exclusive.

Value for public network:

  • PRIMARY_CELLULAR_HOST_WWAN_OUT_ONLY: It restricts traffic to outbound connections only, or inbound connections established in response to outbound requests (stateful connection tracking).

DHCP mode

The DHCP server provides IP address assignment to LAN hosts connected via the Ethernet interface. Configuration is available in two distinct modes, each suited for different deployment scenarios.

Possible values:

  • LOCAL: The default value. In this mode, the LAN host is assigned a private IP address that is separate from the cellular network. This creates an isolated network for connected devices, providing network separation while still allowing remote access through port mapping. This is the safest mode for most deployments as it provides better network isolation. See dhcpServer.localConfig.

  • PASSTHROUGH: In this mode, the cellular subnet is extended to the LAN network. The primary LAN host receives the cellular IP and can be accessed directly on standard ports (e.g., 80, 443, 554), making it appear as if the device directly owns the cellular connection.

The cellular host reserves specific management ports (e.g., 11080, 11443, 11554) for its own access. Additional LAN hosts receive IPs from the expanded cellular subnet and are accessed through unique port ranges via the cellular IP. The cellular IP in the passthrough configuration is matched with the first MAC lease to determine the primary LAN host. See dhcpServer.passthroughConfig.

DHCP IP range

The DHCP server configuration in both LOCAL and PASSTHROUGH modes is controlled through the IP range property (ipRange for passthrough, ipRange for local). The IP range determines how many devices can connect and receive IP addresses.

Default behavior:

  • The default number of IPs is one, which automatically becomes the primary IP assigned to the first LAN host
  • In PASSTHROUGH mode, this defaults to the cellular IP only
  • In LOCAL mode, this starts with a private IP range with a single IP

Increasing the number of IPs:

  • Expand the IP range by setting a larger range (e.g., firstIp: 172.26.248.34, lastIp: 172.26.248.38)
  • The ipPrefixLength (LOCAL mode) or ipPrefixLength (PASSTHROUGH mode) property is calculated automatically based on the configured IP range
  • No manual prefix length configuration is needed - the system determines the optimal subnet size

Subnet expansion in PASSTHROUGH mode

  • The cellular host always retrieves only one IP address from the cellular network (the cellular IP)
  • Additional IPs in an expanded subnet are used exclusively for local communication between devices connected to the cellular host's LAN port
  • The cellular network has no knowledge of these additional subnet IPs
  • The ipPrefixLengthOverride property indicates whether the cellular subnet has been expanded from its original size
    • 0 when no expansion is needed (IP range fits within the cellular network's original subnet)
    • A value greater than 0 (e.g., 29) when expansion is active (IP range requires a larger subnet than originally provided by the cellular network)
    • This value helps identify when subnet expansion is being used, which may affect UE-to-UE communication if IP ranges overlap with other devices on the cellular network

DHCP server IP allocation:

  • The cellular host's LAN interface (DHCP server) receives an IP address from the same subnet
  • This server IP is automatically selected outside the configured IP range to avoid conflicts
  • LAN hosts receive IPs from within the configured IP range via DHCP

Key points:

  • IP range is the primary control - Set the range of IPs you want available for LAN hosts
  • Automatic calculations - Prefix lengths and server IPs are derived automatically
  • Subnet boundaries - The IP range defines both the DHCP pool and subnet boundaries
  • First device priority - The first MAC lease (if configured) receives the first IP in the range
  • Port mapping alignment - Each IP in the range gets a unique port mapping range for external access

Example configurations:

Single device (default) - LOCAL mode:

ipRange: 192.168.1.2 - 192.168.1.2
Result: 1 IP available for LAN host
ipPrefixLength: 30
Cellular host LAN server IP: 192.168.1.1
Cellular IP (WWAN): 172.26.248.34

Single device (default) - PASSTHROUGH mode:

ipRange: 172.26.248.34 - 172.26.248.34
Result: 1 IP available for LAN host (cellular IP assigned to camera)
ipPrefixLength: 30
ipPrefixLengthOverride: 0 (no subnet expansion)
Cellular host LAN server IP: 172.26.248.33
Cellular IP (WWAN): 172.26.248.34

Multiple devices - LOCAL mode:

ipRange: 192.168.1.2 - 192.168.1.6
Result: 5 IPs available (.2, .3, .4, .5, .6)
ipPrefixLength: 29
Cellular host LAN server IP: 192.168.1.1
Cellular IP (WWAN): 172.26.248.34

Multiple devices - PASSTHROUGH mode:

ipRange: 172.26.248.34 - 172.26.248.36
Result: 3 IPs available (.34, .35, .36)
ipPrefixLength: 30 (original cellular subnet)
ipPrefixLengthOverride: 29 (subnet expanded from /30 to /29)
Cellular host LAN server IP: 172.26.248.33
Cellular IP (WWAN): 172.26.248.34

Authentication

For detailed information on how to authenticate requests to this API, please refer to Authentication.

Use cases

Enable cellular routing for a connected camera

This is the simplest configuration for connecting a single camera to the cellular network. In this setup, the camera receives all standard ports (HTTP, HTTPS, RTSP, SSH), while the cellular host reserves management ports on higher port numbers for HTTP, HTTPS, SSH, etc. This configuration is ideal for single-camera deployments where direct cellular access is required. A VMS can access the camera the same way as if it was sitting on a normal LAN.

Step 1: Retrieve the management ports of the cellular host

The retrieved ports will be used to access the cellular host after port forwarding is enabled. Once cellular routing is active, the standard ports will be forwarded to the camera. The default management port for HTTP is 11080 and for HTTPS 11443. Change these ports using portMapping.cellularHost.defaultPorts.source.

The portMapping.cellularHost entity contains all management ports for the cellular host, split between defaultPorts (predefined ports for HTTP, HTTPS, RTSP, and SSH) and ports (custom ports added by the user, empty by default).

curl --request GET \
--anyauth \
--user "<username>:<password>" \
--http1.1 \
--header "Content-Type: application/json" \
http://my-device/config/rest/cellular-routing/v1beta/portMapping/cellularHost
HTTP/1.1 200 OK
Content-Type: application/json

{
"status": "success",
"data": {
"defaultPorts": [
{
"destination": 80,
"index": "0",
"name": "http",
"source": 11080
},
{
"destination": 443,
"index": "1",
"name": "https",
"source": 11443
},
{
"destination": 554,
"index": "2",
"name": "rtsp",
"source": 11554
},
{
"destination": 22,
"index": "3",
"name": "ssh",
"source": 11022
}
],
"ports": []
}
}

Step 2: Enable PASSTHROUGH mode to assign the cellular IP to the camera

Set dhcpServer.mode to PASSTHROUGH to extend the cellular subnet to the LAN network. In this mode, the camera receives the cellular IP address directly, making it appear as if the camera owns the cellular connection. The camera can be accessed on standard ports (80, 443, 554), while the cellular host reserves management ports (11080, 11443, 11554) for its own access. This configuration is ideal when you want the camera to have the public cellular IP.

curl --request PATCH \
--anyauth \
--user "<username>:<password>" \
--http1.1 \
--header "Content-Type: application/json" \
http://my-device/config/rest/cellular-routing/v1beta/dhcpServer/mode \
--data '{
"data": "PASSTHROUGH"
}'
HTTP/1.1 200 OK
Content-Type: application/json

{
"status": "success"
}

Step 3: Enable cellular connectivity to the connected camera

Enable cellular WWAN routing on the cellular host to provide cellular network connectivity to the camera. Change main.mode to WWAN_ROUTING to activate it. Once enabled, the camera will be accessible remotely through the cellular network.

curl --request PATCH \
--anyauth \
--user "<username>:<password>" \
--http1.1 \
--header "Content-Type: application/json" \
http://my-device/config/rest/cellular-routing/v1beta/main/mode \
--data '{
"data": "WWAN_ROUTING"
}'
HTTP/1.1 200 OK
Content-Type: application/json

{
"status": "success"
}

Step 4: Get the active port mapping and discovery information

Call portMapping.getConfiguredPortMappings to check the active port mapping and retrieve the associated product name over mDNS discovery. The port destination and the port source are the same because all ports are forwarded to the camera except for the management ports of the portMapping.cellularHost.defaultPorts.

curl --request POST \
--anyauth \
--user "<username>:<password>" \
--http1.1 \
--header "Content-Type: application/json" \
http://my-device/config/rest/cellular-routing/v1beta/portMapping/getConfiguredPortMappings \
--data '{
"data": {
"includeOnlyActivePorts": true,
"enableLanHostDiscovery": true
}
}'
HTTP/1.1 200 OK
Content-Type: application/json

{
"status": "success",
"data": [
{
"destinationIp": "172.26.248.54",
"name": "AXIS P3265-LVE - B8A44F279D82",
"ports": [
{
"destination": 80,
"name": "http",
"source": 80
},
{
"destination": 443,
"name": "https",
"source": 443
},
{
"destination": 554,
"name": "rtsp",
"source": 554
},
{
"destination": 22,
"name": "ssh",
"source": 22
}
]
}
]
}

Enable cellular routing for a connected camera with additional network accessories

This configuration is designed for installations where a primary camera needs cellular connectivity along with additional network accessories (radar, speakers, strobes) that connect directly to the camera. The primary camera receives the full port range and cellular IP, while accessories are accessed through the camera's local network. This simplifies VMS (Video Management System) integration by providing standard port access to the main camera.

Step 1: Specify the primary device

Add a MAC address to the dhcpServer.macLeases in order to specify the primary network device, which should receive the full port mapping range.

curl --request PATCH \
--anyauth \
--user "<username>:<password>" \
--http1.1 \
--header "Content-Type: application/json" \
http://my-device/config/rest/cellular-routing/v1beta/dhcpServer/macLeases \
--data '{
"data": "B8:A4:4F:27:9D:82"
}'
HTTP/1.1 200 OK
Content-Type: application/json

{
"status": "success",
"data": {
"macAddress": "B8:A4:4F:27:9D:82"
}
}

Step 2: Enable PASSTHROUGH mode to assign the cellular IP to the camera

Set dhcpServer.mode to PASSTHROUGH to extend the cellular subnet to the LAN network. In this mode, the camera receives the cellular IP address directly, making it appear as if the camera owns the cellular connection.

Step 3: Increase the number of DHCP IP addresses

Configure the passthroughConfig.ipRange to increase the number of DHCP IP addresses to accommodate all LAN hosts. By default, the IP range contains only the cellular IP address, which corresponds to a single IP in the DHCP pool.

Example:

curl --request PATCH \
--anyauth \
--user "<username>:<password>" \
--http1.1 \
--header "Content-Type: application/json" \
http://my-device/config/rest/cellular-routing/v1beta/dhcpServer/passthroughConfig/ipRange \
--data '{
"data": {
"firstIp": "172.26.248.34",
"lastIp": "172.26.248.35"
}
}'
HTTP/1.1 200 OK
Content-Type: application/json

{
"status": "success"
}

Step 4: Check the DHCP passthrough configuration

Fetch the dhcpServer.passthroughConfig configuration.

Example:

curl --request GET \
--anyauth \
--user "<username>:<password>" \
--http1.1 \
--header "Content-Type: application/json" \
http://my-device/config/rest/cellular-routing/v1beta/dhcpServer/passthroughConfig
HTTP/1.1 200 OK
Content-Type: application/json

{
"status": "success",
"data": {
"ipPrefixLength": 30,
"ipPrefixLengthOverride": 29,
"ipRange": {
"firstIp": "172.26.248.34",
"lastIp": "172.26.248.35"
},
"serverIp": "172.26.248.33",
"staticLeases": [
{
"ip": "172.26.248.34",
"macAddress": "B8:A4:4F:27:9D:82"
}
]
}
}

Step 5: Check the active port mappings

Call portMapping.getConfiguredPortMappings to list the active port mappings and the associated product names. There is one camera (AXIS P3265-LVE) and one strobe siren (AXIS D4200-VE) actively connected to the cellular host, with three additional available IP addresses in the DHCP pool. Once this configuration is complete, the camera and accessories will be accessible remotely through the cellular network.

NOTE: About the IPs and ports in the following example:

  • The camera's HTTPS port is accessible at 172.26.248.34:443
  • The strobe siren's HTTPS port is accessible at 172.26.248.34:20001
  • The IP 172.26.248.35 is only used internally between the cellular host and the strobe siren
  • There is only one public cellular IP: 172.26.248.34

Example:

curl --request POST \
--anyauth \
--user "<username>:<password>" \
--http1.1 \
--header "Content-Type: application/json" \
http://my-device/config/rest/cellular-routing/v1beta/portMapping/getConfiguredPortMappings \
--data '{
"data": {
"includeOnlyActivePorts": true,
"enableLanHostDiscovery": true
}
}'
HTTP/1.1 200 OK
Content-Type: application/json

{
"status": "success",
"data": [
{
"destinationIp": "172.26.248.34",
"name": "AXIS P3265-LVE - B8A44F279D82",
"ports": [
{
"destination": 80,
"name": "http",
"source": 80
},
{
"destination": 443,
"name": "https",
"source": 443
},
{
"destination": 554,
"name": "rtsp",
"source": 554
},
{
"destination": 22,
"name": "ssh",
"source": 22
}
]
},
{
"destinationIp": "172.26.248.35",
"name": "AXIS D4200-VE - B8A44FFC25C2",
"ports": [
{
"destination": 80,
"name": "http",
"source": 20000
},
{
"destination": 443,
"name": "https",
"source": 20001
},
{
"destination": 554,
"name": "rtsp",
"source": 20002
},
{
"destination": 22,
"name": "ssh",
"source": 20003
}
]
}
]
}

Enable cellular routing for multiple connected cameras

When multiple cameras need cellular connectivity through a single cellular host, port mapping must be distributed across devices. Since cameras cannot share the same ports, this configuration uses symmetric port mapping where each camera receives a unique port range starting from a base port (e.g., 20000, 20010, 20020). This approach scales well for multi-camera surveillance installations.

Important considerations:

  • Static MAC address leases ensure consistent port assignments
  • The cellular host retains all standard ports for its own management
  • Each camera receives custom port ranges for remote access

Step 1: Specify static MAC address leases

Specify static MAC address leases for all cameras to ensure the port mapping remains fixed, even if a camera is factory reset. The port mapping is configured per IP. A fixed IP mapping will result in a fixed port mapping.

Add a MAC address to the dhcpServer.macLeases for each camera to specify MAC address leases for all devices.

MAC lease for camera 1

Example:

curl --request PATCH \
--anyauth \
--user "<username>:<password>" \
--http1.1 \
--header "Content-Type: application/json" \
http://my-device/config/rest/cellular-routing/v1beta/dhcpServer/macLeases \
--data '{
"data": "B8:A4:4F:27:9D:82"
}'
HTTP/1.1 200 OK
Content-Type: application/json

{
"status": "success",
"data": {
"macAddress": "B8:A4:4F:27:9D:82"
}
}

MAC lease for camera 2

Example:

curl --request PATCH \
--anyauth \
--user "<username>:<password>" \
--http1.1 \
--header "Content-Type: application/json" \
http://my-device/config/rest/cellular-routing/v1beta/dhcpServer/macLeases \
--data '{
"data": "AC:CC:8E:DA:5F:B6"
}'
HTTP/1.1 200 OK
Content-Type: application/json

{
"status": "success",
"data": {
"macAddress": "AC:CC:8E:DA:5F:B6"
}
}

MAC lease for camera 3

Example:

curl --request PATCH \
--anyauth \
--user "<username>:<password>" \
--http1.1 \
--header "Content-Type: application/json" \
http://my-device/config/rest/cellular-routing/v1beta/dhcpServer/macLeases \
--data '{
"data": "AC:CC:8E:DA:5F:BE"
}'
HTTP/1.1 200 OK
Content-Type: application/json

{
"status": "success",
"data": {
"macAddress": "AC:CC:8E:DA:5F:BE"
}
}

Step 2: Increase the number of DHCP IP addresses

Configure the dhcpServer.localConfig.ipRange to increase the number of DHCP IP addresses to accommodate all connected LAN host cameras.

Example:

curl --request PATCH \
--anyauth \
--user "<username>:<password>" \
--http1.1 \
--header "Content-Type: application/json" \
http://my-device/config/rest/cellular-routing/v1beta/dhcpServer/localConfig/ipRange \
--data '{
"data": {
"firstIp": "192.168.1.2",
"lastIp": "192.168.1.4"
}
}'
HTTP/1.1 200 OK
Content-Type: application/json

{
"status": "success"
}

Step 3: Configure local IP addresses

Set dhcpServer.mode to LOCAL to configure a local network with private IP addresses for the connected cameras. Once configured, all cameras will be accessible remotely through the cellular network.

NOTE: It's possible to keep using PASSTHROUGH for the DHCP server mode but expanding the IP range larger than the original cellular subnet defined in dhcpServer.passthroughConfig.ipPrefixLength will make it overlap with another cellular subnet. This is actually safe as long as there are no interactions between the overlapping subnets.

Step 4: Check the DHCP local configuration

Fetch the dhcpServer.localConfig configuration.

Example:

curl --request GET \
--anyauth \
--user "<username>:<password>" \
--http1.1 \
--header "Content-Type: application/json" \
http://my-device/config/rest/cellular-routing/v1beta/dhcpServer/localConfig
HTTP/1.1 200 OK
Content-Type: application/json

{
"status": "success",
"data": {
"ipPrefixLength": 29,
"ipRange": {
"firstIp": "192.168.1.2",
"lastIp": "192.168.1.4"
},
"serverIp": "192.168.1.1",
"staticLeases": [
{
"ip": "192.168.1.2",
"macAddress": "B8:A4:4F:27:9D:82"
},
{
"ip": "192.168.1.3",
"macAddress": "AC:CC:8E:DA:5F:B6"
},
{
"ip": "192.168.1.4",
"macAddress": "AC:CC:8E:DA:5F:BE"
}
],
"subnetIp": "192.168.1.1"
}
}

Step 5: Check the active port mappings

Call portMapping.getConfiguredPortMappings to list the active port mappings and the associated product names. There are 3 cameras (AXIS P3265-LVE) actively connected to the cellular host, with three additional available IP addresses in the DHCP pool.

NOTE: About the IPs and ports in the following example:

  • The first camera's HTTPS port is accessible at 172.26.248.34:20001
  • The second camera's HTTPS port is accessible at 172.26.248.34:20011
  • The third camera's HTTPS port is accessible at 172.26.248.34:20021
  • The IP 192.168.1.2 - 192.168.1.6 are only used internally between the cellular host and LAN host cameras
  • There is only one public cellular IP: 172.26.248.34

Example:

curl --request POST \
--anyauth \
--user "<username>:<password>" \
--http1.1 \
--header "Content-Type: application/json" \
http://my-device/config/rest/cellular-routing/v1beta/portMapping/getConfiguredPortMappings \
--data '{
"data": {
"includeOnlyActivePorts": true,
"enableLanHostDiscovery": true
}
}'
HTTP/1.1 200 OK
Content-Type: application/json

{
"status": "success",
"data": [
{
"destinationIp": "192.168.1.2",
"name": "AXIS P3265-LVE - B8:A4:4F:27:9D:82",
"ports": [
{
"destination": 80,
"name": "http",
"source": 20000
},
{
"destination": 443,
"name": "https",
"source": 20001
},
{
"destination": 554,
"name": "rtsp",
"source": 20002
},
{
"destination": 22,
"name": "ssh",
"source": 20003
}
]
},
{
"destinationIp": "192.168.1.3",
"name": "AXIS P3265-LVE - AC:CC:8E:DA:5F:B6",
"ports": [
{
"destination": 80,
"name": "http",
"source": 20010
},
{
"destination": 443,
"name": "https",
"source": 20011
},
{
"destination": 554,
"name": "rtsp",
"source": 20012
},
{
"destination": 22,
"name": "ssh",
"source": 20013
}
]
},
{
"destinationIp": "192.168.1.4",
"name": "AXIS P3265-LVE - AC:CC:8E:DA:5F:BE",
"ports": [
{
"destination": 80,
"name": "http",
"source": 20020
},
{
"destination": 443,
"name": "https",
"source": 20021
},
{
"destination": 554,
"name": "rtsp",
"source": 20022
},
{
"destination": 22,
"name": "ssh",
"source": 20023
}
]
}
]
}

API definition

Structure

cellular-routing.v1 (Root Entity)
├── connectionMonitor (Entity)
├── autoRecovery (Property)
├── dhcpServer (Entity)
├── mode (Property)
├── serverCheckEnabled (Property)
├── localConfig (Entity)
├── ipPrefixLength (Property)
├── ipRange (Property)
├── serverIp (Property)
├── staticLeases (Property)
├── macLeases (Entity Collection)
├── index (Property)
├── macAddress (Property)
├── passthroughConfig (Entity)
├── ipPrefixLength (Property)
├── ipPrefixLengthOverride (Property)
├── ipRange (Property)
├── serverIp (Property)
├── staticLeases (Property)
├── main (Entity)
├── cellularIpv4Info (Property)
├── mode (Property)
├── portMapping (Entity)
├── mode (Property)
├── getConfiguredPortMappings (Action)
├── cellularHost (Entity)
├── defaultPorts (Entity Collection)
├── destination (Property)
├── index (Property)
├── name (Property)
├── source (Property)
├── ports (Entity Collection)
├── destination (Property)
├── index (Property)
├── name (Property)
├── source (Property)
├── lanHost (Entity)
├── defaultPorts (Property)
├── sourceBasePort (Property)
├── sourceMaxPort (Property)
├── sourcePortListAlignment (Property)
├── ports (Entity Collection)
├── destination (Property)
├── index (Property)
├── name (Property)

Entities

cellular-routing.v1

  • Description: The root node of the Cellular Routing API.
  • Type: Singleton
  • Operations
    • Get
  • Attributes
    • Dynamic Support: No
Properties

This entity has no properties.

Actions

This entity has no actions.


cellular-routing.v1.connectionMonitor

  • Description: Features to monitor the cellular network connection.
  • Type: Singleton
  • Operations
    • Get
  • Attributes
    • Dynamic Support: No
Properties
autoRecovery
  • Description: Monitor the cellular data connection and try to recover in case the connection goes down.

  • Datatype: boolean

  • Operations

    • Get (Permissions: admin, operator)
    • Set (Permissions: admin)
  • Attributes

    • Nullable: No
    • Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
Actions

This entity has no actions.


cellular-routing.v1.dhcpServer

  • Description: DHCP Server settings for the LAN port with LOCAL and PASSTHROUGH modes.
  • Type: Singleton
  • Operations
    • Get
  • Attributes
    • Dynamic Support: No
Properties
mode
  • Description: The DHCP server mode. See localConfig and passthroughConfig entities.

  • Datatype: DhcpServerMode

  • Operations

    • Get (Permissions: admin, operator)
    • Set (Permissions: admin)
  • Attributes

    • Nullable: No
    • Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
serverCheckEnabled
  • Description: Enable or disable conflict check for existing DHCP server on the LAN network.

  • Datatype: boolean

  • Operations

    • Get (Permissions: admin, operator)
    • Set (Permissions: admin)
  • Attributes

    • Nullable: No
    • Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
Actions

This entity has no actions.


cellular-routing.v1.dhcpServer.localConfig

  • Description: DHCP server configuration for a private LAN network.
  • Type: Singleton
  • Operations
    • Get
  • Attributes
    • Dynamic Support: No
Properties
ipPrefixLength
  • Description: The calculated prefix length of the DHCP subnet derived from the configured ipRange. This read-only value represents the smallest subnet that can contain the entire IP range.

  • Datatype: integer

  • Operations

    • Get (Permissions: admin, operator)
  • Attributes

    • Nullable: No
    • Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
ipRange
  • Description: Specify the IP address range for the private LAN network. This defines both the subnet boundaries and the pool of addresses available for DHCP allocation to LAN hosts.

  • Datatype: IpRange

  • Operations

    • Get (Permissions: admin, operator)
    • Set (Permissions: admin)
  • Attributes

    • Nullable: No
    • Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
serverIp
  • Description: The IP of the DHCP server, which is the first usable IP in the subnet.

  • Datatype: Ipv4Address

  • Operations

    • Get (Permissions: admin, operator)
  • Attributes

    • Nullable: No
    • Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
staticLeases
  • Description: Static leases for LAN hosts.
  • Datatype: StaticMacIpLeases
  • Operations
    • Get (Permissions: admin, operator)
  • Attributes
    • Nullable: No
    • Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
Actions

This entity has no actions.


cellular-routing.v1.dhcpServer.macLeases

  • Description: MAC address list for static leases. The first MAC lease determines which device receives all ports in PRIMARY_LAN_HOST mode, while subsequent MAC leases use custom ports. In LOCAL mode, the first DHCP IP is always mapped to the first MAC lease. In PASSTHROUGH mode, the public cellular IP is matched with the first MAC lease.

  • Type: Collection (Key Property: index)

  • Operations

    • Get
    • Add
      • Required properties: macAddress
    • Remove
  • Attributes

    • Dynamic Support: No
Properties
index
  • Description: The index of the MAC address list.
  • Datatype: ListIndex
  • Operations
    • Get (Permissions: admin, operator)
  • Attributes
    • Nullable: No
    • Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
macAddress
  • Description: The MAC address.
  • Datatype: MacAddress
  • Operations
    • Get (Permissions: admin, operator)
    • Set (Permissions: admin)
  • Attributes
    • Nullable: No
    • Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
Actions

This entity has no actions.


cellular-routing.v1.dhcpServer.passthroughConfig

  • Description: DHCP configuration that extends the cellular subnet to the LAN network, making LAN hosts appear as if they're directly connected to the cellular network with IPs from the cellular subnet.

  • Type: Singleton

  • Operations

    • Get
  • Attributes

    • Dynamic Support: No
Properties
ipPrefixLength
  • Description: The prefix length of the DHCP server IP based on the uplink DHCP configuration.
  • Datatype: integer
  • Operations
    • Get (Permissions: admin, operator)
  • Attributes
    • Nullable: No
    • Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
ipPrefixLengthOverride
  • Description: The calculated prefix length override derived from the configured ipRange. Returns 0 when the ipRange fits within the cellular subnet provided by the network, indicating no subnet expansion is needed. Returns a prefix length value (smaller number than ipPrefixLength, e.g., 29 instead of 30) when the ipRange requires subnet expansion to accommodate more LAN hosts. Subnet expansion is safe when UE-to-UE communication is not required. If UE-to-UE communication is needed, ensure that the expanded IP range does not overlap with IP addresses assigned to other UEs in the cellular network, as this would prevent communication between those devices. This read-only value helps understand whether subnet expansion is active and whether IP address planning is required to avoid conflicts.

  • Datatype: integer

  • Operations

    • Get (Permissions: admin, operator)
  • Attributes

    • Nullable: No
    • Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
ipRange
  • Description: Specify the IP address range to offer via DHCP to LAN hosts. When the cellular IP is available, this defaults to only the cellular IP address for single device deployments. Before cellular connectivity is established, this property may be empty and will be automatically set to the cellular IP once it becomes available. When the cellular network allocates multiple IP addresses within a UE subnet, configure this range to match those allocated IPs (e.g., firstIp: 172.26.248.34, lastIp: 172.26.248.38). For subnet expansion scenarios where additional IPs are needed beyond the cellular network allocation, set a larger range that extends the subnet boundaries. When the cellular IP changes, the system validates the configured range and automatically resets it to only the cellular IP if the new cellular IP falls outside the configured range. When setting this property with an active cellular connection, the range must include the current cellular IP address.

  • Datatype: IpRange

  • Operations

    • Get (Permissions: admin, operator)
    • Set (Permissions: admin)
  • Attributes

    • Nullable: No
    • Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
serverIp
  • Description: The IP address of the DHCP server on the LAN interface. This is the first usable IP in the range, or the last IP if the UE cellular IP occupies the first position.

  • Datatype: Ipv4Address

  • Operations

    • Get (Permissions: admin, operator)
  • Attributes

    • Nullable: No
    • Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
staticLeases
  • Description: Static leases for LAN hosts.
  • Datatype: StaticMacIpLeases
  • Operations
    • Get (Permissions: admin, operator)
  • Attributes
    • Nullable: No
    • Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
Actions

This entity has no actions.


cellular-routing.v1.main

  • Description: The main configuration of the Cellular Routing.
  • Type: Singleton
  • Operations
    • Get
  • Attributes
    • Dynamic Support: No
Properties
cellularIpv4Info
  • Description: Cellular uplink network information such as UE IP, subnet configuration and name servers.

  • Datatype: CellularIpv4Info

  • Operations

    • Get (Permissions: admin, operator)
  • Attributes

    • Nullable: No
    • Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
mode
  • Description: The main mode controls the routing feature, by default routing is off.

  • Datatype: MainMode

  • Operations

    • Get (Permissions: admin, operator)
    • Set (Permissions: admin)
  • Attributes

    • Nullable: No
    • Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
Actions

This entity has no actions.


cellular-routing.v1.portMapping

  • Description: Port mapping configuration for ports to cellular host and LAN host.
  • Type: Singleton
  • Operations
    • Get
  • Attributes
    • Dynamic Support: No
Properties
mode
  • Description: The mode specifies whether cellular host or LAN host should be the primary host. All normal ports will be directed to the primary host.

  • Datatype: PortMapMode

  • Operations

    • Get (Permissions: admin, operator)
    • Set (Permissions: admin)
  • Attributes

    • Nullable: No
    • Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
Actions
getConfiguredPortMappings
  • Description: Get the currently configured port mappings. If includeOnlyActivePorts is true, returns only active mappings (empty list if ports are inactive, e.g. in DUAL_UPLINK mode). If false, returns all potential port mappings for the entire DHCP IP range based on ipPrefixLength configuration.

  • Request Datatype: ActivePortsAndDiscovery

  • Response Datatype: ConfiguredPortMappings

  • Trigger Permissions: admin, operator

  • Attributes

    • Dynamic Support: No

cellular-routing.v1.portMapping.cellularHost

  • Description: Network ports for the cellular host.
  • Type: Singleton
  • Operations
    • Get
  • Attributes
    • Dynamic Support: No
Properties

This entity has no properties.

Actions

This entity has no actions.


cellular-routing.v1.portMapping.cellularHost.defaultPorts

  • Description: Default ports for the cellular host. This guaranteed minimal set of ports cannot be added or removed, ensuring basic management access is always available. Only the source port can be modified.

  • Type: Collection (Key Property: index)

  • Operations

    • Get
  • Attributes

    • Dynamic Support: No
Properties
destination
  • Description: The destination port.
  • Datatype: NetworkPort
  • Operations
    • Get (Permissions: admin, operator)
  • Attributes
    • Nullable: No
    • Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
index
  • Description: The index of the port list.
  • Datatype: ListIndex
  • Operations
    • Get (Permissions: admin, operator)
  • Attributes
    • Nullable: No
    • Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
name
  • Description: The protocol name of the port.
  • Datatype: string
  • Operations
    • Get (Permissions: admin, operator)
  • Attributes
    • Nullable: No
    • Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
source
  • Description: The source port.
  • Datatype: NetworkPort
  • Operations
    • Get (Permissions: admin, operator)
    • Set (Permissions: admin)
  • Attributes
    • Nullable: No
    • Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
Actions

This entity has no actions.


cellular-routing.v1.portMapping.cellularHost.ports

  • Description: Custom network ports for the cellular host. Users can freely add and remove ports as needed beyond the guaranteed defaultPorts.

  • Type: Collection (Key Property: index)

  • Operations

    • Get
    • Add
      • Required properties: name, source, destination
    • Remove
  • Attributes

    • Dynamic Support: No
Properties
destination
  • Description: The destination port.
  • Datatype: NetworkPort
  • Operations
    • Get (Permissions: admin, operator)
    • Set (Permissions: admin)
  • Attributes
    • Nullable: No
    • Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
index
  • Description: The index of the port list.
  • Datatype: ListIndex
  • Operations
    • Get (Permissions: admin, operator)
  • Attributes
    • Nullable: No
    • Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
name
  • Description: The protocol name of the port.
  • Datatype: string
  • Operations
    • Get (Permissions: admin, operator)
    • Set (Permissions: admin)
  • Attributes
    • Nullable: No
    • Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
source
  • Description: The source port.
  • Datatype: NetworkPort
  • Operations
    • Get (Permissions: admin, operator)
    • Set (Permissions: admin)
  • Attributes
    • Nullable: No
    • Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
Actions

This entity has no actions.


cellular-routing.v1.portMapping.lanHost

  • Description: Network ports for a host on the LAN DHCP server network.
  • Type: Singleton
  • Operations
    • Get
  • Attributes
    • Dynamic Support: No
Properties
defaultPorts
  • Description: Default destination ports for the LAN host. These ports are applied symmetrically to all LAN host devices, with source ports calculated automatically. This design simplifies scaling for video surveillance where all cameras typically use the same ports.

  • Datatype: DestinationPorts

  • Operations

    • Get (Permissions: admin, operator)
  • Attributes

    • Nullable: No
    • Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
sourceBasePort
  • Description: The base port number for LAN host ports. Source ports are calculated for each device starting from this base, with device port ranges aligned according to sourcePortListAlignment.

  • Datatype: NetworkPort

  • Operations

    • Get (Permissions: admin, operator)
    • Set (Permissions: admin)
  • Attributes

    • Nullable: No
    • Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
sourceMaxPort
  • Description: The calculated source max port number based on the number of IPs in the DHCP IP range.
  • Datatype: NetworkPort
  • Operations
    • Get (Permissions: admin, operator)
  • Attributes
    • Nullable: No
    • Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
sourcePortListAlignment
  • Description: The port alignment value for LAN host source port ranges. Each device's starting port is aligned to this value. For example, device port ranges with alignment multipliers of 10 (20000, 20010, 20020, etc.), rounded up from the actual port count.

  • Datatype: PortAlignment

  • Operations

    • Get (Permissions: admin, operator)
    • Set (Permissions: admin)
  • Attributes

    • Nullable: No
    • Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
Actions

This entity has no actions.


cellular-routing.v1.portMapping.lanHost.ports

  • Description: Custom network ports for LAN hosts. Ports added here are applied symmetrically to all LAN host devices, making it easy to scale multiple cameras with consistent port configurations.

  • Type: Collection (Key Property: index)

  • Operations

    • Get
    • Add
      • Required properties: name, destination
    • Remove
  • Attributes

    • Dynamic Support: No
Properties
destination
  • Description: The destination port.
  • Datatype: NetworkPort
  • Operations
    • Get (Permissions: admin, operator)
    • Set (Permissions: admin)
  • Attributes
    • Nullable: No
    • Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
index
  • Description: The index of the port list.
  • Datatype: ListIndex
  • Operations
    • Get (Permissions: admin, operator)
  • Attributes
    • Nullable: No
    • Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
name
  • Description: The protocol name of the port.
  • Datatype: string
  • Operations
    • Get (Permissions: admin, operator)
    • Set (Permissions: admin)
  • Attributes
    • Nullable: No
    • Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
Actions

This entity has no actions.


Data Types

ActivePortsAndDiscovery

  • Description: Request for getting configured port mappings along with LAN host discovery.

  • Type: complex

  • Fields

    • enableLanHostDiscovery

      • Description: Perform LAN host discovery to retrieve device names. If enabled, the name field in the response is populated with mDNS names from connected LAN hosts.

      • Type: boolean

      • Nullable: No / Gettable: Yes

    • includeOnlyActivePorts

      • Description: Include only active port mappings in the response. If true, returns only active mappings (empty list if ports are inactive, e.g. in DUAL_UPLINK mode). If false, returns all potential port mappings for the entire DHCP IP range.

      • Type: boolean

      • Nullable: No / Gettable: Yes

CellularIpv4Info

  • Description: The cellular IPv4 network information provided by the cellular network. This information is essential when configuring dhcpServer to avoid IP address collisions between local DHCP configurations and the cellular uplink IP range. The UE IP represents the publicly visible IP address assigned by the cellular network. When using PASSTHROUGH mode to assign the cellular IP to a camera, this information serves as the reference point to verify a correct configuration.

  • Type: complex

  • Fields

    • gateway
      • Description: The gateway IP.
      • Type: Ipv4Address
      • Nullable: No / Gettable: Yes
    • ipPrefixLength
      • Description: The IP prefix length.
      • Type: integer
      • Nullable: No / Gettable: Yes
    • nameServers
      • Description: The DNS name servers provided by the cellular network.
      • Type: Ips
      • Nullable: No / Gettable: Yes
    • ueIp
      • Description: The UE IP.
      • Type: Ipv4Address
      • Nullable: No / Gettable: Yes

ConfiguredPortMapping

  • Description: The configured port mappings for a destination IP entry.
  • Type: complex
  • Fields
    • destinationIp

      • Description: The destination IP of the LAN DHCP server IP range.
      • Type: Ipv4Address
      • Nullable: No / Gettable: Yes
    • name

      • Description: The mDNS name provided by the LAN host. This field is only used when enableLanHostDiscovery in ActivePortsAndDiscovery is true in the action request.

      • Type: string

      • Nullable: No / Gettable: Yes

    • ports

ConfiguredPortMappings

  • Description: The list of configured port mappings for all destination IPs.
  • Type: array
  • Element type: ConfiguredPortMapping
  • Null Value: No

DestinationPort

  • Description: LAN host port.
  • Type: complex
  • Fields
    • destination
      • Description: The destination port.
      • Type: NetworkPort
      • Nullable: No / Gettable: Yes
    • name
      • Description: The protocol name of the port.
      • Type: string
      • Nullable: No / Gettable: Yes

DestinationPorts

  • Description: LAN host ports.
  • Type: array
  • Element type: DestinationPort
  • Null Value: No

DhcpServerMode

  • Description: The DHCP server mode. LOCAL is the default mode and creates a separate private network with specified IP addresses and subnet, while DNS servers are still retrieved from the cellular network. PASSTHROUGH passes through the cellular IP, DNS servers, and subnet to LAN hosts, allowing the cellular IP to be assigned to connected devices.

  • Type: string

  • Enum Values: "LOCAL", "PASSTHROUGH"

IpRange

  • Description: The first and last IP in the range.
  • Type: complex
  • Fields
    • firstIp
      • Description: The first IP in range.
      • Type: Ipv4Address
      • Nullable: No / Gettable: Yes
    • lastIp
      • Description: The last IP in range.
      • Type: Ipv4Address
      • Nullable: No / Gettable: Yes

Ips

  • Description: Array of IPs.
  • Type: array
  • Element type: Ipv4Address
  • Null Value: No

Ipv4Address

  • Description: Ip address type.
  • Type: string
  • Minimum Length: 0
  • Maximum Length: 15

ListIndex

  • Description: List index type.
  • Type: string
  • Minimum Length: 1
  • Maximum Length: 3
  • Pattern: ^[0-9]+$

MacAddress

  • Description: MAC address type.
  • Type: string
  • Minimum Length: 17
  • Maximum Length: 17

MainMode

  • Description: The main mode controls the routing feature. DUAL_UPLINK is the factory default where both Ethernet and WWAN interfaces run DHCP clients, allowing initial configuration and testing. WWAN_ROUTING activates cellular routing where the device operates as a standalone cellular router providing connectivity to LAN hosts. DUAL_UPLINK_WWAN_OUT_ONLY is similar to DUAL_UPLINK but the WWAN interface only accepts outbound traffic. This is useful when the cellular network is not private or cannot be trusted.

  • Type: string

  • Enum Values: "DUAL_UPLINK", "WWAN_ROUTING", "DUAL_UPLINK_WWAN_OUT_ONLY"

NetworkPort

  • Description: NetworkPort type.
  • Type: integer
  • Minimum Value: 0
  • Maximum Value: 65535

PortAlignment

  • Description: Port alignment value for LAN host source port ranges. Each device's starting port is aligned to this boundary. For example, devices with alignment 10 start at 20000, 20010, 20020, etc., rounded up from the actual number of ports per device.

  • Type: integer

  • Minimum Value: 1

  • Maximum Value: 100

PortMapMode

  • Description: The port mapping mode determines which host is primary. PRIMARY_CELLULAR_HOST mode directs all normal ports to the cellular host, with only LAN host management ports forwarded to the LAN host. PRIMARY_LAN_HOST mode forwards all ports to the LAN host except for cellular host management ports. PRIMARY_CELLULAR_HOST_WWAN_OUT_ONLY allows only outbound traffic with no inbound port forwarding and requires hole punching services for external access.

  • Type: string

  • Enum Values: "PRIMARY_CELLULAR_HOST", "PRIMARY_LAN_HOST", "PRIMARY_CELLULAR_HOST_WWAN_OUT_ONLY"

SourceDestinationPort

  • Description: Source and destination port.
  • Type: complex
  • Fields
    • destination
      • Description: The destination port.
      • Type: NetworkPort
      • Nullable: No / Gettable: Yes
    • name
      • Description: The protocol name of the port.
      • Type: string
      • Nullable: No / Gettable: Yes
    • source
      • Description: The source port.
      • Type: NetworkPort
      • Nullable: No / Gettable: Yes

SourceDestinationPorts

  • Description: Source and destination ports.
  • Type: array
  • Element type: SourceDestinationPort
  • Null Value: No

StaticMacIpLease

  • Description: Tuple with MAC and IP addresses.
  • Type: complex
  • Fields
    • ip
      • Description: The IP.
      • Type: Ipv4Address
      • Nullable: No / Gettable: Yes
    • macAddress
      • Description: The MAC address.
      • Type: MacAddress
      • Nullable: No / Gettable: Yes

StaticMacIpLeases

  • Description: Lists of leases containing tuples of MAC and IP addresses.
  • Type: array
  • Element type: StaticMacIpLease
  • Null Value: No