VoiceXML 2.1 Development Guide Home  |  Frameset Home

  Speechify TTS Guide: SSML  |  TOC  |  Designer User Interface  

Accessing VoIP Destinations


Evolution Hosted and VoIP Destinations

As the proliferation of VoIP phones has skyrocketed, there is ample reason to consider the market for outbound and inbound VoIP access when designing IVR applications. From the start, Voxeo has been ready. Herein, we will walk you through the process for dialing to and from a VoIP phone to access your XML applications, and detail the offerings that have been tested to work with the Voxeo platform.

Bear in mind, there are some rather important caveats to using the Voxeo SIP services that you should be aware of before you begin.



Softphones

Voxeo recommends SJPhone or Gizmo. SJPhone is a very slim, simple freeware softphone. Gizmo is a more feature rich client that is free for SIP, but also allows low-cost calls to standard(POTS/PSTN) landline phones.


Inbound VoIP Dialing

Each application created through the Evolution Site  will automatically be assigned a direct SIP address, and a Free World Dialup, and a Skype address. Once you've created an application, simply click the Phone Numbers tab and at the bottom you will see your applications SIP address:
SIP VoIP    sip:9990000000@sip.voxeo.net

As easy as that, you can plug this destination number into any SIP softphone to call your application. Any SIP softphone can call Voxeo development applications by dialing:

(application PIN)@sip.voxeo.net

Obviously, you will want to ensure that the proper firewall rules are in place for these calls to function correctly. For most SIP traffic, you'll need to open up and forward ports 5060-5070 to your host machine.

Outbound VoIP Dialing

When making an outbound PSTN call, either HTTP token based, or via a 'transfer' or 'call' element, the default syntax assumes a PSTN bridged transfer.However, when placing a SIP call, we need to change our syntax appropriately, and add a 'sip' prefix to the string:

CallXML

PSTN: <call value="4075551234"/>
SIP: <call value="sip:9990000000@sip.voxeo.net"/>

VoiceXML

PSTN: <transfer dest="tel:2223334444">
SIP: <transfer dest="sip:9990000000@sip.voxeo.net">

CCXML

PSTN: <createcall dest="'tel:+14075551234'"/>
SIP: <createcall dest="'sip:9990000000@sip.voxeo.net'"/>


Predictably enough, this applies to token-based calls as well, regardless of the platform:

http://api.voxeo.net/SessionControl/VoiceXML.start?
      numbertodial=sip:9990000000@sip.voxeo.net&
      tokenid=yourTokenIDhere

http://api.voxeo.net/SessionControl/CallXML.start?
      tokenid=yourTokenIDhere

http://api.voxeo.net/SessionControl/CCXML.start?
      tokenid=yourTokenIDhere


For more information on token initiated calls, check out the links below:

VoiceXML Token Calls
CCXML Token Calls
CallXML Token Calls

Local DID Access

Voxeo now offers local in-dial numbers free of charge for development purposes on our staging platform. Once you've created your application, simply navigate to the Phone Numbers tab and select the pull-down next to Add New Direct Dial Number, select the area code you'd like and click Submit. Your application will automatically be assigned a US in-dial number from Voxeo's pool of development numbers and within minutes you can call into it from any landline or mobile phone.


800 PIN Access

In addition to providing free SIP in-dial addresses and direct in-dial numbers for our developers, Voxeo also offers an 800+PIN system. Simply dial this toll free number from anywhere in the US without charge and enter your application PIN when prompted:

800+PIN
+1-800-289-5570
+1-407-386-2174


Prophecy Premise and VoIP Destinations


Inbound VoIP Dialing for Prophecy Premise

Each application you create on your Prophecy Premise server will have a route ID associated with it, which is the 'name' of the route. You can access these via the built-in Prophecy SIP phone by simply dialing sip:routename@127.0.0.1.


Route Name SIP Address
callxml   sip:callxml@127.0.0.1

As easy as that, you can also plug this destination number into any SIP softphone to call your application by simply replacing 127.0.0.1 with the IP or hostname of your machine: routename@IP:5060

Route Name SIP Address
callxml   sip:callxml@myserver.com:5060


Again, you will want to ensure that the proper firewall rules are in place for these calls to function correctly. For most SIP traffic, you'll need to open up and forward ports 5060-5070 to your host machine.

Outbound VoIP Dialing on Prophecy Premise

The same rules apply to outbound dialing on Prophecy Premise as they do for our Hosted Evolution offering. However, to terminate calls to PSTN or mobile phone destinations, you will need to register Prophecy with a VoIP provider. Please see our Prophecy Premise documentation or the Prophecy Quick Start guide for more information on this.

Dialing standard SIP destinations via Prophecy Premises requires no special setup, however you will need to verify your firewall settings. As mentioned previously, you'll want to open and forward ports 5060-5070 as well as 10000-20000 to your host machine. You can also place calls directly to the Prophecy SIP Phone by dialing sip:anything@127.0.0.1:5070.

CallXML

SIP: <call value="sip:callxml@127.0.0.1:5060"/>

VoiceXML

SIP: <transfer dest="sip:vxml@127.0.0.1:5060">

CCXML

SIP: <createcall dest="'sip:ccxml@127.0.0.1:5060'"/>


Remember, outbound dialing is not enabled by default on our Hosted Evolution platform. Gotta have it or just have a general question about outbound dialing? Open a support ticket or send us an email!


  ANNOTATIONS: EXISTING POSTS
childrens
1/3/2006 12:15 PM (EST)
Despite 100% SSML compliance, I don't think

  <say-as interpret-as="telephone">

works with Rhetorical. With Speechify, it's pronounced correctly -- six one seven, etc. -- but with Rhetorical I hear "six billion ..."
steve.sax
1/3/2006 12:30 PM (EST)
Hi there,

I am not sure as I understand completely; in testing say-as + Rhetorical on our hosted environment, I am not having any difficulties in using this interpret-as type....the problems that you are seeing may, or may not, be due to a misconfiguration on your premise server.

In order to help address this problem, it would help if you could open an account ticket and provide us with:

* a URL of the code that is invoking the say-as tag
* a set of  logs that show us your test calls

Once we have this specvific information, we will be in a much better position to address the problem for you.

Thanks,

- Steve Sax
Cypherwire
4/10/2006 1:33 PM (EDT)
Like the previous posting, I have the same problem. The TTS Eng. will not speak each individual digit when using

<say-as interpret-as="telephone">

The TTS Engine reads the string as a numeric amount.

Thanks!!!


Previous posting was:
--------------------------------------------
Despite 100% SSML compliance, I don't think

  <say-as interpret-as="telephone">

works with Rhetorical. With Speechify, it's pronounced correctly -- six one seven, etc. -- but with Rhetorical I hear "six billion ..."

--------------------------------------------
MattHenry
4/11/2006 5:47 PM (EDT)

Hi again,

As we indicated on the first response, we'd really need to see application debug logs in order to assess the problem. My initial tests in response to childrens' posting resulted in me being unable to reproduce the problem, so this might be something specific to how both of you are using the Rhetorical engine.

~Matt
SSA_MarkPMiller
6/15/2006 4:12 PM (EDT)
Matt,

I'm having the same problem as the other two posts. The default voice does not have a problem. It's only when I use the property element to specify another voice that the TTS engine reads digits as full numbers. The application still works properly, other than the reading of the digits.

Here's the code (PHP) that does the output:

// create a message that repeats what the application heard so the user can verify if correct (implicit)
function create_message($pin, $phone) {
$msg = "You said <say-as interpret-as='number' format='digits'>$pin</say-as> and <say-as interpret-as='number' format='digits'>$phone</say-as>.  ";
return $msg;
}

The TTS is spoken as "nine thousand, nine hundred ninety three" instead of "nine, nine, nine, three" for the pin number. The phone number also comes out that way. I used the english male and english female voices, placing the property element at the application level:

<!-- SET THE DEFAULT VOICE FOR THIS APPLICATION -->
<property name="nuance.core.tts.ResourceName" value="en-US.F019" />

Looking at the debug log (16e6), it is recognized as individual digits and the 'say-as' element is processed:

00803    16e6    8:00:11 PM    20:00:11.513: TEXT:[<?xml version="1.0"?> <speak> You said <say-as interpret-as="number" format="digits"> 9693 </say-as> and <say-as interpret-as="number" format="digits"> 2342343 </say-as>. Welcome back. </speak> ]

Hope this helps,
Mark

MattHenry
6/15/2006 4:39 PM (EDT)


Hi again Mark,

I'm really sorry about this, and my intention isn't making anyone jump thru hoops for no reason, but we really need to see the full output from a debug log in order to assess this:

http://docs.voxeo.com/voicexml/2.0/gettingsupport.htm

As I indicated previously, I had attempted to recreate this problem locally, and was unsuccessful in doing so. As such, we need a very specific example of this in action in order to provide any insight into this behavior. Hope that this makes sense and everything; I'm really glad to help out if there is a problem, but I am lacking the information that I need in order to make an assessment of the situation.

~Matthew Henry

SSA_MarkPMiller
6/15/2006 5:13 PM (EDT)
Matt,

Sent a log to support, and to your attention.

Thanks,
Mark
MattHenry
6/15/2006 5:52 PM (EDT)


Hi again Mark,

Thanks again for sending the logs, this helps me wrap my head around the problem a lot better. Per my testing, there are certain Rhetorical TTS personas that don't seem to accept the <say-as interpret-as="number" format="digits"> SSML format.

Checking in the Rhetorical TTS guide, I did find, and test out a valid workaround that's pretty low impact. Check the below snippet, which I think you'll find fairly easy to implement:


<say-as interpret-as="digits"> 9693 </say-as>

I wish I had gotten this specific data from our previous posters in this thread, we could have doubtlessly saved some developer confusion, eh? In any case, lots of folks are in your debt for helping us track this down; your efforts are very much appreciated.

~Matthew Henry

SSA_MarkPMiller
6/28/2006 12:06 PM (EDT)
Matt,

I had been using Rhetorical voices for a while before Nuance bought them out. They had a GREAT female Scottish voice that I was using to read my kids bedtime stories. Do you have that, or other, voices available other than the basic male/female english voices? It would be very useful when changing dialogs to be able to change to different voices.

Current voices found:
en-US.M009
en-US.F019

Thanks,
Mark
MattHenry
6/28/2006 2:43 PM (EDT)


Hello Mark,

We do not have the Scottish TTS persona installed as part of our free developer offering, as there hasn't een too much demand for it. We can always procure some ports for you if this is a requirement for a commercial application deployment; let me know if this how you'd like to proceed.

Regards,

~Matthew Henry

login
  Speechify TTS Guide: SSML  |  TOC  |  Designer User Interface  

© 2012 Voxeo Corporation  |  Voxeo IVR  |  VoiceXML & CCXML IVR Developer Site