Cross-Platform Internet Telephony?
the . Silicon . Dragon writes: "The company I work for is creating a product that we hope to launch on Linux. One of the key features of our product is Internet Telephony where a user can not only call other users on the Internet, but also make and receive calls from standard telephones. We've investigated a number of possible solutions, but they all have shortcomings. The most sour part of the situation is we may have to move our launch platform to Windows if we cannot find an acceptable Internet telephony solution. It'd be highly disagreeable with myself and several others in the company as well if we have to do this, but we can't drop a key product feature and we don't have the time or the resources to develop the technology in-house. Suggestions for Java (preferrably) or C/C++ solutions, and/or references to companies that provide said technology would be extremely helpful." The 'key feature' in question is interface customization. You can find out more in the article.
"It is an absolute MUST that we be able to customize the interface of any such client application. Second, it MUST be able to run on Linux and Windows with minimal pain (the product is coded in Java). Lastly, the quality MUST be fairly high. So far, solutions like HearMe and OpenH323 are either incomplete, lack quality, are not cross platform, and / or do not allow us to create our own interface."
http://www.speakfreely.org/
Hey, Ask Slashdot editors: Could we get a slightly higher quality of question and less repetition (we've had the "internet camera" question at least twice).
--
Linux MAPI Server!
http://www.openone.com/software/MailOne/
(Exchange Migration HOWTO coming soon)
I know this may cause thousands of readers to pump up their blood pressure, but if it's a commercial company, then it will naturally target its products on windows (let's face it, if it's a product that needs to make money, windows would be more sensible, not because of the platform's attractiveness, but because that's where the most users are. And this sounds like a home consumer type of product as well.) I can understand it if you want to target BOTH windows and linux, but from your description, it looks like you're sour about moving from exclusively linux to exclusively windows. Why not both?
After all, if it's written in java, that would be one of the key advantages. btw, did you look on computer telephony magazine?
w/m
Voice over IP has been a hot subject for quite a while now, but till now we've never seen it being realised on big scale. First I think it has been marketised too much. Voice over ip is not rocket science. For me, it doesn't say more than 'telnet over ip'. Classic telephony calls are practicaly 100% reliable. TCP/IP connections are too unexpectuous: theres a big risk on delays, that are not important for data, but are so for voice. With TCP, you're sure your packets arrives, but it is too slow for voice packets. UDP hasn't this checking, is fast enough, but you are not sure the packets are delivered. How many times we like to see realaudio clips, but that we can't get a connection. Internet telephony is super for applications like netmeeting etc, but when somebody with a real telephone calls another , he expects that his call arrives, not that it is in a jam. People are used to this. So, in my opinion their will not be evolution to internet telephony as long their is no protocol redesign.
I have been creating a bunch of 'telephony related' tools for Linux for internal use. IMHO - VERY few programmers understand the difference in mentality needed for telephone type applications vs. 'regular' data oriented applications. There are essentially NO telephony oriented tools available. I AM interested in making a few so we can test our test equipment products for proper operation prior to general release. Perhaps some sort of telephony group makes sense. I AM interested. john harrison concord nh jmh@nei.mv.com www.neinnov.com
Java has a Telephony API, have you looked at that yet. I'm not sure if it is exactly what you want but it is a place to start. Here's a link: http://java.sun.com/products/jtapi/
http://www.linuxtelephony.com/
is a good place to start.
.
If you think about it, VoIP is more efficient than your "honest" + "proper voice line".
CELP == Code Excited Linear Predication
I believe it's been around for a while (1970's?).
Tim --
I am not trying to be mean, but this is a horrible question. What do you mean by develop "your own technology"? Almost any programming project requires a certain amount of innovation (if its to mean anything, and be sellable by a company).
<p>
Secondly, like a previous "ask slashdot", you are confusing the method with the language. This is almost completely dependent on what the employees in your company. The question of whether to use Java is not so much a question of language, but whether you need it to work across platforms. However, keep in mind Java tends to be slow, and usually not such a great thing for realtime involving a lot of data.
<p>
If your company decides to use linux, there are many tools available for sound transfer. There are at least 2 or 3 sounds projects I know of. TCP/IP is almost free using any UN*X clone, and that sounds like the majority of your project.
Quicknet has a low - cost 1 port card that will do the trick with Linux and Windows drivers:
http://www.quicknet.com
Also check out Pika for 4 port cards with traditional analogue and VoIP capabilities with Windows and Linux drivers:
http://www.pikatech.com
Aslo check out the Bayonne project. Linux based Open Source telephony system with interfaces to Quicknet, Pika, and other cards:
http://bayonne.sourceforge.net/
If you are aiming to make this work over the next few years then you need to look at broadband and IPv6. Current IPv4 and lowbandwith connections are worse than a current phone service. With the advent of IPv6 on the next generation of mobile phones the question also has to be asked...
Why bother ? If a mobile phone has perfect voice and a 2Mbps peak bandwith, why use a bulky PC ?
(NB this applies to Europe, Africa, Asia and Australia, its probably not appropriate in the wireless backwaters of the world:-)
An Eye for an Eye will make the whole world blind - Gandhi
No you cannot.
;-(
A typical 33.6 has 130ms latency and is half duplex. Telephony over it sucks. But over a 64k ISDN or similar it gets to be really interesting.
Problem here is that the bandwidth is getting cheap and interest in compressed codecs in service providers is decreasing. So providers are getting less and less interested in incoming IP calls. They look mostly towards telco termination and even exchanges.
Also in order to use end user IP telephony especially at the office level you need good QoS on the endpoints so a download does not blow away the voice. This is something that is not common in most end user/small office setups.
So end-user VOIP and compressed codecs are actually a subject of interest for very well maintained office to office VPNs with QoS which are rare. In the other cases they are usually a cause for yet another disappointment
Baker's Law: Misery no longer loves company. Nowadays it insists on it
http://www.sigsegv.cx/
First off, if you're looking for a way to make your interface customizable at runtime, one easy one is using libglade. It's a library which builds interfaces at runtime based on XML files output from GLADE, a GUI builder for GTK. Want a new interface? You don't need to recompile, just swap out the XML file. And if you want larger changes to the widgets themselves, well, that's what GTK themes are for...
As for the unmet telephony needs of your product, could you be a bit more specific? Hardware-wise, I've seen some Darned Good Stuff put out by Quicknet, though if your pricetag makes integrating their hardware an unworkable solution, there are still other possibilities available. For instance, at least one telephony project (Asterisk) has been working on having software phone integration through some supported voicemodem hardware (though the latency and whatnot still doesn't compare to having proper hardware compression, ala Quicknet). This was rather a while ago that I was on their mailing list, and while their work is far from a finished product (well, was last time I looked), you still should find it useful.
The only VoIP protocol that a majority of firewalls supports is Netmeeting.
;)
There is a push (albeit small) for more firewalls to support h.323 in general. Unfortunately, h.323 is like FTP in that it opens auxiliary connections to random ports so it takes alot of processing per connection. And to top it off, the control channel uses ASN.1 like SNMP.
ASN.1 fields are variable length, ie:
Byte 1 : Variable type (integer, string..)
Byte 2 : Length of variable -- this is also a variable length field.
Byte 3 : The actual variable Data.
Byte 4 : The next variable type.
So you esentially have at least one branch statement per byte in a packet. And the variables of importance to firewalls may be buried several deep. Lots 'o processing.
Don't ask me how you plan to connect to someones internet phone behind a firewall. VoIP in a semisecure environment is like a one way phone. You can call people but they can't call back. Ideal if you ask me
Voice over IP isn't something new. Been around since at least mid-1998. There's a reason - it's not good enough. I speak from experience. I was responsible for the deployment of a national VoIP network using a strictly hardware based solution. And it sucked. Flat out sucked. Going international to a single POP across the Atlantic was even worse, even with a PVC on PanAmSat.
Flat out, TCP is too unpredictable, and not enough solutions are carrier class. There are very stringent requirements for carrier-class quality. And TCP/IP is NOT carrier class. Oh, sure, you can claim it just by slapping on a -48V DC powersupply, but it's not carrier class till you can give *proven* 99.999% uptime, AKA Five-By-Nine(s). There is absolutely *no* VoIP solution that can do this.
Furthermore, MANY VoIP routing solutions are entirely dependent on the H.323 or H.323v2 pseudo-standard, which uses UDP - an inherently unreliable transport - to transmit and recieve call routing information on a per-system per-port level. H.323v2 is also bandwidth intensive. And I have yet to see a system that can interconnect H.323v2 with SS7, which is the absolute standard for all telephone call routing, as defined by Telcordia/BellCore. The Lucent 5ESS runs SS7 for routing, I shouldn't need to say any more than that. This may have changed in the time that I have been out of VoIP, but I doubt it.
In order to bring VoIP to carrier quality, basically, a new routable Layer 3 protocol with inherently reliable transports would have to be created, and all compression schemes would likely have to be eliminated. The compression inherently damages quality, well below acceptable levels for anything useful. Testing a 33.6k modem over a VoIP routed line resulted in 4800 connects at best. The compression causes gaps in conversation, and only increases with latency.
As latency increases, call route reliability decreases exponentially, due to H.323/H.323v2 utilizing UDP transport. Packets are dropped and not retransmitted, resulting in incomplete or lost call route instructions. Suddenly that call to Grandma in Houston, TX from your house in Boston, MA, can't be completed. And bandwidth is choked quickly. Two PRIs worth of circuits used for incoming/terminating VoIP calls will eat a full 6Mbit pipe quickly.
Cisco claims or claimed that the AS5300 equipped with Voice over IP blades had 5:1 audio compression with minimal quality loss. While people were understandable, gaps in the conversation were also very audible, from dropped packets or other inevitable network issues. At a supposedly 5:1 compression ratio for the data transmission, I saw a single call eat nearly half a megabit. A PRI is basically 24 voice channels versus 24 data channels. In effect, a T1's worth of voice channels, using digital format versus standard analog, allowing 24 channels to be carried over four pair copper.
To claim VoIP as carrier class is similar to claiming that a PC at the store is carrier class. Or that just because a system has a -48V DC powersupply, it is carrier class. As I said above - carrier class is defined by reliability, not just feature set. I honestly don't know whether or not any of Cisco's equipment qualifies as carrier class - for certain, in my experience, I would be very uneasy about slapping that label on their Voice over IP equipment.
Furthermore, as everyone gets 'hip' to VoIP, the market is becoming flooded with companies. And much like has happened with so-called 'e-tailers,' there's going to be a purging. Those with the real brains, the right technology, and get in at the right time might make it. Those that don't, don't. IMHO, the time to get in has already passed. It takes time to build a massive data network to begin with, much less research all the equipment available in order to find a reasonably reliable combination.
The PC solutions are no better. The quality is horrific at best, after seeing probably close to 90 different 'solutions' that were anything BUT. They are unreliable - the hardware-based solutions even moreso - and offer very very little quality, much less return on investment potential. I spent a lot of time at a PC trying to get one particular card to work and watched as the card itself gave up the ghost and shorted out itself, due to extremely poor manufacturing quality.
My recommendation? Abandon the idea and cut your losses while you're still ahead. There are other options out there with better profit potential that aren't reliant on a killer IPO performance. Maybe there'll be a maturing of VoIP technologies - maybe even a standardization (HA! Yeah RIGHT!) in the coming years, but now is not the time or place to try it.
=RISCy Business
your company here.
shelby != ford
I'm sorry, but I'm a little tired of people crying that they can't find someone else' "open free software" to add to their planned multi-million dollar product. You are a developer, so please go develop it yourself or hire someone or contract some company to do it. I prefer to support those who have the guts to bring a product to being with their own sweat. Technology does not progress when you keep riding on the backs of others. If you can't do it, please find something else to do. I know, flames abound, but I am a developer, and I choose to stand by my own britches and I commend others who do the same.
Data Connection almost certainly provide exactly what you want. They do a total package - app sharing, video, audio, whiteboard, chat, the works. The relevant web page is here.
Gerv