Archive for October, 2010

Video: Is it REALLY This Easy to Add Text Messaging (SMS) to a VoiceXML App?

Friday, October 29th, 2010

Yes it really is as easy as one-click… check it out in the video below – and then head on over to our Evolution developer portal to give it a try:

If you want more information about our text messaging capabilities – or to find out about availability of SMS numbers in regions where you want to send or receive text messages, please contact us.


Want to learn how Voxeo can help unlock your communications and deliver a better customer experience? Please contact us!

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


Use Phono with a CCXML App to Call A Phone Number From Your Web Browser

Thursday, October 28th, 2010

Phono - call usIf you look over at the top of the first sidebar of this blog, you’ll now see a “Call Us!” heading, some text and then a “Call” button. If you press that button, very soon you’ll be connected to our Voxeo Sales Team down in our Orlando office … simply using the microphone and speakers on your computer!

This is the magic of Phono!

As I showed in the previous post and video, using Phono with an application running in Voxeo’s Prophecy Hosting environment is as simple as finding the “application id” on the “Contact Methods” tab of your app… and then inserting the appropriate JavaScript into a web page to create a Phono object.

Now.. what if you want to have a button on your website that simply connects the caller to a phone number?

Connecting to a Phone Number – The Simple Way

The previous example showed how to connect it to an application of some type… but what about a phone number? You can simply use the Phono sample apps on phono.com. In fact, if you take the JavaScript code from the last post and just change this:

                  this.phone.dial("app:9991476142");

by replacing “app:….” with a phone number:

                  this.phone.dial("4074181800");

that simple button will call out to that phone number using the default Phono configuration.

This works great – but calls via the sample app are limited to a max of 10 minutes and there is also an introductory and final audio message. What if you want to make it so someone can connect and talk for any amount of time?

To do that, you need to create an application on one of our platforms (Prophecy Hosting (Evolution) or Tropo) that will transfer a call to the target phone number.

Connecting to a Phone Number – The CCXML Way

For this app to transfer a call, I chose to use the W3C industry standard Call Control XML (CCXML) running in Prophecy Hosting. The app does three things:

  1. Accepts an incoming call (which will be coming in from Phono)
  2. Makes an outbound call to a phone number (in this case Voxeo Sales)
  3. Joins the two calls together in a conference.

Now, for this to work for you, you need to:

  1. Have an account on our Evolution developer portal. If you don’t already have one, you can create an account for free.
  2. Have “outbound dialing privileges” enabled for your account. Because of potential malicious use, we don’t enable outbound dialing by default – but we freely give it out if you contact our support team, either by raising a support ticket inside your Evolution account or by simply emailing support@voxeo.com.

Once both of those are true, you can get started. Inside your Evolution account, you’ll first need to go into the “Files, Logs & Reports” area and create a new file under “www” that contains this CCXML – (replacing the phone number with YOUR target phone number):

NOTE: if you move your mouse to the upper right corner of this code listing there is an icon to copy the code to your clipboard. Also note that this code is blatantly copied from the “join” documentation page


<?xml version="1.0" encoding="UTF-8"?> 
<ccxml xmlns="http://www.w3.org/2002/09/ccxml" version="1.0"> 
  <var name="inboundID"/> 
  <var name="outboundID"/> 
  <var name="initState" expr="'state1'" /> 

  <eventprocessor statevariable="initState"> 
    <transition state="state1" event="connection.alerting"> 
      <log expr="'*** INBOUND CONNECTION ALERTING ***'"/> 
      <assign name="inboundID" expr="event$.connectionid" /> 
      <accept connectionid="inboundID" /> 
      <assign name="initState" expr="'state2'"/> 
    </transition> 

    <transition state="state2" event="connection.connected"> 
      <assign name="initState" expr="'state3'"/> 
      <log expr="'*** CONNECTION.CONNECTED: INBOUND ***'"/> 
      <!-- 4079651112 is Voxeo Sales line -->
      <createcall dest="'tel:4079651112'" callerid="'1112223333'" connectionid="outboundID" timeout="'30s'"/> 
    </transition> 

    <transition state="state3" event="connection.progressing"> 
      <log expr="'*** CONNECTION.PROGRESSING ***'"/>  
      <assign name="initState" expr="'state4'"/> 
    </transition> 

    <transition state="state4" event="connection.connected"> 
      <assign name="initState" expr="'state5'"/> 
      <log expr="'*** CONNECTION.CONNECTED: INBOUND ***'"/>  
      <join id1="inboundID" id2="outboundID" duplex="'full'"/> 
    </transition> 

    <transition state="state5" event="conference.joined"> 
      <log expr="'*** CONFERENCE JOINED: INBOUND LEG TO OUTBOUND LEG ***'"/>  
    </transition> 

    <transition event="connection.disconnected"> 
      <log expr="'*** CONNECTION.DISCONNECTED ***'"/>  
      <exit/> 
    </transition> 
  </eventprocessor> 
</ccxml>

After you’ve saved that file, you’ll go over into your Application Manager, create a new “Prophecy 9 – CCXML” application and map that application to your newly created file.

You can then look on the “Contact Methods” tab to find the application ID (“app:numbers“) that you can use with Phono. You can also add a phone number and call the application directly (or use Skype or SIP) to test that the application rings through to your target phone number.

Embedding Phono On A Web Page

Once you have the application running and it calls through correctly, you just need to create a Phono object on your web page. You could use that really basic example I gave in the last post – or much better – check out the examples on Phono.com.

Or… you could use one of the tools that are already emerging to integrate Phono with websites. In my particular case I’m using a very cool WordPress plugin that I’ll be writing about very soon!

However you embed the Phono code, you just need to supply the application ID of your CCXML app and you can start connecting your visitors to your phone number right away!


Want to learn how Voxeo can help unlock your communications and deliver a better customer experience? Please contact us!

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


Video: How To Use Phono to Call VoiceXML Apps From Your Web Browser

Wednesday, October 27th, 2010

Would you like to have a button on your website that lets customer simply call your application?  Or call a phone number or extension?

Not the typical “click to call” buttons that pop up a screen and prompt you for your phone number to call you…  but rather a button that actually initiates a call from within your web browser?

Our Phono JavaScript library lets you do exactly that, and in this video I show you how incredibly easy it is to use Phono to connect to a VoiceXML app running in our Prophecy Hosting environment:

Now I just called a “Hello World” VoiceXML app… but imagine if you had a button that called into your sales line… or called into your IVR application… or let people call directly into an information tracking system… or… or… or… the possibilities really are limitless.

To try it out yourself, all you need to do is:

  1. Login to your account on our Evolution Developer Portal (or create a free account if you don’t have one).

  2. Open the application to which you want to connect the button.
  3. Find the “app:<id>” info on the Contact Methods tab and copy that info.
  4. Create a web page on a web server somewhere (which could be a web server on your laptop or PC), add the necessary Phono JavaScript code and include the app ID.
  5. Load the page into a web browser … and start calling!

My sample app is below… but odds are you are going to want to look at the documentation and demos on Phono.com to make a more useful application. For the sake of simplicity, this app has only a button that initiates the call – with no way to hang up! Nor does it have a keypad or change state to tell you that it is connecting. All those are enhancements you could make with just a wee bit of JavaScript.

You can view more videos about Phono, read other articles and generally learn more on our Phono news page. We’re looking forward to seeing what you will build with it!


Dan’s Really Basic Phono Example

<html>
  <head>
    <script src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
    <script src="http://s.phono.com/releases/0.1/jquery.phono.js"></script>
    <script type="text/javascript">
      function testcall()
      {
          var phono = $.phono({
                apiKey: "ENTERYOURAPIKEYHERE",
                onReady: function() {
                  // This part included so that Flash audio permission
                  // can be remembered.
                  if( ! this.audio.permission() ){
                                   this.audio.showPermissionBox();
                                                }
                  this.phone.dial("app:9991476142");
                  }
          });
      }
    </script>

  </head>
  <body>

    <input id="call" type="button" value="Test Your App" onclick="testcall()" />

  </body>
</html>

Notes:

  • Obviously you need to replace the app ID in there with your own (unless you really like calling my Hello, World app).
  • You need to obtain an “API Key” from Phono.com by logging into the site. NOTE: Your Evolution or Tropo username and password will let you into the site.
  • You’ll also note that I have some code in there related to audio permissions. It turns out that with the permission settings of Adobe Flash you would have to approve the usage of your microphone every time you push the button – unless you include this bit of code which pops up a permissions box with a “Remember” checkbox you can check so that you don’t have to keep approving permission.
  • I mention that this is to link to a VoiceXML app. It can actually be any app running on Evolution. So it could be CCXML, CallXML, Voxeo Designer, VoiceObjects On-Demand. The same concept works for calling Tropo apps, too.

Have fun with it… and if you come up with other ideas or ways to tweak this example please feel free to leave me comments about it (or email me).


Want to learn how Voxeo can help unlock your communications and deliver a better customer experience? Please contact us!

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


Free Developer Jam Session Webinar Thursday – Introduction to Voxeo Prism

Monday, October 25th, 2010

prism.jpgWould you like to learn how to build massively scalable communications applications using Voxeo Prism? Want to build a softswitch? complex call control and media control apps? IMS services? innovative multi-channel apps? or other Unified Communications apps?

Register today for our upcoming Developers Jam Session on Thursday, October 28, 2010, at 11am US Eastern.

Voxeo’s Wei Chen will introduce you to the Voxeo Prism platform and show you how to install and manage the server. He will walk through a sample application to show the basic application structure and deployment and leave you with information about how to get started.

Voxeo Prism is a carrier-grade converged communication platform. It supports both popular Web technologies and communication technologies such as SIP and XMPP. It comes with full media capabilities such as conferencing, media playback and recording. It also supports advanced speech technologies such as text-to-speech and speech recognition. Voxeo Prism Communication Server is based on industry standard Java Servlet architecture and supports Java Servlet/JSP, SIP Servlet, XMPP Servlet, and Java Media Control APIs.

Join us for this developer jam session on Thursday, October 28th, 2010 8:00 AM Pacific, 11:00 AM Eastern, 5:00 PM Central European.

REGISTER NOW

P.S. If you can’t attend the Thursday session, the webinar will be available for later viewing from our Jam Sessions web page. If you sign up, we’ll make sure to let you know when the archive is available for viewing.


Want to learn how Voxeo can help unlock your communications and deliver a better customer experience? Please contact us!

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


Developers – Want to get in on some VERY cool new tech? Watch labs.voxeo.com tomorrow…

Friday, October 15th, 2010

Tomorrow, at the sold-out JQuery Conference in Boston, we’ll have some big news to share out of our Voxeo Labs team… watch labs.voxeo.com or follow us on Twitter to get the scoop!

It’s going to be SO cool!

voxeophono.jpg


Want to learn how Voxeo can help unlock your communications and deliver a better customer experience? Please contact us!

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