Experiments with RadioDNS
Hi. I'm a software engineer in RAD and I've been doing some work on RadioDNS which I'd like to share with you. As James Cridland and Nick Piggott explain in their article, RadioDNS - making your radio more intelligent, RadioDNS represents a way for broadcasters to provide an enhanced radio listening experience through a new set of internet services, which can be used by any AM, VHF/FM, or DAB radio that also has an internet connection or with internet streaming radio. These services include RadioVIS, which allows display of an image slideshow and text messages, RadioEPG, which provides an electronic programme guide, and RadioTAG, which allows the listener to tag or bookmark radio content, or give feedback directly to the radio station. The RadioDNS specifications, currently under development, are open for all device manufacturers and broadcasters to use, with a view towards future standardisation.
Radio Station DNS Lookup
A radio station broadcasting on FM includes digital data in the form of RDS that allows the radio receiver to identify the station and display the station name. As an example, the following example shows the station information broadcast for BBC Radio 1. The PI and ECC codes are obtained from the RDS data.
|Extended Country Code (ECC)||ce1|
|Programme Identification (PI)||c201|
For BBC Radio 1, broadcast on DAB Digital Radio, the station identifier information is:
|Extended Country Code (ECC)||ce1|
|Ensemble Identifier (EId)||ce15|
|Service Identifier (SId)||c221|
|Service Component Identifier within the Service (SCIdS)||0|
RadioDNS describes how these parameters can be used to construct a fully-qualified domain name (FQDN) that identifies the station, in this case 09880.c201.ce1.fm.radiodns.org for FM, or 0.c221.ce15.ce1.dab.radiodns.org for DAB. A DNS lookup returns the canonical name (CNAME) for this FQDN:
nslookup -type=CNAME 09880.c201.ce1.fm.radiodns.org
09880.c201.ce1.fm.radiodns.org canonical name = bbc.co.uk
Availability of services is advertised through the use of DNS SRV records, as shown in the following table:
|RadioEPG (Electronic Programme Guide)||_radioepg._tcp|
Capital FM have a RadioVIS visualisation service available for use with their iPhone client. To access this, we construct the appropriate FQDN from the RDS data and broadcast frequency: 09580.c586.ce1.fm.radiodns.org. The CNAME is found by DNS lookup to be vis.media-ice.musicradio.com, and a service record query against this hostname shows that the RadioVIS service is available at vis.musicradio.com, port 80.
nslookup -type=SRV _radiovis._tcp.vis.media-ice.musicradio.com
_radiovis._tcp.vis.media-ice.musicradio.com SRV service location:
priority = 0
weight = 100
port = 80
svr hostname = vis.musicradio.com
vis.musicradio.com internet address = 126.96.36.199
Visualisation using RadioVIS
The RadioVIS protocol is an extension of the Streaming Text Oriented Messaging Protocol (Stomp), which can be served by a message broker such as Apache ActiveMQ. In order to demonstrate RadioVIS within the BBC I set up a local RadioVIS server for Radio 1 and developed a client application to display the content.
The server uses ActiveMQ running on Ubuntu, with content from the DAB LiveText feed for Radio 1 and the trial DAB slideshow service. The server provides two topics that clients can subscribe to, one for text messages and one for image URLs, which allows the client to be able to choose which notifications to receive. The topic names are constructed from the same station identification broadcast parameters we already used to construct the station FQDN, so for Radio 1 FM these would be:
After establishing a connection, the client sends a SUBSCRIBE Stomp message to subscribe to a topic.
Once subscribed, the client then periodically receives text messages and image URLs from the server, in the form of Stomp MESSAGE frames, where the body of the message body contains the specific message.
The TEXT message is used to display text on the radio receiver, such as programme and presenter names, or currently playing song and artist. Messages can be up to 128 characters in length.
TEXT On air now: The Chris Moyles Show^@
The SHOW message is used to display slideshow images. The message contains the URL of the image, which the client can download via HTTP, and optional hyperlink URL to be associated with the image. If given, the trigger_time indicates when the image should be displayed, or NOW to display immediately.
SHOW <image_url>[,<link_url>] [<trigger_time>]
SHOW https://localhost/slide.jpg,https://bbc.co.uk/radio1/ NOW^@
For more information about RadioDNS, or to join the RadioDNS developer discussion group, please visit https://radiodns.org.
Thanks to Sean O'Halpin and Giacomo Schimmings from BBC Audio and Music, and Nick Piggott, Andy Buckingham, Adam Fox and Ben Poor at Global Radio for their help during this project.
Chris Needham is a Software Engineer in the RAD team.