Bug 241190 - Replace homegrown Skype interface with Skype4Java usage
Summary: Replace homegrown Skype interface with Skype4Java usage
Status: ASSIGNED
Alias: None
Product: VTP
Classification: Technology
Component: simdebug (show other bugs)
Version: 3.0   Edit
Hardware: PC Windows XP
: P3 enhancement (vote)
Target Milestone: ---   Edit
Assignee: Mike Greenawalt CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-07-17 02:23 EDT by Mike Greenawalt CLA
Modified: 2009-05-25 03:16 EDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Mike Greenawalt CLA 2008-07-17 02:23:09 EDT
Original development of the Tellme launcher was done by creating a homegrown interface to the Skype client using JNI and a homegrown dll. That makes it Windows-only. It has long been planned to make this work on Mac OSX and Linux, too. 

In the interval, Skype has supported a project to develop Skype-blessed Java interface code that it calls Skype4Java. Skype4Java includes support for Mac OSX and Linux out of the box. So by using the Skype4Java code, we can achieve Mac and Linux support easily, and we take advantage of the skills of the developers of Skype4Java. (Believe me, I don't think I could do the homegrown JNI solution again.)
Comment 1 Mike Greenawalt CLA 2008-07-17 02:24:40 EDT
Assigning this bug to myself, since I *am* working on it.
Comment 2 Mike Greenawalt CLA 2008-07-17 02:30:21 EDT
I have discovered that the Eclipse Communications Framework (ECF) project has produced a "Skype provider" communications plugin that enables calling Skype from Eclipse, and that code already uses the Skype4Java code from Skype. I propose to use that plugin as a starting point for replacing the homegrown Skype interface code.

As of this date, I have successfully integrated the ECF provider into the Tellme launcher and made actual calls via that mechanism. The implementation is not complete, however, as the Skype provider does not yet return sufficient status messages from Skype. The Skype provider has a newly-implemented capability to send DTMF, and I have to check that out.

So far, so good.
Comment 3 Mike Greenawalt CLA 2009-05-25 03:16:14 EDT
The previous comment was added almost a year ago. In that time, I have battled a lot to make a go of using the ECF Skype provider code to accomplish what I need. And so far I have failed to do so. The status reported in July of '08 remains the same. The tack I took to use the ECF code would make calls just fine, but it provided no way that I could figure out to query the active call programmatically for its status. The VTP launcher code depends very much on being able to detect when a call has been established for sure, when it has finished successfully, and when it has finished in error. Despite numerous probes into the ECF code, I could determine no way to do that, short of modifying the ECF code. And an overarching principle I followed was that I wanted to use the ECF code, but not become a contributor to the ECF project. Similarly with the Skype-contributed code.

So, last week I decided that it was time to admit defeat and seek an alternative path. During my work with the ECF Skype provider, I became somewhat familiar with how it interacted with the Skype4Java code. I decided to stop trying to use the ECF code and concentrate instead on integrating the Skype4Java code into the launcher. 

I now have a version of the Tellme launcher that works with either the original Tellme-written Windows DLL or the Skype4Java Connector class. I have tested both modes in Windows, and I am satisfied they both work the same. 

Now I plan to create a new Debug branch to store these modified sources, and that will facilitate me testing the launcher on Linux, which I can do at home.