Device discovery
From SpinetiX Support Wiki
Contents
Introduction
The players are adverting their network services and presence information through two protocols:
- Bonjour
- SSDP / UPnP (added in firmware 4.1.0 and Elementi 2018)
Elementi is using the information advertised by the players through any of these two protocols to list the players under Devices tab in Browse panel. If device discovery doesn't work for any reason, the players can be manually added into Elementi.
Both services are using multicast packets, which are restricted to the local area network where the players are located (thus the PC running Elementi must be in the same LAN), might get discarded on WiFi network (especially when crowded) and don't work over VPN connection.
- On HMP400/W, HMP350, HMP300 and DiVA players, both services can be disabled from Control Center > Network page, should the security policy requires that.
- Discovery across subnetworks is normally prohibited - to activate it, either enable multicast routing of SSDP on the site (applies to SpinetiX players with firmware 4.1.0 or later) or install an mDNS reflector (Avahi has this capability) on the gateway between the subnetworks.
SSDP / UPnP
Added in firmware 4.1.0 and Elementi 2018.
Universal Plug and Play (UPnP) is a set of networking protocols that permits networked devices, such as SpinetiX players, personal computers, printers, Internet gateways, Wi-Fi access points and mobile devices to seamlessly discover each other's presence on the network and establish functional network services for data sharing and communications.
UPnP discovery protocol, known as Simple Service Discovery Protocol (SSDP), accomplishes the advertisement and discovery of network services and presence information without assistance of server-based configuration mechanisms, such as DHCP or DNS, and without special static configuration of a network host.
SSDP / UPnP removes the dependency on Bonjour name resolution as IP addresses are used to contact players discovered via UPnP. Furthermore, HMP400, HMP350, HMP300 and DiVA players show up in the Windows Explorer's Network view in Windows computers when Network Discovery is enabled.
UPnP uses UDP port 1900 and all used TCP ports are derived from the SSDP alive and response messages.
Bonjour
Bonjour is Apple Inc's implementation of zero-configuration networking (zeroconf), a group of technologies that includes service discovery, address assignment, and hostname resolution. Bonjour locates devices such as SpinetiX players, printers, other computers, and the services that those devices offer on a local area network using multicast Domain Name System (mDNS) service records and DNS Service Discovery (DNS-SD).
Information advertised
The HMP advertises the following services using Bonjour (via mDNS):
- _http._tcp on port 80 with name "HMP - _device name_";
- This is the standard service web browsers look for.
- TXT records:
- path=/ (standard way to signify URL path)
- _webdav._tcp on port 81 with name "HMP - _device name_"
- This is the standard service WebDAV clients look for.
- TXT records:
- path=/ (standard way to signify URL path)
- _spx-hmp._tcp on port 80 with name "_device name_"
- TXT records:
- txtvers=1 (standard way to support future changes)
- cport=81 (this is the content server port)
- mode= one of
- normal when running normally
- safe when started in safe mode
- recovery when in recovery console
- serial=_serial number_ (e.g., 001d5000001a)
- firmware=_firmware version_ (e.g., 2.1.0-0.1.7844)
- model=_model_ (e.g. HMP100, HMP130 or HMP200)
- _spx-im._tcp on the port used by the network API (usually 1234)
- This is only advertised if the network API is enabled
The device name is the name of the device as configured in Control Center.
Web browser
Discovery from a web browser is simple if a Bonjour finder is installed (native with Safari). For instance with Internet Explorer open the Bonjour tab, all the HMP devices in the local network will be listed as "HMP - _device name_".
If the Bonjour finder is not available then one can just type spx-hmp-_serial_number_.local. (e.g., spx-hmp-001d5000001a.local.) in the URL bar of the browser, this should open the device's Control Center.
Command line
If the Bonjour service is installed one can use the command line dns-sd tool to browse the local network.
To discover all HMP devices type (the device names will be listed under the Instance Name column)
dns-sd -B _spx-hmp._tcp
To look up a particular HMP device type (replace instance name by the name returned using the -B option). It will return the device address as spx-hmp-_serial_number_.local
dns-sd -L "instance name" _spx-hmp._tcp
To know the IP address of a device you can use ping like the following (it will show the IP address)
ping spx-hmp-_serial_number_.local.