What Is SoccerPhone?
SoccerPhone is a free, automated service that provides live Major League
Soccer scores by phone. SoccerPhone has no affiliation with Major League Soccer,
other than being created by a long time fan of MLS
and the San Jose
Earthquakes/Clash.
You use SoccerPhone by calling a toll free number and asking for information
on MLS games that have been played or will be played this week. You
can request scores for all teams or just for games involving a
specific team. If you request info for a specific team, you will also hear
the scoring details and possibly any red cards issued (depending on the whims of the MLS website)
for any of that team's games that are in progress or have ended this week.
Since the scores are downloaded from the MLS website after you place your
phone call, the game information you get from SoccerPhone will be
as current as if you went to the
MLS live scores web page with a web browser. Of course, this also means that
if the MLS website returns errors, SoccerPhone won't be able to read you updated scores.
How Do I Use It?
The Quick and Dirty Guide
- Call 1-877-33-VOCAL (877-338-6225)
- When asked for your PIN, enter or say 5425
- When asked for your userid, enter or say 6575425
- After you hear me say "Welcome to SoccerPhone", you can say an MLS
team name, such as "Houston Dynamo", or say "all teams".
To help you remember the PIN and the User ID, use the following mnemonics:
- 5425 = KICK
- 6575425 = MLSKICK
If you say either "All" or "All Teams" or press 1 on your phone, you will hear
info on every game scheduled for this week, or at least whatever games are
listed on the MLS live scores web page.
For games that haven't started, you will hear the names of the teams
and the start time. For games that have started, you will hear the
score and the time in the game, e.g., minute 32, halftime, final.
If you say the name of a team, e.g., Dynamo, Houston, Fire, Chicago Fire, Crew, etc.,
you will hear only the games involving that team. For games that have started or
finished, you will also hear the scoring details.
Sample Call
The things you need to say or enter are in bold.
You: Dial
1-877-338-6225. On a phone keypad, 86225 = VOCAL.
BeVocal: "Welcome to the BeVocal cafe". What's your PIN?
You: Enter or say
5425.
BeVocal: "What's your user id?"
You: Enter or say
6575425.
BeVocal: --- Brief delay while SoccerPhone program is loaded. ---
BeVocal: "Welcome to SoccerPhone! I can give you live game scores..."
You: Say "all teams".
BeVocal: --- Brief delay while scores on MLS website are retrieved and processed --
BeVocal: "Accessing this week's games for all teams"
BeVocal: "New England Revolution 2, Columbus Crew 1, Final"
BeVocal: "Houston Dynamo 4, Los Angeles Galaxy 0, Final"
BeVocal: ...
BeVocallMe: "To hear the scores you want, say the name of an MLS team..."
You: "Earthquakes"
BeVocal: "Accessing this week's games for San Jose"
BeVocal: "Colorado 0, San Jose 2, Final"
BeVocal: "Scoring Details"
BeVocal: "San Jose, Graziani (Barrett, Conrad) 26"
BeVocal: "San Jose, Donovan (Graziani, Ibsen) 74"
BeVocal: "To hear the scores you want,..."
You: "Goodbye"
Usage Tips
Interrupt the Prompts
You can interrupt the prompts, except for the "Welcome to SoccerPhone" intro.
If you know what a prompt is for, you can immediately start speaking or pressing digits.
Interrupt the Scores
You can also interrupt the scores. For example, let's say you said
"all teams" and are listening to the results for all the teams. You then hear a game for which
you want the scoring details. If you speak the name of one of the
teams, the voice will stop reading all the scores and will switch to reading the score
with scoring details for the game or games in which that team played.
Using Phone Keypad
Currently, you can use your phone keypad in two places - to enter
the PIN and user ID at the beginning of the call and to enter 1 as a shortcut for "all teams".
Use Mute when in a Noisy Setting
If you're checking scores via cellphone while at a game, in a pub, on an active airplane runway,
or in some other noisy location, mute your phone when you aren't speaking.
If you just want to hear all the scores, you should be able to
leave your phone muted for the entire call. I've yet to meet a phone that mutes the
tones that are issued when you press buttons on the keypad. Sometimes
the speech detection engine will get confused if it picks up the crowd noise or the announcer
or your drunken buddy at the bar, but I didn't want to set the threshold so high that you always have
to yell into your phone to get it to recognize you. People might stare.
Team Name Variants
The speech recognition grammar for team names is relatively flexible. For example, for the
Kansas City Wizards, it will accept "Kansas City Wizards", "Kansas City", or "Wizards".
Caveats
There may be long delays depending on how busy BeVocal's voice
servers and the MLSnet.com web server are. Just keep telling yourself,
"This is a free service." If the MLS website takes more than about
20 seconds to respond, you will hear the results from the last time
SoccerPhone successfully accessed the website.
If you are checking the score for the Chicago Fire while in a crowded theater, please don't
yell FIRE! into your phone. "Chicago" will do just fine.
More Than Normal Humans Want to Know about SoccerPhone
Additional info is available in the
SoccerPhone category on my blog.
Future Enhancements
- Add support for other leagues. It all depends on finding a website
with an XML feed (dream on) or at least relatively consistent HTML
formatting of the game results. And finding time to write the appropriate Python CGI script.
- Indicate age of the cached results that are used when MLS website doesn't respond in time.
- Add dialog navigation support for Next, Previous, and other common commands.
- Provide informative message if requested team does not play this week.
- Add more and better recorded prompts, preferably spoken by someone other than me.
Known Bugs
- Exception handling still kind of wonky. Probably because I don't understand VXML exception handling well enough, yet.
- Assumes that every failed HTTP fetch is due to an inaccessible MLS website, which is the case at least 90% of
the time an HTTP fetch error is thrown, but not 100%.
- I'm sure there are lots more problems, but I'm in denial.
Recent Changes, Fixes, etc.
The most current info will be on my blog.
- 4-8-07 Updated for 2007 season. Changed PIN and User id.
- 4-11-03 Finished port of SoccerPhone from TellMe's hosted service to BeVocal.
- 3-9-03 Updated to work with new HTML layout on MLS live scores page
- 3-8-03 Released version 0.1 of the source code
- 9-31-02 Worked out around more inconsistent HTML code on MLS website. This time, it was "Final - OT"
- 7-27-02 Worked out around more inconsistent HTML code on MLS website
- 7-22-02 Finally fixed caching of results.
- 7-21-02 Worked out around inconsistent HTML code on MLS website
- 7-13-02 MLS website had new behavior today of using (2OT) to indicate Chicago goal was scored in second time. I simplified
the regular expression for catching (OT) to also catch this. SocerPhone no longer appears to say "Final, too oughty".
- 7-9-02 Games played on the same day are now preceded by the name of the day of the week. This wasn't such a big deal at the beginning
of the season when every game was on a Saturday.
- 7-9-02 Recent change had broken playback of cached results. Fixed it by changing a variable to document scope.
- 6-8-02 Added more recorded prompts at the beginning.
- 6-8-02 Changed "all games" to "all teams".
- Reusing cached results on same call after first successful retrieval of data from MLS
website. The big advantage is that now every request for scores on a phone call after the
first successful request will read you the score(s) much faster. The slight disadvantage is that
you can't get continued updates while staying on the same phone call. You have to hang up and
call again to trigger another download of scores from the website.
- Changed the TellMe extensions code from 94602 to 72673 (SCORE), which should be easier to remember.
Acknowledgements
- Thanks to MLS for providing live scores on their website in a relatively consistent manner.
MLS, Major League Soccer and MLS team identifications are trademarks, copyrighted designs and other forms of intellectual property of Major League Soccer, L.L.C.
- Thanks to BeVocal for providing BeVocal Cafe
as a free, hosted VoiceXML development environment.
- Thanks to Guido van Rossum for creating Python, which I used
to write the code that retrieves, parses, and formats the game information.
Feedback
If you have any feedback, whether good, bad, or indifferent, please email me at
robert AT wombatnation DOT com.
Obviously, you need to replace the " AT " and the " DOT ". I'm just trying to protect my email address
from the evil spambot spiders that troll the web. Curse them.