Skip to content

VXML Style Voice Form for Adhearsion

March 31, 2009

The Adhearsion developer community continues to create new applications and components. codecoolAnd even more importantly, sharing them. The latest component addition to the line-up is a VoiceXML style Voice Form plugin for Adhearsion, created by @adzap and posted to GitHub.

You may new create your own compenent, include the Voice Form module and create extensive voice menus to your callers. Here is the classic Adhearison Simon example re-factored into a Voice Form:

class SimonGame
include VoiceForm

voice_form do
setup do
@number = ”
end

field(:attempt, :attempts => 1) do
prompt :play => :current_number, :bargein => false, :timeout => 2

setup do
@number << random_number end validate do @attempt == @number end success do call.play 'good' form.restart end failure do call.play %W[#{@number.length-1} times wrong-try-again-smarty] @number = '' form.restart end end end def random_number rand(10).to_s end def current_number as_digits(@number) end end [/sourcecode] The readme and code are all available on GitHub here. Enjoy and many thanks to @adzap!

Adhearsion Developer Community Writing Apps for America

March 31, 2009

picture-16

@3lsilver (aka lewdsilver) has brought to my attention an application that he and a team built for the Apps for America contest. Apps for America is a contest sponsored by Sunlight Labs, where their moto is ‘turning government data into usable information’. Sunlight Labs provides a set of APIs that exposes such information as census data, congressional data and much more. The APIs are intended to power mash-ups to drive government transparency and citizen participation.

At least two of the applications submitted to the contest use the combination of Adhearsion and Asterisk. Speak for Change, submitted by @3lsilver and team, allows citizens to leave voicemails for their representatives by calling a toll-free number, then makes these messages public for all to listen to and comment on. The second application, Call Congress, provides a website with a click to call capability to find and then contact your Senators and Representatives.

As I have said before, radical transparency is the way forward out of the current US predicament, not excessive regulation. This includes the government and financial markets. It is great to see open source telephony and Adhearsion playing their roles. These applications are great examples of open source making it possible to do things today that would have been prohibitively expensive and difficult before.

Skype for Asterisk DOA, long live Skype for Asterisk!

March 27, 2009

Digium has responded to concerns about the value of Skype for Asterisk (SFA) after the announcement of ekg_flatline_200x133Skype for SIP (SFS) last Monday. I would like to state for the record that I did not declare SFA dead, but raised the question. It is indisputable that the value of SFA is diminshed in light of the announcement of SFS, therein lies the opportunity to push for deeper integration to regain that ground.

In the ‘Voice On The Web – Skype in Your Business‘ public Skype chat, Skype did correct two items in the Digium post:

  • SFA can handle incoming Skype calls from any user on the Skype network.  SFS can receive incoming calls from Skype users only by statically mapping a Skype name to a SIP account.
  • SFA supports incoming calls directly from SkypeIn DID numbers.  SFS does not.

These are not differentiators unique to SFA, as they may both be done in SFA and SFS. With this correction we are left with four differentiators:

  • SFA can place calls to any user on the Skype network.  SFS cannot place calls to Skype users.
  • SFA includes support for Skype presence information.  SFS has no support for presence.
  • SFA includes buddy list management.  SFS has no buddy list management features.
  • SFA supports multiple media codecs including G.711 aLaw and uLaw as well as G.729.  Wide-band audio will be available in a near-term revision.  SFS supports only compressed telephony-grade G.729 media streams.

There is value here, which I have highlighted before. But the number of use cases where I now need SFA is signifcantly reduced now that SFS will be availalbe. The reason is that Asterisk of course supports SIP, so I may now use SFS to handle all inbound calls, and use SFA in the specific cases needed.

For example, one channel license may provide all of the presence updates I need. The biggest advantage, SIP -> Skype User calls, may or may not be needed for your use cases, and if so maybe at a reduced number of channels now that you have SFS and may have a hybrid solution. Voxeo had the equivalent of SFS for a while now and hummed along happily providing useful applications.

The point is not to declare SFA dead, but to highlight these points in the hopes that the opportunities for deeper integration and the associated benefits are clear. For SFA to overshadow the SFS announcement, I contend these features are needed:

  • Two-way chat via the Manager API
  • Extended presence support
  • SILK-codec support, which would require end-points (ie – SIP soft phones/hardware phones) embedding SILK

I understand that Digum and Skype need to get SFA to market, but a clear roadmap of what comes next and the timing would be immensly useful as developers look to place their bets. I applaud the work that Skype and Digium have been doing and the opening of the Skype network on multiple fronts. I just hope this is an opportunity to open the Skype network that little bit more.

*UPDATE* Digium has changed their list of differentiators in the blog post, and have replaced one of the incorrect items with this one:

  • SFA calls are encrypted from end-to-end while SFS calls are delivered to the SFS endpoint devices (PBX) as unencrypted RTP streams.

This will be a short lived one, as while the SFS beta will be UDP/RTP, Skype have already committed to TLS/TCP and SRTP. So SFS will have the same ability for encrypted communications as SFA does.

Skype for SIP == Skype for Asterisk DOA?

March 23, 2009

Today Skype announced Skype for SIP (SFS). Put simply, enterprise telephone systems may now interconnect with the boomgoesthedynamiteSkype network to receive calls from the Skype network and place calls to SkypeOut. All without the need to install any special hardware or software on most modern enterprise phone systems (IP-PBXs to be more specific). Skype’s new enterprise targeted connectivity uses SIP, the industry standard for VoIP interconnection. SIP already powers the bulk of Skype’s revenue, via SkypeIn/SkypeOut, so this is a logical progression to take advantage of the large scale infrastructure already in place at Skype.

This is a tremendous move by Skype and one I have contended for years was necessary for them to make headway in the enterprise. I applaud this step. There are plenty of great posts out there covering this already, including the one by @danyork on Disruptive Telephony.

What does this mean for Skype for Asterisk (SFA) announced last September? At best the value of SFA has been signficantly reduced by this announcement.

Previously SIP interconnection to the Skype cloud was given to the rarified group of larger players such as Voxeo, Tellme, Genesys and others. SFA was the first time this access was going to be brought to the world of open source telephony developers through Asterisk. This provided an immense opportunity for the Asterisk developer community to create new applications to take advantage of this, which lead me to invest time to participate in the closed beta for SFA still underway.

The SFS announcement this morning has just marginalized SFA to applications that benefit from direct dialing of Skype users from Asterisk and from basic presence updates from the Skype network. Gone are the benefits of providing Skype/SkypeIn inbound calls to the enterprise, SkypeOut trunking, etc. More so, SFA is at a disadvantage since you will have to pay a per channel (simultaneous call) license fee on top of any SkypeIn/SkypeOut costs. Further, I suspect that the number of SFA channels available to a single account will be limited for the same reason that SFS does not do SIP to Skype dialing, so that no one may provide large scale alternatives to SkypeIn.

All of this has really taken the wind out of the SFA sails before it even had a chance to make it to a public beta. Digium must now look to quickly add new features. Such as advanced presence information, instant messaging, the SILK codec and others, if they hope to salvage their own investment in the development of SFA to date. While I understand these things take time, the lethargy of getting the SFA to market does not bode well for rapidly trumping the SFS announcement.

Time will tell.

Three new ways to access the Adhearsion Sandbox

March 16, 2009

Since the launch of the new Adhearsion website earlier this year we have made a Getting Started Sandbox available to developers. We want everyone to easily give Adhearsion a try without having to setup an entire telephone system to do so. All you need to do is install Adhearsion (and maybe Ruby, depending on which operating system you use) and you may immediately begin using our free Sandbox in the cloud.

Here are the new access methods that we have recently added (more details are available on the Getting Started page here):

Phonefromhere has a Java IAX2 client that is a great way to access the Sandbox from the internet. Tim Panton of Phonefromhere has graciously made his hosted system available to us. Check out their app, as I am sure you will find it useful for your new Adhearsion applications as you roll them out.

We have been participating in the Skype for Asterisk (SFA) closed beta. We have already developed the Skype Utils Adhearsion component that I mentioned in a previous blog post and will be making available as part of the Sandbox soon. In the meantime you may use Skype to access the Sandbox to get a preview of how you may easily develop apps for the Skype world leveraging Adhearsion and Asterisk.

Voxbone has kindly donated a 10 channel inbound phone number for use with the Adhearsion Sandbox. So now you may simply use any old telephone to test your Adhearsion applications on the Sandbox infrastructure.

Enjoy!

Skype for Asterisk component for Adhearsion

March 13, 2009

After having more time to work in detail with the Skype for Asterisk (SFA) channel in closed beta, I have developed an Adhearsion component to ease my development and testing efforts. Hopefully this will ease yours in the near future when the public beta becomes available.skypeforasterisklogo1

The Skype Utils component provides a few features to take advantage of what this new channel brings to the Asterisk platform. First, the component provides a single method call to access a wealth of information in your dialplan that is delivered with each Skype call. This type of information is unheard of on any other channel available to Asterisk (let alone telecoms in general), this information includes:

  • skype_languages – A space-separated list of language identifiers (ie – es, en, etc)
  • skype_topic – A user-provided string that can identify the ‘topic’ of the call
  • skype_token – Similar to skype_topic
  • skype_about – ‘about’ profile entry
  • skype_birthday – Birthday
  • skype_gender – Gender
  • skype_homepage – Home page URL
  • skype_homephone – Home phone number
  • skype_officephone – Office phone number
  • skype_mobilephone – Mobile phone number
  • skype_city – City name
  • skype_province – State/Province name
  • skype_country – Country name

The next feature that the component provides is the ability to map Skype usernames with Asterisk extensions. Typically Asterisk is used with phones that require you to enter a numeric phone number when dialing someone. Of course most Skype names are usernames that have nothing to do with a phone number. With this component you may enter the relationship between an extension number and a Skype username in  database with a Ruby on Rails web interface. Then when calls are made to and from the Skype network you have a seamless translation between the two.

picture-15Last (so far), but not least, is the ability to track Skype presence information. The SFA channel allows you to add ‘buddies’ to your Asterisk/Skype username. Once this has been done, you are then able to obtain status updates from each of the buddies on your list.

The component then allows you to track these status updates and access them in your dialplan. The status updates may be persisted to a database or kept in memory. Further, those status updates are not only available to your dialplan but to the REST, DRb and STOMP APIs of Adhearsion, making them available to virtually any program.

With this you may track if each Skype user is in one of the following states:

  • Online – user is online
  • Skype Me – user is available and asking to be ‘Skyped’
  • Away – the user is away from their Skype client
  • Not Available – the user is not available for a call
  • Do Not Disturb – the user does not want to be disturbed
  • Offline (Voicemail Enabled) – the user is offline and has voicemail
  • Offline (Voicemail Disabled) – the user is offline and has no voicemail

Stay tuned for example applications that will build upon this component. In the meantime do not hesitate to have a look at the code and details here.

I would also like to thank @steely_glint and Todd Gould, fellow beta team members, for their assistance in constructing an environment where all the pieces could work. Great progress is being made on the SFA beta code, but of course there are still some quirks.

GrandCentral Becomes Google Voice

March 11, 2009

picture-14As a follow up to my previous post on the subject, it would appear that the re-release of GrandCentral is imminent. The service is now Google Voice and is accepting sign-ups to be notified when it is available here.

I am anxious to see the new features that will accompany this re-launch… In the meantime get a taste here.

May 2009 Speaking Schedule

March 10, 2009

Early May will be a busy month for Jay and I on the speaking circuit. We have three engagements in three countries so we are dividing and conquering.

rails2009_logo
Railsconf 2009 – May 4th through May 7th, 2009
Las Vegas, NV – USA
Speaker: Jay Phillips
amoocon
Amoocon – May 4th through May 6th, 2009
Rockstock Germany
Speaker: Jason Goecke
EuRuKo
EuRuKo – May 9th through May 10th, 2009
Barcelona Spain
Speaker: Jason Goecke

Using Adhearsion and Asterisk with the Tropo cloud

March 9, 2009

You have written a great Adhearsion application and now you want to add some fancy Speech Synthesis or Speech Recognition. Your best option has been to acquire software to install on your Asterisk server. While there are open source applications available, such as Festival and Sphinx, they take a fair amount of know-how and work to tune, and then still may not perform as you hope. There are also some great commercial applications out there such as Cepstral and Lumenvox, but they require an upfront investment and add additional overhead to your Asterisk server. What if you could just obtain these services from the cloud and pay as you go?ahn-ast-tropo

Now you can. Tropo was announced last week at eComm as dicussed in my previous post from the conference. Since we had the opportunity to work with the folks at Voxeo on the launch of Tropo, integration to Adhearsion is available for the initial release. This integration allows you to invoke services from the Tropo cloud as needed in your Adhearsion dialplan, obtain the results and then continue on in your dialplan. This means industry leading Speech Recognition and Speech Synthesis on a per minute basis with no need to install any third party engines may now be added to your Adhearsion app.

Read more…

Adhearsion Riding The Long Tail to Transparency

March 9, 2009

Transparency is the new regulation. A free market is best served by the open flow of information available to all as opposed to burdening the market with government regulations. Wired recently published an article bringing this into sharp focus with XBRL for the Financial Services Industry. Open source software and cloud computing are lowering the barrier of entries for companies and individuals. Who may now quickly create solutions that would have been prohibitively expensive previously.

Dave Troy presented his experience launching the Twitter Vote Report at eComm last week, a solution for tracking voter experiences for the November 2008 Presidential elections.  Twitter Vote Report is a great example of activism translating into action. From inception to execution the project took weeks and performed brilliantly. The presentation may be seen here.

picture-2

Adhearsion played its part in the project providing the backend for the call-in reporting integrated to the Rails application. This effort highlights the ability to develop voice enabled Long Tail applications that leverage voice on the web in new ways. I hope to see more such projects where Adhearsion adds a new dimension to further the cause of transparency in government and the markets.

The source code behind Twitter Vote Report is available on Github here.