3

I'm interested in getting only 3 bits of information for all calls that come-in to our call center: the caller, the number they dialed, and the number of the person that actually picked-up the call (different than the number the outside world dials).

Until recently, we were accomplishing this by listening for JTAPI log-file changes (using Microsoft's FileSystemWatcher) and scraping the logfile for the 3 pieces of info I mentioned. We then used that info for an existing C# app that tracks customer-service calls/incidents. This has worked great so far.

However, we'll soon be upgrading our call center to a Linux-only version, and it seems that listening for log files won't be an option. Does anyone know of a way to get these same 3 pieces of info in real-time? We're really interested in a .NET API of some sort, so we'll be able to use that seamlessly in our current app. Trying to use a Java or C++-based utility would be a bit more difficult (though I'm not completely opposed to it).

I know there are many reporting features out there available for Cisco IP phones, but those are particularly geared towards managers who want to look back on weekly or monthly stats, etc, but that won't help us for grabbing real-time data.

WEFX
  • 8,298
  • 8
  • 66
  • 102
  • Hi WEFX, I am in need of a solution, which queries realtime IP Phone status. Would mind to share what you had done to read JTAPI log-file ? It would be really helpful since I haven't done anything similar before. Thanks in advance. – S.N Feb 06 '15 at 22:30
  • I don't have access to that code, because that was a former job. Like I said though, we used a FileSystemWatcher to listen to the log files. I *do* remember that we made a note of file size. Then, on a file-change, we would check the delta in file size, and analyze that new line (or lines) of log info, and parse the necessary bit we needed. At some point, we scrapped this, and got Cisco to call a URL to our web-service, and that URL had the necessary bits of info in its querystring. – WEFX Feb 09 '15 at 14:34
  • @Nair - see [this question](http://stackoverflow.com/questions/7042288/udp-sending-receiving-in-net) for how I checked the new log entries (see my answer in the question). Also, [this](http://stackoverflow.com/questions/6362399/streamwriter-not-updating-its-path-on-new-day) and [this](http://stackoverflow.com/questions/2781357/file-being-used-by-another-process-after-using-file-create) – WEFX Feb 09 '15 at 14:39
  • @WEFX this is a few years ago, how did your project go? I am also now integrating to Cisco - do you know if any CTI libs for reading real time event streams (phones ringing) exist for C#/.net/Win32-DLL? – morleyc Sep 16 '15 at 18:57
  • @g18c - see some of my other comments and links. This was easy once we had our in-house Cisco tech add a bit of logic to make a call to our web-service on all incoming calls. From that point, we were able to get the incoming-phone number, the number they dialed, and the time-of-call. If you wanted to get really fancy, you could make a second-call to a web-service on call-completion and record the delta for length-of-call. – WEFX Sep 17 '15 at 19:28

1 Answers1

0

if your moving to a linux only environment i am assuming you will be porting your existing applications to mono as .net does not run natively on linux why not use the the mono implementation of filesystemwatcher to accomplish the task the same way you have been doing or is this

Chris McGrath
  • 1,727
  • 3
  • 19
  • 45
  • 1
    Chris, our current phone-listening service runs remotely on a web server; it does not run directly on our current Cisco server. Once we have a Linux box in place, I would still like to run our phone-listening service remotely (in a Windows environment). Is that possible w/ Mono? If not, I guess it's possible that I could run a new, phone-listening service directly on the Unix box. – WEFX Jun 07 '11 at 18:55
  • If you want to run it remotely you would likely need some sort of web service if the services are connected via file services either through samba or windows server file services you may be able use filesystem watcher the way you are now however I am not 100% sure if filesystem watcher works with network filesystems this would be the easiest solution if it does. The other option would be porting to mono any parts that are not mono compliant and running locally you could also use web dav if the systems are disparate and not connected via network services – Chris McGrath Jun 16 '11 at 17:41
  • 'No idea if this will work, but I was mostly looking for suggestions, so I'll take this as the answer. Thanks Chris. – WEFX Jun 16 '11 at 18:19