Configuration
Configure SDM hardware and software properties
All configuration tasks can be done over the web interface
Web interface default login
admin / nexgentec
Use the top menu bar to navigate to the option you want
All configuration tasks can be done over the web interface
Web interface default login
admin / nexgentec
Use the top menu bar to navigate to the option you want
The status of the network connections can be viewed on the status page Host > Network > Status
This is like the simplest configuration. Our interface is the first, enp1s0. All you have to do is:
In this scenario we use the Ethernet interface enp1s0 for control and Ethernet interface enp2s0 for Dante™
We would like to use the Ethernet interface enp1s0 for control and the VLAN 10 on Ethernet interface enp1s0 for Dante™
Network configuration be done on the settings page Host > Network > Settings
This is not an end consumer product. It requires qualified personnel to be installed If you screw up the settings the hardware have to be sent back to the manufacturer, there is no way back
Points you should pay attention to
Oops, I did it again!
All interfaces are on DHCP if no static address is present
Network settings page uses JavaScript Please activate it in your browser and deactivate popup blockers
All available Ethernet connections found on the hardware are listed. Any Ethernet interface can be added to a new bridge using the bridge symbol. The new bridge will overtake all settings from the Ethernet interface
VLAN interfaces can be added to all available Ethernet interfaces. Any VLAN interface can be added to a new bridge using the bridge symbol. The new bridge will overtake all settings from the VLAN interface
If you don’t know what a VLAN is keep away from these settings
A bridge contains one or multiple Ethernet and/or VLAN interfaces.
If you don’t know what a network bridge is keep away from these settings
SDM needs a valid time to work correctly. Without time source the service is not guaranteed to work
The status of the time service can be viewed on the status page Host > Time > Status
SDM service features and functionality are defined in different configuration files
Edid a config file using the web interface, for example sdm.conf
Do not edid a config file unless you are very sure what you do
Web interface default login
admin / nexgentec
Open a browser and enter the devices network address in the address bar, press enter
Download the sdm.conf file
Make your changes to the sdm.conf file and save as unix format text file. configuration options
Upload the sdm.conf file, it will overwrite the existing one
Restart SDM process, Host -> Services -> Software Defined Matrix Service (this step is not needed for .toml files)
This section describes the various configuration options sdm.conf file can contain.
Use UNIX file fomatting when editing the file
File entries must be formatted as follows:
[Section]
key=value
For example to activate syslog:
[syslog]
address=“server.example.com”
port=53
level=6
tag=“sdm”
Do not delete the uuid, it identifies the sdm software. All licenses are bound to the uuid which is individual to every instance of sdm, it is like a product key for an OS
Section | Key | Value | Example | Supported Versions |
---|---|---|---|---|
uuid | key | 408aca84-a2b0-11eb-bcbc-0242ac130002 | key=408aca84-a2b0-11eb-bcbc-0242ac130002 | >v0.0.1 |
Section | Key | Value | Example | Supported Versions |
---|---|---|---|---|
logLevel | level | 1-7 | level=1 | >v0.0.1 |
Section | Key | Value | Example | Supported Versions |
---|---|---|---|---|
syslog | level | 1-7 | level=6 | >v0.0.1 |
address | your servers address | address=“server.example.com” | >v0.0.1 | |
port | 53 or custom | port=53 | >v0.0.1 | |
tag | sdm | tag=“sdm” | >v0.0.1 |
logAuth is for only internal usage
Section | Key | Value | Example | Supported Versions |
---|---|---|---|---|
logAuth | key | key="" | >v0.0.1 |
Section | Key | Value | Example | Supported Versions |
---|---|---|---|---|
api | jrpc2TCPInterface | Any network interface | jrpc2TCPInterface=“enp1s0” | >v1.8.50 |
jrpc2TCPPort | Default: 64823 | jrpc2TCPPort=64823 | >v1.8.50 | |
jrpc2HTTPInterface | Any network interface | jrpc2HTTPInterface=“enp1s0” | >v1.8.50 | |
jrpc2HTTPPort | Default: 64880 | jrpc2HTTPPort=64880 | >v1.8.50 | |
jrpc2Console | on/off | jrpc2Console=on | >v1.8.50 |
Section | Key | Value | Example | Supported Versions |
---|---|---|---|---|
dante | primary | Any network interface | primary=“enp1s0” | >v1.8.50 |
secondary | Any network interface | secondary=“enp2s0” | >v1.8.50 |
Section | Key | Value | Example | Supported Versions |
---|---|---|---|---|
preset | recallPresetIDOnStart | Any preset as defined in presets_config.toml | recallOnStart=1 | >v1.8.50 |
preset | recallPresetNameOnStart | Any preset as defined in presets_config.toml | recallOnStart=mypreset | >v1.8.50 |
recallOnStartDelay | x (seconds) | recallOnStartDelay=10 | >v1.8.50 |
ifConfig is deprecated
Use api section to define interface/port for 3rd party communication and dante section to define the interfaces used for Dante™
Section | Key | Value | Example | Supported Versions |
---|---|---|---|---|
dante | primary | Any network interface | primary=“enp1s0” | <v1.8.50 |
secondary | Any network interface | secondary=“enp2s0” | <v1.8.50 | |
cmdServer | Any network interface | cmdServer=“enp2s0” | <v1.8.50 |
cmdServer is deprecated
Use api section to define the port for 3rd party communication
Section | Key | Value | Example | Supported Versions |
---|---|---|---|---|
cmdServer | port | port=48648 | <v1.8.50 |
Presets can be recalled on start up and using the Control API
Use UNIX file fomatting when editing the file
Generate yourself an example Generate example
See the fully commented definition below
[[preset]]
# ID (s) of the preset object, mandatory
preset_id = [56, 59, 33, 38]
# Name of the preset object, can be omitted
preset_name = "MyPreset_1"
# Destination object
[preset.destination]
[[preset.destination.channel]]
# Dante channel name, mandatory for Dante devices
channel_name = "SDMS0000011"
# Channel index, if omitted the order of the channels below the object determines the index
index = 1
# Dante device name, can be omitted but should not.
node_name = "MyDanteDevice_1"
[[preset.destination.channel]]
# Dante channel name, mandatory for Dante devices
channel_name = "SDMS0000012"
# Channel index, if omitted the order of the channels below the object determines the index
index = 2
# Dante device name, can be omitted but should not.
node_name = "MyDanteDevice_1"
[[preset.destination.channel]]
# Dante channel name, mandatory for Dante devices
channel_name = "SDMS0000013"
# Channel index, if omitted the order of the channels below the object determines the index
index = 3
# Dante device name, can be omitted but should not.
node_name = "MyDanteDevice_1"
[[preset.destination.channel]]
# Dante channel name, mandatory for Dante devices
channel_name = "SDMS0000014"
# Channel index, if omitted the order of the channels below the object determines the index
index = 4
# Dante device name, can be omitted but should not.
node_name = "MyDanteDevice_1"
# Source object
[preset.source]
[[preset.source.channel]]
# Dante channel name, mandatory for Dante devices
channel_name = "SDMS0000011"
# Channel index, if omitted the order of the channels below the object determines the index
index = 1
# Dante device name, can be omitted but should not.
node_name = "MyDanteDevice_1"
[[preset.source.channel]]
# Dante channel name, mandatory for Dante devices
channel_name = "SDMS0000012"
# Channel index, if omitted the order of the channels below the object determines the index
index = 2
# Dante device name, can be omitted but should not.
node_name = "MyDanteDevice_1"
[[preset.source.channel]]
# AES Flow name, mandatory for AES devices
aes_flow_name = "239.69.x.x@MyAesDevice_1"
# AES flow slot ID for this channel (1-x), mandatory for AES devices
aes_flow_slot_id = 1
# Channel index, if omitted the order of the channels below the object determines the index
index = 3
[[preset.source.channel]]
# AES Flow name, mandatory for AES devices
aes_flow_name = "239.69.x.x@MyAesDevice_1"
# AES flow slot ID for this channel (1-x), mandatory for AES devices
aes_flow_slot_id = 2
# Channel index, if omitted the order of the channels below the object determines the index
index = 4
[[preset]]
preset_id = [26, 9, 3, 63]
preset_name = "MyPreset_2"
[preset.destination]
[[preset.destination.channel]]
channel_name = "SDMS0000021"
index = 1
node_name = "MyDanteDevice_2"
[[preset.destination.channel]]
channel_name = "SDMS0000022"
index = 2
node_name = "MyDanteDevice_2"
[[preset.destination.channel]]
channel_name = "SDMS0000023"
index = 3
node_name = "MyDanteDevice_2"
[[preset.destination.channel]]
channel_name = "SDMS0000024"
index = 4
node_name = "MyDanteDevice_2"
[preset.source]
[[preset.source.channel]]
channel_name = "SDMS0000021"
index = 1
node_name = "MyDanteDevice_2"
[[preset.source.channel]]
channel_name = "SDMS0000022"
index = 2
node_name = "MyDanteDevice_2"
[[preset.source.channel]]
aes_flow_name = "239.69.x.x@MyAesDevice_2"
aes_flow_slot_id = 1
index = 3
[[preset.source.channel]]
aes_flow_name = "239.69.x.x@MyAesDevice_2"
aes_flow_slot_id = 2
index = 4
The source config file describe the sources which are selected by a Symetrix Symnet control number value. If there is no Symetrix device present or SDM should not listen to Symetrix this file can be omitted
Use UNIX file fomatting when editing the file
Generate yourself an example" Generate example
See the fully commented definition below
# Defaults can be omitted if all values are defined source specific.
# Source object defined values are taking precedence
[default]
# Default delay settings for all objects that are not carrying its own settings for delay
# Object defined values are taking precedence , can be omitted
[default.delay]
# Delay value (ms) on switch over, if omitted on object basis default settings apply
switch = 500
[[source]]
# Name of the source or destination object, can be omitted
name = "MyDanteSource_1"
[[source.channel]]
# Dante channel name, mandatory for Dante devices
channel_name = "SDMS0000011"
# Channel index, if omitted the order of the channels below the object determines the index
index = 1
# Dante device name, can be omitted but should not.
node_name = "MyDanteDevice_1"
[[source.channel]]
# Dante channel name, mandatory for Dante devices
channel_name = "SDMS0000012"
# Channel index, if omitted the order of the channels below the object determines the index
index = 2
# Dante device name, can be omitted but should not.
node_name = "MyDanteDevice_1"
# Object defined delay settings, if omitted on object basis default settings apply
[source.delay]
# Delay value (ms) on switch over, if omitted on object basis default settings apply
switch = 800
# Object defined Symetrix settings, mandatory
[source.symnet]
# Symetrix Control Number Value for this source object, mandatory
control_value = 1
[[source]]
# Name of the source or destination object, can be omitted
name = "MyDanteSource_2"
[[source.channel]]
# Dante channel name, mandatory for Dante devices
channel_name = "SDMS0000021"
# Channel index, if omitted the order of the channels below the object determines the index
index = 1
# Dante device name, can be omitted but should not.
node_name = "MyDanteDevice_2"
[[source.channel]]
# Dante channel name, mandatory for Dante devices
channel_name = "SDMS0000022"
# Channel index, if omitted the order of the channels below the object determines the index
index = 2
# Dante device name, can be omitted but should not.
node_name = "MyDanteDevice_2"
# Object defined delay settings, if omitted on object basis default settings apply
[source.delay]
# Delay value (ms) on switch over, if omitted on object basis default settings apply
switch = 800
# Object defined Symetrix settings, mandatory
[source.symnet]
# Symetrix Control Number Value for this source object, mandatory
control_value = 2
[[source]]
# Name of the source or destination object, can be omitted
name = "MyDanteSource_3"
[[source.channel]]
# Dante channel name, mandatory for Dante devices
channel_name = "SDMS0000031"
# Channel index, if omitted the order of the channels below the object determines the index
index = 1
# Dante device name, can be omitted but should not.
node_name = "MyDanteDevice_3"
[[source.channel]]
# Dante channel name, mandatory for Dante devices
channel_name = "SDMS0000032"
# Channel index, if omitted the order of the channels below the object determines the index
index = 2
# Dante device name, can be omitted but should not.
node_name = "MyDanteDevice_3"
# Object defined delay settings, if omitted on object basis default settings apply
[source.delay]
# Delay value (ms) on switch over, if omitted on object basis default settings apply
switch = 800
# Object defined Symetrix settings, mandatory
[source.symnet]
# Symetrix Control Number Value for this source object, mandatory
control_value = 3
The destination config file describe the destinations which are identified by a Symetrix Symnet control number. If there is no Symetrix device present or SDM should not listen to Symetrix this file can be omitted
Use UNIX file fomatting when editing the file
Generate yourself an example Generate example
See the fully commented definition below
# Defaults can be omitted if all values are defined destination specific.
# Destination object defined values are taking precedence
[default]
# Default delay settings for all objects that are not carrying its own settings for delay
# Object defined values are taking precedence , can be omitted
[default.delay]
# Delay value (ms) on disconnect, if omitted on object basis default settings apply
disconnect = 2000
# Default Symetrix settings for all objects that are not carrying its own settings for delay
# Object defined values are taking precedence, can be omitted
[default.symnet]
# Symetrix Site ID, defined in project settings, if omitted on object basis default settings apply
site_id = 2
# Symetrix DSP IP Address (v4), if omitted on object basis default settings apply
unit_ip = "127.0.0.1"
[[destination]]
# Name of the source or destination object, can be omitted
name = "MyDanteDestination_1"
[[destination.channel]]
# Dante channel name, mandatory for Dante devices
channel_name = "SDMD0000011"
# Channel index, if omitted the order of the channels below the object determines the index
index = 1
# Dante device name, can be omitted but should not.
node_name = "MyDanteDevice_1"
[[destination.channel]]
# Dante channel name, mandatory for Dante devices
channel_name = "SDMD0000012"
# Channel index, if omitted the order of the channels below the object determines the index
index = 2
# Dante device name, can be omitted but should not.
node_name = "MyDanteDevice_1"
# Object defined delay settings, if omitted on object basis default settings apply
[destination.delay]
# Delay value (ms) on disconnect, if omitted on object basis default settings apply
disconnect = 800
# Object defined Symetrix settings, mandatory
[destination.symnet]
# Symetrix Control Number for this destination object, mandatory
control_id = 5001
# Symetrix Control Number that is feed back to Symetrix once the destination has changed, can be omitted
feedback_id = 6001
# Symetrix Site ID, defined in project settings, if omitted on object basis default settings apply
site_id = 3
# Symetrix DSP IP Address (v4), if omitted on object basis default settings apply
unit_ip = "127.0.0.2"
[[destination]]
# Name of the source or destination object, can be omitted
name = "MyDanteDestination_2"
[[destination.channel]]
# Dante channel name, mandatory for Dante devices
channel_name = "SDMD0000021"
# Channel index, if omitted the order of the channels below the object determines the index
index = 1
# Dante device name, can be omitted but should not.
node_name = "MyDanteDevice_2"
[[destination.channel]]
# Dante channel name, mandatory for Dante devices
channel_name = "SDMD0000022"
# Channel index, if omitted the order of the channels below the object determines the index
index = 2
# Dante device name, can be omitted but should not.
node_name = "MyDanteDevice_2"
# Object defined delay settings, if omitted on object basis default settings apply
[destination.delay]
# Delay value (ms) on disconnect, if omitted on object basis default settings apply
disconnect = 800
# Object defined Symetrix settings, mandatory
[destination.symnet]
# Symetrix Control Number for this destination object, mandatory
control_id = 5002
# Symetrix Control Number that is feed back to Symetrix once the destination has changed, can be omitted
feedback_id = 6002
# Symetrix Site ID, defined in project settings, if omitted on object basis default settings apply
site_id = 3
# Symetrix DSP IP Address (v4), if omitted on object basis default settings apply
unit_ip = "127.0.0.2"