Hi! I'm new to CVP so this question might be stupid. But still...
I have multiple CVP serves. When I save audio file with "recording" element - does it get synced to other CVP servers defined in OAMP?
In docs there is mention of syncing but I could not find if all files get synced or just metadata about available media. Also there is no mention if I have to somehow specifically trigger this sync from VXML app or it happens automatically ?
There's no automated synching. You'll have to manually copy the audio
files (or use some sort of server replication). You'll also need to
ensure that you 'set the http client cache stale' on all your VXML
Gateways to ensure the gateways check for newer version of audio.
Thank you for your reply.
I was looking through install and upgrade guide for CVP version 10.5. And I noticed chapter called "Synchronize Metadata Files Using Sync-Up Tool" and I got curious - what kind of sync is it and why it is needed? Is it just that OAMP knows what files are there?
I use a simple batch file on the CVP1A server to copy to the other 3 CVP Servers.
1) Copy any updated wav files to CVP 1A server and then run the batch file.
2) Double click on batch file
The batch file uses XCOPY.exe for *.wav files within the relevant folder with the following parameters
/D /S /Y (review XCOPY help (/?) to see what each of these paramaters does).
This ONLY copies files which have a later modified date, so is very light, very simple and makes sure your media files are all in synch on the 4 CVP servers.
You could add this batch file as a sheduled task to run every 5 mins if need be or just run it manually when you copy new files up.
Sorry - to add to above.
This is the apporch I do when I MANUALLY copy files up.
When you are using the record element, use the standard record element, but don;t use it up upload, Use the FTP element which supports mutiple servers to upload the recording to the 4 CVP servers,
I agree with Gerard on this one. If you're using the Record element, the FTP_client element is great for getting that file pushed to multiple servers.
Make sure you adjust the content expiration time in IIS for the folder (or individual files) you're uploading to, otherwise your voice gateways will likely default to checking for a new file once a day. To adjust the expiration:
- On each media server, open IIS Manager.
- Navigate to the folder you'd like to adjust within IIS Manager.
- Right-click the folder, choose Properties
- Go to HTTP Headers
- Ensure "Enable content expiration" is checked
- Set a timer, such as "Expire after 5 Minutes".
Thanks, guys, for answering.
Manually is not an option this time. External FTP server also is not a feasible option because then I still have to think about high availability and synchronization.
If I have single FTP server - I have a single point of failure. Actually, any external system is not that good a salution because it introduces external dependancy.
I found that Windows Server 2008 R8 has a feature called DFS - distributed fiile system. It sounds exactly as a thing I'm looking for. I'll look in to it and, if you guys are interested, I can post back my findings.
Returning to built-in sync, it would still be interesting to find out what it does and what it is for. Only thing I found in docs is that it uses CVP REST API. Any ideas what it's for?
Gerard and I weren't talking about using an external FTP server. You can set your CVP Media servers to serve FTP as well as the HTTP they already do. They're most likely using Microsoft IIS, which can also be used for FTP.
There's an admin API that was introduced in 10.0 that supports upload of applications and media files. It runs on the OAMP server.
Thanks for the doc. I could't find similar doc for version 10.5. This version did not point to any way how to initiate sync externally. It would need some kind of admin API for OAMP.
Still, I could initiate REST request from VXML app to find out what is the state of file. As far as I see CallStudio built in WebService element needs WSDL to work. Maybe you can point me to already made one?
PS. I'm new to CVP so, bear with me, please.
The API didn't change so the 10.0 version still applies. The requests will be applied to all media servers that OAMP has configured by default so you shouldn't have to perform any additional sync. However, if the OAMP server does get out of sync because of items configured externally, you do have the command line tool documented in the API to resync the OAMP view of the world.
I wouldn't even try to use the built-in web service element for driving the CVP admin API as it's not at all suitable. You should just create a custom element using Jersey client libraries. The Agent Request API callback custom element example I published recently is something you could use as a custom element REST client starting point.
Just an FYI. I found a issue with FTP element in the past and out of thousand transactions one or two odd ones would fail. So I wrote my own custom sync program in java to copy the files to the different servers.