Archive for the ‘Developer Jam Sessions’ Category

Webinar: Providing Self-Service Through SMS Applications

Tuesday, June 29th, 2010

Join us for this Jam Session on July 22, 2010.

Mobile self-service was long thoughtof as either Web-based or IVR-Based.
Voxeo is opening up new channels for customer self-service, such as Twitter or Facebook, as well as those that have been around for a long time, such as Instant Messaging or SMS.

It is easier than ever to create, manage, and report on multi-channel services using Voxeo technology.

In this session, Tobias Göbel will show you how to use VoiceObjects (Voxeo’s service creation, execution and reporting environment) as the front-end and IMified (Voxeo’s hosted texting platform) as the back-end to deliver self-service over SMS with unmatched ease of development and time to market.

Register now for this session on July 22, 2010

Time: 8:00 AM Western, 11:00 AM Eastern, 5:00 PM Central European

Upcoming Jam Session on Unified Self-Service

Monday, June 7th, 2010

Join us for our upcoming Jam Session on June 17, 2010.

In this session, Adam Kalsey will talk about “Unified Self-Service: Creating multi-channel communications apps using Voxeo tools”.

Unified Self-Service is a concept that allows you to develop an application once and deploy it on every available communications channel, such as Phone, SMS, IM, mobile web and others. One development team, one platform, one set of logs, analytics. Develop your business logic once and use it anywhere.

This developer jam session will explain how Unified Self-service can save you money and time while providing a higher level of service. We will discuss how organizations have delivered Unified Self-Service, and how you can use Voxeo tools and technologies to create Unified apps.

Join us for this session!

Date: Thursday, June 17, 2010

Time: 8:00 AM Western, 11:00 AM Eastern, 5:00 PM Central European

Upcoming Jam Session: The Future of VoiceXML

Wednesday, May 5th, 2010

Join us for our Jam Session on May 20, 2010.

Dan Burnett, Director of Speech Technologies at Voxeo and Chief Editor of the VoiceXML 3 specification, will present what’s new in VoiceXML 3.

Learn how the Voice Browser Working Group is addressing these and other key questions.

Join us for this session on May 20, 2010, 8:00 AM Western, 11:00 AM Eastern, 5:00 PM Central European.

Next Jam Session: Beyond the Browser: Adding voice and real-time text to your web apps

Monday, March 15th, 2010

On March 18, 2010, we will talk about how to use voice and real-time text in your web apps.

You will learn what channels you can tie into and how and what´s involved in adding voice and real-time text to new or existing web apps. We will talk about what to do and what to avoid, and what you need to think about when planning your applocation development.

Register now for this session on March 18, 2010.

11:00 AM Eastern, 8:00 AM Western, 4:00 PM Central European.

Looking forward to welcome you in this session

How to IMify your voice application

Tuesday, August 25th, 2009

One thing that’s so great about VoiceObjects Server is its multi-channel capabilities. This has been introduced way back in 2007. Design an application once – deploy it on any channel available on modern handsets, including voice, video, text, and mobile Web, and benefit from common maintenance, deployment, reporting, and analytics. Customers like T-Mobile Czech are embracing this to provide better support to their customer base (see also this announcement).

One thing that’s so great about Voxeo is our commitment to emerging technologies. Voxeo’s recent acquisition of IMified again demonstrates that we are at the forefront of any development within the industry that promises better self-service experience for the mobile customer. We have coined a term for this:

Unified Self-Service

With IMified, developers can build applications that interact with users over instant messaging (IMR – Interactive Messaging Response). The beauty of IMified lies in the fact that it provides a staggeringly simple API to access various different providers of IM: AIM, MSN, Yahoo, Google Talk, Jabber, … Plus even Twitter, and – brand-new –  SMS text messages. Together with VoiceObjects, IMified extends the scope of our Phone Application Server to all these new modalities, which are technically all part of VoiceObjects’ text channel.

The following picture shows the high-level architecture of IMified with VoiceObjects:

IMified architecture including VoiceObjects

This blog post is about how to build your first IM bot using VoiceObjects. Believe me, it takes longer to read this text than to build, deploy and test the app. If you are slow reader, that is…

How to set it up

Short version:

  1. Create a text application in VoiceObjects
  2. Set up a bot in IMified and point it to your app

That’s it!

Well ok, here are slightly more verbose instructions:

  1. Install VoiceObjects Developer Edition 9.0 R1 (or use your existing VoiceObjects 9.0 R1 installation)
  2. Create an application of your choice and provide prompts and grammars for the text channel
    1. Hint: If your application isn’t going to become multi-channel, you can leave the Channel layer at Default.
    2. If you have never built an application for the text channel before, you might want to read chapters 7 – How to Use Layers and 10 – How to Support Multiple Phone Channels of the Design Guide.
  3. Deploy that application (e.g. by clicking Test Application in the context menu of your root Module object, in case you’re using VoiceObjects Desktop for Eclipse)
  4. Register at www.IMified.com and create a developer account
  5. Click Create a New Bot
  6. Configure your bot
    1. Give it a bot name
    2. Give it a screen name. This will be the name (plus @bot.im) under which your bot will automatically be accessible via Jabber and Google Talk. For all other networks, you need to create accounts there first, which you can then associate with your new bot.
    3. Configure the bot URL. This must be the URL pointing to your VoiceObjects Server on which you deployed your app. Example: http://myserver.com:8070/VoiceObjects/DialogMapping?VSN=testService&User-Agent=IMified&vsDriver=173
      1. Use your VSN if you don’t deploy to VoiceObjects Desktop for Eclipse’s embedded VoiceObjects Server (if you do, testService is the fixed name for your service)
      2. Add User-Agent=IMified&vsDriver=173 to the URL, so that VoiceObjects Server knows this is an IM session based on IMified
      3. Make sure your VoiceObjects Server is reachable from the outside Internet world
    4. Click Create new Bot

That’s it! Now open Google Talk or any Jabber client, invite your bot to your contacts (the screen name plus @bot.im) and start a chat! If you have created accounts on other IM networks and activated them on IMified, invite these contacts and start a chat there!

How to move on from here

Wondering what kind of apps you can build with this? Well, think about any customer self-service or other portals that you could automate – or that you have automated already over IVR. Go ahead and IMify those! You are basically extending your customer interaction to other channels, giving your customers more options, accommodating the young generation that might be chatting more than talking these days… Have a look at the following interaction. It stems from our sample application, Prime Telecom. This application had been text-enabled for long now. With the IMified integration, chat is another means of communication that is – simply – THERE. Just use it!

PrimeTelecom sample chat

Stay tuned for more things to read about the IMification of customer self-service applications. I plan to write something about usability, UI, and implementation best practices soon. Also, we plan a Developer Jam Session on this topic in October. Announcements will follow soon!

As usual, feel free to add comments or questions to this post.

Finally, if you’re in New York City during this week of August 24, please make sure to visit us at SpeechTEK in the Marriott Marquis! It’s the unique chance to see our 20-netbook cluster in action, serving thousands of calls on multiple phone channels using cheap and power-sipping hardware. You can find us in booth 800. We’re looking forward to talking to you.

VoiceObjects LoadTester available for download

Friday, July 31st, 2009

Load and performance testing, functional regression testing, active production monitoring – things that ain’t fun, but need to be done if you’re serious about service quality and 24×7 availability.

For internal quality assurance based on test automation, as well as for automated testing in projects delivered by our own professional services and by partners, the Voxeo VoiceObjects team has developed and has been using a great little tool for quite a while: The VoiceObjects LoadTester. Technically, it’s a set of Python scripts that allow for

  • recording test scripts by making reference calls;
  • playing back test scripts by few or by hundreds of virtual callers (simulation of real-world workload), stressing the VoiceObjects Server platform and all involved back-end systems, while at the same time verifying that the system still responds quickly and correctly even under peak load conditions;
  • and help to analyze system performance and response times, identify system bottlenecks, and understand resource usage.

The primary use case is making sure that the sizing and configuration of the VoiceObjects platform, including the server cluster, load balancer, Infostore setup, and back-end systems are ready to meet peak load situations, and that the system survives breakdown of single components.

An additional important use case is automated functional regression testing - making sure, with every new service release, that functionality that once was tested successfully hasn’t been broken since then. Finally, the LoadTester can be used for active production monitoring: Executing a set of test scripts in regular intervals (like, every 3 minutes) against the production system, performing transactional, end-to-end testing, that feeds health information and alarms into an existing system monitoring solution.

Now, why do I write about this? Simple: You can now download and use the VoiceObjects LoadTester in your own projects, for free. It will be official part of the VoiceObjects package in the next revision of VoiceObjects 9.0. And it is available today, as a pre-release, here: LoadTester.zip (this package contains a full installation for Windows, including the Python interpreter and required libraries).

On July 29, 2009, I presented the LoadTester in one of our developer jam sessions. Be sure to download (and scan through) the slides I used in the presentation, get the LoadTester Guide, and - sit back and relax – watch a recording of the webinar.

Finally, these are some images with charts generated the VoiceObjects LoadTester. Want to know what they show? Well, check out the LoadTester Guide – it’s all explained in there.

 

Mini-Preview of LoadTester charts

Mini-Preview of LoadTester charts

Call Control with CCXML and VoiceObjects

Friday, July 17th, 2009

Can you do outbound dialing with VoiceObjects? Does VoiceObjects support call conferencing? How do I do call whispering using VoiceObjects? Questions of this kind reach us from time to time, and I have recently held a Developer Jam Session on the topic of Integrating Advanced Call Control in VoiceObjects Applications using CCXML to address some of these questions. For those of you who find this topic interesting but prefer reading over listening/watching, this is YOUR post.

It’s in fact interesting to see how W3C recommendations (or working drafts for that matter) slowly make their way into implementations within the industry. As is the case with CCXML; several vendors have recently announced support for this markup language, some have it in their portfolio for quite some time now. Vendors that support it include Avaya, Genesys, HP, Intervoice, Loquendo, and Nortel. Voxeo, with our VoiceXML & CCXML platform Prophecy, is at the forefront of CCXML development. Our CTO RJ Auburn acts as editor and chair of this markup standard that has been around since 2002.

So given that CCXML can be seen as an adopted standard, how does it all work? While I don’t intend to provide a full introduction (check out Voxeo’s CCXML developer guide with lots of tutorials and moderated forums instead, or read http://www.voxeo.com/library/ccxml.jsp to get an overview), here are some basic principles behind the language:

  • CCXML implements a state machine
  • CCXML is based on a flexible asynchronous event processing model, able to handle any kind of telephony and application events and perform actions upon them
  • CCXML extends VoiceXML with advanced call control functionality missing in VoiceXML (which essentially only offers blind or bridged transfers), while being independent of VoiceXML (can work together with any other voice markup)
  • CCXML integrates with VoiceXML by connecting callers with VoiceXML-powered applications as call legs if required

The following architecture picture shows how CCXML integrates with an XML-based telephony environment and how Voxeo products fit into the picture:

CCXML Architecture

CCXML Architecture (based on an image taken from http://www.w3.org/TR/ccxml/)

So basically Voxeo Prophecy acts both as the dialog interpreter (i.e. VoiceXML browser) and call control interpreter (i.e. CCXML browser), whereas Voxeo VoiceObjects takes the role of the dialog application server. CCXML documents are always in the lead in a telephony session and control how the call is being handled and whether/when it is or is not connected to VoiceXML dialogs. Thus, VoiceObjects dialogs are being initiated from within CCXML, via the VoiceXML browser. In fact, depending on the application, there could be several interactions between the CCXML interpreter and VoiceObjects Server within one call, as depicted in the following graph:

CCXML CallFlow Including VoiceObjects

The chain of interactions would look like this:

  1. A call comes into the telephony platform and launches a CCXML document associated with the called number (DNIS)
  2. The CCXML document handles all telephony events (connection.alerting, connection.connected, …) and might decide to launch a VoiceXML dialog
  3. If so, it instructs the VoiceXML browser to request a dialog from VoiceObjects Server
  4. VoiceObjects Server handles the dialog logic and sends VoiceXML pages while the voice browser requests them
  5. When the dialog logic comes to an end, VoiceObjects Server renders tags like <disconnect>, <transfer>, or <exit> to hand back control to the CCXML document which was on standby, listening for any new events coming in
  6. Steps 2-5 could be repeated, until the call session itself is finished (caller hangup, CCXML browser hangup)

Now that we know how it all works (in principle), what kind of applications can you build with this? Well, any that require advanced call control:

  • Outbound Calls: To initiate a call and start VoiceXML dialogs once a connection is established
  • Call Conferencing: To allow multiple participants to join a conference
  • Routing: To route calls to the next available agent
    • Find me/Follow me: To find a person at several possible end points (mobile/work/home)
  • Selective Call Answering: To decide whether or not to take a call based upon available caller information
  • Coaching: To allow a third party to connect to a call, but only have one of the participants hear what is said

Interested in learning more? Also how exactly the integration with VoiceObjects can look like? Well, in that case I would indeed point you again to the Developer Jam Session on that topic. Also, on our Developer Portal you will find a sample implementation of a personal assistant. You can download it and try it out using our free editions of Voxeo Prophecy and Voxeo VoiceObjects!

Oh, and if outbound IVR is of specific interest for you, please check out our website, which also has a link to a white paper on this topic: http://www.voxeo.com/outboundivr/

Please leave comments to this post if you have anything to share publicly on this topic. Thank you!

Registration now open for April Jam Session on Prophecy 9 / Voice Objects 9

Thursday, March 26th, 2009

What are you doing on April 21, 2009, at 8am PDT/11am EDT/5pm CET ? Would you like to join a web seminar where you will learn all about what is new in Prophecy 9 and VoiceObjects 9?

If so, please head over to our Developer Jam Sessions page and sign up for the April session. I (Dan York) will be speaking first about all the new capabilities in Prophecy 9 including a new simple dashboard to quickly see how your applications are performing, a new rich graphical management console, new deep log analysis tools and increased SIP capabilities . Stefan Besling will follow me speaking about Voice Objects 9’s new event handling features and deeper integration with Prophecy and Prophecy Hosting, as well as a variety of new infrastructure capabilities. At the end there will be plenty of time for any questions you may have about either Prophecy 9 or VoiceObjects 9. Please do plan to join us!

P.S. If you can’t join us on April 21st, the presentation will be archived on the Developer Jam Sessions page


If you found this post interesting or helpful, please consider either subscribing via RSS or following us on Twitter.

Slides and recording now available for February 2009 Jam Session

Friday, February 13th, 2009

vodeveloperjamsession.jpgOver on the Monthly Jam Sessions page, the recording and slides are now available for the Developer Jam Session that Andreas and I gave on Tuesday titled “Voxeo IVR and SIP platform – Overview and use with VoiceObjects“. I spoke for about 25 minutes about Voxeo’s products in general and then Andreas followed with about 15 minutes on how to integrate VoiceObjects with Voxeo Prophecy.

One of the nice features of our new use of GoToMeeting/GoToWebinar was that Andreas could break out of the slides and show the integration using his actual PC setup.

Unfortunately, as this was our first time recording while using GoToMeeting, we inadvertantly recorded the Jam Session using a proprietary GoToMeeting video codec. Windows users can can download the G2M2 video codec for free. Mac and other users will unfortunately not be able to view this recording. We apologize for this and now know how to record webinars differently in the future.