Archive for the ‘Software’ Category

VoiceObjects 11.1 powers Mobile Web apps on Smartphones

Monday, January 30th, 2012

With the latest version of VoiceObjects, 11.1, the most visible and important addition was the new jQuery Mobile web driver that makes it possible to create great looking mobile web applications in like no time. If you have missed out on the developer Jam Session we did last week, be sure to take a peek at the slides from that webinar.

Also, we have updated the Prime Telecom sample application, which has been our demo application for multi-channel service implementation in VoiceObjects for quite a while now. It has received a polished, fancy new UI when used on Smartphones and Tablets. Having VoiceObjects 11.1 Desktop for Eclipse installed, go to our Demos and Templates page to download and install the Prime Telecom package to get started. You’ll learn how to create a self service application that provides a consistent user experience across IVR, text, and mobile channels, making best use of each of these channels.

Below, there’s some screenshots from Prime Telecom used on the iPhone.

VoiceObjects Implementation Analysis

Friday, July 29th, 2011

So, your VoiceObjects project has grown considerable from a humble start, new Modules are added on a daily basis, and you’re getting close to the user acceptance testing or going live date? At this point, you might want to do a few sanity checks on your VoiceObjects implementation, for example to verify consistency and completeness in event handling, tuning, and several settings that have an impact on reporting.

Now, going through your project object, opening and clicking your way through each object is of course a little cumbersome, to say the least. What if you could create simple, nifty call flow implementation reports with concise, easy-to-check lists, by just clicking a button?

“Wait!”, I hear you say, “VoiceObjects generates highly configurable, comprehensive, fully hyperlinked PDF documentation based on your applications. Why not use that?” And the answer is: Yes, please do! That documentation can indeed be customized to a high degree and is a great tool for checking the implementation. However, what I’m after here is much more focused, and will provide documents that provide one simple checklist or table at a time.

The solution that I am presenting here is based on the fact that VoiceObjects projects can be exported to VoiceObjectsXML (which is an XML format), and on XSL transformations (XSLT). All you need is a text editor (to edit XML documents) and a web browser. You’ll find sample code for download down below.

To get started, let’s focus on a simple task:

  • We want to get a sorted list of all Modules in your VoiceObjects application indicating whether the Enable History Tracking option is enabled or disabled (this option defines whether a Module will be part of the Module Sequence and Dominant Path Analysis reports in VoiceObjects Analyzer).
  • The list should have two parts; first a sorted list of names of all Module with History Tracking enabled, then all Modules with that option disabled.
  • The list should come as a simple HTML document that can be printed for documentation purposes, or copied and pasted into the full project documentation that our client is so eagerly waiting for.

The idea is to create an XSL transformation that takes the VoiceObjectsXML export file, parses it, filters out the data we’re interested in, and displays it in HTML. This is the XSL document that will do the trick:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml">
  <xsl:output method="xml" indent="yes" encoding="UTF-8"/>
  <xsl:template match="/VoiceObjectsXML">
    <html>
      <head>
        <title>VoiceObjects Implementation Report</title>
      </head>
      <body>
        <h2>History Tracking <em>Enabled</em></h2>
        <ul>
          <xsl:for-each select="module[@historyTracking='true']">
            <xsl:sort select="@name"/>
              <li><xsl:value-of select="@name"/></li>
            </xsl:for-each>
        </ul>
        <h2>History Tracking <em>Disabled</em></h2>
        <ul>
          <xsl:for-each select="module[@historyTracking='false']">
            <xsl:sort select="@name" />
            <li><xsl:value-of select="@name"/></li>
          </xsl:for-each>
        </ul>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>

If you have used the XPath query language before, this document will be an open book for you. XSL uses XPath expressions to browse through documents, filter for nodes with certain attributes, do sorting, and much more. What our sample XSL does is

  • locate the root <VoiceObjectsXML> node that every VoiceObjects project export file starts with;
  • generate a HTML header and some headlines;
  • iterate over all Modules in the VoiceObjectsXML document (node name: <module>), first selecting only those with the attribute historyTracking=’true’;
  • within each list, sort by and display the Module name (which is an attribute of the <module> element).

Now, we still need to know how to apply this XSL transformation to an existing project export file. Easy:

  1. Save your XSL transformation file in the same folder as your project export file. Let’s say you stored it under the name myTransformation.xsl.
  2. Now, open your VoiceObjects export file in a text editor, and insert a new line (referencing your xsl stylesheet) right after the first line:
            <?xml version="1.0" encoding="UTF-8"?>
            <?xml-stylesheet href="myTransformation.xsl" type="text/xsl" ?>
            <VoiceObjectsXML version="10.0">
              ...
            </VoiceObjectsXML>
  3. Save and close.
  4. Now, open that export file in your favorite web browser.

This is the result, when applied to the Prime Telecom sample application:

History Tracking Enabled

  • _Prime Telecom Portal
  • Call Back
  • Change Add-Ons
  • Change Bank Account Details
  • Change Email Address
  • Change Payment Settings
  • Change Postal Address
  • Enter new Credit Card
  • Main: Billing
  • Main: Customer Data
  • Main: Service Plan Mgr
  • Main: Support
  • Order Add-On
  • PIN Authentication (if necessary)
  • Present List of Add-Ons
  • Present Single Add-On
  • Transfer Call to Agent
  • Update Credit Card Expiration Date

History Tracking Disabled

  • Cleanup
  • Session Init

Obviously, this concept can be applied to a wide variety of checklist requirements. In the sample XSLT document that we provide in the link below, you will see how to generate comprehensive, ultra-focused overviews of …

  • Layer objects that have “Layer State Logging” enabled / disabled, making sure that Business Analysts looking at the Personalization (or “Layer Usage Overview“) reports in VoiceObjects Analyzer will only be presented with Layer State reports that make actual business sense;
  • … all Tuning Parameters set on all dialog component objects;
  • … all Event Handlers, so as to verify consistency of all Event Handling implemented in your project and to check whether the Finish Task option was properly set on each Event Handler (which in turn is required for consistent reporting on Business Tasks);
  • … Input States with “Mask Caller Input” enabled / disabled (this is a feature that allows to mark Input objects as dealing with sensitive input such as credit card numbers or PINs)
  • … Menu objects and their menu items, to verify whether Menu options such as the Auto-Numbering, Return to the menu after subdialog processing, and others are properly set.

There’s of course many, many more report and checklists that you can generate this way. It’s a great technique to quickly check any aspect of your VoiceObjects implementation for accuracy, completeness and consistency.

And finally, here’s the download link promised earlier: VO_XSLT_Checklists.zip Extract this archive to some folder, then open PrimeTelecom.xml in a web browser (I’m using Firefox). It will display a series of sample checklists and tables. The XSLT document, VOanalysis.xsl, that is used here should be a good starting point for your own endeavors.

Become a Voxeon – We are hiring in EMEA

Wednesday, July 27th, 2011

We are hiring in EMEA:

You are looking for a new opportunity in one of these areas? Please send us your resume with the job name you are referring to jobsEMEA@voxeo.com.

Looking forward to hearing from you!

Jam Session today: Location Based Services with VoiceObjects

Monday, July 11th, 2011

Join our jam session today on location based services with VoiceObjects – exploiting geolocation information in your app.

Tobias Goebel, Sr. Systems Engineer at Voxeo will show you how to utilize HTML 5 for mobile Web apps and a LBS API for your IVR and SMS applications. Coming to you live from Lat: 28.54115887666667, Long 81.37814527111112…

Read more and register NOW

Best Practices Webinar: VoiceObjects Business User Interface – A Survey Management Framework

Tuesday, June 21st, 2011

Voxeo and partner Excelsis Business Technology AG will present a great example of an application framework built on top of the VoiceObjects application lifecycle suite: A Survey Management solution that enables business users to configure IVR and text-based surveys. This multi-tenant and multi-lingual solution provides survey scheduling, integrated reporting, and can be integrated with dialer applications for outbound solutions. The presentation will start with the core architecture and design of the solution and take it all way to discussing the ergonomics of the web-based business user interface.

Join us for this best practices webinar on June 30, 2011

8:00 AM US Pacific, 11:00 AM US Eastern, 5:00 PM Central European

Next Delevoper Jam Session is Coming Soon: The Power of Wideband (HD) Audio

Friday, May 27th, 2011

It is time again!

We scheduled our next monthly jam session  for June 09, 2011 and we would like to invite you to join us for this session.

How Do You Hear Me Now? The Power of Wideband (HD) Audio

What is “wideband” or “HD” audio? What are the benefits of wideband audio? What are the advantages and disadvantages of  using wideband? With all the buzz out there, what does wideband or “HD” audio really do for you in a business setting?

In this Developer Jam Session, Dan York, Director of Conversations at Voxeo will explain the basics of wideband audio, discuss the various versions of wideband audio deployed in the industry, explain why it is important in terms of business value.

Additionally, he will talk about how wideband audio is implemented in Voxeo’s Prophecy and PRISM products.

You’ll learn how wideband audio coupled with IP communications can give you a competitive advantage in terms of richer conferencing, more accurate speech recognition and voice biometrics – and an all around better user experience.   Even better, you’ll learn how you can get started immediately working with wideband audio in your applications.

Please join us for this session to understand the power of moving beyond the audio limitations of traditional telephony.

Register today for this developer jam session.

Title: Developer Jam Session: How Do You Hear Me Now? The Power of Wideband (HD) Audio
Date: Thursday, June 9, 2011
Time: 8:00 AM US Pacific, 11:00 AM US Eastern, 5:00 PM Central European,

A glance at the future

Tuesday, May 3rd, 2011

After just having brought VoiceObjects 10.0 up-to-date, we’d like to give you a brief preview of things to come in the next few months, namely VoiceObjects 10.1. This is the release we’re currently working on, and it will focus on enhancements in Infostore and in Desktop for Eclipse.

Infostore
Every useful application needs to have some amount of backend access – be it reading a customer profile, setting status in a database, or triggering a transaction in an ERP system.

When analyzing an application’s performance it is therefore desirable to have detailed information on the performance of these backend calls. Infostore currently provides minimum, maximum, and total times (from which the average can readily be obtained).
With 10.1, a new table is introduced that tracks each backend call individually, for Connector and Database objects as well as, optionally, for Script objects. So for each individual call there is precise timing, as well as tracking of the amount of data sent to and received from the backend. Aggregate values are provided on the level of Business Tasks and for the entire dialog.

An ID can be assigned to each backend (e.g. “CRM”, “TrackingDB”, etc.) so that different calls to the same system can be grouped in reporting. This also enables you to analyze backend calls “in both directions”, i.e. access to different systems from within the same application as well as access to the same system from within different applications. Both are very relevant sets of questions when making sure that your production architecture is up to its task.

Desktop for Eclipse
More and more of you use Desktop for Eclipse to work in multiple different environments; not only standalone and VoiceObjects On-Demand mode but also multiple different network mode connections. So we have been asked whether we could make switching between multiple connections easier – and we’ve listened.

With 10.1 we’re switching from the current static division (standalone, network, VoiceObjects On-Demand) to a flexible model in which you can define any number of connections (of type network or VoiceObjects On-Demand) and switch between them at will. On top of that, we also make it easier to combine metadata and Control Center connections. This should be real boon to power users!

Beyond these major blocks, there are a number of smaller extensions such as improved support for REST-style interfaces. We will provide more information on these, and on the ones listed above, as we get closer to the release itself.

For the time being: Make sure you have VoiceObjects 10.0 R2, lean back, relax, and enjoy the ride toward 10.1 :-)

VoiceObjects 10.0 Revision 2

Monday, May 2nd, 2011

Revision 2 of VoiceObjects 10.0 has been posted to the Developer Portal as well as the Service Portal.

Revision 2 addresses view refresh problems in Desktop for Eclipse, deployment issues when using VoiceObjects On-Demand,  and problems with cache standby in VoiceObjects Server. The update is recommended for all current users of VoiceObjects 10.

VoiceObjects enters the third dimension

Friday, April 1st, 2011

Leveraging exciting synergies with the new generation of smartphones such as LG’s Optimus 3D or HTC’s EVO 3D that provide glasses-free 3D screens, VoiceObjects is going to introduce a new channel in its unique multi-channel architecture. The 3D channel will allow developers to build applications that really pop out!

Integrating seamlessly with VoiceObjects’ Unified Self-Service™ architecture, additional layers can also be added to existing applications to take them to the next level. Imagine your menu options sorted in space, the most relevant one closest to you and the least relevant one furthest away. Imagine your account balance floating in front of you, moving up as it grows and sinking to the bottom as it falls. The possibilities are endless.

The VoiceObjects 3D channel will be compatible with the popular Android platform (Gingerbread or higher), as well as with WebOS and iOS once they add support for 3D.
So if you want to stay a cut above the rest, stay tuned for the first beta version of the new VoiceObjects release, which we’ll make available here during the next few weeks!

New Best Practices Technical Article on Business Tasks

Thursday, March 31st, 2011

IVR developers often put in a lot of work in order to match reportings requirements from their business stakeholders. In particular, providing solid KPIs (key performance indicators) on self-service task completion rates routinely turns out to be a somewhat tedious and error-prone task. Getting information on call transfer rates vs. IVR containment rates is easy, but knowing how many customers were really successful in getting the info they were seeking, in being transferred to the right agent group, in using self-services to top up their account or transfer money … that’s often a little more involved.

The VoiceObjects application life cycle platform makes providing sound, business-level reporting as easy as it gets. The VoiceObjects solution is based on rich, fully automated functionality around the unique “Business Task” object that developers use to define success and failure criteria for business tasks. VoiceObjects Analyzer provides a set of standard reports on Business Task execution results, including the Business Task Completion Rates report (a screenshot is shown below, full documentation can be found here).

Based on real-world experience from a large number of customer implementations, we have assembled a Business Tasks Best Practices technical article that is available in the Tech Topics – Articles section of the VoiceObjects Developer Portal. It addresses VoiceObjects developers who want to get a full understanding of the Business Task framework and who want to provide great business-level reporting with least effort. It gives valuable insight on the proper design, implementation, testing and reporting of business tasks.

This new technical article is a highly recommended read for VoiceObjects developers right after the first product training as well as for seasoned VoiceObjects veterans who are interested in the consolidated best practices from numerous customer projects.

Business Task Completion Rates Sample Report

Business Task Completion Rates Standard Report - Based on data from the multi-channel Prime Telecom sample application