Telephone based broadcasting system

Hello and thank you for your patience. I’m looking to create an open source alternative to a proprietary solution that my company has been paying for for over 10 years.

The application is a subscription based internet stream. I can handle streaming and archiving of audio. My problem is that our contributors need to be able to broadcast using a telephone from anywhere. The steps are as follows:

Allow for n number of contributors (10+)
Dial 800 number from anywhere (Capacity for 3 concurrent)
enter access code
enter broadcast classification number
listen for beep
talk into telephone
hang up when finished

Presumably, I would then be able to sort, database, etc this audio for transmitting to the live stream as well as archiving or whatever.

I have been directed to asterisk by other online communities and it looks like asterisk has the ability to do nearly anything. I was hoping someone can help shed light on how I can do the 3 concurrent connections on an 800 number, as well as the menu for authentication, classification… and finally linking the recording to an icecast server (ices?)

This can be done very easily and for a minimal budget. All you need is three PSTN (or SIP) lines that are set up for hunting. Then point your 800 number to the hunt group. Asterisk can almost do what you want out of the box. This setup is not difficult at all.

Have a read of this book: … +Telephony

It’s free for downloading. But buy it too - as you’re using it for commercial gain - and support the author and publisher and help make sure the next edition comes out eventually.

another vote on the book. 3 trunks is easy using any ITSP (voip service provider), most of the good ones allow 4+ channels at a time, and for a 1800 number you only pay a few c/min. You can then use as many concurrant connections as you have bandwidth for.

Try this list … viders+b2b for ITSPs.

search for more detail on just about any of the following

For access codes use Authenticate() to let users log in against a list of logins. You can then set the CDR billing record to be their account code.

for entering broadcast #s, you can use Read(). It reads a number to a variable.

Then you can use Record(), which i believe (as of 1.2.0) can record directly to MP3. you can use variables to store it, so it could spit out the file as accountcode-broadcastclassidnumber-currenttimeanddate.mp3.

Asterisk can write your CDR data to MySQL, where your billing app can do whatever to it. Asterisk can also (with some tweaking) write generic random information to MySQL, including information about the call. You can also dump information to a text file using something like
System(echo “${ACCOUNTCODE},${classidnumber},${DATETIME}” >> /some/file.log). THis will create a CSV type file which can then be imported into whatever. You could also use a similar function to add information about the new file into a M3u or PLS playlist for Shoutcast to use.

How you integrate it into Shoutcast depends on what other types of systems you use (billing, tracking, etc). But using System() and MySQL() asterisk can integrate with almost anything if you know how to do it.

Hope that helped!

Wow, thank you so much for all the help, I will see what I can come up with and report back what I find.