Table Of Contents
Why have multiple communication applications, and contact lists to chat, talk, text, and exchange files? Simplifying all kinds of communications into a small, single mobile application is what fring* is all about.
Fring is a social networking application that has been optimized for the Mobile Internet Device (MID) form factor which allows you to take all your buddies mobile, call and chat with them for free, and see who’s online before dialing. This whitepaper gives an overview of the technical aspects of the application that were modified as part of the port to the MID and delves into details like getting VOIP calls working and the Moblin build environment.
fring is a mobile internet service & community that enables you to access & interact with your social networks on-the-go, make free calls and live chat with all your fring, Skype*, MSN* Messenger, Google Talk*, ICQ, SIP, Twitter*, Yahoo!* and AIM* friends using your MIDs WiFi or 3G connection.
The current Moblin beta release (which can be obtained here) includes most of the current fring capabilities, including buddy list management, presence, chat, VoIP and integration to many external IM and SIP networks. The ‘release’ version will include file transfers and support for 3rd party add-ons created with the fring API.
As shown in the screenshot below, the fring main screen displays your contacts and their presence status (e.g. online, offline, in-call). This list shows the names of your fringster-friends, your Skype/Google-Talk/MSN/ICQ/Yahoo/AIM contacts
From the main contact list you can navigate between your contacts, find their presence status and initiate a communication session with them. You may initiate a voice call, start a chat session and move between all open sessions. You can also make SkypeOut/SIP calls directly from your fring contact list.
Click here to watch a video demonstration of a beta fring version running on a Compal JAX-10 (Gigabyte M528) MID. The demo shows several key fring features working on a MID, such as IM, chat, and a presence-enabled buddy list.
Click here for more details on the fring application.
Porting fring to the Moblin OS was very straightforward as it was already available on the Nokia* Tablet N800 series - it was just a question of recompiling the sources against the Moblin SDK v1.0, known as Moblin Image Creator (MIC). Moblin and the Nokia tablet platform share common technologies, like the Hildon Application Framework (Maemo) and GTK/Gnome, so minimal UI work was required in reworking the application.
Below are screenshots to show the UI differences between the two platforms.
Nokia N810 Moblin
The main technical challenge in this project was getting VOIP calls working on the target hardware.
The initial Moblin port was carried out using the Samsung* Q1 Ultra (McCaslin based platform) as Intel® Atom™ based MID units were not available at that time. Once we had the application compiled with the Moblin SDK, most of the testing and debugging (including instant messaging) was done using Xephyr* (virtual X-server) running on a development PC.
Screenshot of development environment (fring running on Xephyr)
Information on how to install and use Xephyr can be found here.
Once fring was running under Xephyr, the next phase of the project was to test hardware specific features, like VOIP. In order to do so, we first needed to create a McCaslin-Moblin image to run on the Samsung Q1 Ultra (SQ1U) – these steps were done using the MIC tool (click here).
We found that VOIP calls did not work on the device, so we started off the debugging procedure by testing if audio could be captured. We already knew that audio play-back worked, and all the necessary GStreamer libraries/plugins and ALSA elements (alsasink/alsasrc) where installed. Audio capture testing was done by installing a sound recorder application; in this case we used the ‘gnome-sound-recorder’, which is part of the gnome-media package (to install type ‘sudo apt-get install gnome-media’). From the application we could see that audio was recording at the correct duration but without any sound, which meant the next thing to look at was the microphone. Digging a bit deeper and referring Moblin-mailing list (an excellent mailing list), we found that we needed to upgrade ALSA to version 1.0.16 or greater, which contains the necessary patches to get the microphone to work. We obtained the correct version of ALSA sources from here.
The procedure below shows how the ALSA driver was compiled and installed. In order to compile the ALSA sources, we needed the kernel headers, which where obtained using ‘synaptic package manager’ (it provides the same features as ‘apt-get’ but with a GUI front-end):
- copy and extract the alsa sources, go into the alsa-driver-1.0.16 directory
- ./configure --with-cards=hda-intel
- sudo make install
- sudo ./snddevices
- modprobe snd-had-intel
fring is now working on a fring/Midinux port which will be documented and posted at a later stage.
Every month, Intel will feature a new application that has been ported to a MID. Our next featured application is GyPSii.
We welcome your feedback on this article. Please use the "comment" feature below and let us know what you think.