Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations strongm on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Get info from CMS? 5

Status
Not open for further replies.

Rcotten

MIS
Jan 29, 2002
46
US
I want to write a program that scrolls CMS data on a users screen. Similar to what a wallboard does only on a terminal. I was thinking of doing something in Java that opened a file. I thought I would use CMS Supervisor and schedule a task to get the data and write to the file every min.

Anyone know of anything similar that has already been done? I don't want to rewrite the wheel if there is a cheap solution already out there.

Thanks,

Ray
 
Hi Ray,
Sounds like an interesting project. I think instead of scheduling tasks I would look into getting the ODBC driver for CMS it is available from Avaya, that way you could get info directly from the CMS tables. I'm interested in what you are trying to accomplish. Will the data be for Supervisors or Members of a call-center? Would you build a mini wallboard that runs on each PC? How many splits are involved on each single run of your app? Please keep me informed of your progress. I might be interested in doing something similar in the future.

Thanks
VLG711
 
VLG,
The CMS ODBC driver can provide you the data only got the historical calls/intervals & not on the real-time basis. what you are looking at is providing the real-time stats on calls in queue & call waiting time etc..
Avaya does have a professional service software which can provide you the stats in the form of a flat file which can than be used to provide the desired results.
As far as this project is concerned I feel you can look at scheduling a monitor command at repetetive intervals which can be than used to get the inputs & the data can be used to display on the agents machines.

I think conceptually this should work but would like to see the actual working, let me know is this helps.

 
Another way would be to make a custom report in CentreVu Supervisor (Designer).Use the INQUEUE field from the csplit table. Then run a querry something like "INQUEUE > 0" and whatever other fields you find neccessary. In CentreVu Supervisor have this report updated every ,say, 15 seconds. Use a tool like 'grabit' or similar to capture the active window, and a tool like 'micro scheduler' to schedule this image to be saved on a location on your network. On the agents PC , a schedular will need to run also, that reloads the new image. Just a thought...
 
I got it working!!! Here is how.

1.) Setup a Windows 2K box which has CMS Supervisor installed and IIS.

2.) In CMS make a custom real-time report and get the info you want on it. On mine I put:

Current time at CMS
Calls in Queue
Oldest Call Waiting
Percent Service Level
Agents Available
Split #

3.) Using supervisor and its script function create a script that runs this report and that exports it to html.

3.a) When creating your script it asks for a html template to use. Setup a template in html via notepad that has only this in it

<CVSUP_BODY>
<HEAD>
<META HTTP-EQUIV=&quot;REFRESH&quot; CONTENT=&quot;15&quot;>
</HEAD>

call this htmltemp.html or whatever.

3.b) The second question in the script is where do you want to save the file. Browse to wroot or wherever your IIS will make your data publically available. Save the file under whatever name you want.

4.) You need a scheduler. If you use the one in Win2K then your report will only run once per min. As you can see from the template CONTENT=&quot;15&quot; I want to run mine every 15 sec. So I got a program called. AutoIntern... It allows you to write script files called WRL. I created a script that looks like this:

:Loop
Run(&quot;c:\cms\blah\blah\cmsreport.autocvs&quot;, &quot;&quot;)
Delay (15)
Goto Loop

Then I set the sceduler up to run this command once!


Now you can go out and point your browser to the IIS and file.html. You will see that every 15 seconds the browser updates with the new CMS data.


There is a lot more you can do with this if you can do Java and Javascript. In my situation they wanted something that requires NO custom code. I could only use tools that were supported by a company. In this case... CMS Supervisor is supported by Avaya, CMS custom reports are avaya, Win2K is microsoft, AutoInter is GraphicDynamics, and the HTML is plain HTML that anybody can understand and finally the WRL scripting is supported by GraphicDynamics as well.

Benefits: This takes only one CMS Supervisor client to poll CMS. All data sent via http request is text only...to save bandwidth.

Downside: You have to watch the win2K box and make sure it doesnt get overtasked. You will know when it gets tasks cause your web updates might skip. The solution is to up the time so instead of polling 15sec move upto 30sec. You will want to watch your bandwidth to the win2k box, depending on the number of people you have getting updates.


Well that is about all I can think of.... Good luck,

Ray
 
If you are comfortable writing &quot;Custom Reports&quot; instead of &quot;Report Designer Reports&quot;....
Try asking Avaya about the command
/cms/toolsbin/clint
The output can then be sent to web server etc..
 
Do you know where there is more info or man pages on clint?
 
I use the Symon 2000 system. It has a couple of neat solutions - Deskview and Trayview as well as driving wallboards. Cheap it isn't but it's very effective.

Apologies for replying to your posting so late, I've only just discovered this forum after years of looking !
 
I did the script & windows scheduler combo. How do I avoid the multiple instances left open in task manger? I'm finding that mid day all of a sudden it forget to close the task and then it doesn't work anymore. Does anyone else have this problem?
 
At one time or another, I downloaded a program from Microsoft called kill.exe which I then ran from a batch file and used it to kill stray processes.


If you need it, let me know and I will email you the .exe and a sample batch program.


Barry
 
That sounds like a good start for me. I'm curious if it's the MS Scheduler or CMS Supervisor causing the problem. I'm also looking at the application mentioned earlier in the post that allows you to process a script every 20 seconds.

pbehler@ch2m.com
 
I had the same problem as Daurkin. I had 3 scripts running each minute but eventually the system hung with jobs left open. I then combined the scripts by creating one script, then saving another one as the same name. CMS then gives yiou the option of adding the new script to the first one and so one. this way you can have multiple scripts run as one job with no conflicts.
 
How often do you have them running? I have mine at every minute. Only one script with one report. I checked out that Kill.exe file. Can I include it in the script file or do I need a bat file that includes the script and kill command?
 
My approach to this would be to leave a .cvsauto script always running. This way, if you are attempting an update every 15 seconds, you don't have to wait for all the processes to start up before running your script each time. I'm not sure if you guys tried this or not, but this could get you on the right track.

Basically I edited my .cvsauto (script) file and added the following commands around the 'Rep.ExportData' selection.

for xloop = 1 to 10
Sleep 15000
b = Rep.ExportData(&quot;d:\temp\split skill&quot;&xloop&&quot;.txt&quot;, 9, 0, True, True, True)
next

You could change this to a 'do until' loop and never have it stop. This loop will wait 15 seconds before it pulls a new split skill report. It then (for this example) saves the output to a .txt file with the for loop number to indicate a newer version.

Hope that helps.

As for the kill.exe, the easiest way would be to run this from a batch file, and then run your script after this command.

Barry
 
I was looking at this a little further, and noticed that the Sleep command doesn't seem to work.

Here is another example that will run once every 10 seconds for a total of 5 times. Each time this event runs, it will download skills 600 to skill 605. Each download will give you a text file and an html file.

KeepRunning = 1
MaximumLoops = 0
do while KeepRunning = 1
if (Timer Mod 10) = 0 then
for xloop = 600 to 605
b = cvsSrv.Reports.CreateReport(Info,Rep)
If b Then

Rep.Window.Top = 900
Rep.Window.Left = 1335
Rep.Window.Width = 12600
Rep.Window.Height = 10260

Rep.SetProperty &quot;Split/Skill&quot;,xloop

b = Rep.ExportData(&quot;d:\temp\split skill&quot;&xloop&&quot;.txt&quot;, 9, 0, True, True, True)
b = Rep.SaveHTML(&quot;d:\temp\split skill&quot;&xloop&&quot;.htm&quot;, False, &quot;&quot;)

Rep.Quit

If Not cvsSrv.Interactive Then cvsSrv.ActiveTasks.Remove Rep.TaskID
Set Rep = Nothing
End If
next
MaximumLoops = MaximumLoops + 1
if MaximumLoops > 5 then
KeepRunning = 0
end if
end if
loop

Let me know if you guys have any other ideas.
Barry
 
&quot;heavy!&quot;

I hate reading code while I have a cold. It looks too complex. I'm going to print this out and try it out later this week. That CLINT command is really cool, but I don't know how to get it off the Unix system to a windows 2000 system. But that's another posting in it's own.

Thanks Barry.

Pete
 
the clint tool is really powerfull.

check at the 2nd forum proposed by the keyword search when searching the word 'clint' ...

here are all the informations you need about clint ...
 
I have recently set up the exact system on an intranet. I accomplished the task by using php.
The programming side was pretty easy, it was just lots of parsing.
It took the a file (ASCII plain text file) created by a lucent report, .cvsauto, every minute and then copied to a certain location (accomplished using scheduling software and batch files on a logged in NT4 box, Lucent CentreVu 6/8 wouldn't run on 2k). The PHP takes this file and parses the data out of it live when the page refreshes, in this case done with a small javascript.

If you want a pointer or two post back, I won't in this case give the code away as it is owned by my employer not me. But am more than happy to help as the idea has gone down well when applied to operations teams in the callcentre.

cheers
Mike
 
Hi,
could I receive realtime information from Avaya each 5-10 seconds using some kind of report already built by Avaya? I mean, some kind of TCP/IP socket connection for receiving realtime data.

Could you help me here?

Thanks
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top