<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <title>RE: New Message from GEOFFREY THOMPSON in Customer Voice Portal (CVP) - Gen</title>
  <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_thread?p_l_id=&amp;threadId=12814655" />
  <subtitle>RE: New Message from GEOFFREY THOMPSON in Customer Voice Portal (CVP) - Gen</subtitle>
  <id>http://developer.cisco.com/c/message_boards/find_thread?p_l_id=&amp;threadId=12814655</id>
  <updated>2013-05-19T12:44:13Z</updated>
  <dc:date>2013-05-19T12:44:13Z</dc:date>
  <entry>
    <title>RE: New Message from Gerard O'Rourke in Customer Voice Portal (CVP) - Gener</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=14200362" />
    <author>
      <name>Hemal Mehta</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=14200362</id>
    <updated>2013-04-12T12:29:45Z</updated>
    <published>2013-04-12T12:29:45Z</published>
    <summary type="html">If you have only one server then there are many ways around it.  For example if that one server is not available, you need to be able to get the call center open shut/status by manually passing the indicator from ICM or within the studio you can manually set the indicator or read it from a flat file on a different server.
Hemal
From: Cisco Developer Community Forums [mailto:cdicuser@developer.cisco.com]
Sent: Thursday, April 11, 2013 12:20 PM
To: cdicuser@developer.cisco.com
Subject: New Message from Gerard O'Rourke in Customer Voice Portal (CVP) - General Discussion - All Versions: RE: CVP open/close application using database lookup

Gerard O'Rourke has created a new message in the forum "General Discussion - All Versions": -------------------------------------------------------------- Very intersting to see web server approach &amp; using ICM global variables.
Bringing the discussion back to using SQL databases.
If CVP Studio is using an SQL database to find out if the Contact Center is open / closed.
Does anyone have recommendations around approaches around resilence of the SQL database if this type of application?
i.e. If you don't have access to use an SQL cluster (which is resilent) and you are connected to a single SQL server.
If that single SQL server is down / out of service, All calls into your contact center cannot determine if the contact center is open or closed (critical issue).
Since this is so fudamental to the working of the contact center, (knowing how to route the call), is the recommended approach if using a single SQL database (no SQL server resilience) and if not able to connect to SQL database, just to set the Status to Open?
Gerry
--
To respond to this post, please click the following link: http://developer.cisco.com/web/cvp/community/-/message_boards/view_message/14168902 or simply reply to this email.</summary>
    <dc:creator>Hemal Mehta</dc:creator>
    <dc:date>2013-04-12T12:29:45Z</dc:date>
  </entry>
  <entry>
    <title>RE: CVP open/close application using database lookup</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=14168902" />
    <author>
      <name>Gerard O&amp;#039;Rourke</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=14168902</id>
    <updated>2013-04-11T17:19:27Z</updated>
    <published>2013-04-11T17:19:27Z</published>
    <summary type="html">Very intersting to see web server approach &amp; using ICM global variables.
Bringing the discussion back to using SQL databases.
If CVP Studio is using an SQL database to find out if the Contact Center is open / closed.
Does anyone have recommendations around approaches around resilence of the SQL database if this type of application?
i.e. If you don't have access to use an SQL cluster (which is resilent) and you are connected to a single SQL server.
If that single SQL server is down / out of service, All calls into your contact center cannot determine if the contact center is open or closed (critical issue).
Since this is so fudamental to the working of the contact center, (knowing how to route the call), is the recommended approach if using a single SQL database (no SQL server resilience) and if not able to connect to SQL database, just to set the Status to Open?
Gerry</summary>
    <dc:creator>Gerard O&amp;#039;Rourke</dc:creator>
    <dc:date>2013-04-11T17:19:27Z</dc:date>
  </entry>
  <entry>
    <title>RE: Re: New Message from Paul Tindall in Customer Voice Portal (CVP) - Gene</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=13445211" />
    <author>
      <name>Paul Tindall</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=13445211</id>
    <updated>2013-03-23T18:05:18Z</updated>
    <published>2013-03-23T18:05:18Z</published>
    <summary type="html">[quote=Janine Graves]Paul, Will you be presenting this at the June Cisco Live in Orlando? -- Janine Graves[/quote]

No, I'm not scheduled to present a technical breakout at the US event.</summary>
    <dc:creator>Paul Tindall</dc:creator>
    <dc:date>2013-03-23T18:05:18Z</dc:date>
  </entry>
  <entry>
    <title>Re: New Message from Paul Tindall in Customer Voice Portal (CVP) - General</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=13392829" />
    <author>
      <name>Janine Graves</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=13392829</id>
    <updated>2013-03-22T14:28:35Z</updated>
    <published>2013-03-22T14:28:35Z</published>
    <summary type="html">Paul, Will you be presenting this at the June Cisco Live in Orlando? -- Janine Graves</summary>
    <dc:creator>Janine Graves</dc:creator>
    <dc:date>2013-03-22T14:28:35Z</dc:date>
  </entry>
  <entry>
    <title>RE: Re: New Message from Sidney Orret in Customer Voice Portal (CVP) - Gene</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=13389698" />
    <author>
      <name>Hemal Mehta</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=13389698</id>
    <updated>2013-03-22T13:36:05Z</updated>
    <published>2013-03-22T13:36:05Z</published>
    <summary type="html">[quote=Paul Tindall]
Janine Graves:

One of you smart guys should create and sell an app on the Apple or Droid App Store to do this! I'd totally recommend it to my students. -- Janine Graves


On the topic of pushing the boundaries and using other HTTP clients with CVP VocieXML Server, I've attached a few slides you may find of interest.[/quote]
 
This is good stuff Paul. Thanks.
Hemal</summary>
    <dc:creator>Hemal Mehta</dc:creator>
    <dc:date>2013-03-22T13:36:05Z</dc:date>
  </entry>
  <entry>
    <title>RE: New Message from Gerard O'Rourke in Customer Voice Portal (CVP) - Gener</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=13386670" />
    <author>
      <name>GEOFFREY THOMPSON</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=13386670</id>
    <updated>2013-03-22T12:11:10Z</updated>
    <published>2013-03-22T12:11:10Z</published>
    <summary type="html">&gt;&gt;&gt;&gt;ICM DB lookup is not supported in Packaged CCE 9.0

Thanks for that.

&gt;&gt;&gt;&gt;&gt;So my impression is that Cisco are moving to remove the use of DB lookup in ICM in the future

I can’t imagine they would do that. Hundreds of contact centers around the world would break.

At one of my bigger customers I had implemented a CVP Studio app (with no audio) to do a database dip on every incoming call using a custom Java element calling a somewhat complex stored procedure. Callers were typically well known to the system and ANI hit rate was over 70%.

This worked fine in North America and Europe for a number of years. When the system was extended to branch offices in Asia (CVP servers in Europe), the response time was terrible because of the VXML back and forth to execute the CVP VXML database application.

Fortunately, the requirements for the complex stored procedure had never been acted upon and I was able to drop it in favour of ICM DB Lookup. Performance returned to what it should be over those long distances.

App Gateways and DB Lookup are fundamental, in my opinion.

Regards,
Geoff</summary>
    <dc:creator>GEOFFREY THOMPSON</dc:creator>
    <dc:date>2013-03-22T12:11:10Z</dc:date>
  </entry>
  <entry>
    <title>RE: New Message from Asher Schweigart in Customer Voice Portal (CVP) - Gene</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=13381974" />
    <author>
      <name>Gerard O&amp;#039;Rourke</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=13381974</id>
    <updated>2013-03-22T10:13:59Z</updated>
    <published>2013-03-22T10:13:59Z</published>
    <summary type="html">&gt; No reason you couldn't do the DB lookup in ICM
ICM DB lookup is not supported in Packaged CCE 9.0
Its also required offically to go through A2Q if you need to enable dblookup in ICM/UCCE.
So my impression is that Cisco are moving to remove the use of DB lookup in ICM in the future and so using CVP for lookups would seem to way forward?
Gerry
 
 </summary>
    <dc:creator>Gerard O&amp;#039;Rourke</dc:creator>
    <dc:date>2013-03-22T10:13:59Z</dc:date>
  </entry>
  <entry>
    <title>RE: Re: New Message from Sidney Orret in Customer Voice Portal (CVP) - Gene</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=13369912" />
    <author>
      <name>Bill Webb</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=13369912</id>
    <updated>2013-03-22T02:09:22Z</updated>
    <published>2013-03-22T02:09:22Z</published>
    <summary type="html">Thanks Paul!
As always, great info relevant to this thread - interesting stuff in that PDF!</summary>
    <dc:creator>Bill Webb</dc:creator>
    <dc:date>2013-03-22T02:09:22Z</dc:date>
  </entry>
  <entry>
    <title>RE: Re: New Message from Sidney Orret in Customer Voice Portal (CVP) - Gene</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=13363900" />
    <author>
      <name>Paul Tindall</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=13363900</id>
    <updated>2013-03-21T22:34:11Z</updated>
    <published>2013-03-21T22:34:11Z</published>
    <summary type="html">[quote=Janine Graves]One of you smart guys should create and sell an app on the Apple or Droid App Store to do this! I'd totally recommend it to my students. -- Janine Graves[/quote]
On the topic of pushing the boundaries and using other HTTP clients with CVP VocieXML Server, I've attached a few slides you may find of interest.</summary>
    <dc:creator>Paul Tindall</dc:creator>
    <dc:date>2013-03-21T22:34:11Z</dc:date>
  </entry>
  <entry>
    <title>RE: New Message from Sidney Orret in Customer Voice Portal (CVP) - General</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=13364876" />
    <author>
      <name>GEOFFREY THOMPSON</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=13364876</id>
    <updated>2013-03-21T22:22:35Z</updated>
    <published>2013-03-21T22:22:35Z</published>
    <summary type="html">&gt;&gt;&gt;What ICM doesn't do that well is interface with databases (other than SQL), webservices, etc.

No disagreement at all.

&gt;&gt;&gt;Also I use VXML apps for my queue treatments,

I would never do that.

&gt;&gt;&gt;menus, collect digits, etc, etc rather than having 100's of ICM Set Variable and Run Ext Script nodes. Bottom line, I try to avoid as much as possible the use of CVP microapps.

I almost always do those simple things with microapps. Their performance exceeds Studio apps.

Regards,
Geoff</summary>
    <dc:creator>GEOFFREY THOMPSON</dc:creator>
    <dc:date>2013-03-21T22:22:35Z</dc:date>
  </entry>
  <entry>
    <title>RE: Re: New Message from Bill Webb in Customer Voice Portal (CVP) - General</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=13363607" />
    <author>
      <name>Paul Tindall</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=13363607</id>
    <updated>2013-03-21T22:16:31Z</updated>
    <published>2013-03-21T22:16:31Z</published>
    <summary type="html">[quote=Janine Graves]Bill, you also want these global variables to be created on a restart of 
VxmlServer. So, you'd need to kick off the URL request every time 
VxmlServer restarts. How do you do that?[/quote]
You can use a dummy minimalist application with just start and hangup elements in it, define an application start class for it and load your global data from back-end DB, file etc when the application is loaded or updated.   If you prefix the dummy application with an underscore, it will load first as it happens alphabetically.</summary>
    <dc:creator>Paul Tindall</dc:creator>
    <dc:date>2013-03-21T22:16:31Z</dc:date>
  </entry>
  <entry>
    <title>RE: New Message from Asher Schweigart in Customer Voice Portal (CVP) - Gene</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=13363427" />
    <author>
      <name>Sidney Orret</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=13363427</id>
    <updated>2013-03-21T22:07:53Z</updated>
    <published>2013-03-21T22:07:53Z</published>
    <summary type="html">Well as it is routing simple or complex is always on the ICM side. That is what ICM does well. 
 
What ICM doesn't do that well is interface with databases (other than SQL), webservices, etc.  Also I use VXML apps for my queue treatments, menus, collect digits, etc, etc rather than having 100's of ICM Set Variable and Run Ext Script nodes. Bottom line, I try to avoid as much as possible the use of CVP microapps.
 
[quote=Asher Schweigart]
GEOFFREY THOMPSON:

I would also hazard to guess that while you may have complex CVP Studio applications, you probably have simpler routing requirements than I have. No complex ICM systems with 20-40 PGs...


That is true. While I have about 30 different call centers, I only have 2 PGs right now, and everything is local on campus. Makes ICM management fairly simple, and little to no cost for going from ICM to CVP
 
 [/quote]</summary>
    <dc:creator>Sidney Orret</dc:creator>
    <dc:date>2013-03-21T22:07:53Z</dc:date>
  </entry>
  <entry>
    <title>RE: Re: New Message from Bill Webb in Customer Voice Portal (CVP) - General</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=13363196" />
    <author>
      <name>Paul Tindall</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=13363196</id>
    <updated>2013-03-21T22:00:34Z</updated>
    <published>2013-03-21T22:00:34Z</published>
    <summary type="html">Regarding the 1 minute session timeout, just invoke a custom element and invalidate the session to end it immediately.</summary>
    <dc:creator>Paul Tindall</dc:creator>
    <dc:date>2013-03-21T22:00:34Z</dc:date>
  </entry>
  <entry>
    <title>RE: New Message from Asher Schweigart in Customer Voice Portal (CVP) - Gene</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=13364418" />
    <author>
      <name>Asher Schweigart</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=13364418</id>
    <updated>2013-03-21T21:57:32Z</updated>
    <published>2013-03-21T21:57:32Z</published>
    <summary type="html">[quote=GEOFFREY THOMPSON]I would also hazard to guess that while you may have complex CVP Studio applications, you probably have simpler routing requirements than I have. No complex ICM systems with 20-40 PGs...[/quote]
That is true. While I have about 30 different call centers, I only have 2 PGs right now, and everything is local on campus. Makes ICM management fairly simple, and little to no cost for going from ICM to CVP
 
 </summary>
    <dc:creator>Asher Schweigart</dc:creator>
    <dc:date>2013-03-21T21:57:32Z</dc:date>
  </entry>
  <entry>
    <title>RE: New Message from Asher Schweigart in Customer Voice Portal (CVP) - Gene</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=13364348" />
    <author>
      <name>Asher Schweigart</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=13364348</id>
    <updated>2013-03-21T21:53:53Z</updated>
    <published>2013-03-21T21:53:53Z</published>
    <summary type="html">For those reading over email, the forum borked my post's formating. Luckily I had it typed up in a document that I pasted from, so I was able to edit it, so if you want to see it with proper formatting, you'll have to visit the forum on the web.</summary>
    <dc:creator>Asher Schweigart</dc:creator>
    <dc:date>2013-03-21T21:53:53Z</dc:date>
  </entry>
  <entry>
    <title>RE: New Message from Asher Schweigart in Customer Voice Portal (CVP) - Gene</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=13364345" />
    <author>
      <name>GEOFFREY THOMPSON</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=13364345</id>
    <updated>2013-03-21T21:53:35Z</updated>
    <published>2013-03-21T21:53:35Z</published>
    <summary type="html">Don’t you hate it when the forum software screws up the formatting so much that it’s virtually unreadable?

Regards,
Geoff</summary>
    <dc:creator>GEOFFREY THOMPSON</dc:creator>
    <dc:date>2013-03-21T21:53:35Z</dc:date>
  </entry>
  <entry>
    <title>RE: New Message from Asher Schweigart in Customer Voice Portal (CVP) - Gene</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=13364308" />
    <author>
      <name>Asher Schweigart</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=13364308</id>
    <updated>2013-03-21T21:51:13Z</updated>
    <published>2013-03-21T21:49:42Z</published>
    <summary type="html">[quote=Mark Applebee]Asher,
Can you email the schema and code to [deleted]?
[/quote]
 
 
 
I'll post it here so anyone else who is interested can take advantage of it as well.
The sql for the tables is attached.
 
 
 
Let me describe how it works, and then I will detail the tables.
 
Conditions are broken down into groups. This is not defined in the databases, but it is the assumption they work under.
 
0-31 - Informational conditions. More than one can be scheduled at once, and in my scripts, each one that is active cause a message of the corresponding number to be played, usually after the welcome message.
32-63 - Weekly hours Schedules. Currently we use 4, but more could be defined. 32 is the default, if no condition is scheduled that is 33-63, the view assumes the call center is using the default(32) schedule. When the call center is open, the current active schedule is the active condition returned in the database.
64-127 - Closed holiday. Script treats the call center as closed, but plays a different closed message according to the number.
128-191 - Other closed conditions. Call center is treated as closed, and message corresponding to number is played.
192-224 - open condition. Currently, we just use 200 - Open, and since this group of numbers is higher than the closed conditions, this forces the call center open even if the schedule says otherwise. This should not be used in the weekly schedule as the return condition for when the call center is open, since you won't be able to override it with a closed holiday/weather condtion. In the weekly schedule, when the call center is open, the condition returned should be the same as the schedule number (32-63).
 
255 - Closed abnormal. In the script, 200 is treated as open, even if the schedule says the call center is closed. 255 is a special condition we use for the queue loop. We check every 1-2 minutes to see if the call center is under this condition, and if it is, we play a special message to the caller, telling the to call back later, and dequeue the call. This is used for fire alarms, powere outages, etc.
 
The call center managers have the ability to set temporary conditions through a web interface. These conditions are set for a specific starting &amp; ending date &amp; time. Conditions ovverride each other based on the number. The hours for a call center can be set through a web interface too, but we have not set that up yet. The table for the weekly schedules is UM.definedSchedules. FK_schedule determines the schedule the row is for, and fk_returnCondition determines what condition the call center is under for that time. Only open conditions have to be scheduled, the view that we use later assumes that any undefined time is a closed time. Each row has a start &amp; end time, but is only used for the days that are marked as true in the sun-sat columns. Here would be an example to have a default schedule of open 8-5 M-F, 10-6 on sat, and closed for a meeting on Wed 10-11:
 
Row 1:
    FK_schedule: 32
    FK_returnCondtion: 32
    startTime: 08:00:00
    endTime: 17:00:00
    sun: false
    mon: true
    tue: true
    wed: true
    thu: true
    fri: true
    sat: false
Row 2:  
    FK_schedule: 32
    FK_returnCondtion: 32
    startTime: 10:00:00
    endTime: 18:00:00
    sun: false
    mon: false
    tue: false
    wed: false
    thu: false
    fri: false
    sat: true
Row 3:
    FK_schedule: 32
    FK_returnCondtion: 130
    startTime: 10:00:00
    endTime: 11:00:00
    sun: false
    mon: false
    tue: false
    wed: true
    thu: false
    fri: false
    sat: false
    
Note that conditions override each other based on the number, so even though condition 32 (open) is set as FK_returnCondition from 0800-1700, it is overriden on wednesday from 1000-1100 by the higher numbered condition 130.
    
If you use multiple schedules, to activate a different one than the default one, the call center managers can activate a particular schedule using the web interface for temporary scheduled conditions. If you wanted to activate Semester Hours (40) from september through december, just schedule that conditiion for that period. The row would get inserted into UM.scheduledConditions, and would look something like this:
    FK_condition: 40
    startDateTime: 2013-09-01:00:00:00
    endDateTime: 2013-12-31:23:59:59
The same number higharchy applies here too. If you scheduled Semester (40) hours from september to december, but scheduled break (48) hours for two weeks at the end of october, you would not have to leave a gap in the Semester (40) hours, because Break (48) will override it during that period.
 
If the call center was closed unexpectedly, such as for bad weather, you would use the same web interface, jsut with a shorter time. Say tomorrow we were closed until 2pm due to bad weather:
    FK_condition: 146
    startDateTime: 2013-03-22:8:00:00
    endDateTime: 2013-03-22:14:00:00
 
These condition numbers could be changed, especially for the closed conditions. Although if you change the range of info conditons (0-31) or defined schedules (32-63), the views will have to be modified. 
 
 
Here's a list of the tables and views:
 
Tables:
 
UM.callCenter - simply a list of call center names and pkids.
 
UM.definedConditions - a list of the different conditions that a call center could be under. This table is used in a frontend interface, it is not needed for the backend work, but it is helpful to have a list of all the conditions that a call center could be under.
 
UM.definedSchedules - This is where you set the weekly schedule for the call center.
 
UM.scheduledConditions - This is what the web interface will write to when managers activate different conditions (through a stored procedure I will list later)
 
UM.updateLog - When a change to UM.scheduledConditions is made through the web interface, this table is updated with information about who and when the update was made. This is all handled automatically through the stored procedure.
 
Views:
 
UM.ActiveConditionsView - This lists the current active contion and active schedule for each call center. The active conditon is listed so that we can use that to determine what hours of operation message to play. For example, if the call center was under activeCondition 112 (Christmas), and active schedule 40 (Semester hours), we would tell the caller that the call center is closed for Christmas in 112.wav, and tell them the normal semester hours in 40.wav
 
UM.InformationalCondtionsView - One row for each Informational Condition that is active for each call center. This is used to play messages to the caller, usually after the welcome message. In the script, the view is queried based on the current call center's pkid, and then the returned rows are looped throug and the messages played. Again, I name the files the same as the conditions, so if High Call Volume (16), and Options have changed (24) were active, after the welcome.wav file, 16.wav and then 24.wav would be played.
 
Stored procedures:
 
UM.newScheduledCondtion - This is used by the web interface to update the UM.scheduledCondtion table. Variables passed in are callCenter (pkid), condition (id number, 0-255), start &amp; end datetime, and user&amp; source, which are recorded in UM.updateLog, so that if necessary we can go back and see who added, deleted, or modified the scheduled conditions.
 
UM.updateScheduledCondition - Same as newScheduledCondition, except the existing rowid is passed in as well.
 
UM.deleteScheduledConditiom - Same as updateScheduledCondition, except start &amp; end datetime are not needed.
 
 
I know this looks rather complex, but once it is setup it is very simple to manage, and because of it I never have to modify a script because a call center is changing it's hours, or they want a special message played for a few days at the beginning of a call.
 
 
Once it is all setup, you can find out what the condition of the call center is in your CVP script with this query:
 
SELECT 
    activeCondtion,
    activeScedule
FROM
    [dbo].[UM.ActiveConditionsView]
WHERE
    callCenter = {data.Session.callCenterPkid}
    
Then, use an if statement with the following exit paths based on the returned activeCondition:
    32-63 - Schedules (Open)
    64-127 - Holidays (Closed)
    128-191 - Closed (Closed)
    192-224 - Open (Open)
    255 - Closed Abnormal (Closed)
    
Thanks for reading! I'll do my best to answer any questions about this. </summary>
    <dc:creator>Asher Schweigart</dc:creator>
    <dc:date>2013-03-21T21:49:42Z</dc:date>
  </entry>
  <entry>
    <title>RE: New Message from Asher Schweigart in Customer Voice Portal (CVP) - Gene</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=13362736" />
    <author>
      <name>GEOFFREY THOMPSON</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=13362736</id>
    <updated>2013-03-21T21:28:09Z</updated>
    <published>2013-03-21T21:28:09Z</published>
    <summary type="html">&gt;&gt;&gt;&gt;I guess it’s just a matter of preference. It seems like those who have been using UCCE for a while have stuck to ICM for the bulk of their coding, and those of us newer to it have gravitated to CVP for most of the coding

I would say that’s mostly true. I grew up loving Script Editor in Monitor mode. ;-)

I would also hazard to guess that while you may have complex CVP Studio applications, you probably have simpler routing requirements than I have. No complex ICM systems with 20-40 PGs, multiple PG translation routing, integration of Application Gateways, use of Enterprise Skill Groups, Queue to Agent with overflow, Precision Routing, integration of EIM and WIM etc.

There are also some performance penalties doing things in CVP VXML that you can do in ICM when gateways are a very long way from CVP servers.

Regards,
Geoff</summary>
    <dc:creator>GEOFFREY THOMPSON</dc:creator>
    <dc:date>2013-03-21T21:28:09Z</dc:date>
  </entry>
  <entry>
    <title>RE: CVP open/close application using database lookup</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=13361355" />
    <author>
      <name>Hemal Mehta</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=13361355</id>
    <updated>2013-03-21T21:04:11Z</updated>
    <published>2013-03-21T21:04:11Z</published>
    <summary type="html">For app to be controlled by Web, I would def do it in CVP.  CVP because of underlying java has amazing integration with literally anything and
the most complex backend systems.
The URL suggestion by Bill works well too.</summary>
    <dc:creator>Hemal Mehta</dc:creator>
    <dc:date>2013-03-21T21:04:11Z</dc:date>
  </entry>
  <entry>
    <title>RE: New Message from GEOFFREY THOMPSON in Customer Voice Portal (CVP) - Gen</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=13362105" />
    <author>
      <name>Asher Schweigart</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=13362105</id>
    <updated>2013-03-21T20:56:09Z</updated>
    <published>2013-03-21T20:56:09Z</published>
    <summary type="html">I guess it’s just a matter of preference. It seems like those who have been using UCCE for a while have stuck to ICM for the bulk of their coding, and those of us newer to it have gravitated to CVP for most of the coding.</summary>
    <dc:creator>Asher Schweigart</dc:creator>
    <dc:date>2013-03-21T20:56:09Z</dc:date>
  </entry>
</feed>

