Posts tagged: voicemail

Googlified Messaging: Asterisk’s New Best Friend

Lips from GoogleWithin the past few months, we've added several hundred million free phone numbers to our Asterisk® PBX by creating a Skype Gateway as well as Gizmo Backdoor Dialing and ENUM interfaces that didn't cost us a dime. And, today, we turn our attention to Google's recent transmogrification of GrandCentral into Google Voice. More specifically, what we want to do is examine some ways to integrate the Google Voice feature set into our existing Asterisk implementations. The potential benefits are enormous. There's free calling in the U.S., free distribution of inbound calls to multiple phone numbers scattered around the country, free SMS messaging and delivery by email, free transcription of voicemail messages into text-based emails, free conferencing, and free GOOG-411, a voice-activated service that let's you find nearby businesses by saying where you are and what you're looking for. For today, we've set our sights on the Google Voice feature set which is easiest to integrate into existing Asterisk systems: free voicemail message transcription, free calling in the United States, and free GOOG-411 directory assistance. For lack of a better term, we call it... Googlified Messaging™. ;-)

Update: The original SIP interface to Google Voice described in this posting no longer works. A new approach that really works is now available on Nerd Vittles at this link.

Integrating Google Voice into Asterisk. If there is a recurring theme to Google Voice, it's this. Google Voice was designed to be a user-friendly, interactive messaging system. Google didn't intend to provide a telephony toolkit for Asterisk developers, but they haven't blocked any functionality either. There's no SIP connectivity in Google Voice... at least that is obvious. Can you spell G-I-Z-M-O? Well, that was the first hint. But a simple call trace revealed a lot more. It appears the entire Google Voice platform is SIP-based which makes it a perfect fit with Asterisk.

Because of the Google Voice design, there's no simple way to use your Google Voice DID for incoming call distribution while also integrating voicemail transcription and outbound calling into your Asterisk dialplan. Why? Because you can't take advantage of the free voicemail transcription service with Asterisk if Google Voice is sending inbound calls all over the countryside. So the real key to unlocking the greatness of Googlified Messaging is having two Google Voice accounts so that each can be used for a dedicated purpose. The first account will be used for outbound functions and voicemail transcription while the second is used to manage and route incoming calls. This is important because, for security reasons, you don't want to reveal your Google Voice number that is being used for outbound calling. Why? Because it is a SIP connection, and your Google Voice phone bill is only protected by a 4-digit PIN. If Google hasn't learned about Fail2Ban, they will soon. As this is written, multiple Google Voice accounts aren't possible unless you had more than one GrandCentral account since only GrandCentral users currently are eligible for Google Voice accounts. But that, too, will change!

For today, let's put aside the incoming call routing and concentrate on the remaining Googlified Messaging functionality. We turn first to Google Voice's free transcription of voicemail messages into text-based messages for email delivery to your desktop PC or cellphone.

Voicemail Transcription Overview. We begin with a cautionary note. Google's new automated voicemail transcription service is absolutely incredible... even if it's not quite perfect. We've tried a couple of messages to evaluate the transcription accuracy, and we'll let you judge for yourself.

Actual Message: "Hi. I was just passing through the airport. I hadn't seen you in a couple years, and I thought you might wanna get together for a quickie. Give me a call."

Googlified Transcription: "hi i was just passing through the airport i hadn't seen you in a couple years and i thought you might wanna get together for a quickie give me a call"

As you can see, the accuracy was pretty good. But there are a couple of problems. First, there's no CallerID name associated with inbound calls. So, if the caller doesn't identify himself or herself (especially if the caller is using a pay phone), you're S.O.L. relying on the transcription. But the message and phone number were accurate. It probably would motivate you to quickly connect to your email account and actually listen to the voicemail to decipher the caller's identity and avoid a missed opportunity. :-)

Actual Message: "Hi. I've read over your corporate acquisitions and merger paper, and it isn't quite accurate with regard to our position."

Googlified Transcription: "hi i have a red over your corporate acquisitions in merger paper and it is a quite accurate with regard to our position"

This second example is a bit more problematic. The same issues apply from the first example. Plus there's a new wrinkle that could be a show stopper: the Googlification of "isn't quite accurate" into "it is a quite accurate." You'd better hope there was more to the message than this before running off to present your paper. It also highlights the difficulty that automated systems have when deciphering conjunctions such as "isn't" which often are used in conversational speech.

Some might suggest that this demonstrates the Google developers actually have their priorities in order. Get the kinks out of the sex jargon before focusing on exciting subject matter such as conjunctions. :roll:

Bottom Line: Googlified Messaging may be a boon to your sex life, but don't stake your job security on it just yet. Also make certain that your voicemail announcement includes a very emphatic request that callers actually identify themselves and leave a callback number where they can be quickly reached.

Google Voice Design. To integrate free voicemail transcription into Asterisk, what we first must do is turn your Google Voice account into a glorified answering machine and message distribution system. When calls arrive on your Google Voice number, they will immediately trigger a greeting message that says something like this:

Thank you for calling Nerd Vittles. No one is available at the moment to take your call. After the tone, please identify yourself, leave a callback number, and a brief message. Your message will be transcribed and delivered to us. We will get back to you promptly. Please begin speaking after the tone.

Once a voicemail message is received, we want Google Voice to transcribe it and email us both the voicemail message and the transcribed text.

Google Voice Setup. Log into your Google Voice account and click Settings, General. In the Voicemail Greeting section of the form, record your greeting message as outlined above. In the Notifications section, identify the email and SMS addresses for delivery of your voicemail messages. In Voicemail Transcripts, check the option to transcribe voicemails. Now click on the Do Not Disturb check box to forward all inbound calls to voicemail.

FreePBX Setup. Obviously there are numerous ways to integrate this transcription service into Asterisk. If you're using FreePBX, here are a couple of simple ways. First, create a Miscellaneous Destination for Google Voice and provide your Google Voice number in the correct format to match your dialplan. Next, if you use a Ring Group to answer incoming calls, choose your new Google Voice Miscellaneous Destination as the "Destination if no Answer." If you're using an IVR to route calls, then perhaps you'll want to add an option to leave a voicemail and have it transcribed for delivery to your email account.

HINT: For rerouting of Asterisk calls to Google Voice, be sure to use an outbound trunk that supports CallerID pass-through. And configure the trunk with a blank CallerID value in FreePBX. Then the actual CallerID of the incoming call will be passed along to Google Voice and stored as part of the voicemail message.

Connecting the Dots. For the visionaries in the audience, you're probably wondering what it would take to add language translation to transcription. So were we. It raises some interesting questions, and some of our early adopters already have tried it. Suffice it to say, it doesn't work yet. But it wouldn't take much effort to run a transcribed message through Google Translate and spit out a Spanish, French, or German message on the other end. Or vice versa: transcribe a German message and translate it into English for email delivery in an English-speaking country. Exciting times, indeed. Stay tuned!

Free U.S. Calls with Google Voice. At least for now, calls through Google Voice to phone numbers in the United States are free. And the rates are quite reasonable to other countries. It's a penny a minute to Canada and two cents a minute to many other countries whose names don't include the word "island." There are several ways to terminate calls through Google Voice with Asterisk. Here's the only way we've found to place outbound calls and also preserve the message transcription functionality.

Log into your Asterisk server as root and edit extensions_custom.conf in the /etc/asterisk folder. In the [from-internal-custom] context, add one or more entries for people you wish to call. Be sure to make the following substitutions to match your Google Voice credentials:

999 - Extension number to call
9876543210 - Your Google Voice DID
8888 - Your Google Voice PIN
1234567890 - Phone number of person to call

And here's the default entry which should be one continuous entry on one line:

exten =>999,1,Dial(SIP/9876543210@216.239.37.15:5061
,30,mD(wwwwwwwwwwww*ww8888ww2ww1234567890#))

When you finish making all the extension entries desired, save the file. Then reload your Asterisk dialplan: asterisk -rx "dialplan reload"

Google Dialer for Asterisk. Another approach for outbound calling with Google Voice would be to create a simple dialer in your Asterisk dialplan. The idea here is that anyone can pick up a phone and dial *GV (which is *48) to place a call. They then will be prompted to enter the 10-digit number to call. This code would be inserted in the same [from-internal-custom] context, and remember to insert your actual Google phone number and PIN in the dial string and keep the entire Dial command on a single line (which we can't do in this blog's template). Reload the Asterisk dialplan when you're finished.

exten => *48,1,Answer
exten => *48,n,Wait(1)
exten => *48,n,Set(TIMEOUT(digit)=15)
exten => *48,n,Set(TIMEOUT(response)=20)
exten => *48,n,Playback(pls-entr-num-uwish2-call)
exten => *48,n,Read(NUM2CALL,beep,10)
exten => *48,n,Playback(pls-wait-connect-call)
exten => *48,n,Dial(SIP/9876543210@216.239.37.15:5061
,30,mD(wwwwwwwwwwww*ww8888ww2ww${NUM2CALL}#))
exten => *48,n,Hangup

Outbound Trunk Alternative. Since the original article was published, our British colleague, Joe Roper, suggested that we also include instructions for configuring Google Voice as a dial-out trunk (instead of an extension) in Asterisk. The advantage of this approach is that outbound calls can be dialed in the traditional way without interaction with voice prompts. The solution we will outline below lets you place a call from any Asterisk phone by dialing the GV prefix plus a 10-digit number. So, to place a call to President Obama in Washington through Google Voice, you'd dial 48-202-456-1111. Good luck with that, but here's how...

First, log into your Asterisk server as root and edit extensions_custom.conf again. This time, go to the very bottom of the file and add the following code using your Google Voice phone number and PIN. Remember to expand the two-line dial string so it fits on a single line with no spaces! Save your changes and reload the dialplan.


[custom-google-voice]
exten => _X.,1,Dial(SIP/9876543210@216.239.37.15:5061
,30,rD(wwwwwwwwwwwwww*www8888www2wwww${EXTEN}#))
exten => _X.,n,Hangup

Next, open FreePBX with a web browser and choose Setup, Trunks, Add Custom Trunk. Insert the following Custom Dial String on the form and Submit Changes and reload the dialplan:

local/$OUTNUM$@custom-google-voice

Finally, choose Setup, Outbound Routes, Add Route and fill in the following entries on the form:


Route Name: GoogleVoice
Dial Pattern: 48|NXXNXXXXXX
Trunk Seq: local/$OUTNUM$@custom-google-voice

Save your changes and reload the Asterisk dial plan one more time to complete the setup. Now you're all set to call the President whenever the urge strikes: 48-202-456-1111. And, remember, it's a free call... at least for now.

Homework. Google also has introduced a slick new directory assistance service which also is free. We'll leave it to you to take the lesson above and create a GOOG-411 entry in your dialplan. HINT: You choose option 3 instead of option 2 after entering your PIN in the Google Voice menu. Enjoy!

Chapter 2. Google Voice: Is the SIP and Asterisk Honeymoon Over?

Chapter 3. The Return of Googlified Messaging With Free U.S. Calling


New Fonica Special. If you want to communicate with the rest of the telephones in the world, then you'll need a way to route outbound calls (terminations) to their destination. For outbound calling, we recommend you establish accounts with several providers. We've included two of the very best! These include Joe Roper's new service for PBX in a Flash as well as our old favorite, Vitelity. To get started with the Fonica service, just visit the web site and register. You can choose penny a minute service in the U.S. Or premium service is available for a bit more. Try both. You've got nothing to lose! In addition, Fonica offers some of the best international calling rates in the world. And Joe Roper has almost a decade of experience configuring and managing these services. So we have little doubt that you'll love the service AND the support. To sign up in the USA and be charged in U.S. Dollars, sign up here. To sign up for the European Service and be charged in Euros, sign up here. See the Fonica image which tells you everything you need to know about this terrific new offering. In addition to being first rate service, Fonica is one of the least expensive and most reliable providers on the planet.
 
New Vitelity Special. Vitelity has generously offered a new discount for PBX in a Flash users. You now can get an almost half-price DID and 60 free minutes from our special Vitelity sign-up link. If you're seeking the best flexibility in choosing an area code and phone number plus the lowest entry level pricing plus high quality calls, then Vitelity is the hands-down winner. Vitelity provides Tier A DID inbound service in over 3,000 rate centers throughout the US and Canada. And, when you use our special link to sign up, the Nerd Vittles and PBX in a Flash projects get a few shekels down the road while you get an incredible signup deal as well. The going rate for Vitelity's DID service is $7.95 a month which includes up to 4,000 incoming minutes on two simultaneous channels with terminations priced at 1.45¢ per minute. Not any more! For PBX in a Flash users, here's a deal you can't (and shouldn't) refuse! Sign up now, and you can purchase a Tier A DID with unlimited incoming calls for just $3.99 a month and you get a free hour of outbound calling to test out their call quality. To check availability of local numbers and tiers of service from Vitelity, click here. Do not use this link to order your DIDs, or you won't get the special pricing! After the free hour of outbound calling, Vitelity's rate is just 1.44¢ per minute for outbound calls in the U.S. There is a $35 prepay when you sign up. This covers future usage and any balance is fully refundable if you decide to discontinue service with Vitelity.
 


Some Recent Nerd Vittles Articles of Interest...

A Baker’s Dozen Asterisk Nuggets from the Forums

Whether you’re new to the Open Source VoIP Community or an old-timer, we wonder how many folks actually miss many of the terrific Asterisk® applications that are hidden in message threads on the various Asterisk forums around the globe. In honor of St. Patty’s Day, today we want to take a stroll through the PBX in a Flash forum just to demonstrate what you may be missing by not visiting the forums or subscribing to some of the better syndication feeds.

Skype Gateway to Asterisk. If you read our recent column on integrating a Skype gateway into your Asterisk server, good for you. But, if you missed the forum dialog which followed release of the article, you missed all sorts of enhancements and system integration tips which made the Skype gateway a much better fit on many systems.

CallerID Superfecta. One of the most perplexing issues facing those that implement VoIP telephony solutions is wrestling with CallerID issues which flow from the ongoing Baby Bell phonebook monopoly. Many of you may have tried our CallerID Superfecta application which provides CallerID lookups for FreePBX-based systems using AsteriDex, Google Phonebook, AnyWho, and WhitePages. But, if you’d explored the forum additions to CallerID Superfecta, you would have uncovered an incredibly slick FreePBX installer as well as support for WhoCalled.us and Telcodata plus SugarCRM as well as numerous fixes for syntax changes on the various lookup sources.

Faxing with Asterisk. Other than CalleriD, there’s probably no issue that generates more consternation in the Asterisk community than fax integration. We reintroduced nvfax for Asterisk 1.4 recently. But, if you’d been following the forums, you’d also know that HylaFax and AvantFax now can be easily integrated into PBX in a Flash thanks to the work of Joe Roper and Tony Shiffer.

A2Billing for Asterisk. Another application that’s been difficult to get working with Asterisk has been A2Billing, a sophisticated calling card and PBX billing system. There really never has been a clear, concise cookbook for getting the software installed and properly configured. Once again, thanks to Joe and Tony, this forum thread provides a step-by-step tutorial for getting every facet of A2Billing installed and properly configured.

Asterisk Stickies. This is another promising Asterisk web application for PBX in a Flash that pops up stickies when incoming calls are received. You then can add the contact to your phonebook and also generate the XML code to update the phone directory on Grandstream and Cisco phone sets. It also supports click-to-dial from the web interface. You can keep up with the progress of this developing application in this very active message thread.

Text-to-Speech FreePBX Module. Just today a new TTS module for FreePBX was introduced which lets you generate TTS announcements for use with any FreePBX-based Asterisk system.

Overhead Paging with Asterisk 1.4. Most workplaces need some sort of overhead paging system. With the tips in this thread and any Asterisk 1.4 server, it’s incredibly easy to implement.

Streaming Music on Hold. We introduced streaming audio for Asterisk over three years ago in the Asterisk 1.2 days. A new message thread has updated that technology to support Internet radio using any Asterisk 1.4 server.

Email Alerts on Trunk Failures. For those that rely upon Asterisk systems to do real work, it’s essential to know when access to your carrier has failed so that you can make adjustments to your outbound and inbound trunks. This thread provides a simple tutorial and script to get you started.

Outbound Emails with Asterisk and SendMail. Another one of our Top 5 most perplexing problems with Asterisk is getting an outbound email capability with SendMail working reliably. Part of this is the configuration hassles with SendMail. But service providers such as Comcast have made matters worse by blocking outbound access to port 25 on most non-business accounts. Here’s a message thread that will walk you through configuring SendMail to use Gmail as your outbound SMTP relay host, and you’ll never have an email problem again on your Asterisk server.

Voicemail Notification. Unified messaging may be everyone’s dream but the reality is that it would be nice to be called on your cellphone when a new voicemail arrived at your office. The Voicemail Notification System does just that. And this thread integrates the original design into a FreePBX module.

Configuration Editor for FreePBX. FreePBX stores much of its magic in Asterisk config files. At least in PBX in a Flash, we hide some of these files to protect the integrity of your system. In addition, changes made to some of these files will get overwritten the next time FreePBX is started since it populates a lot of the information in these config files from data stored in MySQL tables. For those that want to learn more about the FreePBX, there now is a configuration file editor which will let you view and edit any FreePBX config file on your system. You’ll find a complete tutorial in the forums.

Hotel-Style Wakeup Calls. A few weeks ago we covered Tony Shiffer’s new add-on module for FreePBX that provides hotel-style wakeup calls for Asterisk systems. This code actually had been available in the forum for several months and is yet another reason to frequently check the new message threads.

Mac OS X Scripting Package. Since publication, a new link to a Treasure Trove of Goodies for Mac OS X has been posted including a link to the new Mac OS X Scripting Package and Asterisk binaries for Mac OS X from Sven Slezak at Mezzo.

Syndication Syntax. Many forums provide a syndication feed link, but many do not. For vBulletin-based forums, the basic syntax for an RSS feed looks like this:

http://fqdn.com/forum/external.php

You can refine the type of feed you want by specifying the type: RSS, RSS2, ATOM, or XML. For example, to pull down a feed from the PBX in a Flash forum, here’s the syntax for the various formats that are supported:

http://pbxinaflash.com/forum/external.php?type=RSS

http://pbxinaflash.com/forum/external.php?type=RSS2

http://pbxinaflash.com/forum/external.php?type=ATOM

http://pbxinaflash.com/forum/external.php?type=XML

You can further refine the feed by narrowing it down to a particular forum of interest. For example, to retrieve the latest threads from the PBX in a Flash Open Discussion forum, the syntax looks like this:

http://pbxinaflash.com/forum/external.php?type=RSS2&forumids=2

Finally, here’s the list of forum ID numbers for the PBX in a Flash forum:

2 – Open Discussion
3 – Help
4 – Endpoints
5 – Trunks
6 – Providers
7 – Wish List
9 – Bug Reporting & Fixes
10 – Add-On Install Instructions

Something We Missed? There are hundreds of additional Asterisk apps hiding in the woodwork. Please share your discoveries by posting a comment and link below. Enjoy!


Want a Bootable PBX in a Flash Drive? Our Atomic Flash bootable USB flash installer for PBX in a Flash has been quite the hit. Special thanks to all of our generous contributors! Atomic Flash provides all of the goodies in the VPN in a Flash system featured last month on Nerd Vittles. You can build a complete turnkey system using almost any current generation PC with a SATA drive and this USB flash installer in less than 15 minutes!

If you’d like to put your name in the hat for a chance to win a free one delivered to your door, just post a comment with your best PBX in a Flash story.1

Be sure to include your real email address which will not be posted. The winner will be chosen by drawing an email address out of a hat (the old fashioned way!) from all of the comments posted over the next several weeks.

And it still isn’t too late to make a contribution of $50 or more to the PBX in a Flash project and get a free Atomic Flash installer delivered to your door as our special thank you gift. See this Nerd Vittles article for details.


New Fonica Special. If you want to communicate with the rest of the telephones in the world, then you’ll need a way to route outbound calls (terminations) to their destination. For outbound calling, we recommend you establish accounts with several providers. We’ve included two of the very best! These include Joe Roper’s new service for PBX in a Flash as well as our old favorite, Vitelity. To get started with the Fonica service, just visit the web site and register. You can choose penny a minute service in the U.S. Or premium service is available for a bit more. Try both. You’ve got nothing to lose! In addition, Fonica offers some of the best international calling rates in the world. And Joe Roper has almost a decade of experience configuring and managing these services. So we have little doubt that you’ll love the service AND the support. To sign up in the USA and be charged in U.S. Dollars, sign up here. To sign up for the European Service and be charged in Euros, sign up here. See the Fonica image which tells you everything you need to know about this terrific new offering. In addition to being first rate service, Fonica is one of the least expensive and most reliable providers on the planet.
 
New Vitelity Special. Vitelity has generously offered a new discount for PBX in a Flash users. You now can get an almost half-price DID and 60 free minutes from our special Vitelity sign-up link. If you’re seeking the best flexibility in choosing an area code and phone number plus the lowest entry level pricing plus high quality calls, then Vitelity is the hands-down winner. Vitelity provides Tier A DID inbound service in over 3,000 rate centers throughout the US and Canada. And, when you use our special link to sign up, the Nerd Vittles and PBX in a Flash projects get a few shekels down the road while you get an incredible signup deal as well. The going rate for Vitelity’s DID service is $7.95 a month which includes up to 4,000 incoming minutes on two simultaneous channels with terminations priced at 1.45¢ per minute. Not any more! For PBX in a Flash users, here’s a deal you can’t (and shouldn’t) refuse! Sign up now, and you can purchase a Tier A DID with unlimited incoming calls for just $3.99 a month and you get a free hour of outbound calling to test out their call quality. To check availability of local numbers and tiers of service from Vitelity, click here. Do not use this link to order your DIDs, or you won’t get the special pricing! After the free hour of outbound calling, Vitelity’s rate is just 1.44¢ per minute for outbound calls in the U.S. There is a $35 prepay when you sign up. This covers future usage and any balance is fully refundable if you decide to discontinue service with Vitelity.
 


Some Recent Nerd Vittles Articles of Interest…

  1. This offer does not extend to those in jurisdictions in which our offer or your participation may be regulated or prohibited by statute or regulation. []

Ringbinder theme by Themocracy