[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [ecf-dev] cross-project use of Skype provider
|
Hi Mike,
Thanks for your thoughts and observations.
If you would like to also open documentation bugs/enhancements
specifically for the areas where you experienced difficulties that would
help us target where to focus efforts.
Thanks,
Scott
Mike Greenawalt wrote:
Hi -
Scott suggested I share what I am doing with the ecf-dev mail list, so
here goes:
I am a committer on the technology/vtp project (Voice Tools). Back in
2005 (to meet a Feb 2006 release deadline) I developed some plugins
that implement a launching capability so that VXML apps developed with
the tools could be run on the Tellme Studio voice browser platform at
the press of a button. That involved me developing an interface to the
Skype API so that the launcher could call Studio programmatically via
Skype. I completed that development, creating a Windows-only version.
I did not have resources to also build Mac or Linux versions (and
still do not).
About the time that effort was finishing up, I learned that Skype was
supporting a development effort to create a Java interface to the
Skype API called Skype4Java, which incorporates Windows, Mac, and
Linux support. I would have preferred to use that code, but it was not
ready in time. I have now resumed working on the Voice Tools project
with a first goal of retooling to use the Skype4Java code.
I was gratified to see that ECF has already built a Skype provider
based on Skype4Java, and I have been pursuing replacing the previous
guts of the Tellme launcher with calls to the ECF Skype provider. It
has been an interesting struggle, with very encouraging results so far.
I say it has been a struggle because the model I chose to represent a
phone call in the original code is quite different from the ECF
provider model, and I had to figure out how to "marry" the two. I had
a lot of code that is functional in launching the VXML app, which
involves making a phone call via Skype while simultaneously monitoring
the Tellme Studio website to detect log messages coming from the
execution of the application. There is a thread that manages the call,
dialing the number and then waiting for status messages, mainly to
detect the end of the call. And there is a separate thread that
monitors the log output from the website, detecting the start of flow
of log entries and then passing each entry back to Eclipse Voice Tools
where the entries are displayed in a View. So, having all this code
which works admirably, I simply wanted to replace my "dialing" code
with an interface to the ECF Skype provider.
Scott had encouraged me to use the CallSessionContainerAdapter class
with the sendCallRequest method to make the call as by so doing,
additional call infrastructure mechanisms could be easily supported in
future. *<grump>*I have to say that using the documentation I could
find on the ECF pages, and the code of the Skype provider I had a very
hard time figuring out how to do that. At almost every turn, I would
find a parameter needed for a constructor or for an instantiator
method that I did not know what value to use and could find no example
code to copy.*</grump>*
Finally, I was able to actually make a Skype call by using: ("number"
is a String containing the Tellme Studio Skype ID.)
IContainer container = (IContainer) ContainerFactory.getDefault()
.createContainer("ecf.call.skype"); //$NON-NLS-1$
*. . .*
SkypeCallContainerAdapter callcontainer =
new SkypeCallContainerAdapter(container);
ID target = IDFactory.getDefault().createID(
"ecf.namespace.skype.user", number);
callcontainer.sendCallRequest(target, new ICallSessionListener()
{*. . .*});
As I say, that works, but is not as generic as I would like. At this
point, I need to work on the *. . . *in the body of the
ICallSessionListener. It needs to return status messages from the
Skype API to the calling thread so it can detect error or end of call.
Right now, it is not doing that very well. And then, I need to test
out the new interface that Scott did to enable sending DTMF tones to
Skype via the CallSessionContainerAdapter.
Difficulties aside, using the ECF provider to access the Skype4Java
code has been a rewarding experience, and I think much more quickly
done than if I were trying to use Skype4Java directly. Thanks to ECF
for doing such a nice job on it. I think being able to share across
Eclipse projects is really valuable.
-- Mike Greenawalt
_______________________________________________
ecf-dev mailing list
ecf-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/ecf-dev