Sound Control Protocol for ew D1
Table Of Contents
- 1. Introduction
- 2. Open Sound Control Overview
- 3. Conventions
- 4. SSC Data Structure Specification
- 5. General SSC Address Schema
- 5.1 SSC Meta Information - /osc
- 5.1.1 SSC Protocol version - /osc/version
- 5.1.2 SSC error state - /osc/error
- 5.1.3 SSC transaction ID - /osc/xid
- 5.1.4 SSC Ping - /osc/ping
- 5.1.5 SSC Schema reflection - /osc/schema
- 5.1.6 SSC Method parameter range reflection - /osc/limits
- 5.1.7 Connection-specific SSC Address Space - /osc/state
- 5.1.8 SSC connection close - /osc/state/close
- 5.1.9 SSC subscriptions - /osc/state/subscribe
- 5.1.10 SSC reply output style - /osc/state/prettyprint
- 5.1.11 SSC interactive method address base - /osc/state/baseaddr
- 5.1.12 SSC timed method execution - /osc/timetag
- 5.1.13 SSC Method time stamps - /osc/timestamp
- 5.1.14 SSC Method Authorisation - /osc/tan
- 5.1.15 SSC protocol feature reflection - /osc/feature
- 5.2 Generic Device Information and Settings Address Space - /device
- 5.1 SSC Meta Information - /osc
- 6. SSC Transport Layer Adaptations
- 6.1 UDP/IP
- 6.2 TCP/IP
- 6.3 HTTP(S)/TCP/IP
- 6.4 Secure Shell Transport/TCP/IP
- 6.5 SSC Server Discovery
- 6.6 IEEE 802.15.4 / ZigBee / DECT
- 6.7 Low-bandwidth serial infrared link
- 6.8 Byte-stream connections (serial interface etc.)
- 6.9 Unidirectional low-bandwidth monitoring
- 6.10 Configuration files
- 6.11 Scripting files
- 7. Developer’s Guide for evolution wireless D1
- 8. SSC Method List
- 8.1 /interface/version
- 8.2 /osc/xid
- 8.3 /osc/version
- 8.4 /osc/error
- 8.5 /osc/schema
- 8.6 /osc/limits
- 8.7 /osc/feature/pattern
- 8.8 /osc/feature/baseaddr
- 8.9 /osc/feature/subscription
- 8.10 /osc/feature/timetag
- 8.11 /osc/state/subscribe
- 8.12 /osc/state/close
- 8.13 /osc/state/prettyprint
- 8.14 /device/name
- 8.15 /device/language
- 8.16 /device/identity/product
- 8.17 /device/identity/version
- 8.18 /device/identity/serial
- 8.19 /device/identity/vendor
- 8.20 /device/network/ether/interfaces
- 8.21 /device/network/ether/macs
- 8.22 /device/network/ipv4/interfaces
- 8.23 /device/network/ipv4/auto
- 8.24 /device/network/ipv4/ipaddr
- 8.25 /device/network/ipv4/netmask
- 8.26 /device/network/ipv4/gateway
- 8.27 /device/network/ipv4/fixed_ipaddr
- 8.28 /device/network/ipv4/fixed_netmask
- 8.29 /device/network/ipv4/fixed_gateway
- 8.30 /device/network/ipv6/interfaces
- 8.31 /device/network/ipv6/ipaddr
- 8.32 /device/state
- 8.33 /device/progress
- 8.34 /device/update/confirmation
- 8.35 /device/max_rf_power_Level
- 8.36 /device/reset
- 8.37 /device/factory_reset
- 8.38 /rx1/identify
- 8.39 /rx1/pair
- 8.40 /rx1/rf_quality
- 8.41 /rx1/rf_stack_active
- 8.42 /rx1/walktest
- 8.43 /rx1/mute_switch_active
- 8.44 /rx1/autolock
- 8.45 /rx1/warnings
- 8.46 /brightness
- 8.47 /mates/active
- 8.48 /mates/tx1/device_type
- 8.49 /mates/tx1/bat_type
- 8.50 /mates/tx1/bat_state
- 8.51 /mates/tx1/bat_gauge
- 8.52 /mates/tx1/bat_lifetime
- 8.53 /mates/tx1/bat_bars
- 8.54 /mates/tx1/bat_health
- 8.55 /mates/tx1/bat_cycles
- 8.56 /mates/tx1/switch1/label
- 8.57 /mates/tx1/switch1/state
- 8.58 /mates/tx1/acoustic
- 8.59 /mates/tx1/warnings
- 8.60 /audio/out1/label
- 8.61 /audio/out1/level_db
- 8.62 /audio/out1/gain_db
- 8.63 /audio/out1/type
- 8.64 /audio/equalizer/custom
- 8.65 /audio/equalizer/preset
- 8.66 /audio/de_esser/preset
- 8.67 /audio/agc/preset
- 8.68 /audio/low_cut
- 8.69 /audio/effects_reset
- 8.70 /get_master_subscriber
- 9. SSC Error List
- 9.1 1xx Informational
- 9.2 2xx Success
- 9.3 3xx Redirection
- 9.4 4xx Client Error
- 9.4.1 400 Bad Request
- 9.4.2 401 Unauthorized
- 9.4.3 403 Forbidden
- 9.4.4 404 Not Found
- 9.4.5 406 Not Acceptable (E.g. wrong type for parameter)
- 9.4.6 408 Request Timeout
- 9.4.7 409 Conflict
- 9.4.8 410 Gone
- 9.4.9 413 Request Entity Too Large
- 9.4.10 414 Request Too Complex
- 9.4.11 422 Unprocessable Entity
- 9.4.12 423 Locked
- 9.4.13 424 Failed Dependency
- 9.4.14 450 Answer Too Long
- 9.4.15 454 Parameter Address Not Found
- 9.5 5xx Server Error
SSC Developer‘s guide for evolution wireless D1 | 23/56
General SSC Address Schema
Example:
TX: { "osc": { "state": {"baseaddr":[{ "out1": {"xlr2": null}}] }}
RX: { "osc": { "state": {"baseaddr":[{ "out1": {"xlr2": null}}] }}
TX: { "gain": -10 }
RX: { "gain": -10 }
The SSC Client may query the server for the support of this feature by invoking /osc/feature/base-
addr.
5.1.12 SSC timed method execution - /osc/timetag
When this method is called as part of an SSC Message, all the SSC Method Calls contained in the
same Message are to be executed by the SSC Server at a time determined by the timetag parameter.
Compare section 4.3.5.
TX: { "osc": { "ping": null, "timetag": 3.0 }}
... 3 seconds pass ..
RX: { "osc": { "ping": null }}
5.1.13 SSC Method time stamps - /osc/timestamp
This method may be called as part of an SSC Message to estimate the communication delay and
clock offset between SSC Client and server. Like in NTP or PTP, four timestamps are used, forming
an array. The SSC Client sends the method call and provides the array containing the first, client-side
timestamp. The SSC Server will add two server-side timestamps in the SSC Method Reply, and finally
the client can insert the fourth timestamp upon reception of the Reply Message.
The four timestamps are:
• sending time of the Message from the SSC Client as value of the client /device/time
• reception time at the SSC Server as value of the server /device/time
• sending time of the Reply at the SSC Server, value of server /device/time
• reception time of the Reply at the client, value of client /device/time
Example:
TX: { "osc": { "ping": null, "timestamp": [ 396711511.044569 ] }}
RX: { "osc": { "ping": null,
"timestamp": [ 396711511.044569, 396711500.05,
396711500.08, 396711511.644569 ] }}
Support for timestamps is optional. If the SSC Server doesn’t implement it, it shall omit the time-
stamp completely from the Reply Message.
5.1.14 SSC Method Authorisation - /osc/tan
In some applications (like conference systems), remote configurability of SSC devices might pose a
security risk, because some attacker with access to the LAN might remotely gain access to sensitive
audio streams by reconfiguring devices.
Transaction Authorisation Numbers (TANs) are a simple but efficient means to control configuration
access without relying on complex cryptographic protocols, which might be too complex for environ-
ments like media control systems.
A list of TAN numbers is distributed between the SSC devices in a system. The SSC Client must pro-
vide a valid TAN with each SSC Method Call. The SSC Server refuses to execute the method if it finds
the TAN to be invalid. Each TAN may only be used once.
How the TAN list is distributed between the SSC devices in a system is out of the scope of this spec-
ification.
TX: { "osc": { "ping": null, "tan": "1124frvso!" }}
RX: { "osc": { "ping": null }}
TX: { "osc": { "ping": null, "tan": "1124frvso!" }}
RX: { "osc": { "error": [{
"osc": { "tan": [{"code": 403, "desc": "TAN invalid"}],
"ping": [{"code": 403, "desc": "forbidden"}] }}] }}