KTp/Tasks/NewCallUI
About
Upstream upgraded from Farsight 0.1 to Farsight 0.2
Farsight is a library that manages codec negotiation in telepathy calls.
Farsight 0.1 is built against GStreamer0.10 Farsight 0.2 is built against GStreamer1.0
Farsight 0.1 is old and broken.
In order for us to use Farsight 0.2 we need GStreamer1.0 which means we need QtGStreamer 1.0.
QtGStreamer 1.0 had the annoying problem of not existing. Diane has ported it \o/
Building
(Diane's work at https://github.com/detrout/qt-gstreamer has been merged into the freedesktop master, so it's probably better to use that version)
Install QtGStreamer from http://cgit.freedesktop.org/gstreamer/qt-gstreamer/
git clone http://cgit.freedesktop.org/gstreamer/qt-gstreamer/ mkdir build cd build cmake -DQTGSTREAMER_CODEGEN=ON -DQTGSTREAMER_TESTS=ON .. make
Recompile TpQt from https://github.com/davidedmundson/telepathy-qt Branch farstream-0.2-port
Recompile ktp-call-ui (normal KDE repo) branch gst-1.0-port
Note: leonhandreke from IRC discovered there's a bug in farstream-0.2 0.2.2 , you'll need at least 0.2.3 for video to work.
Checking you've done it right
Run
ldd /opt/kde4/lib/kde4/libexec/ktp-call-ui | grep -i gstre
and make sure everything is at 1.0.
If you see 0.10, you've done it wrong.
Troubleshooting
SIP and Jingle are complex protocols and the software stack involved in making this work is fairly complex, so things are likely to go wrong.
ktp-call-ui is interacting with telepathy and farstream. Farstream is a set of plugins for gstreamer that provides support for RTP channels and codec negotiation. Somehow it calls libnice to do the NAT traversal.
You can watch ktp-call-ui interact with telepathy and the SIP or XMPP connection manager using ktp-debugger.
I've found you can do
export GST_DEBUG=fsrtpconference_disco:5,fsrtpconference_nego:5 ${KDELIB}kde4/libexec//ktp-call-ui --persist
To see some of the underlying negotiation being done by farstream. (5 is DEBUG level).
Work that needs doing
Status | Action | Notes | Developer |
---|---|---|---|
DONE | Fix QtGStreamer pkgconfig files | Merged David's patches | <detrout> |
TODO | Fix QtGStreamer examples | <detrout> | |
DONE | Merge QtGStreamer 1.0-proposed | None | <detrout> |
TODO | Release QtGStreamer | None | <detrout> |
IN PROGRESS | Patch TpQt | (done in branch) | <[email protected]> |
TODO | Release TpQt | None | <[email protected]> |
TODO | Merge KTp-Call-UI Branch | None | <[email protected]> |