Suggestion for open source software to create a voice chat application - api

Looking to create a voice application to work with 10 computers and 1 server connected locally.(offline) I'm thinking the server would hold the application and the computers would run clients.
Ideally there would be a total of 10 channels that users can join or leave.
I'm looking for open source applications or APIs that I can utilize for this. Are there any suggestions of prewritten code I can utilize and create a custom GUI?
I'm looking to create something similar to ventrillo but have the ability to customize the GUI.

You can use asterisk with app_conference or webrtc and some MCU.
But anyway you will not get even close to ventrillo. Ventrillo's main complexity is not conference itself, but noise supression/voice detection and choose of correct codec for each channel acordinly to current bandwidth.

Related

Can WebRTC help me create a virtual classroom?

I'm trying to create a virtual classroom. Since I'm not familiar with the web conferencing (or conferencing) terminology, I'm not sure if I'm understanding WebRTC's capabilities as I should.
I've looked in the examples for WebRTC, and all that I've found seem to be peer-to-peer connections. As I understand it, peer-to-peer connections are between two entities. However, virtual classrooms are different as far as I know; they require all parties to be connected to each other, so that when one user speaks/types, all users hear her.
Is such a thing possible with WebRTC? If so, what is it called and how can I read more about it?
Check out the open source Big Blue Button project (http://bigbluebutton.org/). They're currently Flash based but are actively moving towards webRTC. Rumor has it they'll be using Kurento as their MCU. They also have open source mobile (Android/iOS) application code.
According to http://www.html5rocks.com/en/tutorials/webrtc/infrastructure/, such a thing is possible:
Beyond one-to-one: multi-party WebRTC
You may also want to take a look at Justin Uberti's proposed IETF standard for
a REST API for access to TURN Services.
It's easy to imagine use cases for media streaming that go beyond a simple
one-to-one call: for example, video conferencing between a group of colleagues,
or a public event with one speaker and hundreds (or millions) of viewers.
A WebRTC app can use multiple RTCPeerConnections so to that every endpoint
connects to every other endpoint in a mesh configuration. This is the approach
taken by apps such as talky.io, and works remarkably well for a small handful
of peers. Beyond that, processing and bandwidth consumption becomes excessive,
especially for mobile clients.
Maybe you can try searching in the webrtc google group
hope this helps

How to add dynamic text to live tile in windows 8 with javascript

Well, the topic says it all. I'm dabbling with windows 8 app development using html/css/javascript and I'm having a hard time finding information on how to dynamically manipulate the live tiles.
There is a lot of information out there on how to create multiple tile xml files and launch them after each other but if anyone had a good resource, or even better, a first-hand explanation, on how to create these tiles programatically to, say, make a countdown tile, it would be greatly appreciated.
There's no way to programmatically update the text/image on a live tile directly in real time.
The only APIs available are those in the Windows.UI.Notifications namespace, such as are shown in the Sending a tile update Quickstart.
You can use the notification queue, as shown here, to provide multiple updates that will automatically cycle, or you can use an external service, such as Windows Azure Mobile Services to send tile updates. Using push notifications from an external service will probably get you closest to the behavior you're looking for, since it will not rely on the app being active in order to update the tile. Be aware, however, that the app will need to run at least once in order to create the channel URI that's needed for the external service to update the tile.
For more info on Windows Store app development, register for Generation App.

How to send SMS through "USB" connected mobiles?

I am not a professional developer but I want to develop one project that includes sending message through mobile connected through USB port only... And if possible I want to keep it generalized, like no need for handset model and service provider name.
I don't think it's possible to do this. Certainly at the very least it would depend on the model of mobile in use.
However as an alternative approach there are companies that provide a (paid for, but not expensive) SMS service accessible via a web API. This may suit what you are trying to achieve.
I don't think you will find this easy. Messages can be sent in 2 different modes 'text' or PDU. Support for both modes is not universal across all phones. PDU is the most widely available type on modern phones, but is also the most complex. Not all mobile phones expose a modem to the computer eg. Windows mobile 6.*. Many phones use proprietory software that does not support all commands. Different phones will connect to different COM ports so this will need checking every time, and could prove tricky if there is more than one phone/modem connected. However using just one phone and sending messages in text format after configuring the settings manually the first time is very easy.
See an example here http://www.codeproject.com/Articles/34360/vb-net-AT-commands-to-send-SMS

Proper method for implementing API on an ARM based firmware

I am developing a device firmware based on an LPC17XX+FreeRTOS. My development environment is Eclipse + GCC, codes are in C. The requirement of the end product is:
A "base firmware" running RTOS and performing some periodic task (eg. perform health check).
The base firmware needs to support an API which will have some functions for data manipulation/delay/timing and some functions for using the device ports and I/O.
The user can build their own app using this API.
The user app needs to reside in an empty space of the flash. (It will be sent to the device via Serial port and I plan to use IAP to save it on flash)
I want to start the app as a new task from the "base firmware".
Step 1 and 3 are fairly easy to implement. I am not sure what is the best way to implement 2,3 and 4. So far I've looked at Dynamic linking, jump tables, overlays etc and I am kind of lost. Can someone give me an overview of proper implementation steps?
Some related questions:
Any other way to develop firmware for a product which provide API based App/module development and loading?
What do I need to provide to the user for using the API? Will my API source code be open?
I am open to any ideas, thanks :)

What is the best server side solution for a real-time GPS tracking system

Well, I tried to ask this question as a comment on this question, but I thought that maybe no one will notice it, so I decided to ask it as a separate one.
The question is about how to do real-time GPS tracking system things; if we have the following scenario:
Rather than connecting a GPS receiver to a PC, the user will have a mobile device with an integrated GPS receiver.
Location data will be sent over mobile network using GPRS data connection to a server side.
The data will be processed and a KML path file will be created and updated on time intervals and used to track the user using Google Earth.
The question is: what is the best method to accomplish this scenario for the server side; is it a web service, a web application, a windows service, a windows application or what exactly? Taking into account that the system will serve a number of users simultaneously, and that more users may use the system in the future(scalability issues).
Thank you in advance and I highly appreciate any help :)
What kind of device are you using exactly, something like this or something more sophisticated / configurable? If we assume that the device sends its data over TCP, I would consider the following approach with separate input/output processes:
Input: a process listening specific TCP port and storing incoming coordinates to database with a device id. Preferably, your listening loop must be able to handle simultaneous connections without them blocking each other.
Output: web application reading coordinates from database for a given device id and displaying them through the Google Earth API.
Use whatever programming language(s) you are familiar with.
For me there is a technical limitation/risk here -> the mobile device, and its connectivity.
1) What are your requirements? Do you need to support various mobile devices or will you focus on only one platform ?
2) More importantly, you have to understand that GPRS data connections differ from a PC connected to the Internet. There are various connection restrictions imposed by different mobile operators.
If I was to design such a system in order to minimise those risks I would go with a web server running on port 80 which the mobile devices would upload their Long/Lat through POST (or even GET to simplify things).
EDIT: Regarding scalability, it would be very easy to scale things up in the future using tried&tested load-balancing techniques.
EDIT2: Whichever technology you decide to use, i would HIGHLY recommend that the first thing you do is to mock up a prototype. Those connection restrictions could be show-stoppers. Ideally you need to explore them before you have made any serious investment.