A good Java wrapper for TAPI 2? - java

Does anyone know of a good JNI/Java wrapper for TAPI 2?
I need to interact with the Avaya phones on the desks of my users for a CRM web application (based on GWT), and all computers have a TAPI 2 driver already installed (no TAPI 3 driver is available). Unfortunately the phone server does not produce events for calls-in-progress in a centralised form, or provide an API for initiating calls centrally.
I plan to use a signed Java Applet in the background of the web app to connect via TAPI and interact with the GWT client code via GWTAI.
I found the JTAPI implementations XTAPI and GJTAPI - but they are convoluted (due to the big differences between JTAPI and TAPI), buggy, and don't implement all TAPI functionality (e.g. XTAPI only provides 2 lines of call info of the dozen available).
Helen Warn's C# Wrapper provides a fantastic wrapper for TAPI 2 in C#, that does exactly what I want, providing direct access to the simple TAPI 2 interface. The only problem is that embedding an ActiveX control in a web page is off-limits as we really don't want to be locked into IE!
So it looks like I'm going to have to port Helen Warn's wrapper to Java using JNI? (not a trivial task).
Any other ideas?

Despite similar-looking names, TAPI and JTAPI are two completely different APIs. With regards to Avaya, TAPI is used to control Avaya IP Office series PBX and softphone applications running off Communication Manager (formerly Definity) series PBX. JTAPI is, in fact, a Java implementation of Novell's TSAPI protocol that is used to control Avaya Communication Manager PBX directly (not via phones). Centralized event notification and call control is provided via Application Enablement Services gateway (formerly Avaya CT) with variety of protocols and APIs, including JTAPI.
Hope it was helpful.
Regards,
Alex.

You could try to use one of the following tools, among others, to make the task more trivial.
SWIG: http://www.swig.org/
JNA: http://jna.java.net/
JavaCPP: http://code.google.com/p/javacpp/
Being the author of the third there, I recommend that one :)

Related

Communicating with ACR1255U-J1 from PC and sending ISO 14443

I want to communicate with an NT3H211 tag from nxp. it supports ISO 14443.
I'm not sure how to do this in java using the ACR1255U-J1. There seems to be some drivers on the ACS website but it is not clear to me.
see page 45 of http://www.nxp.com/docs/en/data-sheet/NT3H2111_2211.pdf
How can I send e.g. WUPA and GET_VERSION via the reader ACR1255U-J1 from windows?
Are there more DEV friendly smartcard readers out there?
How can I send e.g. WUPA and GET_VERSION via the reader ACR1255U-J1 from windows?
You would need to use/develop an application using the PCSC command interface on windows. This works through the CCID standard driver provided by windows to interface with the ACR1255U-J1 over USB. There's open source Java implementations online like this one that will allow you to start getting familiar.
Are there more DEV friendly smartcard readers out there?
The ACR1255U-J1 is actually one of the more dev friendly readers on the market. The problem is that the superset of APIs exposed can be daunting to unfamiliar developers. Flomio offers a simpler SDK for mobile devices and web clients to get devs started quickly. It's based on a subset of APIs focused on just scanning a tag. More complex exchanges are then concealed behind a second layer of APIs. This reduces the learning curve and often devs are up and running in a couple hours. You can check this Forum for further details on how this goes.

Converting desktop application into server + browser application

I am relatively new to web development, but I have some C++/Java experience. I have got the following conversion to do:
Current:
Desktop Application (Automation Software) developed in C# that communicates with remote PLC (Controller that overlooks different sensors in realtime) using TCP Sockets over the Web.
My Idea:
Convert the application into a server side software that will still communicate with the PLC over TCP/Socket. And use a browser to operate it, so the remote site can be monitored and controlled from any computer in our Intranet (possibly Tablets in the future).
Motive for doing it:
We had a computer fault which left the operators without control.
The new app:
I am planning on writing the server app using Java and OOP (so far no problem). And use HTML/CSS/Javascript for the WebApp and AJAX to update the page.
But I am still lost at how can I transport all this data between them in a proper and decent manner. I have read about SOAP and JSON in this Post. Although, I am not sure if I need to use them at all, is it a good solution to use either JSON or SOAP? Or is there any other solution that you may recommend?
Cheers,
Leo
If you consider skipping the development work to convert your app into a server-side software and just go for a third party solution, I suggest you take a look to Thinfinity VirtualUI.
"...offers a GUI remoting solution for in-house Windows desktop
developments, allowing them to be delivered as Windows/HTML5 dual-platform applications
simply by adding one line of code.
These Windows applications can keep their standard desktop environment behavior and,
alternatively, be accessed remotely from any modern web browser in a multi-user,
multi-instance fashion when hosted on a Thinfinity VirtualUI Server environment."
https://www.cybelesoft.com/docs/thinfinity_virtualui_whitepaper.pdf
SOAP is for defining public APIs that are published on the internet for other people to use, which does not seem like your use case. It is not particularly awesome to have to deal with it from inside a browser either, although there are javascript SOAP-client libraries. There is also going to be a fair bit more overhead on the server side parsing and validating XML than de/serializing between JSON and POJOs.
JSON is much easier to deal with in a browser, being natively understood and all that. Everything you need is built into the core of jQuery, no dependence on plugins that may have unknown levels of future support.

Is it possible to communicate with WCF TCP service with app in java or python?

I receive a WCF service to communicate, so, i need to create a client in java or python to get informations provided by this service that is a WCF TCP service. Is it possible?
I'm assuming that when you say the service "is a WCF TCP service", you mean that it employs the netTcpBinding (scheme net.tcp).
This binding relies on some proprietary Microsoft protocols in addition to public standards such as SOAP. These provide message framing, support for a variety of encoding schemes, and for the layering of security protocols over the message stream. This is similar to the netNamedPipe binding, and further details of these protocols are explained here on my blog.
The answer to your question is "yes, it is possible", but the bad news is that in order to do so you would have to implement all the proprietary Microsoft protocols in your chosen client platform. You will almost certainly want to avoid doing this, as it is a lot of work (though maybe someone has already written an open-source library for either Java or Python).
If you can't find a library, and are able to run any flavour of .NET on your client platform (or if it is feasible to interpose a separate Windows machine to act as a proxy, between your clients and the service) I would consider creating an adapter in .NET, to broker your access to the service. Such a thing could present a pure standards-based interface (e.g. WS-*) to the service, internally forwarding calls to the real service, to enable it to be consumed from other platforms.
EDIT: I wasn't previously aware of the Java interop library for Windows HPC which another answer has mentioned and linked to. This seems quite promising: open source and Microsoft-supported, which for this purpose is probably even better.
The net.tcp bindings are proprietary. Here is a site that mentions it in some other context.
The article points to a Java interop library posted on Github Interop Library Download Link
Hope this helps... I'm curious to know the answer as well, as I just happen to be getting involved in the Web Services side of the business.

Connect to BlazeDS with java stand alone app

I have a java server with a BlazeDS interface to handle Adobe AIR clients. I also have a bunch of legacy stand alone java apps that I'll need to integrate with the server. The java apps need all the same methods and remote calls that the AIR clients needs. So it would save tons of work if I could call the remote object methods from the java apps.
Anyone know if this can be done?
You can use the BlazeDS Java AMF libraries directly over HTTP. But interacting with the BlazeDS MessageBrokerServlet will require some extra work. Probably an easier path is to just expose the same Java services through another protocol that the Java code can more easily use.
Take a look on this library, it allows you to connect Java with a server running BlazeDS. On the other hand if you are interested in pure performance you can investigate another protocols..there are plenty of them.

Operator Console App - Java/Flex

We are in the middle to evaluate the technology choice to re-design an operator console application. The operator console as a hosted contact center has the abilities to queue the inactive calls, and hold, answer, transfer the active calls.
The legacy operator console used Java Swing. We want to use the latest RIA technology (Flex/Silverlight) to retire the legacy one. But the question is Flex/Silverlight can implement the functions like hold, transfer the calls? Based on my experiences, Flex can listen Java socket to receive XML data? Does it work well to receive voice data? Thanks.
Flash / Flex does have native access to the computer's microphone with the introduction of the latest player / AIR runtimes. But, that is probably not what you need.
Yes, Flex supports open sockets and can listn to a server. To receive voice data, you'll be best served using something on the server side, such as Flash Media Server or Red5.
I'm not sure of the technology to integrate such technologies with a traditional phone lines, though. You may look into Ribbit APIs as one solution. I was under the impression that Ribbit used Red5 under the hood; and it designed for these type of telephony applications.
You can use flex and Ribbit for that. Ribbit is a company that offers VOIP solutions for web application. I have used in couple of projects and it's really good.
Here is the link to their deve zone (htey support several technologies):
http://developer.ribbit.com/development-center/flash/flash-center
Hope this helps.

Categories

Resources