[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [ecf-dev] Google Summer Of Code ideas
|
Hi again,
I've learned some new things with new day, that I'd like to discuss
with somebody from your team before writing GSoC application. I've
finally decided to do a SIP/VoIP implementation and I've focused on
this task since yesterday.
I don't know however should I discuss it again on ecf-dev list or
should I contact with possible (proposed by you) mentor? I'd
appreciate some jabber or irc contact.
Greetings,
Marek Zawirski
On Wed, Mar 26, 2008 at 8:45 PM, Marek Zawirski
<marek.zawirski@xxxxxxxxx> wrote:
> Hello!
>
> Nice to get some reply, Roland.
> Yes, I'm considering SIP implementation seriously, that's interesting
> one. So I think that I'll focus on this project :) Could you be a mentor
> for such SIP/VoIP project, Roland? I don't actually know how process of
> becoming mentor of GSoC at Eclipse looks like.
>
> Again, did some research after your answer. I've found that JAIN-SIP
> (JSIP reference implementation) seems to be a working implementation,
> still popular and used. JSDP (SDP library) FAQ states that SDP part of
> JAIN-SIP is somehow outdated. I'm hoping (and investigating) that it is
> possible to send JSDP-generated SDP messages with JAIN-SIP. If so, it
> maybe enough stuff to do signaling part.
>
> Coming back to real challenge part as you say... RTP/Media. I thought
> that Openfire is server doing something else. But ok, if you say it
> includes such implementation I will try to look at it. I'm just
> downloading source code and will search for. There is also Spark IM
> client from Jive that has some SIP plugin. I wonder what does it use
> internally.
>
> Moritz, I've looked at your developer's log:
> http://wiki.eclipse.org/VoIP_in_ECF%2C_GSoC07_DevLog. It seems that you
> have used Smack API from Jive for XMMP/Jingle. Have you also used it for
> voice compression, coding, transport (with JMF plugged into Smack API),
> or am I wrong? I'll also download the code and look into.
>
> As JMF looks to be orphaned by Sun, I've found some interesting
> replacement-project: http://fmj-sf.net/. Some important VoIP audio
> codecs are alredy supported
> [http://fmj-sf.net/fmj/supported_formats.php], there is some RTP
> implementation allowing sound stream to be plugged-in into RTP driver.
> What is important, project is active, so there is a hope for future. It
> is LGPL licensed. However, I'm not sure about RTP quality/status, as it
> seems to be one of a GSoC task for this project
> http://www.sip-communicator.org/index.php/GSOC2008/FmjMedia. One
> approach may be to use JMF and possibly later switch to FMJ as they use
> the same or similar API.
>
>
> The problem is that these protocols/codecs implementations are all from
> different projects and there is no all-in-one library for doing all
> tasks. This can make the project somewhat harder.
>
> In a meanwhile I'll try to look closer at mentioned projects/libraries.
>
>
> Greetings,
> Marek Zawirski
>
>
>
> > Hello Marek,
> >
> > Your assumptions as far as the SIP implementation you mention is
> > concerned are correct. Implementing the SIP signaling should be
> > straight-forward but the real challenges lie with the RTP/Media
> > transport.
> > There were quite some challenges with the JMF approach we evaluated
> > with regards to portability and CODEC avialability... the JMF project
> > has been relatively dormant for quite a while and my guess is it will
> > not pick up momentum any time soon.
> >
> > The guys at Jive provided a custom RTP/Media implementation with the
> > Openfire version 3.xx relase and we haven't yet been able to look at
> > the details of that implementation. It may/should be possible
> > to use their implementation (both from a licensing and code
> > standpoint) in conjunction with a suitable signaling implementation
> > to implement the ECF Telephony API (as a SIP provider plugin).
> >
> > AFAIK, Moritz already used/tried out early versions of the Openfire
> > implementation within his ECF Telephony API jingle (signaling)
> > provider so maybe he could shed more light on that.
> > I am currently responsible for the IAX provider but currently taking
> > a different approach which involves wrapping native libraries that
> > provide both signaling and rtp media (a viable approach in the
> > absence of suitable java implementations).
> >
> > The VOIP functionality within ECF is much demanded by the community
> > and I personally think it will be great to have a SOC project take on
> > the SIP implementation. We could certainly share more details if you
> > are seriously cosidering such an implementation.
> >
> > Regards,
> > Roland.
> >
> >
> > Re: [ecf-dev] Google Summer Of Code ideas « »
> >
> > Von Scott Lewis <slewis@xxxxxxxxxxxxx> (» Adressbuch)
> > An "Eclipse Communication Framework (ECF) developer mailing list."
> > <ecf-dev@xxxxxxxxxxx>, Moritz Post <moritzpost@xxxxxx>,
> > roland@xxxxxxxxxxxxxx, mik@xxxxxxxxxxx
> > Datum Tue, 25 Mar 2008 15:02:32
> >
> > Hi Marek,
> >
> > [Moritz and Roland...please see below for questions about
> > SIP/codecs/Java media]
> >
> > [Mik please see below for questions about Mylyn integration with ECF
> > as
> > a SOC project]
> >
> > Marek Zawirski wrote:
> >>> 1) Mylyn integration
> >>> I'm asking really nicely Remy, is it possible at all? :) If not
> > I'm
> >>> just leaving you list of some ideas (possibly stupid as I'm not
> >>> experienced user of Mylyn).
> >>>
> >>> Major function implemented by Remy is sending tasks between users.
> >>> I've thought what could be added and my output is:
> >>>
> >>> a) Chat/call with some user from issue-tracking system, such as
> > bug
> >>> reporter, possibly software client, or commenting developer. This
> > is
> >>> probably one of most obvious feature, but result in problem of
> >>> mapping Issue-Tracking System (let me name it ITS if you don't
> > mind)
> >>> users database to IM users list. First, I thought about heuristic
> >>> basing on usernames: cliking on username results in Menu "Chat
> >>> with..." and possible guesses in your buddy list, or manual user
> >>> selection. Such selection could be stored in some mapping,
> > possibly
> >>> locally or on ITS. However, I don't now is ITS a good place for
> > such
> >>> sensitive data?
> >>> When looking for solution, I've found
> >>> https://bugs.eclipse.org/bugs/show_bug.cgi?id=152415 which address
> >>> this problem and is related to Higgins framework(?). Do somebody
> > know
> >>> what's the current status of these issue? I guess it would require
> >>> changes in Mylyn itself possibly?
> >>>
> >>> Some generalization of a) would be creating mutliuser
> > chat/conference
> >>> for a task. Similar problems I guess + additional issue: multiuser
> >>> chat support in ECF providers.
> >>>
> >>> b) Also related to a). Make contacts/communication part of an
> > issue
> >>> context. ITS allows to define contacts of a task by providing:
> >>> reporter, assigned user (or users, depending on ITS), commenting
> >>> users. Is it enough?
> >>>
> >>> This would require Monitoring API implementation or some manual
> >>> adding to context(?). As it may be hard to distinct whether such
> > chat
> >>> is related to this issue or is it "just" chat with friends during
> >>> work, coding same time ;)
> >>> However, when somebody is initiating shared editor session, it's
> >>> quite sure that this contact is related to this task.
> >>> Some contacts may be also extracted from @author tags of javadocs
> >>> possibly. That's however, more language and company
> > recommendations
> >>> specific, I'm afraid. It's just another way of creating
> >>> communication-context which might be seen as general problem.
> >>>
> >>> Anyway, there are still some problems with contacts mapping, as
> > IMHO
> >>> it would be better to store them in ITS-usernames form in context
> >>> (more general form), and define mappings in other part (as users
> > may
> >>> use different IM for example).
> >>>
> >>> Another problem is that creating communication/contacts context in
> >>> form of Mylyn context will make it unusable for non-Mylyn ITS
> > users.
> >>>
> >>> c) When having some task-oriented chat with somebody, it mabye
> > useful
> >>> to add log from part of conversation to ITS, don't you think? This
> >>> may include extended problem recognition after interview with
> >>> reporter or implementation status details after chat with
> > developer.
> >>> However, it would be nice to do it easily, without too much manual
> >>> reformatting, so just selecting some fragment. That's mainly
> >>> copy-paste transformation support possibly. That's small feature
> >>> possibly.
> >>>
> >>> d) Some fun and maybe not possible;) Real-time task
> > synchronization.
> >>> When >= 2 developers work on some task(s) simultaneously and want
> >>> online synchronization of their contexts without manual sync. I
> > don't
> >>> know Mylyn details yet, especially context model and
> > synchronization
> >>> model. So I'm not sure is it possible to create such
> > synchronization
> >>> session. This may be a complex one.
> >>>
> >>>
> >>> I also wonder how much part of implementation of a) - d) or others
> >>> require intervention in Mylyn code. Is it in fact ECF project, or
> >>> Mylyn project using ECF (is it a problem?)? Possibly not
> > everything
> >>> could be done as Mylyn Bridge as my first my guess.
> >>
> >> I also wonder how much part of implementation of a) - d) or others
> >> require intervention in Mylyn code. Is it in fact ECF project, or
> >> Mylyn project using ECF (is it a problem?)?
> >
> > It's not inherently a problem, but would require coordination with
> > Mylyn
> > team (if it in fact does require changes to Mylyn code as opposed to
> > additions via further plugins). I've copied Mik Kersten on this email
> > to get his input on some of the questions you raise.
> >
> >> Possibly not everything could be done as Mylyn Bridge as my first
> > my
> >> guess.
> >>
> >>
> >> 2) VNC
> >>
> >>> Yes...this would be a terrific project IMHO. The reason we haven't
> >>> worked on this so far is captured in a single word: 'resources'.
> > We
> >>> just haven't had enough time/interested people to do it.
> >> (possibly) resourcesNumber++ ;>
> >
> > Sounds great.
> >
> >>>> What about realization?
> >>>> I've read about proposed idea to create some interface for
> > application
> >>>> sharing with VNC as one of implementation, or some existing
> > interfaces
> >>>> may be used (e.g. ISharedObject?). This could be used for session
> >>>> sharing possibly. VNC protocol need to be implemented or some
> > external
> >>>> library used.
> >>>>
> >>> Yes. There are different approaches here...one would be to make a
> >>> localhost socket connection to a running VNC server/host, and
> >>> basically have the ECF host get screen sharing data from
> > localhost,
> >>> send it over the wire, and then display on remote clients.
> >> I wonder what is a purpose of making ECF a proxy for real VNC
> > server.
> >> Is it really needed? Do you mean better control or some tunneling
> >> (with encryption?).
> >
> > Compression, encryption, and/or tunneling certainly can/could be
> > done.
> > Also, using ECF can distribute the VNC server output to several/group
> > of
> > receivers.
> >
> >> In simple model VNC server could just listen/bind on * interface,
> > not
> >> only localhost, being more standalone. All what is shared then is
> > some
> >> URL and possibly some settings? This may have some drawbacks
> > maybe... (?)
> >
> > This would be OK, but it would limit what you can/could do with ECF
> > (on
> > servers or clients). For example...if you are sending the VNC server
> > screen output and mouse/keyboard input over ECF provider, then you
> > can/could have some ways to do a) recording; b) have bots that
> > respond
> > to certain kinds of mouse/keyboard input...for example.
> >
> >>
> >>> Some months ago I tried to contact the VNClipse folks to ask them
> > if
> >>> they would be interested in working together...and didn't hear
> >>> anything back. They may have been busy, or things may have
> > changed,
> >>> so it would probably be worthwhile to try to contact them again. I
> >>> can't immediately remember what the license was, but at that time
> >>> they were not making the source available.
> >> I'll just write to them.
> >
> > OK, great.
> >
> >>> One other licensing issue is that the VNC source itself (including
> >>> the java clients) are GPL, so if we want to use/modify any of that
> >>> code the resulting code cannot be under the EPL (Eclipse license).
> >>> ECF has both EPL-based components (i.e. those hosted/distributed
> > at
> >>> dev.eclipse.org), and those *not* under EPL (the 'ECF Extras'
> > hosted
> >>> at ecf1.osuosl.org), so we can work around these issues for a SOC
> >>> project in any case.
> >> Did you mean TightVNC GPL implementation?
> >
> > Yes.
> >
> >
> >> I've done some zoom in at its vncviewer code - VNC client. It
> > appears
> >> to be not very very complicated, ~20classes / ~20KLOC. However,
> >> implementation is sticked to AWT/SWING, so would require embedding
> > AWT
> >> Canvas component or forking project and porting it to SWT. In the
> >> latter case, things looks rather straight-forward.
> >> BTW: interesting TightVNC feature is recording of session from
> > client.
> >
> > Yes.
> >
> >>> I personally do not, as I'm not an SWT expert. In other java-based
> >>> impls of VNC, we've used the native code impls of VNC and talked
> > to
> >>> them via a localhost socket connection as you suggest below (booo)
> >>> :). There may very well be ways to write a VNC server in java
> > using
> >>> SWT...and given SWT's native implementation it could be
> > sufficiently
> >>> performant on some/all platforms. I don't know.
> >>> But there are several people on the ECF committer list that are
> > very
> >>> good WRT SWT and UI: Boris Bokowski, Remy Suen, Chris Anisczyck
> > and
> >>> others. Hopefully we can pull them into the conversation
> >> I'd appreciate your comments:) Things that I'm especially wondering
> >> are they possible:
> >> - is it possible to make SWT "secondary" output to some
> > user-provided
> >> framebuffer class, register some redrawing listener for a whole
> >> desktop, even when non-SWT window is focused?
> >> - is it possible to grab mouse/keyboard input from other windows,
> > even
> >> when non-SWT window is focused?
> >
> > I doubt it (for both questions), but this is indeed something that
> > should be asked of SWT experts. Perhaps it would be a good idea to
> > pose
> > these questions in the SWT newsgroup(s)?
> >
> >> Still, some external native code could be started like with Skype,
> > but
> >> AFAIK VNC servers are provided in different ways and under
> > different
> >> licenses. Eventually it could be configured by user, but what are
> >> Eclipse-embedding benefits then...
> >>
> >> BTW What java-based impl did you mean, Scott? Some closed-source?
> >
> > No, I meant the java client provided with realvnc (I think that's the
> > name).
> >
> >> 3) SIP
> >>
> >>>> 4) SIP implementation, not yet made for ECF(?). I don't have much
> >>>> experience (except user-side) with that protocol, just wondering
> > how
> >>>> laborious this task may be...
> >>>>
> >>> This is a great question for our two VOIP committers: Moritz Post
> >>> (did the Jingle VOIP SOC project last year), and Roland Fru (has
> >>> worked quite a lot with SIP and Asterisk).
> >>>
> >>> In either case I think a SIP provider (implementer of the ECF call
> >>> API) would be great.
> >> Ok, again, I'm asking kindly for some comments:)
> >> I've found JAIN SIP API and reference implementation of SIP and
> > SDP,
> >> made as part of Java Specification Request. However, I've read it
> > is
> >> bit outdated, on JSDP page - don't know how/why. JSDP is unofficial
> >> (out of JSR) implementation od SDP. Basic signaling part of this
> >> project may be not very hard. I'm expecting more problems with
> >> interoperability and mainly - transport/RTP and codecs/audio
> >> implementations.
> >> Or do you have other experiences?
> >
> > I'm forwarding this onto Moritz Post, who did the 2007 VOIP project
> > (Jingle). He ended up using Java Media codecs/audio implementations
> > to
> > do this, as I expect that's what the JAIN sip implementation does.
> > I've
> > noticed that the JAIN SIP implementation doesn't seem to be getting a
> > lot of new work recently, so I'm not sure of it's status. Moritz and
> > Roland please comment about existing SIP implementations that you
> > know
> > about.
> >
> >
> >> The codecs, audio, RTP part may be already implemented as part of
> >> Moritz Post GSoC work possibly(?). AFAIK jingle is just another
> >> signaling protocol with similar role as SIP with SDP, so maybe
> > audio,
> >> compression and streaming code may be shared?
> >
> > That is very possible. I'll let Moritz and Roland answer your
> > questions
> > more directly.
> >
> > Thanks,
> >
> > Scott
> >
> > Ihr Postfach Logout
> > _______________________________________________
> > ecf-dev mailing list
> > ecf-dev@xxxxxxxxxxx
> > https://dev.eclipse.org/mailman/listinfo/ecf-dev
>
>
>
>
> --
> Marek Zawirski [zawir]
> marek.zawirski@xxxxxxxxx
>
--
Marek Zawirski / zawir
marek.zawirski@xxxxxxxxx