VOIP functionality (real-time streaming voice over a maximum of 5 users) compared to Silverlight 4.0?

Since SL 4.0 has video and microphone support ...

How possible is it to provide VOIP functionality (streaming voice streaming through a maximum of 5 users) through Silverlight 4.0 for a web application?

What are all the related issues?

+4
source share
3 answers

Part of the solution was recently presented as CSpeex , the port of the old Java port of the old version of Speex (c. 2003). I played with it and it definitely works (e.g. 10x or more compression). However, you still have to transfer these packets to the server somewhere, and it seems that no Silverlight RTP / RTSP / SIP or RTMP implementations have been implemented, so at this point you will have to minimize your own network flow stream support. In addition, if you do not want all your users to wear headphones, you will need acoustic echo cancellation, and this is another ball game. There are very good open source versions (e.g. speexdsp), but they are all direct C and hard to port. So you are on your own too. There are likely to be some open source answers in the next few months / years, but there aren't any.

+3
source

Much depends on how the new microphone / video SL4 support is implemented. You will need to enable code capable of

  • Voice Encoding to Byte Stream
  • Send a stream of bytes to the other side / parties.
  • Reception / decoding of a stream of bytes in a sound signal

I believe that SL4 has some support for COM support, so if there are any unmanaged (or paid) unmanaged C ++ VOIP libraries or audio encodings, you can connect to them.

+1
source

There are several libraries that you can use. For example: conaito, ABTO llc, IndependentSoft SIP, which will work with Silverlight 4.0. Conaito and ABTO use java scripts to communicate in their web client, while IndependentSoft has a managed assembly.

Conaito and ABTO are good, but their libraries are a bit outdated due to the fact that they are ocx and use COM-dlls that can disrupt your deployment.

IndedenpentSoft is easier to deploy because it manages the code, but requires much more work to implement, since it basically provides the transport layer, and therefore you need to specify the codec protocol and trnasport.

The main issues to consider are the requirements of your firewall. My suggestion would be to look for a managed assembly that uses STUN, TURN, and especially ICE.

+1
source

All Articles