How-To: Outbound Notification Applications

March 16th, 2009 by John Dyer

Outbound notification:

Not only how to do it, but how to do it without blowing things up!

Over here in Voxeo’s Extreme Support, we see a fair amount of tickets asking us how a user might implement their applications on a larger scale, or in what ways our platform could be leveraged to further business needs. ”Hello World” applications might impress your mom, but something has to pay to keep the lights on. One very common use of Voxeo’s technology is outbound notification, where a company sends hundreds, thousands, or even hundreds of thousands of notifications to their customers in an automated fashion. If you have always wanted your very own automated message delivery service, you have come to the right blog. Let’s build a small, but scaleable, one from scratch. The main focus of this posting is to give an overview of how an application like this might be developed. We will show you how several markups and scripting languages can be combined to perform this type of outbound campaign.

Our application will combine PHP and MySQL to launch CCXML/VoiceXML calls using a simple HTTP control mechanism through Voxeo’s hosted network. The control mechanism provides throttling intelligence to our application, ensuring a defined ceiling of concurrent calls will not be surpassed, but still allowing for maximum efficiency and duration. When running call campaigns through a telephony network shared with other customers, everyone wins by adhering to port boundaries.

In the example I am presenting we are using a hypothetical application developed for the ‘XYZ Corporation‘, their needs for their application are as follows:

  • Call users and notify them of appointments
  • Verify that intended callers got the notification
  • If caller chooses to, allow them to change appointments
  • Log results to a database so we can view call history’s and track any problematic sessions reported by users

The requirements are not to overwhelming, however in addition to the above we also want to give them a nice interface to ensure a pleasant user experience. We also want to ensure that this interface will allow for someone without a intimate knowledge of VoiceXML, or even any markup at all to operate our application. After all, our fictitious company ‘XYZ Corp’, is in the business of notifying people about appointments, not debugging application code.

So let me do a quick video run through of the final product before I go into detail on the relevant components below. Below you will see an embedded YouTube video that shows the interface and it’s functions, this might be helpful if you gave this a quick review prior to proceeding, as the rest of the posting is based off this example application and assumes that you have reviewed it:

So first off let me say that all this code is going to be attached for download at the end of this posting. So fear not you will have unfettered access to download, edit, and test any of this to your hearts content. If you wish to deploy this you will need to do so on your own Web Server since the majority is done in PHP. The reason for this is that Voxeo’s shared production network does not allow for server side scripting.

So lets get down and dirty into the components of this application: First off we have our interface which was done in HTML & PHP. The interface is driven by a MySQL database, from which we query for our list of callers and log session results. Now PHP generally falls outside of the scope of our support, so we will not dive to deep into this portion of the application code. It is for the reason we attached the code of the entire application to this posting. The portion I want to focus on here is the throttling mechanism for call launches, the methods we pass data into and out of our CCXML & VoiceXML application for our dialogs. Then finally I will show you how we get the data back from our VoiceXML dialog and log these results back into our database for post call review. At the very end I will have a link to the source code of this entire thing for you to download should you wish to do so. So with out further delay lets take a look at CPS.

Next page…

No related posts.

Pages: 1 2 3 4


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.


11 Responses to “How-To: Outbound Notification Applications”

  1. reddot Says:

    Awesome!

    What screen capture software do you use? I like that it captured your keystrokes automatically, although you may want to see if you can adjust the “end of string” setting, as it was breaking up your phone numbers into weird formats.

    I’m really excited about Voxeo. You guys have been putting out a lot of really exciting products and services lately.

  2. John Says:

    Hey,

    The software I used is called “ScreenFlow”. I am glad you liked the material! Please let us know if there are any other questions, we are always standing by to offer any help our developers may require!

    Regards,

    John Dyer Customer Engineer Voxeo Support

  3. sonnk Says:

    Hi John,

    Very good example! I appreciate that. Based on your formula CPS = ports/duration, if I have duration = 60, and I need to make 50,000 (fifty thousand) calls within 1 hour, that means I must have more than 1000 ports. So what I have to do ?

    Thanks

  4. John Says:

    Hello,

    Sure, I see no problem here, you just need to contact our sales team to get things setup! The limit of 200 ports is only a default contractual limit, and I assure you we have many customers exponentially exceeding this number daily on our platform! You can reach our sales team to discuss this at sales@voxeo.com, and if you have any other questions please let us know, as we are most certainly standing by to be of service!

    Regards,

    John Dyer Customer Engineer Voxeo Support

  5. sonnk Says:

    Hi John,

    Thank you for your reply. I just have a test by using your code. I created two apps., one with Voice App. Type = CCXML W3C 1.0 and another one with CCXML Voxeo. However, both of them have a log said “*** CPA SAYS [unknown] ***”. Can you tell me wrong here? The is below:

    Thank you in advance.

  6. John Says:

    Hello,

    We would be glad to help figure out the cause of the CPA issues, however we would require some logging to be of much help here. What I suggest you do is proceed with CCXML 1.0 (CCXML Voxeo is considered Deprecated in factor of the W3C spec), and submit logging with call recordings. When debugging CPA related issues out support team will always require logging, and very often we will also ask for call recordings. Platform logging and recordings allow us to see both sides of the call and offer tuning suggestions to get better CPA results. If you have any questions on how to proceed here please let us know, as our team is most certainly here to help!

    Regards,

    John

  7. D Cheung Says:

    Good Morning,

    I am new to IVR systems and trying to develop a system using your development application (I am in touch with your London team). Sorry for the basic question but can the above source code be used on a normal home computer to produce the demo application that is in your video?

    Regards and Thanks

    Derek

  8. John Dyer Says:

    Hello Derek,

    The above example is more of an illustrative concept on how an outbound notification application would work, and while the demo is well documented it would at the very least require a server to be deployed on. However since you are working with our sales team I would suggest that you mention your interest in application development assistance, as they would be very helpful in working with you to select an application development partner for your project. If you do have any other questions on this demo please let us know, as our team is most certainly standing by to be of service!

    Regards,

    John Dyer Customer Engineer Voxeo Support

  9. Rob Says:

    I was wondering if this example program is still supported. What are the steps to provision a token for making a test call?

  10. John Dyer Says:

    Hey Rob,

    The application was never really a supported product, really just an illustrative example of how one might handle outbound notifications on the Evolution platform. That being said it stil most certainly should work, and provisioning a token simply requires that you open at ticket asking for one with our support team. I hope that helps! -John Dyer

  11. Rob Says:

    Thanks John for your quick response. Nothing but great support from Voxeo. I got a Token from the support group within an hour.

    I understand this was an example and I would have to make a few of changes but it is perfect for what I need to do. These requirements are; query a database to determine if calls were needed, make a call, return a value, and update the database with results.

    I would love an update with how to setup the Application in evolution. I went to the application section and added an app. Requested a Token and support updated the app. I’m just not sure what information to enter for Voice Application Type and Voice URL.

    Thanks again for the great article.

    Rob

Leave a Reply

Please note: By submitting a comment you agree to comply with our Comment Policy. We welcome all comments, positive or negative, but do reserve the right to remove all or part of blog comments that do not comply with our policy.

Additionally, the first time you leave a comment on this blog, it will be held for moderation. After that first comment has been approved, future comments will be posted without delay.

Additional comments powered by BackType