VoiceGuide IVR Software Main Page
Jump to content

Voiceguide 7.0.5 Upgrade Problems

Recommended Posts

I have just upgraded to the latest version of VoiceGuide and everything stopped working. I am using 7.0.5 and before I was using 6.0.3356

 

Here is what is happening.

 

Brief Overview of how I was using voiceguide:

 

I had a VG script launch a VB.net application when the call was answered. Then I used the following statement to give the program control over voiceguide

 

Private WithEvents mobjVoiceguide As VoiceGuide.CommandLink

 

I was then able to use the following statement to catch voiceguide events so I know what key was being pressed - worked great!

 

mobjVoiceguide_LineEvent(ByRef lLineId As Integer, ByRef sEventType As String, ByRef lData As Integer, ByRef sData As String) Handles mobjVoiceguide.LineEvent

 

Problem: In the new version, I do not see a .lineevent. How do I catch these events in the new version?

 

I know that this is a very technical question and also probably an unorthodox way of using VoiceGuide. However, I am very happy with the way it works and would like to keep using it this way. I currently use VoiceGuide for over 24 active lines and it works great - I also predict a lot more lines in the future. I do not want to switch. I am also excited that the new version runs as a service and has speech rec capabilities - both things that I will use! Please let me know.

Share this post


Link to post

In v7 you need to use vgServices.CommandLink instead of VoiceGuide.CommandLink

 

If you are early binding then you need to reference vgServices.dll in your project.

 

Otherwise you can just CreateObject("vgServices.CommandLink") within your code and let Windows find the right .DLL for you when you run your app.

Share this post


Link to post
In v7 you need to use vgServices.CommandLink instead of VoiceGuide.CommandLink

 

If you are early binding then you need to reference vgServices.dll in your project.

 

Otherwise you can just CreateObject("vgServices.CommandLink") within your code and let Windows find the right .DLL for you when you run your app.

 

Thank you for the reply. However, it does not answer my question. I have actually gotten as far as early binding on the new vgServices.CommandLink and that seems ok. It is showing me most of the properties and functions available in the old one. However, I don't know what happened to an event called "LineEvent". I was using this particular event to trap phonepad keystrokes through VoiceGuide. Is there a similar event available in vgServices? Otherwise, how do I trap if someone presses a key?

Share this post


Link to post

We'll pass this onto our programming team and should have and answer available for you early next week.

Share this post


Link to post

OK, just to clarify, This is how I used to do it.

 

'I'd initialize like this

 

Private WithEvents mobjVoiceguide As VoiceGuide.CommandLink

mobjVoiceguide.Events_ListenStart(mlLineID)

 

Then I cound catch the events with this

 

Private Sub mobjVoiceguide_LineEvent(ByRef lLineId As Integer, ByRef sEventType As String, ByRef lData As Integer, ByRef sData As String) Handles mobjVoiceguide.LineEvent

Debug.Print("iLineID=" & lLineId)

Debug.Print("sEventType=" & sEventType)

Debug.Print("lData=" & lData)

Debug.Print("sData=" & sData)

Debug.Print("LineState= " & mobjVoiceguide.Line_State(mlLineID))

End Sub

 

I'm sure theres a way to do it in 7.0.5 (I hope)

 

Just need to now how. Thank you very much for your prompt reply.

Share this post


Link to post

We are still waiting for an answer on this one. Will check again early next week.

Share this post


Link to post

Looks like the COM events are not supported in v7 right now, but events are provided through the WCF services layer. (COM commands still work as before).

 

We can provide full source code to a C# application which can subscribe/unsubscribe to the events for individual (or all) channels.

 

At this stage all the 'CallState' and the internal 'Script' events are visible.

 

Let us know if you would like to obtain this application and we can post it here.

 

The main advantage of the WCF approach is that it lets you call the CommandLink functions and receive events from VoiceGuide over the network. The application using the CommandLink no longer has to be on the same machine as VoiceGuide.

 

Also the CommandLink is now easily imported into other programs as it is also available as a WSDL service.

 

Share this post


Link to post
Looks like the COM events are not supported in v7 right now, but events are provided through the WCF services layer. (COM commands still work as before).

 

We can provide full source code to a C# application which can subscribe/unsubscribe to the events for individual (or all) channels.

 

At this stage all the 'CallState' and the internal 'Script' events are visible.

 

Let us know if you would like to obtain this application and we can post it here.

 

The main advantage of the WCF approach is that it lets you call the CommandLink functions and receive events from VoiceGuide over the network. The application using the CommandLink no longer has to be on the same machine as VoiceGuide.

 

Also the CommandLink is now easily imported into other programs as it is also available as a WSDL service.

Yes, please post the source code. If you have a VB.NET version that would be even better!

Share this post


Link to post

Please update to the latest version of v7 available from our WWW now.

 

After installing that version see in VG's \Scripts\ subdirectory for directory called vgServices_WCF. Unzip the .ZIP file found there.

 

You will find a C# project which shows how to attach to VoiceGuide using WCF.

 

Note that there are 4 methods shown:

 

PortCommandLink TCP

PortCommandLine HTTP

LineComamdnLink TCP

LineCommandLink HTTP

 

The LineCommandLink is the 'old' command line where LineID is used to reference the channels used by the system

The PortCommandLink is the same as the LineCommandLink, but the Port Numbers are used instead of LineIDs. This makes it easier to use as Port Numbers are just 1,2,3,4,etc with 1 used to reference the 'first' (topmost) telephony channel. This makes it easier to reference the channel you want to address.

 

When subscribing to events use "-1" to subscribe to events for all channels. Similarly then unsubscribing "-1" will unsubscribe from all channels.

 

Please let us know if you have any further questions.

 

The supplied WCF demo will not work with previous versions of v7.

 

The WCF support in VoiceGuide will also allow you to include references to the WCF generated WSDL Web Services for direct inclusion in your projects.

Share this post


Link to post

I have downloaded the newest version. However, when I try to run the Demo_vgServices_WCF.exe it crashes and I get a series of errors when I try to open the C# file. Attached is a screenshot of the errors that I am getting. Is there something else that I need to do first?

post-1700-1207240939_thumb.jpg

Share this post


Link to post

OK, I knew as soon as I posted that I would figure it out. Please disregard that last post. I had to add vgServicesInterfaces.dll to the references and then it worked. I will let you know if I have any further questions.

Share this post


Link to post

Hello:

 

OK, this is the latest issue I am running into with the new version.

 

When I run the line that follows in my VBApp, the program just freezes

 

sString = mobjVoiceguide.RvGet_All(1)

 

After about 1 minute or so I get the following error.

 

This request operation sent to net.tcp://localhost:7132/LineCommandLink/ did not receive a reply within the configured timeout (00:01:00). The time allotted to this operation may have been a portion of a longer timeout. This may be because the service is still processing the operation or because the service was unable to send a reply message. Please consider increasing the operation timeout (by casting the channel/proxy to IContextChannel and setting the OperationTimeout property) and ensure that the service is able to connect to the client.

 

I have attached all the logs

 

Thank you in advance for your prompt reply.

 

-Jonah

0403_2151_vgEngine.txt

0403_ktTel.txt

0403_ktTts.txt

Share this post


Link to post

We just tested the RvGet_All COM command it here and had no problems with it running and returning data.

 

Can you try using a VBScript (.vbs file) to test and see if you are getting this problems from all apps that are trying to use RvGet_All, or just from the VB program that you are using.

Share this post


Link to post

Doesn't Seem to be working through the vbs file either. I set up a simple script to play PayThankyou.wav if it returns successful and PayGetId.wav if it fails. It just keeps playing the PayGetId.wav file. I have included the entire script directory as well as the VG log files. Let me know if there are specific tests that you need me to run.

VGStuff.zip

Share this post


Link to post

Looking at your script we can see that you are trying to run the RvGet_All.vbs from a Run Program module, but the system cannot find the RvGet_All.vbs file - you may need to specify the full path to it:

 

150309.750 9 1 ERROR v7.0.3007.26134 (Wed 26/03/2008 14:31:09.04) ShellExe Process.Start [RvGet_All.vbs][] : The system cannot find the file specified

 

Besides you cannot just run a .vbs from a Run Program module like this, you'd need to use wscript.exe interpreter and run that. The MsgBox would not display as you are running it form a Windows Service context.. Also in the .vbs the RvGet_All call tries to retrieve data from lineID=9, which does not even exit on your system...

 

Just modify the .vbs to retrieve data from lineId 1, and run the .VBS by double clicking on it from the File Explorer. Make sure VG service is started beforehand. Do you see the msgbox then?

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×