Difference between revisions of "KTp/Tasks/NewCallUI"

< KTp‎ | Tasks
Jump to: navigation, search
(Work that needs doing)
(Troubleshooting)
 
(26 intermediate revisions by 4 users not shown)
Line 7: Line 7:
 
Farsight 0.1 is built against GStreamer0.10
 
Farsight 0.1 is built against GStreamer0.10
 
Farsight 0.2 is built against GStreamer1.0
 
Farsight 0.2 is built against GStreamer1.0
 
  
 
Farsight 0.1 is old and broken.
 
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
+
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===
 
===Building===
  
Install QtGStreamer from  X Branch Y
+
You will need at least Qt Gstreamer 1.2. If it's not available for your distribution you can obtain it from http://cgit.freedesktop.org/gstreamer/qt-gstreamer/ If you need to build it you probably should use the example cmake command line below.
Recompile TpQt from X Branch Y
+
 
  - add the additional patches from the mailing list where Dave fixes things
+
You need at least farstream 0.2.3, telepathy-farstream 0.6 and telepathy-qt 0.9.5
Recompile ktp-call-ui branch gst-1.0-port
+
 
 +
{{Input|1=<nowiki>
 +
git clone http://cgit.freedesktop.org/gstreamer/qt-gstreamer
 +
cd qt-gstreamer
 +
mkdir build
 +
cd build
 +
cmake -DQTGSTREAMER_CODEGEN=ON -DQTGSTREAMER_TESTS=ON ..
 +
make</nowiki>}}
 +
 +
As of 2015 Mar 18, ktp-call-ui (normal KDE repo) master contains the KDE4 version. A Plasma 5 version one should be done soon.
 +
 
 +
===Checking you've done it right===
 +
 
 +
Run
 +
{{Input|1=<nowiki>
 +
ldd /opt/kde4/lib/kde4/libexec/ktp-call-ui | grep -i gstre
 +
</nowiki>}}
 +
 
 +
and make sure everything is at 1.0.
 +
 
 +
If you see a 0.10 version of gstreamer anywhere, something went wrong.
 +
 
 +
===Runtime Dependencies===
 +
 
 +
The set of available codecs depends on what gstreamer 1.0+ components you have installed. gstreamer1.0-plugins-good should give you enough for audio.
 +
 
 +
However if you want to do video chats with Jitsi you'll need H.264 support, that is probably available in gstreamer-1.0 libav.
 +
 
 +
===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
 +
 
 +
{{Input|1=<nowiki>
 +
export GST_DEBUG=fsrtpconference_disco:5,fsrtpconference_nego:5
 +
${KDELIB}kde4/libexec//ktp-call-ui --persist
 +
</nowiki>}}
 +
 
 +
To see some of the underlying negotiation being done by farstream. (5 is DEBUG level).
 +
 
 +
There can also be issues trying to negotiate with SIP servers, to debug your SIP connection, turn off your sip accounts in the KDE telepathy account list, and then do the following in a terminal
 +
 
 +
{{Input|1=<nowiki>
 +
export TPORT_LOG=1
 +
export TPORT_DUMP=/tmp/sip.log
 +
export RAKIA_DEBUG=all
 +
/usr/lib/telepathy/telepathy-rakia
 +
</nowiki>}}
 +
 
 +
Once you reactivate the SIP account, the SIP protocol messages should be then written to /tmp/sip.log.
 +
 
 +
More information about setting up rakia/sophia  debugging can be found at http://cgit.freedesktop.org/telepathy/telepathy-rakia/tree/README
  
 
===Work that needs doing===
 
===Work that needs doing===
Line 31: Line 88:
 
! Notes  
 
! Notes  
 
! Developer
 
! Developer
 
+
{{FeatureProjectDone|Fix QtGStreamer pkgconfig files|Merged David's patches|detrout}}
{{FeatureProjectTodo|Merge QtGStreamer|None|detrout@kde.org}}
+
{{FeatureProjectTodo|Fix QtGStreamer examples||detrout}}
{{FeatureProjectTodo|Release QtGStreamer|None|detrout@kde.org}}
+
{{FeatureProjectDone|Merge QtGStreamer 1.0-proposed|None|detrout}}
{{FeatureProjectTodo|Patch TpQt|None|davidedmundson@kde.org}}
+
{{FeatureProjectDone|Release QtGStreamer|None|detrout}}
{{FeatureProjectTodo|Release TpQt|None|davidedmundson@kde.org}}
+
{{FeatureProjectDone|Patch TpQt|(done in branch)|davidedmundson@kde.org}}
{{FeatureProjectTodo|Merge KTp-Call-UI Branch|None|davidedmundson@kde.org}}
+
{{FeatureProjectDone|Release TpQt|None|davidedmundson@kde.org}}
 +
{{FeatureProjectDone|Merge KTp-Call-UI Branch|None|davidedmundson@kde.org}}
 +
{{FeatureProjectDone|Merge Kaditx's [https://gitorious.org/kde-telepathy-kaditx/ktp-call-newui QML Call UI]||}}
 +
{{FeatureProjectTodo|Port to Frameworks 5|None|olesalscheider}}
 +
{{FeatureProjectTodo|Continue debugging SIP call issues|None|detrout}}
 
|}
 
|}

Latest revision as of 23:07, 1 June 2015

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

You will need at least Qt Gstreamer 1.2. If it's not available for your distribution you can obtain it from http://cgit.freedesktop.org/gstreamer/qt-gstreamer/ If you need to build it you probably should use the example cmake command line below.

You need at least farstream 0.2.3, telepathy-farstream 0.6 and telepathy-qt 0.9.5

git clone http://cgit.freedesktop.org/gstreamer/qt-gstreamer
cd qt-gstreamer
mkdir build
cd build
cmake -DQTGSTREAMER_CODEGEN=ON -DQTGSTREAMER_TESTS=ON ..
make

As of 2015 Mar 18, ktp-call-ui (normal KDE repo) master contains the KDE4 version. A Plasma 5 version one should be done soon.

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 a 0.10 version of gstreamer anywhere, something went wrong.

Runtime Dependencies

The set of available codecs depends on what gstreamer 1.0+ components you have installed. gstreamer1.0-plugins-good should give you enough for audio.

However if you want to do video chats with Jitsi you'll need H.264 support, that is probably available in gstreamer-1.0 libav.

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).

There can also be issues trying to negotiate with SIP servers, to debug your SIP connection, turn off your sip accounts in the KDE telepathy account list, and then do the following in a terminal

export TPORT_LOG=1
export TPORT_DUMP=/tmp/sip.log
export RAKIA_DEBUG=all
 /usr/lib/telepathy/telepathy-rakia

Once you reactivate the SIP account, the SIP protocol messages should be then written to /tmp/sip.log.

More information about setting up rakia/sophia debugging can be found at http://cgit.freedesktop.org/telepathy/telepathy-rakia/tree/README

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>
DONE Release QtGStreamer None <detrout>
DONE Patch TpQt (done in branch) <davidedmundson@kde.org>
DONE Release TpQt None <davidedmundson@kde.org>
DONE Merge KTp-Call-UI Branch None <davidedmundson@kde.org>
DONE Merge Kaditx's QML Call UI
TODO Port to Frameworks 5 None <olesalscheider>
TODO Continue debugging SIP call issues None <detrout>

This page was last edited on 1 June 2015, at 23:07. Content is available under Creative Commons License SA 4.0 unless otherwise noted.