Blogs

If you just need a simple password control for long distance or international call and don't want to use RADIUS, you can set a parameter in service then in script ask caller to enter password if it matched the one set in IOS configuration then make the call out otherwise disconnect call. A sample script is posted in Documentation section. ...Read More

 

Hi Cisco Developers,

MSE VOIP Sample Application along with User Guide can be found under the below location.
http://developer.cisco.com/web/vgapi/docs

The goal of this sample application is to demonstrate the Integration of IVR(Interactive Voice response) and MSE(Mobility service Engine).
...Read More

 

In IOS 15.2(2)T a new option is introduced for infotag get leg_dnis and infotag get leg_ani

"callnumber" is keyword

infotag get leg_dnis
infotag get leg_ani

example:

infotag get leg_dnis callnumber leg_incoming


This option services the following purposes:

1. Return number portion only for DNIS or ANI in SIP trunk ...Read More

 

The fetchaudio attribute specifies the URI of the audio to be played while the document is being fetched. It can be used with any one of the following VXML Elements <data>; <goto>; <link>; <subdialog>; <submit>

Example: ...Read More

 

Cisco Technology Developer Partners,

Cisco is proud to announce the availability of our Cisco Unified Communications System Release 8.6 Not-For-Resale software bundle on Cisco Marketplace (Partner Login Required).

To purchase the latest Unified Communications NFR Software bundle
- Navigate to Cisco Marketplace
- Login using your Cisco.com UserID ...Read More

 

New Video Tutorial section is added for this Tcl IVR API
Video Tutorial ...Read More

 

param CLI can be mapped to IVR either in the global application mode, or as group params or under the specific dial-peer.

config t
application
service aa flash: app-b-acd-aa.tcl
param aa-pilot 7001

Having the param under the specific dial-peer provides the flexibility by having same application to work with various dial-peers in various ways. ...Read More

 



Cisco Developer Network will be presenting a CDN Developer Track at Cisco Live! London the week of January 31, 2011.

We are presenting technical sessions which highlight Application Programming interfaces (APIs) and Software Developer Kits (SDKs) for Cisco technologies such as Unified Communications, IOS, and Access Routing Technologies ¿ including the new Cisco Cius ...Read More

 

There are a few more tones can be played but are not listed in the programming guide

tn_ringback -- Plays a ring back tone
tn_congestion -- Play a congestion tone
tn_stuttdial -- plays a stutter dial tone
tn_intercept --plays a intercept tone, like busy tone

For example I have to use "leg setup $dest callinfo" for a reason ...Read More

 

Ultimate AA script


Suffering the AA menu prompt tree changing that you need to modify the script frequently? Or trying to find an AA script can fit all menu prompt tree?
You really can create an ultimate script that can fit all prompt structure
Here is the solution: ...Read More

 

I would like to shed some light on IPIPGW concept and its features.
IPIPGW Over TCL-VXML scripts:
We can deploy TCL and VXML scripts on IPIPGW,where DSP¿s are not requried to use this feature.You have to record prompt in the same codec type as you use for a call.This feature will be useful when we deploy prepaid calling cards.
IPIPGW : ...Read More

 

If we download the complete book length programming guide, the information tag leg_state and the status for that lg_xxx are missed.
But if we download chapter by chapter we can get those information.

Here is the link:

http://www.cisco.com/en/US/docs/ios/voice/tcl/developer/guide/tclivrv2_ch5.html


Leg State
The state of the call leg and the corresponding status code is reported in lg_xxx format:
Value for xxx Call Leg
000 LEG_INIT ...Read More

 



There is a perspective that TCL-IVR applications are not flexible enough for a newbie to play around. But in fact, there are lots of IVR applications that are coming inbuilt with Voice GW. You just need to copy/paste in a file editor and tweak it.
...Read More

 

Showing 13 results.
Items per Page 20
of 1

Forums

Combination View Flat View Tree View
Threads [ Previous | Next ]
Hello,
 
I want to build a short IVR with vxml. When I add a second form to my vxml document I become an DTD error.
Element <audio> is not used according to DTD
 
The beginning of my doc:
 
<?xml version="1.0" encoding="iso-8859-1"?>
<vxml version="2.0">
 
or
 
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE vxml
    PUBLIC "-//W3C//DTD VOICEXML 2.0//EN"
    "http://www.w3.org/TR/voicexml21/vxml.dtd">
<vxml version="2.0">
 
 
I want to add:
 
<elseif cond="mycall == 'noanswer'"/>
    <goto next="#noan"/>
 
with an link to
 
<form id="noan">
 
but the call will be disconnected and the error occurs.
Have anyone a idea ?
 
thx
regards Patricio

RE: DTD Error
Answer
11/2/09 5:19 PM as a reply to Patrick Hartl.
Hi Patricio,

I don¿t see any syntax errors in the way you have added the second form in the script. Are you trying to play an audio file in the second form? If so can you please check for the correctness of that tag and also check whether the files are there in the specified location.

Thanks,
Anusha

RE: DTD Error
Answer
11/2/09 5:53 PM as a reply to Anusha Kannappan.
Hi,
Thank you for your response. This is a sample vxml configuration. The audio files are on the flash memory.
Without the hop "goto next" and a second section <form> the default audio is played and the script seems ok.
But I have to use different sections...
 
 
<?xml version="1.0"?>
<vxml version="2.0">
<!--
Cisco Voicexml Default
File Name : sdc.vxml

-->
<catch event="error.badfetch">
        <prompt>
                <audio src="technical.au"></audio>
        </prompt>
        <log> Catch Handler :: Bad Fetch </log>
</catch>

<catch event="telephone.disconnect.transfer">
        <log> Catch Handler :: Blind Transfer </log>
</catch>

<catch event="telephone.disconnect.hangup">
        <log> Catch Handler :: User disconnected </log>
</catch>


<form id="main">

        <var name="mydur"/>
        <var name="PhoneNum" expr="session.connection.remote.uri"/>

        <!-- Play music while attempting to connect to far-end -->

        <transfer name="mycall" destexpr="'sip:'+session.connection.local.uri+'@192.168.251.2:5060'" transferaudio="moh01.wav" bridge="true" connecttimeout="10s">
 

        <filled>
        <assign name="mydur" expr="mycall$.duration"/>

        <if cond="mycall == 'busy'">
    <goto next="#busy"/>
 
        <elseif cond="mycall == 'noanswer'"/>
    <goto next="#noanswer"/>
 
    <elseif cond="mycall == 'unknown'"/>
    <goto next="#unknown"/>
 
    <elseif cond = "mycall == 'maxtime.disconnect'"/>
     <goto next="#maxtime"/>

         </if>

         </filled>
        </transfer>
</form>

<form id="busy">
            <audio src="busy.ulaw.wav"/>
</form>

<form id="noanswer">
            <audio src="noanswer.ulaw.wav"/>
</form>

<form id="unknown">

        <var name="phone_num"/>

        <field name="get_phone_num" type="number">
                <grammar type="application/grammar+regex">...</grammar>
                        <prompt bargein="true">
                                <audio src="unknown.ulaw.wav"></audio>
                        </prompt>
                <filled>
                        <assign name="phone_num" expr="get_phone_num"/>
                </filled>
        </field>

        <transfer name="mycall" destexpr="'tel: ' + phone_num" connecttimeout="30s" cisco-longpound ="true" bridge="true">
        </transfer>
</form>

<form id="maxtime">
            <audio src="goodbye.au"/>
</form>

</vxml>
 


The DEBUG:
 
 
*Nov  2 11:57:14: //2689//VXML:/Open_SetupIndication:
*Nov  2 11:57:14: //2689//AFW_:/vapp_vxmldialog: Trusted=0, DNIS Map URI=, Code = {
                                                                                
}
*Nov  2 11:57:14: //2689//AFW_:/vapp_vxmldialog: After DNIS Map URI=flash:sdc.vxml, Code = {
<?xml version="1.0"?>
<vxml version="2.0">
<!--
Cisco Voicexml Default
File Nam
}
*Nov  2 11:57:14: //-1//AFW_:/AFW_VxmlModule_New: 
*Nov  2 11:57:14: //-1//VXML:/vxml_tree_lock: 
   vxmlp=67B93F3C usage_cnt=0
*Nov  2 11:57:14: //0/B21051F18CC0/VXML:/vxml_start_element_handler: 
   CALL_ERROR; flash:sdc.vxml
   at line 56: Element <audio> is not used according to DTD
*Nov  2 11:57:14: //0/B21051F18CC0/VXML:/vxml_parse: 
  
*Nov  2 11:57:14: vxml_parse: XML_Parse success err=0
*Nov  2 11:57:14: vxml_tree_delete_for_parse_failure:mem_mgr_mempool_free: mempool=NULL
*Nov  2 11:57:14: //0/B21051F18CC0/VXML:/vxml_session_delete: 
   
*Nov  2 11:57:14: vxml_session_delete:mem_mgr_mempool_free: mem_refcnt(6BA9244C)=0 - mempool cleanup
*Nov  2 11:57:14: vxml_session_delete:mem_mgr_mempool_free: mempool=NULL
*Nov  2 11:57:14: //-1//VXML:/vxml_create: 
  
*Nov  2 11:57:14: vxml_create: error exit
*Nov  2 11:57:14: //-1//VXML:/vxml_create: 
   CALL_ERROR; code=ERROR vapp=VAPP_SUCCESS vxml=
*Nov  2 11:57:14: //2689//AFW_:/vapp_terminate:
*Nov  2 11:57:14: //2689//AFW_:/vapp_session_exit_event_name: Exit Event vxml.session.complete
*Nov  2 11:57:14: //2689//AFW_:/AFW_M_VxmlModule_Terminate:
*Nov  2 11:57:14: //2689//AFW_:/vapp_checksessionstate:
*Nov  2 11:57:14: //2689//AFW_:/vapp_checkifdone: Object: 1, Leg: 1
*Nov  2 11:57:14: //2689//AFW_:/vapp_checksessionstate:
*Nov  2 11:57:14: //2689//AFW_:/vapp_checkifdone: Object: 0, Leg: 0
*Nov  2 11:57:14: //-1//AFW_:HNCDD7FEFC:/AFW_M_VxmlModule_Free:
*Nov  2 11:57:14: MOD[VxmlModule_67E7C8E0_0_3453484796] ( )
 
 
Regards
Patrick
 
 
 
 

RE: DTD Error
Answer
11/2/09 8:14 PM as a reply to Patrick Hartl.
Hi Patrick,

Place the audio tag inside the block tag. Then it would work without any issue.

For example:
---------------
Instead of

<form id="noanswer">
            <audio src="noanswer.ulaw.wav"/>
</form>

Use the following:

<form id="noanswer">
<block>
            <audio src="noanswer.ulaw.wav"/>
</block>
</form>

Thanks,
Anusha.

RE: DTD Error
Answer
11/2/09 8:30 PM as a reply to Anusha Kannappan.
Hi,
 
Now I have changed the program to:
 
<form id="busy">
<block>
          <audio src="busy.ulaw.wav"/>
</block>
</form>

 
Now I have an other error:
 
 
*Nov  2 14:24:07: //-1//VXML:EE66C89EFC000:/C_ServiceVxmlBase_Main: 
*Nov  2 14:24:07: %VOICE_ELOG-4-MEM_USAGE_HI_WATERMARK: System memory on high usage (81/100). Stopping processing new event log for now.
*Nov  2 14:24:07: //2690//VXML:/Open_SetupIndication:
*Nov  2 14:24:07: //2690//AFW_:/vapp_vxmldialog: Trusted=0, DNIS Map URI=, Code = {
                                                                                
}
*Nov  2 14:24:07: //2690//AFW_:/vapp_vxmldialog: After DNIS Map URI=flash:sdc.vxml, Code = {
<?xml version="1.0"?>
<vxml version="2.0">
<!--
Cisco Voicexml Default
File Nam
}
*Nov  2 14:24:07: //-1//AFW_:/AFW_VxmlModule_New: 
*Nov  2 14:24:07: //-1//VXML:/vxml_tree_lock: 
   vxmlp=67B93F3C usage_cnt=0
*Nov  2 14:24:07: //0/373F49C68CC4/VXML:/vxml_character_data: 
   CALL_ERROR; flash:sdc.vxml

   at line 55: Invalid PCDATA
*Nov  2 14:24:07: //0/373F49C68CC4/VXML:/vxml_parse: 
  
*Nov  2 14:24:07: vxml_parse: XML_Parse success err=2
*Nov  2 14:24:07: vxml_tree_delete_for_parse_failure:mem_mgr_mempool_free: mempool=NULL
*Nov  2 14:24:07: //0/373F49C68CC4/VXML:/vxml_session_delete: 
   
*Nov  2 14:24:07: vxml_session_delete:mem_mgr_mempool_free: mem_refcnt(6AC1A990)=0 - mempool cleanup
*Nov  2 14:24:07: vxml_session_delete:mem_mgr_mempool_free: mempool=NULL
*Nov  2 14:24:07: //-1//VXML:/vxml_create: 
  
*Nov  2 14:24:07: vxml_create: error exit
*Nov  2 14:24:07: //-1//VXML:/vxml_create: 
   CALL_ERROR; code=ERROR vapp=VAPP_SUCCESS vxml=

*Nov  2 14:24:07: //2690//AFW_:/vapp_terminate:
*Nov  2 14:24:07: //2690//AFW_:/vapp_session_exit_event_name: Exit Event vxml.session.complete
*Nov  2 14:24:07: //2690//AFW_:/AFW_M_VxmlModule_Terminate:
*Nov  2 14:24:07: //2690//AFW_:/vapp_checksessionstate:
*Nov  2 14:24:07: //2690//AFW_:/vapp_checkifdone: Object: 1, Leg: 1
*Nov  2 14:24:07: //2690//AFW_:/vapp_checksessionstate:
*Nov  2 14:24:07: //2690//AFW_:/vapp_checkifdone: Object: 0, Leg: 0
*Nov  2 14:24:07: //-1//AFW_:HNCE5E7A4C:/AFW_M_VxmlModule_Free:
*Nov  2 14:24:07: MOD[VxmlModule_67E7CDE0_0_3462298188] ( )
 
 
and after changing the form id busy to busytag - then I have the same eror as bevor:
 
<?xml version="1.0"?>
<vxml version="2.0">
<!--
Cisco Voicexml Default
File Nam
}
*Nov  2 14:32:51: //-1//AFW_:/AFW_VxmlModule_New: 
*Nov  2 14:32:51: //-1//VXML:/vxml_tree_lock: 
   vxmlp=67B93F3C usage_cnt=0
*Nov  2 14:32:51: //0/008730EA8500/VXML:/vxml_start_element_handler: 
   CALL_ERROR; flash:sdc.vxml
   at line 74: Element <block> is not used according to DTD

*Nov  2 14:32:51: //0/008730EA8500/VXML:/vxml_parse: 
  
*Nov  2 14:32:51: vxml_parse: XML_Parse success err=0
*Nov  2 14:32:51: vxml_tree_delete_for_parse_failure:mem_mgr_mempool_free: mempool=NULL
*Nov  2 14:32:51: //0/008730EA8500/VXML:/vxml_session_delete: 
   
*Nov  2 14:32:51: vxml_session_delete:mem_mgr_mempool_free: mem_refcnt(6A5C76E8)=0 - mempool cleanup
*Nov  2 14:32:51: vxml_session_delete:mem_mgr_mempool_free: mempool=NULL
*Nov  2 14:32:51: //-1//VXML:/vxml_create: 
  
*Nov  2 14:32:51: vxml_create: error exit
*Nov  2 14:32:51: //-1//VXML:/vxml_create: 
   CALL_ERROR; code=ERROR vapp=VAPP_SUCCESS vxml=
*Nov  2 14:32:51: //2693//AFW_:/vapp_terminate:
*Nov  2 14:32:51: //2693//AFW_:/vapp_session_exit_event_name: Exit Event vxml.session.complete
*Nov  2 14:32:51: //2693//AFW_:/AFW_M_VxmlModule_Terminate:
*Nov  2 14:32:51: //2693//AFW_:/vapp_checksessionstate:
*Nov  2 14:32:51: //2693//AFW_:/vapp_checkifdone: Object: 1, Leg: 1
*Nov  2 14:32:51: //2693//AFW_:/vapp_checksessionstate:
*Nov  2 14:32:51: //2693//AFW_:/vapp_checkifdone: Object: 0, Leg: 0
*Nov  2 14:32:51: //-1//AFW_:HNCE667764:/AFW_M_VxmlModule_Free:
*Nov  2 14:32:51: MOD[VxmlModule_67E7E1E0_0_3462821732] ( )
regards
Patrick

RE: DTD Error
Answer
11/3/09 12:30 PM as a reply to Patrick Hartl.
Hi Patrick,

No need to modify the form item variable as it is used to store the outcome of the transfer attempt. Let that be the same as before(busy). Just include the prompt tag inbetween as follows

<form id="busy">
   <block>
             <prompt>
                       <audio src="flash:no_input.au"/>
             </prompt>
   </block>
</form>

Thanks,
Anusha.

RE: DTD Error
Answer
11/3/09 12:40 PM as a reply to Anusha Kannappan.
Hi,
 
Sorry - the same error. Could it be the IOS ?
 
Nov  3 06:43:25: //0/053981E28CD5/VXML:/vxml_start_element_handler: 
   CALL_ERROR; flash:sdc.vxml
   at line 78: Element <block> is not used according to DTD
 
regards
Patrick

RE: DTD Error
Answer
11/3/09 1:43 PM as a reply to Patrick Hartl.
Hi Patrick,
 
I had tried the simple call transfer with just the 'busy' and 'noansmwer' option with the specified modification and it worked very fine. Please send me your modified script along with the configurations and logs for analysing further.
 
Thanks,
Anusha

RE: DTD Error
Answer
11/3/09 4:14 PM as a reply to Anusha Kannappan.
Hi,

The solution is - be careful with <block> and <promt> elements in fields.
This was the error.
 
thank you very much for your help
 
Patrick

RE: DTD Error
Answer
11/3/09 6:03 PM as a reply to Patrick Hartl.
Hi Patrick,
 
I was not able to view any attachment of the script. Please let us know whether your query was addressed?
 
Thanks,
Anusha.

RE: DTD Error
Answer
11/3/09 6:09 PM as a reply to Anusha Kannappan.
Hi,
 
Here is my solution. If you have a better solution - let me know :-)
 
lg
Patrick
Attachments:

Collateral


No files available