Device discovery

From SpinetiX Support Wiki

Jump to: navigation, search

Introduction

The players are adverting their network services and presence information through two protocols:

  • 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 Domain Name System (mDNS) service records and DNS-SD.
  • 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.
    UPnP uses UDP port 1900 and all used TCP ports are derived from the SSDP alive and response messages.
Note Notes:
  • These two protocols are used by Elementi to list the players under Devices tab in Browse panel. If device discovery doesn't work, for instance when using a VPN connection, the players can be manually added into Elementi.
  • SSDP / UPnP removes the dependency on Bonjour name resolution as IP addresses are used to contact players discovered via UPnP. Furthermore, HMP350, HMP300 and DiVA players show up in the Windows Explorer's Network view in Windows computers when Network Discovery is enabled.
  • 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.
  • Both services can be disabled on HMP350, HMP300 and DiVA players from Control Center > Network page.

Information advertised by the HMP

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.
This page was last modified on 27 September 2018, at 15:52.