Clear Across Kansas

Broadcastify Your Allstar Node

Streaming Your Allstar Node to Broadcastify

Prerequisites:

  • A working Allstar node running the latest HamVoIP release on a Raspberry Pi 2 or 3.
  • You have applied and have been granted a feed at Broadcastify.com.

Note: This method is only for streaming your node’s audio (transmit and receive) to Broadcastify. This is NOT for using the Pi to broadcast another audio source.

Before beginning be sure to backup your Allstar installation (or clone the entire SD card) so you can easily restore your node if you screw it up.

Software Requirements

You will need the following package installed to proceed:

  • libshout
  • libxml2
  • taglib
  • lame ( should already be installed, but do it again anyway)
  • pkg-config

This has recently been simplified into one self-installing package. At the linux shell prompt type:

pacman -Syu hamvoip-ezstream

Software Setup

Create (preferably using WinSCP) the file /etc/ezstream.xml and copy and paste the following text:

<ezstream>
<url>http://audio#.broadcastify.com:80/#######</url>
<sourcepassword>######</sourcepassword>
<format>MP3</format>
<filename>stdin</filename>
<svrinfoname>#########</svrinfoname>
<svrinfourl>http://www.radioreference.com/</svrinfourl>
<svrinfogenre>Amateur Radio</svrinfogenre>
<svrinfodescription>#############</svrinfodescription>
<svrinfobitrate>16</svrinfobitrate>
<svrinfochannels>1</svrinfochannels>
<svrinfosamplerate>22050</svrinfosamplerate>
<svrinfopublic>1</svrinfopublic>
</ezstream>

Then edit the ####### entries above with your audio server URL, mountpoint, password, feed name and description as defined by the Technicals tab in your Broadcastify account. Make sure there is a line feed after the </ezstream> at the end.

Next, edit your /etc/asterisk/rpt.conf file and add the following line within the node stanza of the node you wish to broadcast. Note: This must be all on a single line:

outstreamcmd=/bin/sh,-c,/usr/bin/lame --preset cbr 16 -r -m m -s 8 - - 2> /tmp/stream.status | /usr/local/bin/ezstream -qvc /etc/ezstream.xml

Restart Asterisk and the feed should go live. At the shell prompt you can run ps ax to check the running processes.


Sometimes the Ezstream process dies and causes the CPU usage to skyrocket. To restart Ezstream do kill -9 `pidof ezstream`


Because ezstream is tied into Allstar and running as a child program to it through lame you need to shut things down in a proper way when you restart Asterisk. What you are seeing is exactly what happens when you don’t shut things down properly when running ezstream.  I run ezstream here on a separate Pi by itself for that reason. That is a little overkill but I run heavily used hubs here and I don’t want ezstream interfering with their operation. Running it on a separate server also allows you to connect it very easily to whichever audio you want to broadcast. Here is a script – you can call it  asterisk-restart.sh to restart asterisk. So instead of doing an Asterisk restart – astres.sh – you would run this script to restart Asterisk.

#!/bin/bash
/usr/local/sbin/astdn.sh
sleep 3
killall -9 lame
killall -9 ezstream
sleep 3
/usr/local/sbin/astup.sh
The last line restarts Asterisk and that in turn reloads ezstream. If you are running ezstream and you do updates I would create another script that omits the last line. In other words it stops Asterisk then before you do the update and when asterisk restarts it will not cause an error. If it doesn’t restart after the update just do a reboot.
 I will be adding this note to the howto on the hamvoip.org web page as well as the pacman package install info after you check it out.
Original writeup by WA3DSP, updated by Justin Reed, NV8Q on 6/4/2018.

Recent Posts