== GSoC2008: Voice and Video Support ==

Student: [wiki:Maiku Mike Ruprecht (Maiku)]

=== To-Do: ===
 1. Port Pidgin to use Farsight 2 (Done: until the next version is released)
 1. 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)
 1. 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 [http://developer.pidgin.im/viewmtn/branch/shortchanges/im.pidgin.soc.2008.vv im.pidgin.soc.2008.vv] before asking questions and submitting bug reports. It might be a good idea to review [http://developer.pidgin.im/wiki/UsingPidginMonotone UsingPidginMonotone].

If you're following the UsingPidginMonotone HOWTO, use "im.pidgin.soc.2008.vv" instead of "im.pidgin.pidgin".

For help with building, see [http://developer.pidgin.im/wiki/Installing%20Pidgin#Compiling Compiling Pidgin]. Please carefully read through that section and any extra information for the distribution you're using.

Make sure you have:
 * gstreamer0.10-plugins-good
 * gstreamer0.10-plugins-bad (not sure which version, but it needs to include the gstrtpbin plugin)
 * [http://farsight.freedesktop.org/releases/gst-plugins-farsight/ gstreamer0.10-plugins-farsight] >= 0.12.6
in addition to the extra compiling requirements of:
 * [http://farsight.freedesktop.org/releases/farsight2/ farsight2-0.10] == 0.0.2
 * gstreamer-plugins-base-0.10

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

Update: now that STUN works with the rawudp transmitter, calls should work through NATs to some degree.

==== Additional Tips for Debian/Ubuntu Users: ====
You'll need these packages from the your Debian/Ubuntu repositories, instead of the ones listed above:
 * [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):
 * [http://packages.debian.org/experimental/libgstfarsight0.10-0 libgstfarsight0.10-0]
 * [http://packages.debian.org/experimental/libgstfarsight0.10-dev libgstfarsight0.10-dev]
 * [http://packages.debian.org/sid/gstreamer0.10-plugins-farsight gstreamer0.10-plugins-farsight]

==== Additional Tips for Fedora Core 9+ Users: ====

You'll need these packages from the Fedora package repositories, instead of the ones listed above:

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

You'll also need this package, which needs to be compiled from source.

 * [http://farsight.freedesktop.org/releases/farsight2/ farsight2-0.10]

You have to use FC9+ because otherwise the gstreamer base package is too old to support the farside2 package above.
