Trac is being migrated to new services! Issues can be found in our new YouTrack instance and WIKI pages can be found on our website.

Version 35 (modified by kyrian, 16 years ago) (diff)

--

GSoC2008: Voice and Video Support

Student: Mike Ruprecht (Maiku)

Amendments/Warning?: I have tried to make this a bit more sane for people who are not developers and yet want to experiment with these features. My additions should be clearly labelled. None the less, if you have never compiled something from developmental source code before (no tarballs here!), you should leave now, and just wait until this hits a final release of Pidgin -- Kyrian.

To-Do:

  1. Port Pidgin to use Farsight 2 (Done: until the next version is released)
  2. Finish XMPP audio conference implementation (Making good progress: it works)
    • Fix up libPurple voice conversation support
    • Fix up Pidgin voice conversation support
    • Complete XMPP voice conversation support
    • Add support for GTalk's voice conversation implementation (requires libnice)
  3. Implement XMPP video conference implementation (Making good progress: it works)
    • Add libPurple video conversation support
    • Add Pidgin video conversation support
    • Add XMPP video conversation support

Tips for Testers:

Make sure you are using the latest revision of im.pidgin.soc.2008.vv before asking questions and submitting bug reports.

(Kyrian) It might be a good idea to review UsingPidginMonotone to understand what this means?

To cut a long story short, however, follow the brief HOWTO in the UsingPidginMonotone, but substitute "im.pidgin.pidgin" for "im.pidgin.soc.2008.vv", and of course "/user/" for whatever your own user is, to make things come out as a subdirectory of your own home directory, and to make sure you get the right development 'branch' of the source 'tree'.

The HOWTO will end you up in the $DATABASE directory when you need to be in the $WORKINGDIR directory to see the code that monotone has downloaded, so "cd $WORKINGDIR" afterwards.

(This done it is probably a very good idea (tm) to suggest that you force the install location of the development version you are about to build to be under /usr/local/ or /opt/ instead of in with the system software so as to avoid it nuking a working version of Pidgin you might have installed from a package!--exec-prefix and --prefix options to the './configure' command! )

And then the related comments in HowDoIBuildThisThing. You'll probably find that you need autoconf/aclocal/automake packages installed for that to work though. With that covered, I refer back to the original author's comments(/Kyrian)...

Make sure you have:

  • gstreamer0.10-plugins-good
  • gstreamer0.10-plugins-bad (not sure which version, but it needs to include the gstrtpbin plugin)
  • gstreamer0.10-plugins-farsight >= 0.12.6

in addition to the extra compiling requirements of:

  • farsight2-0.10 == 0.0.2 (aka libgstfarsight0.10-dev)
  • gstreamer-plugins-base-0.10 (aka libgstreamer-plugins-base0.10-dev)

Note: until Farsight 2's ICE transmitter (libnice) is completed, NAT traversal won't work very well. So, if you're behind a firewall, you'll probably only be able to start sessions within your local network.

Additional Tips for Debian/Ubuntu? Users:

You'll need these packages from the your Debian/Ubuntu? repositories:

  • [apt://gstreamer0.10-plugins-good gstreamer0.10-plugins-good]
  • [apt://gstreamer0.10-plugins-bad gstreamer0.10-plugins-bad]
  • [apt://libgstreamer-plugins-base0.10-dev libgstreamer-plugins-base0.10-dev]

in addition to these packages you'll have to get from the Debian packages site (unless you're running experimental):

Additional Tips for Fedora Core Users (Kyrian):

The equivalent required Fedora package names would seem to be:

  • gstreamer-plugins-good
  • gstreamer-plugins-bad
  • gstreamer-plugins-base-devel
  • farsight
  • farsight-devel
  • gstreamer-plugins-farsight

They can be installed quite simply with the Yum system.

(Maiku) It looks like the farsight package (and farsight-devel) listed is Farsight 1, whereas Farsight 2 is required.

(Kyrian) Maiku is quite right, these will need building from source, download from here: http://farsight.freedesktop.org/releases/farsight2/

I'll see if I can create a .src.rpm for it and plonk it somewhere for download.

You will need to be running Fedora Core 9 or a custom-built version of the base 'gstreamer' package in order to build and/or utilise the farsight2 libraries. (FC8 version is too old at 0.10.15, but FC9 is ok on 0.10.19). (/Kyrian)

These come from Fedora base repos, and one from the Livna repo, in my setup. There are about twice as many packages again required for dependencies, but they come from the Fedora repo, so there should not be any problem caused by that.

Of course, you'll also need a client for the Monotone system installed for the above UsingPidginMonotone commands to work, these come from the 'monotone' package, which again can be easily installed using Yum. For actual building, you'll need to install a variety of '*-devel' packages in order to get past the './configure' stage, but I am going to assume these are detailed elsewhere, and that the reader has enough experience to work this out for themselves.

The requirement for the "avahi-glib-devel", and (possibly also) "libgpg-error-devel" packages to be installed are a bit of a curve ball that you might miss though?

Using the basic configure line from a .src.rpm of pidgin from Fedora (in /usr/src/redhat/SPECS/pidgin.spec) will get Pidgin to build, provided you have the pre-requisites. The mandatory parts of the FC spec file's configure line for pidgin are:

./configure --enable-gnutls=no --enable-nss=yes --enable-cyrus-sasl --enable-tcl --enable-tk --disable-schemas-install

And then there are optional args which I am not so sure about.

The following commandline may prove useful for configuration if you do it another way (that's as far as I really got):

AVAHI_CFLAGS=-I/usr/include/avahi-glib ./configure --with-avahi-client-includes=/usr/include/avahi-client

[ More later. I don't think the above compile will actually enable Maiku's code by default? Can't be *that* easy? Indeed, a quick 'ldd' on various stuff installed by the build process shows no sign of being linked to the farsight libs! The config.log file also shows a failure to find farsight2 which explains it ;-) ]

All information, including names and email addresses, entered onto this website or sent to mailing lists affiliated with this website will be public. Do not post confidential information, especially passwords!