User Tools

Site Tools


A. Intro

1. Goal

This is an exhaustive usage manual, describing all the aspects of the Rootio system and web platform. It's purpose is to help you:

  • Navigate certain sections of the the web interface,
  • Install the Rootio Android app and
  • Efficiently utilize all the radio management processes and controls.

This is a living document evolving at the same time with our technical advancement. This document is geared towards a broader audience (technical as well as non technical).

2. System components

The Rootio system relies on 3 main components:

A. Production site:the Rootio web studio, which allows for:

  • Creation and management of radio stations
  • The upload of pre-recorded audio content (news, podcasts, streams)
  • Telephony interactions:
    • Placing calls to stations, hosts, or listeners
    • Receiving calls from anyone
    • Creation of ads/announcements through an IVR (ie. Interactive voice response) system through a publicized number
    • Creation of call-in programs, and/or programs using uploaded and downloaded content
    • Definition of program hosts and scheduling talk shows
    • SMS votes, comments, and emergency push notifications
    • Monitoring of the performance of the transmission site

B. Transmission site:the Rootio Android app, which is capable of:

  • Playing recorded audio content according to schedule and playlists that can be modified via the web platform
  • Automatically answering/rejecting regular GSM calls from the cloud, allowing voice-quality live programming
  • Reporting information about the station, including current location and system health, to the web
  • Synchronizing and transferring digital information, from podcasts to emergency information

C. FM setup

The Rootio transmission site consists of

  • a low power FM transmitter (50 Watt), an Android
  • an Android smartphone
  • back-up power source
  • 15-25 meter tower
  • FM antenna

The phone is connected to the FM transmitter using an RCA cable. This way, whatever the audio phone is playing through its headphone connector is piped into the FM transmitter and broadcasted to the surrounding community. The FM transmitter itself is connected to the antenna using 50 ohm DF cable and the antenna is hoisted atop a light (~10Kg) telescopic fiberglass pole not exceeding 25 meters above the ground. The mobile phone and the FM transmitter are hosted in a plastic case for protection against the environment and intereference of theft. This ensemble is capable of broadcasting 24 hrs. a day.

3. Broadcasting

The Rootio system allows for multiple types of broadcasting: FM, internet streaming, speakers for festivals etc. In terms of receivers, the audience can engage with the content by using any type of FM receiver: radio, phone with radio.

For FM broadcasting, please consult the above FM setup section.

For internet streaming , please check out the steps below

  • To stream and broadcast the radio live, a ZOOM recorder is used (to insure high quality audio). Alternatively the smart phone recorder can be used
  • The ZOOM recorder is connected to the computer via a USB-Mini, used as an external microphone to the computer (laptop)
  • The function of this external microphone is used by a third party software BUTT (broadcast using this tool) to initialize the broadcast in ICECAST (streaming media server usedd for transmission). For the time being the Rootio App doesn't allow for direct streaming.
  • The radio station's schedule is programmed to pick up this stream from the icecast server and starts broadcasting the content played from it.

The audience can engage with the broadcasted content by using any type of device that has an internet connection: laptop, phone with data plan etc

Below is a chart depicting all the components of the RootIO micro stations system:

4. Technology & License

Below are the technologies that are integrated under the hood:

  • Flask is the technology behind our web framework
  • Bootstrap 2 is the technology used for the user interface (UI)
  • PostgreSQL (Database)
  • Freeswitch (Telephony)
  • GoIP

License: GNU Affero General Public License v3.0

Permissions of this strongest copyleft license are conditioned on making available complete source code of licensed works and modifications, which include larger works using a licensed work, under the same license. Copyright and license notices must be preserved. Contributors provide an express grant of patent rights. When a modified version is used to provide a service over a network, the complete source code of the modified version must be made available.

B. Account creation

  • Follow the email prompts and finalize the sign-up process (it takes ~ 5 mins to get the validation link in your inbox)
  • When you log in, you’ll see the following 5 sections:

1. Radio Dashboard - is where you do your initial setup (network/station creation) and has the following tabs

  • Status
  • Stations
  • Programs
  • Music Programs
  • Schedule

2. Telephony Records is where you connect your Android phone to the web interface and has the following tabs

  • Status
  • Calls
  • Messages
  • Gateways

3. Configure Station

  • Configure Stations
  • Telephony
  • SIP Telephony
  • Audio Levels
  • TTS
  • IVR Menu
  • Synchronization

4. Manage Content is where you create your building blocks for your radio programs and consists of these tabs

  • Status
  • Tracks
  • Community Notices
  • Hosts
  • Streams
  • Podcasts
  • Playlists

5. Manage Users is where the network admin manages the different user roles.

By default, a newly created user has the role of a “Network User” and in order to be able to create stations, one of the admins / network admins will need to allocate him/her to an existing network. Alternatively, the user might be promoted to “Network Admin” by one of the administrators of the platform, thus being able to create their own network(s), stations etc.

(Note: the user management section will be updated in the near future with more advanced workflows for defining admins, network admins etc.)

C. Radio Dashboard

Creating a Rootio Network

  • Your default landing page is the ‘Status’ tab. Here is where you create your network and your radio stations.
  • Here you can also see the stats for your existing networks and their corresponding radio stations (i.e. battery, SIM, wifi, the last time the phone synced with the web)

  • Click on the green ‘Create Network’ button to add a new network and fill out the form.

Tip: The network will show up in the ‘Status’ dashboard only when you create a radio station and associate your network to that radio station.

  • Click on the ‘Add a station to this network’ link to create your radio station and fill out the form

Creating a Rootio Radio Station

  • You can add a new location by clicking on the green plus button
  • The API Key - allows the Android app to connect to the radio station and pull and push content and updates in a programmatic way; you can rename the default API key and put something meaningful to you; make sure it’s character sensitive.
  • Broadcasting frequency refers to how often the transmitter checks for updates (30 secs is a good practice)

Adding a location to your station

'Tip: When creating a new location, you can copy the latitude and longitude coordinates of your station location, by going to Google Maps and clicking on the pin (copy the decimal values only).

  • Your newly created station will show up in your ‘Status’ dashboard.

Log viewer

  • Next to each station you will also find a 'View Logs' link. These are the logs that show all the content that is being passed through the server for a specific radio station. It's a radiography for the content played at each station.


  • Are the building blocks of your radio schedule. They are housing various types of content (Track, Host, Podcast) and can be dragged and dropped on the radio schedule.

  • Click on the green ‘Add’ button to add more programs to your list

  • Program duration is one of the most important parameters to think about when creating a program
  • Network should be also accounted for
  • The types of content that can be added to your Program are: Tracks, Hosts and Podcasts

Tip: When creating a Program it's advisable to only include 1 type of content vs. mixing more types of content into 1 program

Music Programs

  • This is content that plays of your mobile phone (vs. the server)
  • Here is where you can create your playlists from your mobile phone and to also include online streams (see section on how to define a stream).

  • Click on the green ‘Add’ button to add another Music Program

  • The types of content that can be added to your Music Program are: Streams and Playlists

Tip: Here it is ok to mix two different content types (streams and playlists into 1 program); you can also mix up 2 playlists to increase the content of your program


  • Each station has it's own schedule

  • Click on the ‘Schedule’ link to open the calendar view
  • Here is where you can drag and drop the program of your choice and assign a day, and a time for your program to start playing
  • Below is a monthly view of the schedule

Recurring scheduling

  • You can set up your programs to be recurring. Click on 'Add recurring' and fill out the form

  • You can also look at a daily or weekly view of the schedule.
  • When doing so, you will see various colors on the schedule:
    • Blue refers to content that is played from the phone (locally)
    • Yellow refers to content that is played form the server that is scheduled to play
    • Green refers to content that is played from the server that played successfully
    • Red refers to content that is played form the server that failed playing

Scheduling best practices

  • Ground-rule: schedule 1 program at a time! However, you have the ability to schedule two programs at the same time - as a fallback plan. To avoid any holes in broadcasting, you can schedule playlists (Music Programs) to play at the same time with your other Programs (Tracks, Host, Podcasts). This way if the host fails to start on time or the podcast breaks down, the playlist scheduled at the same time, will kick in.
  • You have to estimate the length of the program to be able to schedule accurately the following program
  • If the first program is longer than estimated, the second program that was scheduled will kick out the first program. To avoid this, think about a buffer.
  • The system will only play the length of the files (Tracks) and then it will hang up and it will revert to playlists (Music Programs).

Tip: When scheduling simultaneously a playlist and another program, the program always takes precedence.

D. Telephony Records

Telephony Records

  • Here is where you see the calls log, pulled from the Android phone connected to the RootIO web platform.

E. Configure Station


  • Here is where you set up the connection to the mobile phone.
  • You assign a telephone number to the station and also set the parameters for the station to know which are incoming and out-coming numbers.

  • Click the Edit button to set/change various parameters

  • Primary transmitter phone (1st. # of the RootIO phone/station)
  • Secondary transmitter phone (2nd # of the RootIO phone/station) - for backup
  • Outgoing Gateways - refers to the numbers the station uses to call out: GSM or SIP (internet telephony)
  • Incoming Gateways - refers to the pool of numbers that users can call to get to the station. The reason they are separate from the Outgoing Gateways is that users do not know the schedule of the station and can end up calling the gateway when the station is using it to call the transmission site. So, this way, users call numbers that are not used by the station to call out.
  • Whitelist Number

SIP Telephony

Here you can configure the SIP settings (internet telephony)

Audio Levels




F. Manage Content

This section allows you to create the building blocks for your programs’.


Content is categorized into 3 types

  • News (smaller files)
    • one file at a time
    • every time the program is scheduled, it plays the most recent file
    • if it already played, play it again
  • Media (large files)
    • one file at a time
    • every time the program is scheduled, it plays the next file
    • upon reaching the end, it loops back to the beginning of the series
  • Advertisements (really small audio files/ TTS)


  • Tracks are housing media files; basically this is content that you can upload directly via the Rootio web UI (usually music uploads)
  • The files you upload into Tracks can be categorized as News (smaller files) or Media (larger files)
  • Playing priorities:
    • If the files are categorized as News the latest file will be played first;
    • if files are categorized as Media, the system will always play the first file that was uploaded.

  • Click on the green plus sign to add a Track (to create a house for your media files)

  • Your Track will appear in your content dashboard with zero files

  • Select zero files and click Add
  • This will take you to a drag and drop view, where you can upload multiple files at once

Tip: Max file size is 100MB; file type is MP3 (currently we haven't implemented any validation now); also please don't upload any folders directly!

  • You can sort files by hand; the default ordering is in descending order
  • You can delete unwanted files from your list
  • You can put tracks in a Program (click the blue button on the Tracks view to take a shortcut to the Programs section)

Community Notices

  • These are the ads, announcements, greetings - generated by external users
  • Come via telephone from external users
  • Configure Menu >here you can configure the voice prompts (robot to instruct the user to let him know how to proceed further).


  • Click on the green ‘Add’ button to add a host for your station

  • Once the host was created, he/she will be visible in the Programs section’

Telephony interactions with the host

  • The host receives a call from some preset numbers and will hear a welcome message (this immediate voice response message is in English and currently hard-coded/ coming from Cereproc)* To call in to the host show, the participant will be given a preset number; if the phone line is open (host is ready to take your call, the host will press 3 and the participant will be connected directly; at this point you have a 3-way conference call)* The other voice prompts (IVR messages) are configurable and are described under the 'Configure Station' section.

Tip: Call-ins will be only accepted by the host and only when the host is ON; for the time being the host can only bring 1 person at a time.


  • This section allows you to configure internet streams as content sources for your programs (i.e. another radio station). You will need the streaming URL of the source, the same you would use in a desktop media player (most web streams have external player icons linking to the source on their pages).


  • Internet podcasts are another potential source for the RootIO media content. In order to add a podcast, you have to use a feed URL similar to RSS, which links to a XML document listing all the episodes and their metadata.
  • Podcast episodes will be treated as news, meaning that they will form a stack ordered by date, descending, and will play starting with the last one.


Mp3 files are already stored on your Android phone. You will be able to organize these audio files in a playlist via the RootIO web interface. The phone will then act as a player and play your playlist content.

Playlists are your fallback plan! Always have a playlist ready and on your schedule when you have a live show, podacast, stream etc.

G. Manage Users

Possible user roles:

Network Manager

  • Manages multiple radio stations
  • This type of user doesn't have any rights to pre-existing networks, but could be added by the sys admin
  • Approves other users requests to join a networ

Station Manager

  • Has also network admin rights
  • Creates and administers the radio station (Radio Dashboard)

Content Manager

  • Can be a Host, thus producing live content (Manage Content tab)
  • Can upload pre-recorded content (Manage Content tab)

H. RootIO Android app

  • To install the the RootIO Android app, ask Jude for the .apk file.
  • Once installed click to open
  • Connect App to radio station

  • Station ID: is basically the API key that is set when creating a station
  • Example: demoapikey

SMS Services

The app accepts SMS messages that can start or stop different features of the RootIO app, or of the phone itself. These can be sent to any valid simcard number on the phone. It currently handles Services of the app, Wifi, mobile Data, and USSD.


services| [start][stop][restart]| [service number]

Note that there are no spaces.

… where the services are numbered:

  • diagnostics: 3
  • programs: 4
  • sync: 5

So, for example, to restart the program service you would text:





network|wifi|status (lets you know the status of wifi)

network|wifi|on network|wifi|off

network|wifi|connect|<SSID>|<password> (connects to network with SSID specified using password)


network|data|on network|data|off


network|gsm|status (returns “connected to %s with signal strength %s”)


ussd|*123# (will run the USSD command and return the result)

I.Recording content

In order to record content, use following guide to get started:

Possible recording devices:

  • Zoom H5;
  • Smartphone;
  • Laptop;

Any other device with the capability of recording can also be used.


  • BUTT - Broadcast Using This Tool;
  • Mixxx;

Zoom is used to record and/or stream the content live while doing interviews. A Smartphone or any other device with the capability of recording can also be used.

Recording can be done by simply record from these devices and later upload the file recorded to the RootIO website as stated before in the F.Manage Content section above.

  • Live Recording with Zoom: Recording and streaming is done with the help of software by connecting Zoom to the laptop with a USB-Mini and selecting the laptop as a source of power. Zoom can then be used as an external microphone.

Using the software to record/stream:


  • The recording path can be set in Record.
  • Selecting your audio device can be done in the Audio tab of the program.
  • To stream the program must be configured under the Main tab in the EDIT, using the configuration provided below.* After configuring the software and/or selecting the audio device, the red button is used to start recording and the play button is used to start the stream. The streaming can be paused while continuing to record.


  • Mix is used as it can broadcast and record while also streaming live.
  • Under the Options tab select Preferences or use the shortcut Ctrl+P to configure the software. The recording options can be modified under Recording and the streaming configuration can be changed in Live Broadcasting.
  • After configured, simply use the icons on the top depicting a cassette and a satellite to record and/or broadcast respectively.

Configuration on Streaming:

  • Name: [Optional]
  • Address:
  • Port: 8000
  • Type: IceCast
  • Password: rootio
  • ​​IceCast mountpoint: [optional]

Download the software:

user_support/user_guide.txt · Last modified: 2019/12/07 00:27 by chris