media server logo
Toggle documentation navigation
Callaba home

NDI configuration

Use NDI configuration to choose the network interfaces and discovery servers Callaba uses to find and publish NDI sources.

What it doesConfigure NDI discovery

Choose this whenYou need to choose NDI interfaces or discovery servers, especially across routed networks.

Use another module whenUse NDI Discovered Devices to inspect sources; do not change global discovery just to select one source.

1Set the network2Apply discovery3Verify sources
POST /api/devices/updateNDIConfiguration

Before you start

The update method requires a valid x-access-token. Know the interface addresses, machine name, and discovery-server addresses that are reachable from the Engine host.

What you can do

update applies the NDI machine name, selected IP interfaces, and discovery-server configuration for the instance.

Example workflow

{
  "machine_name": "Callaba Studio Gateway",
  "ip_addresses": ["192.168.10.20"],
  "discovery_servers": ["192.168.10.10"]
}
  1. Apply the configuration with an interface reachable from the NDI network.
  2. Synchronize NDI discovered devices.
  3. Confirm that expected senders appear and report current activity.

Common use cases

  • Give a studio gateway a predictable NDI identity.
  • Restrict NDI traffic to the production interface on a multi-homed host.
  • Reach senders across routed networks through an NDI discovery server.

Limits and troubleshooting

An unreachable interface or discovery server prevents expected sources from appearing. Network routing, multicast policy, NDI version compatibility, and host firewall rules still apply. Recheck discovery after every network change.

Next steps

Open NDI discovered devices to verify visibility, then create an NDI adapter for a managed output.

Product UI

Configure NDI in the dashboard, without editing files in a terminal

The normal setup path stays in Callaba: set the NDI machine name, discovery servers, and source IPs in dedicated fields. For advanced settings, import an existing ndi-config.v1.json file or edit the full configuration in the built-in JSON editor.

01Authenticated dashboard

User or admin access protects the configuration action.

02NDI settings in Callaba
  • Machine name
  • Discovery servers
  • Source IPs
Import or live editorSend / receive groupsAllowed network adaptersMulticast and transport settings
03Apply and verify

Save the configuration, then confirm the expected sources in NDI discovered devices.

Two different access layers

NDI send and receive groups scope source visibility on the NDI network. They are not user authentication, encryption, or a firewall. Callaba dashboard/API authorization separately controls who can change the instance configuration.

REST solution recipe

Configure NDI discovery for the intended network

Apply the reviewed NDI discovery configuration, then confirm the resulting source inventory in the discovered-devices module.

  1. Apply discovery settingsSend the reviewed configuration for the instance network.POST /api/devices/updateNDIConfiguration
  2. Verify discovered sourcesConfirm that only the expected source inventory appears.POST /api/devices/getAll

Network visibility, multicast policy, and NDI access controls still apply. A saved configuration does not guarantee source discovery across routed segments.

POST
/api/devices/updateNDIConfiguration
API token required

Use Update NDI configuration to apply app-level NDI settings such as machine naming, discovery servers, explicit network IPs, or a full imported JSON configuration.

This endpoint matters because one save can change how the whole instance behaves in the NDI environment, rather than only changing one item in a list.

Use it when the goal is straightforward and production-facing: make NDI discovery behave the right way for this instance and keep that behavior consistent after the save.

App-level configuration

Use this when the visible form fields are enough and you want the JSON editor to stay in sync with those values.

Minimal form-driven update

This mirrors the normal UI path where form changes and JSON changes stay aligned before save.

Minimal form-driven update
Copy code
curl --request POST \
--url http://localhost/api/devices/updateNDIConfiguration \
--header 'x-access-token: <your_api_token>' \
--header 'Content-Type: application/json' \
--data '{
"machinename": "CALLABA CLOUD STUDIO",
"ips": "192.168.10.41, 192.168.10.52",
"discovery": "192.168.10.20:5959",
"json": {
"ndi": {
"machinename": "CALLABA CLOUD STUDIO",
"networks": {
"discovery": "192.168.10.20:5959",
"ips": "192.168.10.41, 192.168.10.52"
}
}
}
}'
Full JSON-driven update

This matches the live-editor and import flow in the UI.

Full JSON-driven update
Copy code
curl --request POST \
--url http://localhost/api/devices/updateNDIConfiguration \
--header 'x-access-token: <your_api_token>' \
--header 'Content-Type: application/json' \
--data '{
"machinename": "CALLABA CLOUD STUDIO",
"ips": "192.168.10.41, 192.168.10.52",
"discovery": "192.168.10.20:5959, 192.168.10.21:5959",
"json": {
"ndi": {
"machinename": "CALLABA CLOUD STUDIO",
"networks": {
"discovery": "192.168.10.20:5959, 192.168.10.21:5959",
"ips": "192.168.10.41, 192.168.10.52"
}
}
}
}'
Request body parameters
Form fields
machinename
string
Copy direct link

Dashboard label: Machine name.

Optional override for the machine name announced through the NDI network behavior.

discovery
string
Copy direct link

Dashboard label: Discovery.

Comma-separated discovery-server list. The UI tooltip explicitly allows port numbers as part of the values.

ips
string
Copy direct link

Dashboard label: Networks ips.

Comma-separated list of explicit source IPs for cross-subnet discovery scenarios.

JSON editor
json
object
Copy direct link

The live JSON editor model. The UI keeps this object synchronized with the visible form fields and imported config files.

Update NDI configuration
Copy code
curl --request POST \
--url http://localhost/api/devices/updateNDIConfiguration \
--header 'x-access-token: <your_api_token>' \
--header 'Content-Type: application/json' \
--data '{
"machinename": "CALLABA CLOUD STUDIO",
"ips": "192.168.10.41, 192.168.10.52",
"discovery": "192.168.10.20:5959",
"json": {
"ndi": {
"machinename": "CALLABA CLOUD STUDIO",
"networks": {
"discovery": "192.168.10.20:5959",
"ips": "192.168.10.41, 192.168.10.52"
}
}
}
}'
Response
Operation result
success
boolean
Copy direct link

The backend returns { success: true } after validating, writing, and applying the updated NDI configuration.

Apply behavior
side effects
config write + apply path
Copy direct link

The backend writes the compiled config, stores ndi_settings on the app object, and triggers the ingress/apply path used by the engine to pick up the new NDI behavior.

Response: Update NDI configuration
JSON
Copy code
{
"success": true
}