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 24 (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.

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 "avahi-glib-devel" is a bit of a curve ball that you might miss though?

The following commandline may prove useful:

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

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!