Home » Technology » Home Run: Asterisk Baseball Scores & Schedules with Gtalk

The Most Versatile VoIP Provider: FREE PORTING

Home Run: Asterisk Baseball Scores & Schedules with Gtalk

Last week we introduced the new Worldwide Weather Station for Asterisk® 1.8 using Google's new Google Talk Guru. And, as promised, today we bring you the first of several new Asterisk applications to retrieve sports scores and schedules from the convenience of your telephone. With Google Talk Guru, you can retrieve the latest Atlanta Braves info by issuing this Chat command: score braves. What you'll receive in reply using Google Chat within Gmail would look something like this:

Atlanta Braves 2 - Milwaukee Brewers 1
Next game: @ Milwaukee Brewers, 6 Apr 3:10am

With today's installation, you'll also be able to dial M-L-B (652) from any Asterisk extension and retrieve the latest score and next game schedule for any one of 10 Major League Baseball teams by pressing a single button. For example, to retrieve the latest Atlanta Braves score and next game schedule, press 2. To try out our demo, just dial 425-406-4532 from any phone in the U.S. Here's the entire list which you can modify to meet your own requirements:

0 - Yankees
1 - Mets
2 - Braves
3 - Reds
4 - Marlins
5 - Orioles
6 - Pirates
7 - Royals
8 - Dodgers
9 - White Sox

As was true with weather forecasts, retrieval of baseball scores and schedules using Google Talk Guru takes less than a second for almost any team. And, in addition to playing these scores and schedules over the phone using Asterisk 1.8, we've added the ability to also forward the results to your favorite email address. If you're already familiar with last week's installation procedure, then drop down to the Quick Installation topic. The whole drill should take you no more than a couple minutes. If you're new to all of this, keep reading.

How It Works. Here's a quick summary of how all this works. With the Google Talk Guru, you can send a query as a text message to guru@googlelabs.com. You then get a reply message in Google Talk with the answer to your query. What we've done is add this querying functionality to your Asterisk dialplan with some preassigned baseball teams to obtain the latest sports scores and schedules. Once the response arrives, we've added a PHP application that puts the text (as shown above) into something that's a little more TTS friendly for Flite and Cepstral. If you're curious about how to do all of this, take a look at the dialplan and PHP code in the links below. It's not hard, but it is tedious. One little typo and nothing works. Ask us how we know. 😉

Prerequisites. If you're new to all of this, here's a quick list of what you'll need. First, you'll need a PBX in a Flash server running the very latest Asterisk 1.8. We call it PIAF-Purple. Bidirectional Google chatting only works in the most recent releases of Asterisk 1.8 so, no, you can't wing it with an earlier release and expect a working system. Next you'll need to add Google Voice and Chat support. You can install these components yourself, or you can use Incredible PBX 1.8. The latest release as of today has this application preinstalled. If you dial 652 from an extension on your Incredible PBX and are prompted to choose a team for the latest score and schedule after hearing a list of the available teams, then your installation is complete even though it won't work until you invite yourself to chat with guru@googlelabs.com using the same Gmail account you're using for Google Voice on your Asterisk server. If dialing 652 doesn't work, then you'll need to add this application to your existing Incredible PBX 1.8 installation by following the simple steps below in addition to enabling chats with guru@googlelabs.com. Almost any other (current) Asterisk 1.8 server should work as well so long as you've installed FreePBX, PHP and the Flite or Cepstral voice synthesizer. But then you're on your own. If you're a nuts-and-bolts Asterisk guy, then you should be able to decipher what needs to be done by reading through this tutorial.

Quick Installation. Assuming you have all the prerequisites in place, today's installation is about a five minute chore. There are 3 easy steps:

(1) While signed in to Gmail with the same account credentials being used for Google Voice on your Asterisk server, activate chat temporarily and invite yourself to chat with guru@googlelabs.com. Run a test query using the Braves example above. IMPORTANT: Once it works, disable chat on your desktop, or Google Voice and Chat will no longer work with Asterisk!

(2) Download the Baseball Scores & Schedules application into the agi-bin directory on your Asterisk system. Here are the commands after logging into your server as root:

cd /var/lib/asterisk/agi-bin
wget http://nerd.bz/eimkfZ
tar zxvf nv-mlb-google.tgz

(3) While still logged in as root, switch to the /etc/asterisk directory and edit extensions_custom.conf with this command:

nano -w extensions_custom.conf

Search for 652 and delete any existing lines with that extension. Then cut-and-paste the following code inserting it just below the [from-internal-custom] context marker (but above any other context marker) or in the existing position if you deleted existing 652 lines. Use nano -w extensions_custom.conf to open the file, or word wrap will delete part of the cut-and-paste code! Once you've saved your changes, reload your Asterisk dialplan:

asterisk -rx "dialplan reload"

Customization. By default, the application is set to use Flite as the text-to-speech (TTS) engine. If you have installed Cepstral, you can change to Cepstral. In the /var/lib/asterisk/agi-bin directory, edit nv-mlb-google.php and change $ttspick = 0 to $ttspick = 1. Do not delete the trailing semicolon! If you want the sports scores and schedules also emailed to you when you dial them up, then insert your actual email address in the $email variable and set $emailscore = 1.

You need not use the 10 teams that are preconfigured in the application. You can choose your own. First, write down the names of the 10 teams you wish to use. Do NOT use city names! Make a backup of extensions_custom.conf: cp extensions_custom.conf ext_custom.bak. Then carefully edit /etc/asterisk/extensions_custom.conf using nano -w filename. Move down to the 652,3 and 652,5 lines and make the necessary changes using the teams you have chosen. Finally, move down to 652,50 and replace Yankees with your 0 choice, 612,52 Mets with your 1 choice, etc. Save your changes and reload your dialplan. NOTE: For multi-word teams such as White Sox, be sure to use an underscore between the words, NOT A SPACE, e.g. white_sox.

If you want to retrieve scores and schedules for more than 10 teams, the easiest solution is to clone all of the 652 dialplan code and renumber each occurrence of 652 to 653. HINT: Some 652 entries are actually embedded in the code as well as in the extension numbers. Be sure to renumber those entries as well. Use Ctrl-W to find each 652 occurrence in the new context, and you won't inadvertently miss one. That gets you 10 more teams. Repeat as desired. Note also that you need not announce 10 teams in the voice prompt unless you want to. If you only plan to follow 3 teams, then alter the initial voice prompt to only announce those teams. You do NOT need to delete the dialplan code that actually picks other teams. No one will ever know. 😉

Adding a Miscellaneous Destination. This step is optional. Access FreePBX with your browser, and choose Setup, Misc Destination. If it's not already there, add a new entry for MLBScores with 652 as the Dial entry. Save your entry and then click the Red Bar to reload Asterisk.

Taking Baseball Scores and Schedules for a Spin. Now we should be all set. Just pick up an extension on your system and dial 652. You'll be prompted to enter a one-digit code. Punch in 5 and check out the latest score and next game for the Baltimore Orioles. Enjoy!

Housekeeping 101. Temporary files in /tmp get cleaned up by Linux housekeeping automatically. Temporary files stored elsewhere don't unless you're using Incredible PBX. The weather scripts store .wav files with your requested weather forecasts in /var/lib/asterisk/sounds/tts. So, from time to time, make a mental note to remove all of these files with a command like this:

rm -f /var/lib/asterisk/sounds/tts/tts*

Or just log into your Asterisk® server as root and edit the following file: nano -w /etc/crontab. Move to the bottom of the file and insert the following code on a blank line:

01 0 * * * root rm -f /var/lib/asterisk/sounds/tts/tts* > /dev/null

This code will delete all of the TTS files in the tts folder every night. Now save your changes: Ctrl-X, Y, then Enter.

Best of Nerd Vittles Link. This application also will be available on our Best of Nerd Vittles site shortly. Enjoy!

Originally published: Monday, April 11, 2011

Need help with Asterisk? Visit the PBX in a Flash Forum or Wiki.
Or Try the New, Free PBX in a Flash Conference Bridge.

whos.amung.us If you're wondering what your fellow man is reading on Nerd Vittles these days, wonder no more. Visit our new whos.amung.us statistical web site and check out what's happening. It's a terrific resource both for us and for you.


Special Thanks to Our Generous Sponsors

FULL DISCLOSURE: ClearlyIP, Skyetel, Vitelity, DigitalOcean, Vultr, VoIP.ms, 3CX, Sangoma, TelecomsXchange and VitalPBX have provided financial support to Nerd Vittles and our open source projects through advertising, referral revenue, and/or merchandise. As an Amazon Associate and Best Buy Affiliate, we also earn from qualifying purchases. We’ve chosen these providers not the other way around. Our decisions are based upon their corporate reputation and the quality of their offerings and pricing. Our recommendations regarding technology are reached without regard to financial compensation except in situations in which comparable products at comparable pricing are available from multiple sources. In this limited case, we support our sponsors because our sponsors support us.

BOGO Bonaza: Enjoy state-of-the-art VoIP service with a $10 credit and half-price SIP service on up to $500 of Skyetel trunking with free number porting when you fund your Skyetel account. No limits on number of simultaneous calls. Quadruple data center redundancy. $25 monthly minimum spend required. Tutorial and sign up details are here.

The lynchpin of Incredible PBX 2020 and beyond is ClearlyIP components which bring management of FreePBX modules and SIP phone integration to a level never before available with any other Asterisk distribution. And now you can configure and reconfigure your new Incredible PBX phones from the convenience of the Incredible PBX GUI.

VitalPBX is perhaps the fastest-growing PBX offering based upon Asterisk with an installed presence in more than 100 countries worldwide. VitalPBX has generously provided a customized White Label version of Incredible PBX tailored for use with all Incredible PBX and VitalPBX custom applications. Follow this link for a free test drive!

Special Thanks to Vitelity. Vitelity is now Voyant Communications and has halted new registrations for the time being. Our special thanks to Vitelity for their unwavering financial support over many years and to the many Nerd Vittles readers who continue to enjoy the benefits of their service offerings. We will keep everyone posted on further developments.

Some Recent Nerd Vittles Articles of Interest...