Created by: subrahmanyam juluru on 12-03-2013 01:11:35 AM Hi All, we integrated CVP with Nuance Speech server ( Standalone Environment). The Environment is Nuance Speech Server 5.0 and Nuance Recognizer 9 Cisco CVP 8.0 and Voice Gateway Nuance was installed in Active and Standby Servers. can any body have idea how to do redundancy/load balancing of NSS in the Voice gateway? Hightly appreciate for your quick reply. Regards Juluri.
From: Cisco Developer Community Forums [mailto:cdicuser@developer.cisco.com] Sent: Tuesday, March 12, 2013 1:12 AM To: cdicuser@developer.cisco.com Subject: New Message from subrahmanyam juluru in Customer Voice Portal (CVP) - CVP - All Versions: redundancy/Load Balancing of Nuance Speech Server(NSS) 5.0
subrahmanyam juluru has created a new message in the forum "CVP - All Versions": -------------------------------------------------------------- Hi All, we integrated CVP with Nuance Speech server ( Standalone Environment). The Environment is Nuance Speech Server 5.0 and Nuance Recognizer 9 Cisco CVP 8.0 and Voice Gateway Nuance was installed in Active and Standby Servers. can any body have idea how to do redundancy/load balancing of NSS in the Voice gateway? Hightly appreciate for your quick reply. Regards Juluri.
Subject: RE: New Message from subrahmanyam juluru in Customer Voice Portal (CVP) - C Replied by: subrahmanyam juluru on 13-03-2013 02:20:59 AM Hi Hemal, we are not using Cisco Content Service Switch (CSS) in my environment. what you mentioned in the document line number 499 refers to CSS related Configurations. we dont have CSS and ICM also and it is standalone Environment. is there any why to do configure manivally in voice gateway both active and stand by Nuance Speech Servers? Regards Juluri.
Subject: RE: New Message from subrahmanyam juluru in Customer Voice Portal (CVP) - C Replied by: Paul Tindall on 13-03-2013 06:51:51 AM With MRCP version 1 you can't do anything on the gateway in CVP Standalone mode but you can select the ASR and TTS servers programmably in the application by setting the VoiceXML properties com.cisco.asr-server and com.cisco.tts-server using substitution in order to select one from your ASR/TTS server farm or point to an alternative server on failures by catching the ASR / TTS hot events. With MRCP version 2, as it's using SIP, you should be able to use the gateway ip host static DNS SRV config approach to specify alternative servers and load balance across them. Not it tried personally with SIP to MRCP servers but the principle is the same as for SIP calls to anywhere else such as the CVP server farm.
Subject: Re: New Message from subrahmanyam juluru in Customer Voice Portal (CVP) - C Replied by: Janine Graves on 18-03-2013 08:35:27 AM You can set the Vxml Properties either in the root document (as you mention) so it lasts during the entire application. Or if necessary, in the Settings tab of any Voice Element (but this will only last for the duration of that element) - so if you need to change ASR servers in the middle of an application, then you'll need to set this property in EVERY voice element's Settings tab. Look in the IOS VXML Programming Guide for the information to list in the URL. It'll match what is usually entered into the Gateway Configuration. For example: Name: com.cisco.asr-server Value: rtsp://NuanceServer/recognizer Perhaps it'll be best to do it within each Voice Element and use a variable within the value rtsp://{Data.Session.NuanceServer}/recognizer - then you can just change the value of your Session variable when necessary. On 3/18/2013 9:20 AM, Cisco Developer Community Forums wrote: subrahmanyam juluru has created a new message in the forum "CVP - All Versions": -------------------------------------------------------------- Dear David, Thanks for your reply to my question. I verified in my production setup environment and we are using the MRCP version1. as you mentioned pointing VoiceXML properties (com.cisco.asr-server for ASR Server and com.cisco.tts-server for TTS Server) through application level. I found some VoiceXML Property settings in the call studio IDE as  Application name ->Right Click->Properties->call Studio->Root Doc Settings. if this path is correct can you please guide me what are the values i need to send throush this Root Doc Settings. can yo please give more elaborate information for MRCP Version1 settings. Regards Juluri.  -- To respond to this post, please click the following link: http://developer.cisco.com/web/cvp/forums/-/message_boards/view_message/13196274 or simply reply to this email. -- Janine Graves
Subject: RE: New Message from subrahmanyam juluru in Customer Voice Portal (CVP) - C Replied by: subrahmanyam juluru on 18-03-2013 08:20:36 AM Dear David, Thanks for your reply to my question. I verified in my production setup environment and we are using the MRCP version1. as you mentioned pointing VoiceXML properties (com.cisco.asr-server for ASR Server and com.cisco.tts-server for TTS Server) through application level. I found some VoiceXML Property settings in the call studio IDE as Application name ->Right Click->Properties->call Studio->Root Doc Settings. if this path is correct can you please guide me what are the values i need to send throush this Root Doc Settings. can yo please give more elaborate information for MRCP Version1 settings. Regards Juluri.
Subject: RE: Re: New Message from subrahmanyam juluru in Customer Voice Portal (CVP) Replied by: subrahmanyam juluru on 19-03-2013 03:59:50 AM Hi Janine, This is the part of voice gateway configurations which is done for VXML Application and Nuance Speech Server. can you please verify whether this configuration will work for ASR Redudancy. ip host asr-en-us 172.23.25.41 172.23.26.41 ! ! http client cache memory pool 15000 http client cache memory file 500 no http client connection persistent http client connection timeout 60 http client connection idle timeout 10 http client response timeout 30 ivr prompt memory 15000 ! ivr asr-server rtsp://asr-en-us/recognizer ! application service new-call flash:bootstrap.vxml ! service survivability flash:survivability.tcl ! service CVPSelfService flash:CVPSelfServiceBootstrap.vxml paramspace english index 0 paramspace english language en paramspace english location flash: paramspace english prefix en ! service cvperror flash:cvperror.tcl ! ! service NdiaIvrPri flash:CVPSelfService.tcl param CVPSelfService-app NdiaIvrPri param CVPPrimaryVXMLServer 172.23.26.11 param CVPBackupVXMLServer 172.23.25.11 ! service handoff flash:handoff.tcl ! service bootstrap flash:bootstrap.tcl ! ! rtsp client timeout connect 10 rtsp client timeout message 10 mrcp client timeout connect 20 mrcp client timeout message 20 mrcp client rtpsetup enable mrcp client accept-charset-compliance vxml tree memory 500 vxml audioerror vxml version 2.0 license udi pid C3900-SPE150/K9 sn FOC15222LVG hw-module pvdm 0/0 ! ! ! dial-peer voice 3 pots service ndiaivrpri incoming called-number 102228 direct-inward-dial ! dial-peer voice 232611 voip description <<<DIAL PEER TO NDIA PRIMARY IVR APPLICATION>>> service ndiaivrpri destination-pattern 102228 session target ipv4:172.23.32.13 incoming called-number 102228 voice-class sip rel1xx disable dtmf-relay rtp-nte h245-signal h245-alphanumeric codec g711ulaw no vad ! Regards Juluri.
Subject: Re: New Message from subrahmanyam juluru in Customer Voice Portal (CVP) - C Replied by: Janine Graves on 19-03-2013 07:51:09 AM I'm not a gateway person, but I think you'd want: ip host asr-en-us 172.23.25.41 ip host asr-en-us-backup 172.23.26.41 The second entry with "-backup" appended is used automatically as a backup when working with ICM Microapps. So, worthwhile to have it, just in case. With Studio, you have to manually manage switching to the backup (I think!) - so in the Studio application, you could have a Session Variable called NuanceServer And assign the value to either asr-en-us or asr-en-us-backup as necessary. -- Janine Graves
Subject: RE: Re: New Message from subrahmanyam juluru in Customer Voice Portal (CVP) Replied by: subrahmanyam juluru on 19-03-2013 09:38:56 AM Dear Janine, I read one topic in Cisco VoiceXML Programmer’s guide (Cisco IOS Release 15.0 (1) M) External Server Failure. What I feel that this concept might be helpful for me redundancy/load balancing of Nuance Speech Server. Can you please verify this approach will useful to me? If it will work out for my environment can you please help me out how to develop server side application and how to catch the VoiceXML Error Event in Java Servlet. Exactly what my production environment problem is if primary Nuance Speech server will down then call will process through secondary Nuance Speech server without any interrupt to the customer. For your reference I copied same content from VoiceXML Programmer’s guide. External Server Failure In a Cisco VoiceXML solution, the Cisco voice gateway interacts with external media servers for automatic speech recognition, text-to-speech, and streamed recording. If an external media server fails to work, a backup server is desirable to take over the function of the failed media server. A typical approach is to use a content switch that is transparent to the VoiceXML application developer. However, this approach may not be very desirable because of the cost increase. Cisco VoiceXML provides an alternate solution to external server failure where the application developer can handle server failure directly through the script. A backup external media server must be provided by the third party server vendor, and it must be initially configured on the voice gateway. In the event of a server failure, the VoiceXML interpreter throws an error event which is caught by the VoiceXML application, and the information is passed to a server side application. The server side application is a web application written as a Java servlet or a Hypertext Preprocessor (PHP) script. For example, an error.noresource event is thrown if the external ASR server fails to operate. The VoiceXML script passes this error event information to a server side web application using the <submit> element. The server side application assigns a new backup media server using the <property> element in all subsequent VoiceXML pages that are generated dynamically. The original VoiceXML document is regenerated and returned to the VoiceXML interpreter for execution. The regenerated VoiceXML document is similar to the original document with the exception of pointing to the new backup media server instead of the failed server. Note In Cisco IOS Release 12.4(11) T and later releases, the error.noresource event is thrown if an external ASR or TTS server fails to operate. The old event com.cisco.media.resource.unavailable is supported for backward compatibility. Regards Juluri.
Subject: RE: Re: New Message from subrahmanyam juluru in Customer Voice Portal (CVP) Replied by: Janine Graves on 19-03-2013 10:37:06 AM You can manage this all in Studio. But this is all the help I can provide on this. 1. Create a session variable named NuanceServer and assign 'asr-en-us' 2. In each voice element that collects caller input, do the following: a) create Session variable named LastElement, assign it the name of the element you're inside of, create Before, press Add b) in the Settings tab, set the VXML Property name: com.cisco.asr-server value:{Data.Session.NuanceServer} c) create a PageEntry element called Goto_<name of the voice element> (eg, Goto_MainMenu) d) connect the PageEntry to the voice element. 3. Create a HotEvent and catch to event: error.noresource 4. Connect to a decision element named checkServer. a) This element checks if the value of Session variable NuanceServer equals as string asr-en-us then exit state SetBackup. Otherwise exit state:SecondError b) Connect the SecondError exit state to tell the caller there's an error and return the call to ICM (or transfer to an agent). c) Connect the SetBackup exit state to an App Modifier named setBackupServer. In its Data tab, create a session variable named NuanceServer and assign 'asr-en-us-backup' 5. Connect the setBackupServer element to a decision element (CheckLastElement) that has one exit state for each possible voice element you need to go back to. For example, if Session Data LastElement equals as String Constant String MainMenu, the return exit state Main Menu.
Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: