| VoiceXML 2.1 Development Guide | Home | Frameset Home |
|
<?xml version="1.0" encoding="UTF-8"?>
<vxml version = "2.1" >
</vxml>
<?xml version="1.0" encoding="UTF-8"?>
<vxml version = "2.1">
<form id="CallTransfer">
<transfer name="MyCall" dest="tel:+11112223333" bridge="true" >
</transfer>
</form>
</vxml>
<transfer> element; in this case, 1-111-222-3333. Say, can we make a bridge='false' (or 'blind'), transfer? Sure you can, but it won't work. The Voxeo network does not allow 'blind' transfers on the Staging network, but we do allow 'take back and transfer' calls on the Production network. Contact your designated Voxeo Account Manager for details on this feature.<filled> event, (along with a spiffy prompt), which works just like the <filled> event in a voice-reco field. In this <filled> event, we place some conditional statements to execute depending on what value our transfer variable resolved to. If we receive a busy or a noanswer event, they will be caught and dealt with by using these basic error handling techniques:
<?xml version="1.0" encoding="UTF-8"?>
<vxml version = "2.1">
<form id="CallTransfer">
<!-- *************************************************************************** -->
<!-- TRANSFER sample code as performed by Snoop Doggy Dogg -->
<!-- *************************************************************************** -->
<block>
<prompt>Dizzling the phizzle</prompt>
</block>
<transfer name="MyCall" dest="tel:+11112223333"
bridge="true" connecttimeout="20s">
<filled>
<if cond="MyCall == 'busy'">
<prompt>
Tha fizzle be fo bizzeled shizz, nephew.
</prompt>
<exit/>
<elseif cond="MyCall == 'noanswer'"/>
<prompt>
No bizzle is in the hizzle.
</prompt>
</if>
</filled>
</transfer>
</form>
</vxml>
<?xml version="1.0" encoding="UTF-8"?>
<vxml version = "2.1">
<form id="CallTransfer">
<block>
<!-- *************************************************************************** -->
<!-- TRANSFER sample code as performed by Snoop Doggy Dogg -->
<!-- *************************************************************************** -->
<prompt>Dizzling the phizzle</prompt>
</block>
<transfer name="MyCall" dest="tel:+11112223333"
bridge="true" connecttimeout="20s">
<filled>
<if cond="MyCall == 'busy'">
<prompt>
Tha fizzle be fo bizzeled shizz, nephew.
</prompt>
<exit/>
<elseif cond="MyCall == 'noanswer'"/>
<prompt>
No bizzle is in the hizzle.
</prompt>
<elseif cond="MyCall == 'far_end_disconnect'"/>
<prompt>
Yo bizzel done be dizzleling tha phizzle on you.
</prompt>
<elseif cond="MyCall == 'near_end_disconnect'"/>
<prompt>
<!--submit next ="MyCoolCleanupPage.cgi"/-->
</prompt>
</if>
</filled>
</transfer>
</form>
</vxml>
| ANNOTATIONS: EXISTING POSTS |
ddantow
|
|
| I think there's a single quote missing from this line:
<elseif cond="MyCall == 'far_end_disconnect"/> It should be <elseif cond="MyCall == 'far_end_disconnect'"/> |
|
mikethompson
|
|
| Hey there,
Thank you for bringing this minor error to our attention. This error has been corrected in our internal documentation build, which we will be rolling out to the external environment in a week or so. Thanks again! ~Mike |
|
haigang
|
|
| Hello ,How many tel id can call in dest="tel:xxxx" Simultaneously? Thanks | |
sidvoxeo
|
|
| Hi there,
You can only make a single transfer using the dest="tel:xxxx" attribute of VoiceXML transfer element. On our Staging platform if you use tokens to make outbound calls, you can make two calls concurrently. ~Sid |
|
artybala
|
|
| <?xml version="1.0" encoding="UTF-8"?>
<vxml version = "2.1"> <form id="CallTransfer"> <block> <prompt> Hello World </prompt> </block> <transfer name="MyCall" dest="tel:+18176841884" bridge="true" connecttimeout="20s" maxtime="60s"> </transfer> </form> </vxml> Hi., I am learning to write Voice Applications through the tutorials. When i use the above code, it says that "this content has an internal error" Can you please tell me what am i missing.? Thanks |
|
voxeojeff
|
|
| Hi artybala,
The problem was that your account was not flagged for outbound dialing access, thus you could not execute the transfer :) This has been fixed, and you should now be able to do so. Please remember to use this privilege for testing purposes only, in order to keep your outdial ability. Best regards, Jeff Menkel Voxeo Corporation |
|
artybala
|
|
| Jeff.,
Thanks a LOT. i am able to test the call transfer now. Thanks for the faster response. Thanks artybala |
|
DanYork
|
|
| I'll note that to do a transfer to a SIP endpoint, you basically just replace the "tel:<number>" with "sip:<SIP address>" subject to one difference outlined below.
As an example, Gizmo SIP addresses take the format "<number>@proxy01.sipphone.com". The syntax for the on-premise Prophecy would be similar to this: <transfer name="MyCall" dest="sip:17476185034@proxy01.sipphone.com" bridge="true" connecttimeout="20s"> However for the hosted Evolution platform, you need to find out the IP address of the SIP server and modify the string to be: sip:<SIP endpoint address>!<SIP server IP address>@sbc-staging-internal For instance, my Gizmo address is "17476185034" and the IP address for "proxy01.sipphone.com" is "198.65.166.131", so the resulting transfer statement looks like this: <transfer name="MyCall" dest="sip:17476185034!198.65.166.131@sbc-staging-internal" bridge="true" connecttimeout="20s"> As another example, my Voxeo SIP address is "dyork@corpsip.voxeo.com" which would translate into: <transfer name="MyCall" dest="sip:dyork!66.193.54.208@sbc-staging-internal" bridge="true" connecttimeout="20s"> More info can be found in these threads: - https://evolution.voxeo.com/bizblog/viewer?&bb-name=masterforum&bb-q=sip+gizmo&&bb-cid=5&bb-tid=487502#bb - https://evolution.voxeo.com/bizblog/viewer?&bb-name=masterforum&bb-q=sip+gizmo&&bb-cid=6&bb-tid=496278#bb |
|
alexey.timofeev
|
|
| Hi!
Is there any possibility to call line identifier (CLI) during the transfer? I mean the next kind of situation: 1) we call to the person; 2) the vxml script is launched; 3) the person chooses to transfer the call; 4) the call is transferred to the call center and on the call center's phone the person's number appear. Is it possible? Would it be possible if it is the outbounding call? Thanks in advance |
|
voxeojeff
|
|
| Hi Alexey,
You can "spoof" the caller ID on a VoiceXML transfer by specifying ';ani=1234567890' in the dest attribute. For example, <transfer name="Mycall" dest="tel:+12223334444;ani=5556667777" bridge="true" connecttimeout="20s" maxtime="60s"> http://www.vxml.org/ani_dnis.htm For US carriers, there is a 10 digit limit for ANI. In our UK VoiceCenter, you may specify more than 10 (up to 13) in order to simulate a UK CLI. Hope this helps, Jeff |
|
alexey.timofeev
|
|
| Hi Jeff
Thanks a lot for your answer. I'll appreciate a lot if you answer my following questions: 1)Could I use the ECMAscript variable for ANI? I mean if I have <var name="phone" expr="'0101010101'"/> will the following code be correct: <transfer name="Mycall" dest="tel:+12223334444;ani=phone" bridge="true" connecttimeout="20s" maxtime="60s"> </transfer> For US carriers, there is a 10 digit limit for ANI. In our UK VoiceCenter, you may specify more than 10 (up to 13) in order to simulate a UK CLI. 2)What will happen if the ANI has more than 10 (or 13 - for UK VoiceCenter) digits? CLI won't be transferred to the Call center? |
|
mikethompson
|
|
| Hello Alexey,
Allow me to address your questions numerically... 1) If you want to dynamically populate the ani value, you'll have to use server-side scripting, as ani is not an attribute, it is simply an extension of the transfer destination. 2) When testing this to my cell phone, the call was still successfully placed. I set the ani to '12345678901234' and that is what came through on my display. This was a Blackberry setup with Verizon. When placing the call to my Desk SIP phone, the entire callerID was passed as well. As for the UK VoiceCenter... Yesterday, we tested transfer ani from the UK VoiceCenter with more than 13 digits in the callerID, and the call failed. Hope this helps, Mike Thompson Voxeo Corporation |
|
alexey.timofeev
|
|
| Hi Mike!
I do appreciate the information you've provided. That's very valuable help for me. I'd like to confirm one more issue with you. I have the variable <var name="phone" expr="session.connection.ccxml.values.phone"/> and I need to pass it as CLI during the transfer call. As far as I understand I have no opportunity to do this? Thanks in advance |
|
mikethompson
|
|
| Hello Alexey,
You can do this with the use of sever-side scripting, but there is no way to pass the ani in a VoiceXML transfer dynamically via ECMA script. You could simply pull the variable phone from the querystring with something like PHP and echo it into the ani= space. Let me know if this doesn't make sense. Best, Mike Thompson Voxeo Corporation |
|
eraldo
|
|
| <?xml version="1.0" encoding="UTF-8"?>
<vxml version = "2.1"> <form id="Proof"> <block> <prompt> Hello World. This is just a test. Lets see what happens. </prompt> </block> <transfer name="MyCall" dest="'sip:17473083562!198.65.166.131@sbc-staging-internal'" bridge="true" connecttimeout="40s" maxtime="60s"> </transfer> </form> </vxml> I'm new in this stuff, right now i'm trying to test this code, but there is some error message that appears and says that has an internal error. Can u help me with that? Thanks a lot. |
|
voxeojeremyr
|
|
| Hi eraldo,
Looking at your code, it appears you have the destination enclosed in double quotations and also in single quotations. If you remove the single quotations, the syntax will be valid. Also, your account needs to have outbound dialing privileges. To have those those granted, please open a support a support ticket and we would be happy to help you. We have some documentation that covers transfers and outbound dialing here: http://docs.voxeo.com/voicexml/2.0/t_6.htm http://docs.voxeo.com/voicexml/2.0/token_intro.htm Thanks, Jeremy Richmond Voxeo Support |
|
borisattva
|
|
| Hi Mike,
To add to the subject of Alexeys questions; you explained its impossible to dynamically allocate specifically the 'ani' portion of the dest= attribute. Does that limitation extend to 'dest' attribute as a whole? I'm asking this in the context of constructing the whole 'dest' attribute dynamically. rough example: (vars XFRDest, XFRNumber, XFRAni) <assign name="XFRDest" expr="tel:' + XFRNumber + ';ani=' + XFRAni"/> <transfer name="MyCall" dest="XFDest" bridge......etc Does this make sense? Or is dest limited to being explicitely static syntax&content... Thanks, |
|
voxeodamonic
|
|
| Hi,
I will forward your question to our Tier II support. Please allow us some time to research your inquiry and provide more details by tomorrow afternoon. Thanks, Damonic Robertson Voxeo Support |
|
voxeojeremyr
|
|
| Hi,
While you cannot use the dest attribute of a transfer to dynamically set the transfer number, you can use destexpr which allows you to use ECMAscript to build your transfer string. For example, this snippet of code works: <var name="numberToDial" expr="'+14075551234'"/> <var name="aniSpoof" expr="'4075559999'"/> <transfer name="MyCall" destexpr="'tel:' + numberToDial + ';ani=' + anispoof" bridge="true" connecttimeout="30s" maxtime="0"> Or you could certainly build the string prior to the transfer and simply call a variable such as this: <var name="numberToDial" expr="'+14075551234'"/> <var name="aniSpoof" expr="'4075559999'"/> <var name="transferNumber" expr="'tel:' + numberToDial + ';ani=' + anispoof"/> <transfer name="MyCall" destexpr="transferNumber" bridge="true" connecttimeout="30s" maxtime="0"> Happy Coding. Jeremy Richmond Voxeo Support |
|
jfeniello
|
|
| Is it possible to call out to another number, and then have the originator and the destination people both on the phone and both continue to interact withe ivr/vxml script? Like in a two person survey or test application? | |
VoxeoDustin
|
|
| Hey,
When performing a transfer in VoiceXML, execution of the document pauses for the duration of the bridged call. Only when the remote party disconnects will execution of the document resume. If you'd like to allow multiple parties to interact with an IVR simultaneously, you may want to look into CCXML and conference a separate VoiceXML application in with multiple callers. http://docs.voxeo.com/ccxml/1.0-final/t_8ccxml10.htm Cheers, Dustin |
|
theVoiceXMLDeveloper
|
|
| Could anyone provide a link to a step-by-step sample how to create an application on Voxeo which can receive vXML which are created dynamically? To be more precise, I use Java to form vXML files programmatically (because a prompt should include different names, etc.). How can I use these vXML?
Thanks. |
|
mikethompson
|
|
| Hello,
We happen to have some great documentation regarding how to integrate server-side scripting with your VoiceXML applications. You can find it here: http://www.vxml.org/qs_vars.htm While it does not cover Java, it does touch on other server-side languages (PHP/JSP/etc...), which illustrate the core concepts needed to develop dynamic VXML applications. Hope this helps, Mike Thompson Voxeo Corporation |
|
theVoiceXMLDeveloper
|
|
| It seems my previous comment was deleted... Oddly enough...
So again: is there any documentation, which describes the picture "from the 30000 feet"? I mean the common schema how to send batch voice messages, composing them programmatically? Thanks. |
|
voxeo_chris
|
|
| Hello,
This question was already answered in the forum [url=http://evolution.voxeo.com/forums/home.jsp?xt=1242934819859&bb-cid=18&bb-tid=13746&bb-name=masterforum#forum]Thread #14746: qs_vars[/url]. Please refer to this forum thread for your answer to the above question. If you have any additional questions, please let us know if there is anything else we can help you with. Regards, Chris Bruckart Voxeo Support |
|
dscotese
|
|
| We would like to call a customer at one number, call a provider at another number, and connect these two parties for a specific amount of time and then interrupt the call. I've toyed with some ideas on how to do this, but it seems to come down to this:
Once the XML instructs the gateway to connect the two parties, the application has no control until the second number called disconnects. Is this true? It doesn't seem right, so I thought I'd ask. I guess what we're looking for a is a conference feature so that the application itself can "hang out" on the line until it's time to interrupt. I'll go look for that now while I await your reply. |
|
dscotese
|
|
| Great Documentation, Eureka!
It's not called conference, but on the page that gave me the hint I needed, it did call the situation you get into with <transfer> a conference. There are two timeout attributes, connecttimeout and maxtime. In the section on Transfer Hotwording, the docs allude to the fact that the app is still listening, which led me to further investigate the timeouts and maxtime is exactly what we need. |
|
voxeoblehn
|
|
| Hello,
Seems you beat us to the punch here ;) Glad you found what you were looking for, but please let us know if we can be of further assistance. Regards, Brian Lehnen Voxeo Support |
|
keatkline
|
|
| Hello,
Im new and learning from the tutorials. I would like to have some outbound privs for testing. If this is not the correct way of getting these privs, let me know :) Thanks |
|
jdyer
|
|
| Hello,
I am afraid the only 'wrong' way is to ask for outbound dialing rights is by smoke signal; Even then this is only because some guy almost burned down his house trying, and our insurance had to put a stop to that =^). I have gone ahead and granted you outbound dialing rights as requested, and went ahead and threw in a CCXML, and VoiceXML token as an added bonus. If there is anything else we can do to assist please let us know; Our support team is always happy to provide any assistance our developers may require! Regards, John Dyer Customer Engineer Voxeo Support |
|
mtaha666
|
|
| I can't to use the transfer tag, after going to transfer tag
i hear the tone of ringing after that IVR close the session and hear tone like busy tone . but the destination phone didn't ring ever here the used code : String dest = "postd=153" ; <transfer name="services" dest="<%=dest %>" connecttimeout="40s" > <filled> <if cond="services=='busy'"> All our customer care agents are currently busy. Please call back later. Your call lasted <value expr="services$.duration"/> seconds. <elseif cond="services=='noanswer'"/> noanswer <elseif cond="services=='network_busy'"/> network busy <elseif cond="services=='near_end_disconnect'"/> near end disconnect <elseif cond="services=='far_end_disconnect'"/> far end disconnect <elseif cond="services=='network_disconnect'"/> network disconnect <elseif cond="services=='maxtime_disconnect'"/> max time disconnect <elseif cond="services=='far_end_machine'"/> far end machine <elseif cond="services=='far_end_fax'"/> far end fax <elseif cond="services=='rejected'"/> rejected <elseif cond="services=='not_allowed'"/> not allowed <elseif cond="services=='unknown'"/> unknown </if> </filled> </transfer> hint : if write String dest = "postd=ppp153" ; IVR wait some seconds then hear ringing tone then close the session . if write String dest = "postd=153ppp" ; hear ringing tone then wait some seconds and close the session . but the destination phone didn't ring ever |
|
voxeoJeffK
|
|
| Hello,
I have taken the liberty of opening a private ticket in your account for you to address this since we will need to review logging of the call: #996386 - Transfer failing We'll focus troubleshooting for you in that ticket. Regards, Jeff Kustermann Voxeo Support |
|
kakeakeai
|
|
| How do you get outbound call priveldges? | |
voxeoblehn
|
|
| Hello,
You just need to ask :) I have gone ahead and enabled US outbound and SIP privileges for your account. Please let us know if we can be of further assistance. Best Regards, Brian Lehnen Voxeo Support |
|
rawat
|
|
| Can outbound call privileges be opened for outside US guys??? For instance me?
Thanks |
|
voxeoJeffK
|
|
| Hello,
I have enabled outbound privileges for your account. As per our International access detailed here: http://blogs.voxeo.com/voxeodeveloperscorner/2010/05/26/voxeo-launches-free-international-developer-program-free-dids-outbound-calls-sms-numbers-more/ you can connect to the following countries' landlines (not mobile numbers): Belgium, Canada, Germany, Greece, Hong Kong, Hungary, Ireland, Israel, Italy, Luxembourg, Netherlands, Poland, Portugal, Spain, Sweden, Switzerland, UK, USA Please let us know if you have any questions. Regards, Jeff Kustermann Voxeo Support |
|
agnihotrived
|
|
| My account is enabled for outbound call and I am able to transer at application level with execute token button but when I call in between my application the I get response that my application is not enabled for outbound calls.I wonder how can I give token number(if required)so that it can recognise my application.
Following is the sample code I am using -- <transfer name="MyCall" dest="tel:numbertobe called" bridge="true" connecttimeout="20s"> <filled> <if cond="MyCall == 'busy'"> <prompt> Sashank is busy. </prompt> <exit/> <elseif cond="MyCall == 'noanswer'"/> <prompt> Sashank is not anwering. </prompt> <elseif cond="MyCall == 'far_end_disconnect'"/> <prompt> Sashank disconnected call very sad. </prompt> <elseif cond="MyCall == 'near_end_disconnect'"/> <prompt> <!--submit next ="MyCoolCleanupPage.cgi"/--> </prompt> </if> </filled> </transfer> |
|
voxeoJeffK
|
|
| Hello,
You may be trying to connect to a destination that isn't allowed from the free staging and development environment. Try testing with the Application Debugger, and save the log to a file. rather than post it here to a public forum, open a support ticket from your account, and you can attach the log there for us to review. regards, Jeff Kustermann Voxeo Support |
|
Georgy
|
|
| Can outbound call privileges be opened for outside me?
Thanks |
|
Georgy
|
|
| Can outbound call privileges be opened for outside me?
Thanks |
|
voxeoJeffK
|
|
| Hello,
As per your request I have enabled outbound privileges for your account. Let us know if we can help with anything else. Regards, Jeff Kustermann Voxeo Support |
|
vtcuong255
|
|
| Can outbound call privileges be opened for outside me?
Thanks |
|
voxeoJeffK
|
|
| Hello,
As per your request I have enabled outbound privileges for your account. Let us know if we can help with anything else. Regards, Jeff Kustermann Voxeo Support |
|
aperez54
|
|
| Hello,
May I please be granted outbound dialing privileges? Thanks! Annie |
|
voxeoJeffK
|
|
| Hello,
I have enabled outbound privileges for you. Let us know if we can help with anything else. Regards, Jeff Kustermann Voxeo Support |
|
imranabdul
|
|
| Hi there,
When i try this "call transfer" tutorial, am getting this following error. please anyone assist me on this. Error: ------ "Your Voxeo account is not enabled with outbound dialing privileges that allow you to transfer to the number specified. Please contact community support for more information."; Code: ----- <?xml version="1.0" encoding="UTF-8"?> <vxml version = "2.1"> <form id="CallTransfer"> <block> <!-- *************************************************************************** --> <!-- TRANSFER sample code as performed by Snoop Doggy Dogg --> <!-- *************************************************************************** --> <prompt>Dizzling the phizzle</prompt> </block> <transfer name="MyCall" dest="tel:+16783848345" bridge="true" connecttimeout="20s"> <filled> <if cond="MyCall == 'busy'"> <prompt> Hi the customer is busy, please try again later </prompt> <exit/> <elseif cond="MyCall == 'noanswer'"/> <prompt> Hi there is no answer from the customer. </prompt> <elseif cond="MyCall == 'far_end_disconnect'"/> <prompt> Hi the customer is waiting to your reply. </prompt> <elseif cond="MyCall == 'near_end_disconnect'"/> <prompt> Hi the calling customer is disconnects the call. <!--submit next ="MyCoolCleanupPage.cgi"/--> </prompt> </if> </filled> </transfer> </form> </vxml> Regards, Imran |
|
voxeoJeffK
|
|
| Hello,
I have enabled outbound privileges for you. Let us know if we can help with anything else. Regards, Jeff Kustermann Voxeo Support |
| login |
|