VXML Hosts

One thing that has always been at the top of the list on the mysipswitch and now sipsorcery feature request lists is the ability to initiate a callback from the dial plan by dialling in from a phone. The sequence of events would be:

1. Set up an incoming number that terminates in a sipsorcery dialplan,
2. Dial the number from any old phone, for example a work phone,
3. Once the call is received by the sipsorcery dialplan somehow allow a number to be entered,
4. Have the sipsorcery dialplan forward to the number entered in step 3.

Basically it’s a standard calling card gateway system but with the advantage for users of being able to forward the call through their sipsorcery dialplan to take advantage of whatever rules and providers they have set up.

The challenge for the sipsorcery service is that the feature will always require a media server for step 3. Previously a Blueface Asterisk server was configured for the task and it worked ok but it wasn’t ideal. Blueface need to look after their own customers and not get distracted with sipsorcery.

Lately I’ve been checking out VXML (Voice XML) providers to see if there is some way to hook up a VXML application to get the number. The advantage of VXML over an Asterisk server is speech recognition (Asterisk can do speech recognition to but it requires some serious hoop jumping). A VXML application will give users the choice of entering the number using speech or using DTMF. I found two companies that offer free or eval VXML sites and was able to progress with both. The two companies were TellMe and Voxeo. I was able to get to a state where I could create a VXML application to get the number from the user. The tricky part has been how to get that number back to sipsorcery. The best mechanism would be a SIP blind transfer which would use a REFER request to indicate the number the user had entered. Unfortunately I couldn’t get any kind if transfers to work with TellMe and Voxeo will only allow Attended Transfers on their evaluation platform. I contacted Voxeo support and explained that a SIP blind transfer means it will be even less work for their server but they have strict rules in place for PSTN blind transfers, which in fairness could cost them a bundle if not policed properly, and they don’t appear able to allow blind transfers only for SIP.

Voxeo do have an eval version of their Prophecy server which I could set up but I’m keen to avoid hosting a media server so I’m still looking around for a VXML provider that supports SIP blind transfers. If anyone knows of one I’d be very interested to hear about them.


  1. bpere’s avatar

    I’ve been toying with Voxeo for a while, and found a “quick and dirty” way to get the keyed in number passed through to Sipsorcery. As Voxeo allows the application to set the caller id to basically anything before transferring the call to an outside server, my Voxeo application simply puts the keyed in (or spoken) value in this field, which can then be retrieved via the “req” expression in the sipsorcery dial plan. I realize this is totally kludgy, but it does work if you don’t mind losing the actual CID (which would probably be lost in a forwarded call anyway, since most providers only allow previously authorized CID’s to be used).


  2. sipsorcery’s avatar

    Are you using an attended transfer to get the call back to sipsorcery? If you’re customising the callerid then I guess you rely on the call being treated as an incoming one. I was planning on getting around to doing the same thing myself and would agree it’s a bit kludgy.

    I really wish there was a VXML provider around that would support REFERs that would make for a very nice integration. So far TellMe and Voxeo are the only ones I have found that are even interested in SIP. There are a few “telco 3.0” companies that either don’t bother with SIP, want a commitment of 100k PSTN transit minutes per month or want to charge per minute for SIP calls! But that’s my next blog post.


  3. Pankaj’s avatar

    Hi Aaron

    I played with voxeo and its Prophecy server after I installed the local version of sipswitch (dev 25th Jan build). As you rightly figured out, voxeo does not blind transfer to a sip number. So I applied the same trick as bpere said. used the caller id fiekd to pass the used entered number to sipswitch and it works.

    I also have got another interesting use of voxeo for sipswitch. Basically when an error code is generated in sipswitch, I call voxeo and pass the error code in the caller id field. At voxeo application I have a case statement that reads an appropriate error message for predefined error codes. If an unknown error code is found the default case of the switch statement just reads “Failed to call with unknown error code” + read the caller id (which is the error code)”. This provides a much better user experience. I also used 7xx codes for my own user defined non-sip error messages.

    Please let me know, if you need any other information.


    1. sipsorcery’s avatar

      Hi Pankaj,

      Were you able to blind transfers from your own Prophecy server install? Voxeo support told me if I installed my own version I would be able to and it was only on their hosted platform that they had them blocked.


    2. Seth Wisely’s avatar

      This RFC might interest you, Aaron:

      SIP Interface to VoiceXML Media Services

      A few months ago I started collecting free dev accounts to learn VXML the hard way. Have you seen




      1. sipsorcery’s avatar

        Nope hadn’t found those two sites. Thanks a lot for pointing them out! Do you know if either support SIP blind transfers? That’s been the issue with all the others.

        At a quick glance I’m not too sure about the RFC. I hope it’s purpose is to describe how VXML servers can expose a standard SIP interface and not yet another standard for a new type of SIP interface.


      2. Seth Wisely’s avatar

        @ Aaron
        “support SIP blind transfers”

        That would be a bit out of my depth. At the time I was shopping for MOH, dtmf IVR, and PBXiaf orgasmatron friendly hardware. I ran out of free time.

        CallThru mastery and GV now hold my attention — the former thanks to this article. I cannot wait to see your distilled knowledge on VXML 😉 I shall dig through my multiple firefox libraries for the other free VXML dev providers. Those were the only two that sprang to mind.




Your email address will not be published. Required fields are marked *