| 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 |
| login |
|