VoiceGuide IVR Software Main Page
Jump to content

Voicemail Box Xml File

Recommended Posts

Hey guys,

 

Voiceguide is a great application and will be purchasing 48-line version soon, but I only have one problem with it. Its all and good that it saves the mailbox info in an xml file as long as there is not that many mailboxes, but when you start to get in the 10,000 and above range, it takes a little longer to load.

 

This is all and good to run just fine after it loads the file, but every time you make one little change to a voicemail box it has to reload the entire file and takes as long as it does during the initial load.

 

Is there any way around this happening? If you use the command link object to edit mailboxes, does it have this same issue or will it beediting the boxes in memory?

 

Too bad you guys don't have the option of storing them in a database instead of the xml file.

 

Thanks,

 

Chad

Share this post


Link to post
If you use the command link object to edit mailboxes, does it have this same issue

Yes.

Too bad you guys don't have the option of storing them in a database instead of the xml file.

The voicemail scripts can be modified to store data in database instead of in an XML file... it's a bit of work but doable in a couple of days time...

Share this post


Link to post

ok, I did not realize that the loading and updating of the vmboxlist.xml file was a scriptable piece of the system. I assumed that it was hard coded inside the executable. Can you point me to the script file where this is being controlled?

 

Thanks,

 

Chad

Share this post


Link to post

Have a look at the scripts in VG's \system\vm\ subdirectory. Those scripts are the voicemail system.

 

They use Vm_VmbConfig_Get and Vm_VmbConfig_Set to get/set various mailbox related info. Just open the .vgs scripts in a text editor, do a replace on Vm_VmbConfig_Get and Vm_VmbConfig_Set with your own functions and then write our functions to Get/Set info from database of your choice.

 

At this stage you will need to add your get/set function bodies to each of the VB Script modules where the new Get/Set is called - you cannot define 'Global' functions (yet).

Share this post


Link to post

Thanks for the help. That helps part of the situation anyways. That allows me to better get/set the info for existing mailboxes, but I am assuming I would still have to update the XML file to create a new mailbox or for the system to see any of those changes?

 

I would really like to eliminate it using the xml file all together. The system would scale much better if it did not have to have all the mailboxes loaded in memory. When someone calls and enters the mailbox number they are trying to reach, the script could simply do a databse lookup to check for the mailbox existence.

 

Then it could prompt for the pin number like usual and use the already retrieve recordset. Doing it this way would theoretically allow the system to scale indefinately with any number of voicemail boxes, hardware permitting of course.

 

Let me know what you think. As far as I can tell, the actual loading of the mailbox data into the system itself cannot be changed.

 

Thanks,

 

Chad

Share this post


Link to post
I am assuming I would still have to update the XML file to create a new mailbox or for the system to see any of those changes?

You can stop using the XM file altogether if you chose to place all voicemail info in database and modify the scritps accordingly (as described before)...

Share this post


Link to post

Thanks for berring with me here. I am still learning the architecture of VG. Maybe I am just overlooking it, but I have opened every script file that came with it and cannot find where it is loading the XML file.

 

Basically, what I am looking for is where it tells VG to load all the mailboxes from the XML file when you start VG for the first time.

 

Any help in locating this function is greatly appreciated.

 

Also, can we create our own result variables to be used throughout the call?

 

I have tried this a few times using the rv_set/rv_get functions and all it returns is the name of the results variable.

 

vg.RvSet iLineId, "CALLID", iLineId & sDateTimeStamp

 

sReturnValue = vg.RvGet($RV_LINEID, "CALLID")

 

the return value is $CALLID instead of the value of the RV.

 

Thanks,

 

Chad

Share this post


Link to post
Basically, what I am looking for is where it tells VG to load all the mailboxes from the XML file when you start VG for the first time.

You will not find this in the .vgs scritps... loading of XML config file is done by VG itself, and then you can query the various settings using the COM functions. Why do you want to find this anyway? I thought you want to place all info in a database...

can we create our own result variables to be used throughout the call?

Yes. Either using the COM functions or the Evaluate Expression module.

the return value is $CALLID instead of the value of the RV.

The code below works. Note how you specify the RV:

set vg = CreateObject("VoiceGuide.CommandLink")
vg.RvSet 5, "CALLID", "12341212312"
sReturnValue = vg.RvGet(5, "RV[CALLID]")
msgbox sReturnValue 
set vg = Nothing

Share this post


Link to post

Excellent. Thanks for the help on the RV's. I figured it was just a syntax problem.

 

I guess I was looking for the place where it is loading the mailboxes from the XML file to stop it from loading them all together. I guess I can just have a blank XML file and then just modify the script to do the lookup in the database for the same information.

 

Thanks for your help.

 

Chad

Share this post


Link to post
I guess I can just have a blank XML file and then just modify the script to do the lookup in the database for the same information.

Correct.

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
×