So, what can you do with the Skype IVR?

Jun 21, 2007 21:02


I had written earlier about why IVR software do not support Skype. Now that we have a working Skype driver in Xtend IVR and a free one port Developer Edition available for download, let us take a look at what is possible using Skype and the toolkit.

For starters, all generic ivr samples that are present in the samples directory work with the Skype driver without any modifications. All you have to do is to select the Skype driver from the Xtend IVR Configuration, select the appropriate script and you are up and running. This means that the tele-banking example, multi-lingual samples, dialout, language integration, speech recognition and text-to-speech examples will work out of the box with Skype.

However, what is not apparent on first glance is that Xtend IVR has the capability to support multiple Skype instances on the same machine. As you would be aware, each Skype instance needs to be run under a different windows user account. Ensure that all your windows accounts under which you will be running Skype utilize the same password (For the currently active user, a password is not required).

Once all the skype instances are up and running, simply run Xtend IVR Configuration and configure the password field of the Skype Driver to the Windows account password. The Skype driver will automatically scan through all Windows accounts and will display a list of supported Skype instances. Since the Developer Edition only supports a one port runtime, you will be able to select any one of the listed Skype instances.

Another capability which is not obvious is the ability of Xtend IVR to stream audio from Skype to any other supported device. This means that you can softstream audio from Skype to Skype, Skype to Diva Server, Skype to SIP, Skype to H323, Skype to Ai-Logix, Skype to Multimedia Device and vice versa. Since this requires at least a two port runtime, you unfortunately cannot try this with the developer edition.

One interesting example of what SoftStream() is capable of can be demonstrated by configuring Xtend IVR to support one port of Opal H323 and one port of Skype. Then create a simple script so that an incoming call in the H323 port will trigger an outgoing call to echo123 and softstream() the audio together. Now make an incoming call from a soft-phone to the H323 port of Xtend IVR, you will now be able to hear echo123 from your H323 soft-phone. This example is in fact not restricted to H323, any supported full-duplex channel in Xtend IVR would be able to implement this Skype gateway. Hmm... maybe I should put up a video of this in action.

Also present are the Skype specific samples incorporated in the Samples\Skype directory. Most of these use the Skype specific plugin library which wraps the raw Skype.Command() and Skype.Response() functions. For example there are functions that allow you to chat with a user, send an SMS etc. For example the WorldTime Skype sample accepts incoming chat requests from users, looks up the country they have specified in the chat message on the worldtime server, uses the http plugin, screen scrapes the resulting html and returns the current time in that country to the user.

In short it is possible to script the Skype api using Xtend IVR to write bots that answer queries and perform interesting functionality. Since the Xtend IVR scripting language can integrate with practically any language C#, VB, C++, Clipper! etc. it is possible to incorporate advanced functionality with minimal effort.

Now for the Caveat: The Skype driver is at present a proof-of-concept beta. We have decided to leave it that way since during testing Skype displays a tendency to useup/leak memory consistently. Since Skype reacts this way even on a standard install, there is nothing much we can do except take a deep breath and wait for a more stable release of Skype.
Previous post Next post
Up