<?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>CVP - All Versions</title>
  <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_category?p_l_id=&amp;mbCategoryId=1056972" />
  <subtitle />
  <id>http://developer.cisco.com/c/message_boards/find_category?p_l_id=&amp;mbCategoryId=1056972</id>
  <updated>2013-06-18T23:55:36Z</updated>
  <dc:date>2013-06-18T23:55:36Z</dc:date>
  <entry>
    <title>RE: Setting Connect Timetout for Custom Element</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=16305315" />
    <author>
      <name>Yuibi Fujimoto</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=16305315</id>
    <updated>2013-06-18T15:00:24Z</updated>
    <published>2013-06-18T15:00:24Z</published>
    <summary type="html">Since I couldn't get the timeout to work using custom Java class,  I ended up creating a SOAP web service.

On Call Studio, I set "Connect Timeout" to 1 on each Web Service element, so in case one of the VXML gateways is unreachable, it times out in 1 second.

Everything is working as expected now.</summary>
    <dc:creator>Yuibi Fujimoto</dc:creator>
    <dc:date>2013-06-18T15:00:24Z</dc:date>
  </entry>
  <entry>
    <title>RE: Re: New Message from Hemal Mehta in Customer Voice Portal (CVP) - CVP -</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=15960459" />
    <author>
      <name>Gerard O&amp;#039;Rourke</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=15960459</id>
    <updated>2013-06-07T08:51:37Z</updated>
    <published>2013-06-07T08:51:37Z</published>
    <summary type="html">[quote=Janine Graves]Hemal,
I teach the CVP Studio programming class. So I need to teach students 
how to use the Studio DB element. Not everyone knows Java or has a Java 
programmer on the payroll. I'm hoping that Cisco improves the existing 
Studio DB element (and adds more Studio elements) so that it becomes 
more useful out of the box - like many other IVR vendors have done for 
years.
Janine[/quote]
Janine,

I agree, every one that uses a database element would or should have at least an option to set connection timeout and a proper way to handle an error event, such as a failed connection / authentication issue, so that they could then handle this situation within the cvp studio application.

The current DB element is basic to the point that it does not have the capablity in my view for a production quality app, where error handling is critical.
Hopefully Cisco will improve this element, and it would seem straight forward to do so.

Gerry</summary>
    <dc:creator>Gerard O&amp;#039;Rourke</dc:creator>
    <dc:date>2013-06-07T08:51:37Z</dc:date>
  </entry>
  <entry>
    <title>RE: Setting Connect Timetout for Custom Element</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=15950272" />
    <author>
      <name>Edward Umansky</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=15950272</id>
    <updated>2013-06-06T21:08:25Z</updated>
    <published>2013-06-06T21:08:25Z</published>
    <summary type="html">By default, if you use an action element the CVP gateway will continue processing subsequent audio files while a server-side custom action element is running, unless you need some data from that element to continue. Other than that the custom elements essentially run single-threaded from the developers perspective, so you would need to manually create multi-threaded behavior if you wanted to run it in the background and optionally timeout the thread. </summary>
    <dc:creator>Edward Umansky</dc:creator>
    <dc:date>2013-06-06T21:08:25Z</dc:date>
  </entry>
  <entry>
    <title>RE: New Message from Janine Graves in Customer Voice Portal (CVP) - CVP - A</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=15946099" />
    <author>
      <name>Hemal Mehta</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=15946099</id>
    <updated>2013-06-06T19:06:44Z</updated>
    <published>2013-06-06T19:06:44Z</published>
    <summary type="html">That makes sense.  I am sure Cisco will enhance,  however there will be always exceptions and  out of box scenarios where you will have to write something on your own.   For example, I have a scenario where web service is written in .NET and I need to call from studio.  However due to the way it is generated, I cannot just use even the code I generate through Axis directly I need to manually tweak to make it work.  The question of using in built element is out of question.
Then I have another case where I switch between different SQL versions on the fly, if I use inbuilt element it is not possible.
If you are good in java, I would say write your own code.  If not, you got to use what you have.
Hemal

From: Cisco Developer Community Forums [mailto:cdicuser@developer.cisco.com]
Sent: Thursday, June 06, 2013 1:54 PM
To: cdicuser@developer.cisco.com
Subject: New Message from Janine Graves in Customer Voice Portal (CVP) - CVP - All Versions: Re: New Message from Hemal Mehta in Customer Voice Portal (CVP) - CVP - All

Janine Graves has created a new message in the forum "CVP - All Versions": -------------------------------------------------------------- Hemal,
I teach the CVP Studio programming class. So I need to teach students
how to use the Studio DB element. Not everyone knows Java or has a Java
programmer on the payroll. I'm hoping that Cisco improves the existing
Studio DB element (and adds more Studio elements) so that it becomes
more useful out of the box - like many other IVR vendors have done for
years.
Janine
--
To respond to this post, please click the following link: http://developer.cisco.com/web/cvp/forums/-/message_boards/view_message/15944378 or simply reply to this email.</summary>
    <dc:creator>Hemal Mehta</dc:creator>
    <dc:date>2013-06-06T19:06:44Z</dc:date>
  </entry>
  <entry>
    <title>RE: New Message from Edward Umansky in Customer Voice Portal (CVP) - CVP -</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=15941916" />
    <author>
      <name>Hemal Mehta</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=15941916</id>
    <updated>2013-06-06T18:54:44Z</updated>
    <published>2013-06-06T18:54:44Z</published>
    <summary type="html">Sure, that is true ☺
Hemal

From: Cisco Developer Community Forums [mailto:cdicuser@developer.cisco.com]
Sent: Thursday, June 06, 2013 1:52 PM
To: cdicuser@developer.cisco.com
Subject: New Message from Edward Umansky in Customer Voice Portal (CVP) - CVP - All Versions: RE: New Message from Edward Umansky in Customer Voice Portal (CVP) - CVP -

Edward Umansky has created a new message in the forum "CVP - All Versions": -------------------------------------------------------------- Agreed but Janine is teaching the Cisco CVP class so she needs to be able to give her students guidance on the built-in elements of Call Studio.
--
To respond to this post, please click the following link: http://developer.cisco.com/web/cvp/forums/-/message_boards/view_message/15944300 or simply reply to this email.</summary>
    <dc:creator>Hemal Mehta</dc:creator>
    <dc:date>2013-06-06T18:54:44Z</dc:date>
  </entry>
  <entry>
    <title>Re: New Message from Hemal Mehta in Customer Voice Portal (CVP) - CVP - All</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=15944378" />
    <author>
      <name>Janine Graves</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=15944378</id>
    <updated>2013-06-06T18:54:15Z</updated>
    <published>2013-06-06T18:54:15Z</published>
    <summary type="html">Hemal,
I teach the CVP Studio programming class. So I need to teach students 
how to use the Studio DB element. Not everyone knows Java or has a Java 
programmer on the payroll. I'm hoping that Cisco improves the existing 
Studio DB element (and adds more Studio elements) so that it becomes 
more useful out of the box - like many other IVR vendors have done for 
years.
Janine</summary>
    <dc:creator>Janine Graves</dc:creator>
    <dc:date>2013-06-06T18:54:15Z</dc:date>
  </entry>
  <entry>
    <title>RE: New Message from Edward Umansky in Customer Voice Portal (CVP) - CVP -</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=15944300" />
    <author>
      <name>Edward Umansky</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=15944300</id>
    <updated>2013-06-06T18:51:48Z</updated>
    <published>2013-06-06T18:51:48Z</published>
    <summary type="html">Agreed but Janine is teaching the Cisco CVP class so she needs to be able to give her students guidance on the built-in elements of Call Studio.</summary>
    <dc:creator>Edward Umansky</dc:creator>
    <dc:date>2013-06-06T18:51:48Z</dc:date>
  </entry>
  <entry>
    <title>RE: New Message from Edward Umansky in Customer Voice Portal (CVP) - CVP -</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=15941650" />
    <author>
      <name>Hemal Mehta</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=15941650</id>
    <updated>2013-06-06T18:46:44Z</updated>
    <published>2013-06-06T18:46:44Z</published>
    <summary type="html">Why limit yourself with inbuilt studio element for complex DB operations. I would just create my own class and execute it directly or write a custom element to do it.   With inbuilt elements you always get somewhat restricted. Same thing with web services element.
Hemal

From: Cisco Developer Community Forums [mailto:cdicuser@developer.cisco.com]
Sent: Thursday, June 06, 2013 1:40 PM
To: cdicuser@developer.cisco.com
Subject: New Message from Edward Umansky in Customer Voice Portal (CVP) - CVP - All Versions: RE: Call Studio Database Element and Stored Procedures

Edward Umansky has created a new message in the forum "CVP - All Versions": --------------------------------------------------------------
Janine Graves:

--This is how I created the Stored Proc on MySql
delimiter //
create procedure accountbal(in oacctnum int, out obalance int)
begin
  select balance1 into obalance from account where acctnum=oacctnum;
end //

And then in Studio, execute the stored procedure from a Studio DB element:
Type: Update
SQL Query: call accountbal(1111, @dbvarBalance)

And then execute another Studio DB element to get the value from the database variable @dbvarBalance into Studio element data named 'acctBalance',
Type: 'Single'
SQL Query: select @dbvarBalance as acctBalance

Don't do this! The reason this works is that the "@variable" syntax is a MySQL-specific feature known as user-defined variables. What is unique and useful about these variables is that they retain their scope across the lifetime of a connected session, allowing you to reference them across different statements, as you did in your Call Studio example. The problem is that the db step in VXML Server uses connection pooling. This is important for efficient performance, but it has the side-effect that multiple calls may use the same db connection before it is ever closed. Since a MySQL user-defined variable retains its scope for the lifetime of a connection, this exposes you to some serious race conditions.

For example, let's say you have two calls executing the database interaction at about the same time. Call 1 executes the update then returns the connection to the pool. Before Call 1 has a change to execute the query step, Call 2 borrows the same connection from the pool and executes its update step. Now, if Call 1 retrieves the original connection and exectues it's query, it'll get the data for Call 2! Very bad. In fact you don't even need two concurrent calls hitting the exact same step to see issues, the update and select pieces may not even retrieve the same connection if the connection pool is being used by multiple calls.

You won't see this in testing because of the low call volume. You may not even catch it in production, but since it's such a serious risk - and a nightmare to debug if you ever do hit it - you should absolutely avoid it.

If you are using OUT parameters in MySQL, you'll need to use custom Java code similar to the Oracle example. Unlike Oracle however, MySQL actually lets you return resultsets directly from a stored procedure just like in MSSQL. Your stored proc then can be rewritten like so:

delimiter //
create procedure accountbal(in oacctnum int)
begin  select balance1 from account where acctnum=oacctnum;
end //

Then you can just call it like so:

call accountbal(1111)

You can call this via a single or multiple query, depending on how many results are returned. Just think of it as being identical to calling "select balance1 from account where acctnum=oacctnum" directly. The same holds true for MSSQL procedures. The syntax for calling an MSSQL procedure that returns a resultset is like so:

EXEC yourProc 'param1', 'param2', 'param3'

The lesson here is there isn't a single rule as to how to use stored procedures within Call Studio, it depends entirely on how the stored proc is implemented. In most cases, this is something dictated by the customer, not something you have control over. Otherwise, you could simply use a direct query and avoid the hassle. Here's a rough flow for figuring out what to do:

Does the proc return results?
  If not, you should be able to call it via the "update" query type.
  If yes, does the proc return a resultset? (Oracle cannot return a resultset at all, MySQL and MSSQL can)
    If OUT parameters, you will need to write custom Java code.
    If it returns a resultset, you can use it the same way as if you were calling the query directly.
--
To respond to this post, please click the following link: http://developer.cisco.com/web/cvp/community/-/message_boards/view_message/15943862 or simply reply to this email.</summary>
    <dc:creator>Hemal Mehta</dc:creator>
    <dc:date>2013-06-06T18:46:44Z</dc:date>
  </entry>
  <entry>
    <title>RE: Call Studio Database Element and Stored Procedures</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=15943862" />
    <author>
      <name>Edward Umansky</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=15943862</id>
    <updated>2013-06-06T18:40:17Z</updated>
    <published>2013-06-06T18:40:17Z</published>
    <summary type="html">[quote=Janine Graves]
[b]--This is how I created the Stored Proc on MySql[/b]
delimiter //
create procedure accountbal(in oacctnum int, out obalance int)
begin
  select balance1 into obalance from account where acctnum=oacctnum;
end //

[b]And then in Studio, execute the stored procedure from a Studio DB element[/b]:
[b]Type: Update
SQL Query: call accountbal(1111, @dbvarBalance)[/b]

And then execute another Studio DB element to get the value from the database variable[b] @dbvarBalance[/b] into Studio element data named '[b]acctBalance[/b]', 
[b]Type: 'Single' [/b]
[b]SQL Query: select @[/b][b]dbvarBalance [/b][b]as acctBalance
[/b][/quote][b][i]
Don't do this![/i][/b] The reason this works is that the "@variable" syntax is a MySQL-specific feature known as user-defined variables. What is unique and useful about these variables is that they retain their scope across the lifetime of a connected session, allowing you to reference them across different statements, as you did in your Call Studio example. The problem is that the db step in VXML Server uses connection pooling. This is important for efficient performance, but it has the side-effect that multiple calls may use the same db connection before it is ever closed. Since a MySQL user-defined variable retains its scope for the lifetime of a connection, this exposes you to some serious race conditions.

For example, let's say you have two calls executing the database interaction at about the same time. Call 1 executes the update then returns the connection to the pool. Before Call 1 has a change to execute the query step, Call 2 borrows the same connection from the pool and executes its update step. Now, if Call 1 retrieves the original connection and exectues it's query, it'll get the data for Call 2! Very bad. In fact you don't even need two concurrent calls hitting the exact same step to see issues, the update and select pieces may not even retrieve the same connection if the connection pool is being used by multiple calls.

You won't see this in testing because of the low call volume. You may not even catch it in production, but since it's such a serious risk - and a nightmare to debug if you ever do hit it - you should absolutely avoid it.

If you are using OUT parameters in MySQL, you'll need to use custom Java code similar to the Oracle example. Unlike Oracle however, MySQL actually lets you return resultsets directly from a stored procedure just like in MSSQL. Your stored proc then can be rewritten like so:

delimiter //
create procedure accountbal(in oacctnum int)
begin  select balance1 from account where acctnum=oacctnum;
end // 

Then you can just call it like so:

call accountbal(1111)

You can call this via a single or multiple query, depending on how many results are returned. Just think of it as being identical to calling "select balance1 from account where acctnum=oacctnum" directly. The same holds true for MSSQL procedures. The syntax for calling an MSSQL procedure that returns a resultset is like so:

EXEC yourProc 'param1', 'param2', 'param3'

The lesson here is there isn't a single rule as to how to use stored procedures within Call Studio, it depends entirely on how the stored proc is implemented. In most cases, this is something dictated by the customer, not something you have control over. Otherwise, you could simply use a direct query and avoid the hassle. Here's a rough flow for figuring out what to do:

Does the proc return results?
  If not, you should be able to call it via the "update" query type.
  If yes, does the proc return a resultset? (Oracle cannot return a resultset at all, MySQL and MSSQL can)
    If OUT parameters, you will need to write custom Java code.
    If it returns a resultset, you can use it the same way as if you were calling the query directly.</summary>
    <dc:creator>Edward Umansky</dc:creator>
    <dc:date>2013-06-06T18:40:17Z</dc:date>
  </entry>
  <entry>
    <title>RE: Setting Connect Timetout for Custom Element</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=15937094" />
    <author>
      <name>Yuibi Fujimoto</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=15937094</id>
    <updated>2013-06-06T16:12:46Z</updated>
    <published>2013-06-06T16:12:46Z</published>
    <summary type="html">I actually spent quite some time trying to get the timeout to work for telnet on CVP, but couldn't figure it out.

Is there a way to set timeout on the custom element itself instead or have the custom code run in the background? That way, the call won't be affected when a gateway is unreachable.

If I can set the timeout on the custom element, I can create 4 separate custom elements, each of which tries to telnet to a different VXML gateway, and times out if it doesn't respond within 1 second.</summary>
    <dc:creator>Yuibi Fujimoto</dc:creator>
    <dc:date>2013-06-06T16:12:46Z</dc:date>
  </entry>
  <entry>
    <title>RE: Call Studio Database Element and Stored Procedures</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=15935519" />
    <author>
      <name>Janine Graves</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=15935519</id>
    <updated>2013-06-06T15:00:36Z</updated>
    <published>2013-06-06T15:00:36Z</published>
    <summary type="html">[quote=Edward Umansky]Unfortunately, this cannot be done with the built-in Call Studio element. The problem is that Oracle stored procs simply don't work the way they do in SQL Server. In SQL Server, a stored proc can return a resultset - a tabular list of values - just like a select statement.

Oracle stored procedures simply don't allow that. Instead, Oracle stored procs return data by defining "output" parameters which you must register and pass into the stored proc itself. Once the procedure is executed, these output parameters hold the results returned. Since the built-in db element depends on resultsets for returned data, and has no facility to define and register outbput parameters, it can't be used to call Oracle stored procedures and retrieve results.

You would need to write a completely custom element to do this. A good example of the code you need can be found here: [url=http://www.mkyong.com/jdbc/jdbc-callablestatement-stored-procedure-out-parameter-example/]http://www.mkyong.com/jdbc/jdbc-callablestatement-stored-procedure-out-parameter-example/[/url]
[/quote]Hi Ed, 
Can you also show an example of how to call a Stored Proc when using MS SQL? Is it done using Type: Single (or Multiple, depending on the number of rows returned?) or is it Type:Update? 
And for the Sql Query, must you enter something like 'call procName(param1, param2)'  or 'exec procName(param1, param2)' ?</summary>
    <dc:creator>Janine Graves</dc:creator>
    <dc:date>2013-06-06T15:00:36Z</dc:date>
  </entry>
  <entry>
    <title>RE: Call Studio Database Element and Stored Procedures</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=15935374" />
    <author>
      <name>Janine Graves</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=15935374</id>
    <updated>2013-06-06T14:56:00Z</updated>
    <published>2013-06-06T14:56:00Z</published>
    <summary type="html">[quote=Edward Umansky]Unfortunately, this cannot be done with the built-in Call Studio element. The problem is that Oracle stored procs simply don't work the way they do in SQL Server. In SQL Server, a stored proc can return a resultset - a tabular list of values - just like a select statement.

Oracle stored procedures simply don't allow that. Instead, Oracle stored procs return data by defining "output" parameters which you must register and pass into the stored proc itself. Once the procedure is executed, these output parameters hold the results returned. Since the built-in db element depends on resultsets for returned data, and has no facility to define and register outbput parameters, it can't be used to call Oracle stored procedures and retrieve results.

You would need to write a completely custom element to do this. A good example of the code you need can be found here: [url=http://www.mkyong.com/jdbc/jdbc-callablestatement-stored-procedure-out-parameter-example/]http://www.mkyong.com/jdbc/jdbc-callablestatement-stored-procedure-out-parameter-example/[/url]
[/quote]Hi Ed,

I can't test Oracle, but MySql stored procedures work with Studio Database element, and they also have in, out parameters. With MySql you use one element to execute the Stored Proc, and another element to retrieve the resulting variables from the database! If you have Oracle, perhaps you can test this out and let me know if it works.


[b]--This is how I created the Stored Proc on MySql[/b]
delimiter //
create procedure accountbal(in oacctnum int, out obalance int)
begin
  select balance1 into obalance from account where acctnum=oacctnum;
end //

[b]And then in Studio, execute the stored procedure from a Studio DB element[/b]:
[b]Type: Update
SQL Query: call accountbal(1111, @dbvarBalance)[/b]

And then execute another Studio DB element to get the value from the database variable[b] @dbvarBalance[/b] into Studio element data named '[b]acctBalance[/b]', 
[b]Type: 'Single' [/b]
[b]SQL Query: select @[/b][b]dbvarBalance [/b][b]as acctBalance
[/b]</summary>
    <dc:creator>Janine Graves</dc:creator>
    <dc:date>2013-06-06T14:56:00Z</dc:date>
  </entry>
  <entry>
    <title>RE: Setting Connect Timetout for Custom Element</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=15911996" />
    <author>
      <name>Edward Umansky</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=15911996</id>
    <updated>2013-06-05T22:54:11Z</updated>
    <published>2013-06-05T22:54:11Z</published>
    <summary type="html">You'll need to research and debug this from the perspective of whatever telnet library you are using. Timeout settings can be tricky sometimes, changing depending on what type of disconnect you are simulating and what environment or OS you are running in.</summary>
    <dc:creator>Edward Umansky</dc:creator>
    <dc:date>2013-06-05T22:54:11Z</dc:date>
  </entry>
  <entry>
    <title>RE: Setting Connect Timetout for Custom Element</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=15911677" />
    <author>
      <name>Yuibi Fujimoto</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=15911677</id>
    <updated>2013-06-05T22:26:22Z</updated>
    <published>2013-06-05T22:26:22Z</published>
    <summary type="html">I'm using "[size=2][/size]org.apache.commons.net.telnet.TelnetClient".

I've tried "[size=2][/size][color=#0000c0][/color][size=2][/size][color=#0000c0][/color]telnet[size=2][/size].setConnectTimeout(200)", but the VXML application doesn't seem to care. It still waits for 20 seconds without any sound when a VXML gateway is unreachable or down.

What's strange is I can run the exact same code on my local Eclipse, and it times out after 0.2 seconds with the following message:
[u][size=2][/size][color=#000080][/color][size=2][/size][color=#000080][/color]java.net.SocketTimeoutException[size=2][/size][color=#ff0000][/color][size=2][/size][color=#ff0000][/color]: connect timed out[/u][size=2][/size][color=#ff0000][/color][size=2][/size][color=#ff0000][/color]: connect timed out

I don't see any errors on CVP side.</summary>
    <dc:creator>Yuibi Fujimoto</dc:creator>
    <dc:date>2013-06-05T22:26:22Z</dc:date>
  </entry>
  <entry>
    <title>RE: Call Studio Database Element and Stored Procedures</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=15911449" />
    <author>
      <name>Edward Umansky</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=15911449</id>
    <updated>2013-06-05T22:11:18Z</updated>
    <published>2013-06-05T22:11:18Z</published>
    <summary type="html">Unfortunately, this cannot be done with the built-in Call Studio element. The problem is that Oracle stored procs simply don't work the way they do in SQL Server. In SQL Server, a stored proc can return a resultset - a tabular list of values - just like a select statement.

Oracle stored procedures simply don't allow that. Instead, Oracle stored procs return data by defining "output" parameters which you must register and pass into the stored proc itself. Once the procedure is executed, these output parameters hold the results returned. Since the built-in db element depends on resultsets for returned data, and has no facility to define and register outbput parameters, it can't be used to call Oracle stored procedures and retrieve results.

You would need to write a completely custom element to do this. A good example of the code you need can be found here: [url=http://www.mkyong.com/jdbc/jdbc-callablestatement-stored-procedure-out-parameter-example/]http://www.mkyong.com/jdbc/jdbc-callablestatement-stored-procedure-out-parameter-example/[/url]</summary>
    <dc:creator>Edward Umansky</dc:creator>
    <dc:date>2013-06-05T22:11:18Z</dc:date>
  </entry>
  <entry>
    <title>RE: Setting Connect Timetout for Custom Element</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=15910891" />
    <author>
      <name>Edward Umansky</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=15910891</id>
    <updated>2013-06-05T21:20:11Z</updated>
    <published>2013-06-05T21:20:11Z</published>
    <summary type="html">That depends entirely on how your customization is connecting. Whatever telnet or TCP library you are using to connect would need to support some kind of timeout.</summary>
    <dc:creator>Edward Umansky</dc:creator>
    <dc:date>2013-06-05T21:20:11Z</dc:date>
  </entry>
  <entry>
    <title>RE: com.audium.sayitsmart.plugins.AudiumSayItSmartLiteral</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=15865880" />
    <author>
      <name>Arvand Owji</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=15865880</id>
    <updated>2013-06-04T20:00:49Z</updated>
    <published>2013-06-04T20:00:49Z</published>
    <summary type="html">[quote=Ronald Marin]HI I need help, I am trying to play a name letter by letter, here is my code..

VoiceElementConfig.SayItSmart sayname = defaults.new SayItSmart("com.audium.sayitsmart.plugins.AudiumSayItSmartLiteral",lname,"standard", "none");sayname.setUseRecordedAudio(true);sayname.setUseDefaultAudioPath(true);sayname.setAudioPath("SayItSmart/");sayname.setFileset("none");sayname.setAudioType("wav");audioGroup.addAudioItem(sayname);

When executed I get the following error:

 Root Cause: com.audium.server.xml.ElementConfigException: There is no Say It Smart plugin of type "com.audium.sayitsmart.plugins.AudiumSayItSmartLiteral".at com.audium.server.xml.VoiceElementConfig$SayItSmart.convertBackwardsCompatibleValues(VoiceElementConfig.java:2844)at com.audium.server.xml.VoiceElementConfig$SayItSmart.&lt;init&gt;(VoiceElementConfig.java:2459)at com.wageworks.ivr.AudioUtil.AddLiteralAudio(AudioUtil.java:211)

Thanks/[/quote]
Easiest way (still some coding involved) is to set the Sayitsmart Type to "Custom Content". Then you can see Input format changes to File:::TTS|||..|||File:::TTS
This means if you wanted to play the word "Test" character by character, you could pass in a string such as "T.wav:::T|||E.wav:::E|||S.wav:::S|||T.wav:::T" into data filed of the Sayitsmart and get it to play T E S T. So to achieve this all you need to do is to write a simple custom class that takes a string and returns an element data in the form of File:::TTS|||..|||File:::TTS</summary>
    <dc:creator>Arvand Owji</dc:creator>
    <dc:date>2013-06-04T20:00:49Z</dc:date>
  </entry>
  <entry>
    <title>RE: Re: New Message from Ronald Marin in Customer Voice Portal (CVP) - CVP</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=15867658" />
    <author>
      <name>Janine Graves</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=15867658</id>
    <updated>2013-06-04T19:40:00Z</updated>
    <published>2013-06-04T19:40:00Z</published>
    <summary type="html">[quote=Ronald Marin][quote=Janine Graves]There are no say it smarts that come with Studio out of the box that 
allow you to spell a word, letter by letter. You must write your own Say 
it Smart.[/quote]

Any piece of code you can Share????[/quote]
I'm posting a spelling say it smart that was written for class room purposes.  It's not production ready unless you test it out thoroughly in your environment. In the CVPD-Java training class that I teach, you would leard to write your own Say it Smarts....TrainingTheExperts(dot)com</summary>
    <dc:creator>Janine Graves</dc:creator>
    <dc:date>2013-06-04T19:40:00Z</dc:date>
  </entry>
  <entry>
    <title>RE: Re: New Message from Ronald Marin in Customer Voice Portal (CVP) - CVP</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=15867194" />
    <author>
      <name>Ronald Marin</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=15867194</id>
    <updated>2013-06-04T19:02:22Z</updated>
    <published>2013-06-04T19:02:22Z</published>
    <summary type="html">[quote=Janine Graves]There are no say it smarts that come with Studio out of the box that 
allow you to spell a word, letter by letter. You must write your own Say 
it Smart.[/quote]

Any piece of code you can Share????</summary>
    <dc:creator>Ronald Marin</dc:creator>
    <dc:date>2013-06-04T19:02:22Z</dc:date>
  </entry>
  <entry>
    <title>Re: New Message from Ronald Marin in Customer Voice Portal (CVP) - CVP - Al</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=15850749" />
    <author>
      <name>Janine Graves</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=15850749</id>
    <updated>2013-06-04T13:32:41Z</updated>
    <published>2013-06-04T13:32:41Z</published>
    <summary type="html">There are no say it smarts that come with Studio out of the box that 
allow you to spell a word, letter by letter. You must write your own Say 
it Smart.</summary>
    <dc:creator>Janine Graves</dc:creator>
    <dc:date>2013-06-04T13:32:41Z</dc:date>
  </entry>
</feed>

