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.
Related
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.
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 :)
I will make a video chat website, but coming from PHP and Python for the web i have no experience with video steaming.
What do you recommend? Java or Flash? What's more flexible ?
I am thinking of even making a C++ server application for stream controlling with a PHP fronted. Since is going to be a high traffic website and performance is a must.
Can you point to some direction?
Any documentation? Framework?
I'm going to warn you: this is no small project. There's a reason why most prepackaged video chat websites and services cost hundreds of dollars a month.
First off, you need to pick your client side runtime. This is a major decision, since it will impact your available client base, and the cost of entry for your site. Flash is hands down the most pervasive, but Java is fairly prevalent in the techie culture. Silverlight less so, but you should check the latest statistics. Note that you should pick a particular version you're going to develop for, since the APIs may change, and market penetration is different.
Once you've developed the client-side code, you'll need to pick the server environment. If you use Silverlight, obviously you need to use C#.NET to develop the server side code (for the video streaming). Both Java and Flash as clients use Java as the server-end.
If you choose to go with Flash, be aware that you can either go with the official Flash Media Server, or you can go with the open-source Red5 server.
As noted by SEK, you should proceed with caution since providing a reliable streaming service might not be as easy as it sounds.
I would recommend reading about streaming (what it is/means, technologies, etc) and then moving on with the implementation.
Serving streams to clients
Solutions like the Flash Media Server, might give you less headaches. Red5, as previously mentioned is a 'nice' open source solution, although i am not sure about the capacity and stability.
You might want to check:
http://www.wowzamedia.com/ (Flash Media Server) - interesting
NOTE: Wowza Media Server 2 for Amazon EC2 is also available
http://mammothserver.org/ (Another Open source Flash Media Server)
http://fmsguru.com/ (Flash Media related tutorials)
Google is always your friend on this big topic..good luck.
I am a java developer and am pretty comfortable with develeoping webapps in java/jsp/servlets.
I want to develop a video web based chat website.people should be able to chat with each other using my website.People dont need to use any client app installed on their pc in order to chat with others.
My website should be scalable.It should be able to support many hundreds of user simultaneously.I heard that there is a framework cal is beastled twisted matrix in python that best for developing such kind of servers.But learning a new language of me is not feasible as i dont have much time to get the system up and running.I have 2 months to get the application up and running.
After googling i found that twisted matrix ix best for the puropose.
So what should i do?Should i go ahead with java or python?Which java framework to use?If i develop it in java should i develop a web app which will run on top of app server? or shold i develop my own chat server in java?
Any pointers will be helpful.
I'm a little confused: the requirement is that users don't need any software installed on their PC? How can that be? You need something.
Given two months, I think you only have two options:
Flash
Skype
Like you said, because you have two months to get it up and running, you're best off not learning a new language. As far as Java network frameworks go, people seem to have pretty good experiences with Netty, MINA, or Grizzly, but going that low-level will probably cause you grief.
There's some good stuff on SO too:
API to broadcast live webcam
Just Try Cometd, CometD is a scalable HTTP-based event routing bus that uses a Ajax Push technology pattern known as Comet. There is also a chatroom example in the sourcecode.
Cometd is based on Jetty Continuation。
Using Long pooling.
I am interested in building a vehicle tracking system using GPRS. However, I have some questions for anyone who has done this before:
Is GPRS the best technology to use? Any problems people are aware of?
I am planning on using Java/Java EE - is there any better technologies?
If someone has built this before - do you have some examples of what to see for system requirements?
What are some good web resources you've found working on this?
Is there a step-by-step guide anywhere to getting started?
If you're just doing it for fun/personal use and Amateur Radio licenses are available where you are, look into APRS.
You can use a phone with a GPS receiver (internal or otherwise). External receivers are easier to use because they are addressed by an older Java JSR (http://www.jsr82.com/) and thus better supported in Java ME.
On the client side (phone), you can write midlets in Java (see JaveME) to access the GPS location of the device and then use the phone's data connection (GPRS or 3G) to make a HTTP request to a server that will track the location of the device. The only alternate I see to GPRS/3G is SMS but that makes things more complicated on the server side (you will need access to an SMS gateway with an GSM operator).
For the APIs required to build Java midlets, register with Nokia - they have a developer site that offers all the information you need. Of course, if you use another type of phone Nokia's stuff is not of much help.
There are some existing solutions for the client side - google for TrekBuddy - that can probably be used for a proof-of-concept.
On the server side you can write a servlet that tracks a device by device id and records the coordinates as sent by the phone.
If someone has built this before - do you have some examples of what to see for system requirements?
Some of the questions are too generic to answer, but to specifically answer this one. Here is one example.
Generally the software components (and a hardware component) that you would need are:
GPS tracking device - Capable of reporting the location over internet (or SMS). XeXun TK102 compatible devices are common in under $100 category, but there are plenty of other options.
Server and database - for storing the location / history. Java EE stack is a good choice here.
Map based reporting application - For viewing and analysing the location data. Typically a desktop, mobile or a web application.
Here is one simple open-source Java EE / Spring based vehicle tracking server, database and web-based mobile map application (2-3 above). It uses TK102 compatible GPS/GPRS tracking device (1):
https://github.com/mstahv/tindratracker