The CVP server hostname should not contain any hyphen
Arrange for CVP license
Regional and language options should be set to English
Text services and input languags options should be set to English (United States) - US
Only one Ethernet connection should be active on the CVP machine
Install Network Monitor Tools, Simple Network Management Protocol, WMI SNMP Probe Provider, and WMI Windows Installer Provider
CVP Call Server, Operation Console and Media Server Installation
In our laboratory deployment, CVP Call Server, Operation Console and Media Server are collocated on the same machine.
Follow the screen shots below to complete the installation
Select the options that you want to install
Add the name and other related information
Enable the services automatically after the installation is done
For this lab installation support tools are disabled but in production deployment, they are highly recommended and desired
CVP Component Configuration
There are several components that needs to be configured before CVP can operate properly. They are
CVP Medial Server Configuration
CVP Call Server Configuration
This document is not including CUPS (For SIP Proxy functionality), TTS and VXML Server.
CVP Media Server Configuration
This setup used Microsoft IIS as the web server to host the media files.
Enable read permission to the directory where .wav files are saved.
Make sure anynymous access is enabled and the built-in IIS User is assigned.
CVP Call Server Configuration
Before configuring CVP call server, it should be important to know little bit about the setup and SIP call flows. In this setup since we are not using CUPS, we will use Call Flow Model#1. Notice that these call flows are valid for Type 10 VRU only. Also notice that cid is actually correlation id that is a numerical value.
Call Flow Model#1 without CUPS
PSTN Originated Calls
CUCCE Pilot Number Caller dials 541-764-1400 from PSTN
Processing at Ingress GW Ingress gateway sends this call to CVP Call Server
Processing at CVP CVP will send the call to CUICM via a static SIP route as a new route request
Routing Client CVP is the routing client
Label Returned to CVP by CUICM 541-764-1401+cid
Processing at CVP CVP Call Server sends this label 541-764-1401+cid to VXML-GW
Processing at VXML-GW VXML-GW has an incoming dial-peer configured that invokes the bootstrap tcl service. Now a sequence of VXML communications happen between the VXML GW and CVP IVR Service This communication happens via MicroAppas.
Processing at CVP At this point CVP sends the same label 541-764-1401+cid to CUICM
Processing at CUICM If agent is available then CUICM sends a new label which is basically the Agent’s IP Phone extension to CVP to informs thatVXML-GW resources are engaged
Processing at CVP CVP has a static SIP route configured that would send call to agent’s ip phone
CUCM Originated Calls
CUCCE Pilot Number IP Phone caller dials CTI route point number 541-764-3000 Routing Client CUCM is the routing client Label Returned to CUCM by CUICM 541-764-1402+cid
Processing at CUCM CUCM receives ths label and send the call to CVP Call Server Processing at CVP CVP receives this label and send it to CUICM as a new route-request.
Routing Client Notice that now CVP is the routing-client and controls the Call States. CUCM is out from the picture.
Processing at CUICM CUICM receives its own generated label again and knows that loop is complete. And then generates a new label 541-764-1401+cid and sends to CVP
Processing at CVP Call Server send this label 541-764-1401+cid to VXML-GW
Processing at VXML-GW VXML-GW has an incoming dial-peer configured that basically invokes the bootstrap tcl service Now a sequence of VXML communications happen between the VXML GW and CVP IVR Service. This communication is called MicroAppas.
Processing at CVP At this point CVP sends the same label 541-764-1401+cid to CUICM to inform thatVXML-GW resources are engaged
So once you understand the high level overview of the call flow, it will be easy to understand the static routes that needs to be added to CVP Call Server.
Local SIP Static Routes in CVP
5417641400 CUICM: 192.168.93.130 Route request to CUICM
91919191 VXML-GW:192.168.93.1 To play ringtone
92929292 VXML-GW:192.168.93.1 To play error tone
5417641401 VXML-GW:192.168.93.1 Label+cid sent to VXML-GW to invoke bootstrap service
5417644… CUCM:192.168.93.100 For CVP to dial agent ip phone extension
CVP Operation Console Server
CVP Operation Console Server provides web based front end to configure different components in CVP environment.
CVP Call Server General Settings
CVP Call Server ICM Configuration
CVP Call Server SIP Configuration
Default information was used and no fields were modified in the following picture
CVP Call Server Local SIP Static Routes
VXML and Ingress Gateway Configuration
In this setup, same router is used as an ingress as well as VXML gateway. Notice that due to VXML compatibility issues, all Cisco IOS versions are not approved. In this lab setup c3725-adventerprisek9-mz.124-15.T1.bin is used.
cvp-vxml-gw#sh run ! hostname cvp-vxml-gw boot system flash flash:c3725-adventerprisek9-mz.124-15.T1.bin enable password lab ip cef ! voice service voip allow-connections h323 to h323 allow-connections h323 to sip allow-connections sip to h323 allow-connections sip to sip signaling forward unconditional h323 emptycapability h225 id-passthru h245 passthru tcsnonstd-passthru sip bind control source-interface FastEthernet0/0.93 bind media source-interface FastEthernet0/0.93 rel1xx disable min-se 360 header-passing ! voice class codec 1 codec preference 1 g711ulaw codec preference 2 g711alaw codec preference 3 g729r8 ! voice class h323 1 h225 timeout setup 3 ! application service new-call flash:/bootstrap.vxml paramspace english language en paramspace english index 0 paramspace english location flash: paramspace english prefix en ! service cvp-survivability flash:survivability.tcl paramspace english index 0 paramspace english language en param alert-timeout 20 paramspace english location flash paramspace callfeature med-inact-det enable param setup-timeout 7 paramspace english prefix en ! service ringtone flash:ringtone.tcl paramspace english index 0 paramspace english language en paramspace english location flash paramspace english prefix en ! service recovery flash:/recovery.vxml paramspace english language en paramspace english index 0 paramspace english location flash: paramspace english prefix en ! service cvperror flash:cvperror.tcl paramspace english language en paramspace english index 0 paramspace english location flash paramspace english prefix en ! service takeback flash:survivability.tcl paramspace english language en paramspace english index 0 paramspace english location flash paramspace english prefix en ! service bootstrap flash:/bootstrap.tcl param gtd_format1 ascii param gtd-field0 noa paramspace english language en param gtd-attribute0 rgn paramspace english index 0 param gtd-field1 dat paramspace english location flash param gtp-instance0 1 param gtd-attribute1 fdc paramspace english prefix en ! ! vxml version 2.0 ! controller T1 ½ description Incoming and outgoing T1 PRI Trunk framing esf linecode b8zs pri-group timeslots 1-24 ! interface FastEthernet0/0 no ip address duplex auto speed auto ! interface FastEthernet0/0.1 description Admin VLAN encapsulation dot1Q 1 native ip address 18.104.22.168 255.255.255.0 ! interface FastEthernet0/0.93 description Voice, Data and Server VLAN encapsulation dot1Q 93 ip address 192.168.93.1 255.255.255.0 h323-gateway voip interface h323-gateway voip bind srcaddr 192.168.93.1 ! interface Serial1/2:23 no ip address encapsulation hdlc isdn switch-type primary-ni isdn incoming-voice voice no cdp enable ! router ospf 7 log-adjacency-changes network 22.214.171.124 0.0.0.255 area 0 network 192.168.93.0 0.0.0.255 area 0 ! ip http server no ip http secure-server ! voice-port 1/2:23 ! dial-peer voice 1400 voip description TO CVP CALLSERVER preference 1 max-conn 2 destination-pattern 5417641400 session protocol sipv2 session target ipv4:192.168.93.3 dtmf-relay rtp-nte codec g711ulaw ip qos dscp cs3 signaling no vad ! dial-peer voice 1401 voip description From CVP Call Server. To match label generated for CVP RC service bootstrap session protocol sipv2 incoming called-number 5417641401T dtmf-relay rtp-nte codec g711ulaw ip qos dscp cs3 signaling no vad ! dial-peer voice 1 pots incoming called-number . direct-inward-dial ! dial-peer voice 3000 voip description PSTN->CCM destination-pattern 5417644... session protocol sipv2 session target ipv4:192.168.93.100 dtmf-relay rtp-nte h245-signal h245-alphanumeric codec g711ulaw ip qos dscp cs3 signaling no vad ! dial-peer voice 2 pots description calls from PSTN to CUCCE pilot number will match this first service cvp-survivability incoming called-number 5417641400 direct-inward-dial ! dial-peer voice 9292 voip service cvperror session protocol sipv2 incoming called-number 9292T dtmf-relay rtp-nte h245-signal h245-alphanumeric codec g711ulaw no vad ! dial-peer voice 9191 voip service ringtone session protocol sipv2 incoming called-number 9191T dtmf-relay rtp-nte h245-signal h245-alphanumeric codec g711ulaw no vad ! line vty 0 4 password lab login ! cvp-vxml-gw#
CVP VXML Server
Untill this point we have configured CUICM and CVP in generatl. There is another component called VXML Server that play vital role in the solution, although not required.
Few things to remember
Voice Browser is also called VXML browser
VXML browser is basically the Cisco IOS VXML Gateway
VXML gateway browser pages from CVP VXML server (Like FireFox browser browse web pages from an Apache web server)
Every communication process between the VXML browser and Voice Application has to be initiated by the VXML browser as a request to the VXML server.