Jump to content
Sign in to follow this  

Project: Make a SIP-based Videophone - possible?

Recommended Posts

Hi all,

Great site - which is why I'm here!

I'm an Android developer, and I'm looking to do some modding of my Commtiva N700 to try and help my Nan, who is deaf, and lives miles away.

I want to make my Commtiva into a SIP-based text-and-video phone, which is ridiculously easy to use.

The idea is to take an open source video-capable IMS client, rip out any complicated UI or settings and present a simple interface which displays a

contacts list from t'internet, current video call, and live text messages, so I can type 'Hello Nan!'

Since my Nan isn't interested in any other Android tomfoolery, she wants the device to simply boot into the application straight away, with no other applications accessible.

I've had a quick test of the water using the virgin device.

After alot of messing about with different Android client / PC client / Codec /Quality combinations, the best I can get is:

Transmit video / audio from PC to device.

Transmit audio ONLY from device to PC.

Anything more than this leads to corruption of the video feeds / lagging / stuttering and all sorts of confusion.

I can't belive this is the best that this 600MHz processor can do!

So, before I tear my lovely Commtiva to bits I've come to you for some advice. If you have time to answer some questions, I'd really appreciate it.

Here we go then:

1. Am I correct in assuming that when you mod the device, you are able to add and remove OS components and choose the start-up order?

2. Is it possible to remove all software components except those specific to the needs of my application?

3. Will this actually have any effect on the performance of the device? I know you were able to turn on hardware acceleration (which is a good start!), but I mean to reduce the burden of unneeded services and free up some more processor. Will this help, or does Android do things pretty efficiently anyway?

Lastly, do you have any really good books / websites you can recommend?

My last venture into this kind of thing was with NT Embedded, so I'm a little rusty. I have no Linux experience, although I'm dead keen. So that must count for something, right?

Thanks in advance...


Share this post

Link to post
Share on other sites

Okay so I'm not a developer but here is my 2 cents:

1. I don't thnk you should remove any system compontents; the more lower level stuff you mess with the more problems you could face. I would make the sip app report itself as a home app. Than setiing it as default would load it immenidetly after boot without having to do any woodo or animal sacrafices. EDIT: forgot to mention that if you would do this you should definietly some hidden option (so your nan can't activate it by accident) to launch the default home app in case you need it.

2. Yes it is possible but it's a very error prone operation

3. If you still want to remove stuff you should check out this thread http://android.modaco.com/content/t-mobile...hings-from-2-1/

Edited by brookergray

Share this post

Link to post
Share on other sites

Thanks brookergray - looks like the only way is to "suck it and see". Will attempt device mangling at some point over the weekend. I'll start small with flashing Paul's nicely cooked stuff, and see where that gets me. I'm wondering if I'll get a performance improvement. Either way, I'll post some progress to this thread for entertainment value :unsure:


Share this post

Link to post
Share on other sites

That's not quite what I had in mind... :D

Although its prowess as an operating system is beyond doubt, Android is a little too complex to work out for people whose experience of mobile telephony does not go beyond a longer extension cable.

The application I have in mind does not replace a normal phone. It is meant to be a way for an elderly deaf person to communicate routinely with family and close friends only.

I want to remove any complexity at all and to finish up with a simple device which will present just a list of contacts on startup. When a contact is pressed, the call begins.

The call is a SIP based call to a free service, via WiFi and will include audio, video and text in-call.

The free service will handle storage and maintenance of contacts information; it will not be stored on the device. In this way, contacts and maintenance can be handled by someone else. (Me)

Using this application the user (Nan) has the opportunity to lip-read the incoming video, but can also read messages as they are typed by the other participant.

My intention is to modify the open-source IMSDroid Android app to provide a minimal UI. IMSDroid is also open sourced for a number of other platforms and has a native Linux implementation.

My reasons for modding the OS are:

1. Simplify. The device does only one thing.

2. Accelerate. The device can't handle full duplex video at the moment (any quality).

The plan:

1. Test out Paul's hardware accelerated mod, to see if there is any improvement in video.

2. If OK, then I'll mod to ensure my SIP application is the only one which is ever accessible. Bingo.

3. If not OK, then I'll have to do a more penetrating mod, slowly removing OS functionality to free-up processor.

4. I'm not beyond rolling up my sleeves and removing the Dalvik VM entirely. The SIP application relies on a bunch of cross-platform C libs which provide ALL functionality (apart from UI). They are accessed via the JNI, so there is a possibility that I could use the native version of the app instead of the Android version. But that's almost too scary to contemplate.

5. I saw a post in which someone got a device booting into a Debian distro on their SD card. Maybe I could use the native app in this way.

I'll be posting progress to this thread as I go. If anyone has anything useful they can contribute, I would be really grateful!



Share this post

Link to post
Share on other sites

It occured to me that most of my difficulties with sending video from the device are due to the wrong camera being used. It's trying to process a 3MP image from the main camera, rather than the teeny one from the front cam.

I tried to get the IMS application to use the smaller camera and fell at the first hurdle - Android 2.2 doesn't have a standardised camera API for front (user-facing) cameras. You can access the proprietary camera API, by mapping to it at runtime, so long as you know what it is. I don't. :D

I've contacted Linx, CSL, Viewsonic and Camangi. Waiting on something to come back from them...

Obviously, Gingerbread has a better camera API, with device enumeration, etc. Hey-ho.

Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this