Monday, January 25, 2010

Introducing TelepathyQt4

So this is the beginning of a series of blog posts about TelepathyQt4. I am going to start with a basic introduction: what it is and the ideas behind it.

These blog posts are intended to explain what TelepathyQt4 is, and how to use it to write IM/VoIP/Communication applications. They are not meant to explain what Telepathy is, or what it's intended for. Please check the wiki page for a quick introduction to Telepathy.

- First: what is TelepathyQt4?

TelepathyQt4 is a convenience library, written in Qt4, for those who want to write applications that use the Telepathy framework.
The idea is to have a high-level, but complete, API that hides most underlying D-Bus calls, making it easy to communicate with other applications using Telepathy.

- Why TelepathyQt4?

Up until we started writing it, there were only convenience libraries for Glib and Python, so Qt4 developers were left behind. Those who wanted to use Telepathy had to stick to those libraries or use D-Bus directly. This was limiting the usage of Telepathy across Qt/KDE applications.

- What kind of application can make use of TelepathyQt4?

Right now we have a Kopete branch (implemented as a Kopete protocol plugin) that makes use of TelepathyQt4, and an experimental krdc/krfb branch that enables sharing the desktop among IM contacts.
Other applications that can use TelepathyQt4 include:
* instant messaging programs
* email applications that want to show contacts' presence
* word processors that want to let users collaborate across the internet

- Components:

TelepathyQt4 is divided into 2 parts: the classes that are auto-generated from the spec, and the high-level API that uses the auto-generated classes internally, exposing an easy-to-use API for applications.
We tried to make it as extensible as possible, so adding support for new D-Bus interfaces is quite easy.

We just hit the first milestone with the 0.2 version, which will be API/ABI compatible across the 0.2.x release cycle.
The library is maintained by Collabora and any help is appreciated.

If you have interest in using/collaborating with TelepathyQt4, you can join #telepathy@freenode or #kde-telepathy@freenode for more KDE-specific questions or check the mailing list.
You can also poke me (andrunko - current maintainer) or Simon (smcv - official reviewer).

Development is done in the git repository found here and releases can be found here.

In the next blog posts I will be talking about how to use it, so stay tuned.

57 comments:

Tico said...

Any progress to report on a maemo port?

Kate Alhola said...

Telepathy-Qt4 is already ported on Maemo, it works with both Fremantle and Harmattan

Mayer said...

How is this related to Decibel? Is Decibel dead project and TelepathyQt4 is there to replace it? How does they compare in features and design?

Anonymous said...

http://lists.freedesktop.org/archives/telepathy/2009-February/003104.html

Is this still relevant, can you write connection managers with the qt bindings now?

Do the Kopete protocols become protocol managers with the help of the qt bindings or does most of the code from Kopete get thrown away and Kopete merely becomes a wrapper for the glib connection managers because you can't write those with qt?

Andre Moreira Magalhaes (andrunko) said...

@Mayer Decibel is a different project that could use TelepathyQt4 if it was the case. Decibel idea was to write a so called Telepathy Account Manager (AM) and Channel Dispatcher )CD) and afaik nobody is developing it anymore. You should use MC5 (mission control 5) if you want a working Telepathy AM/CD

Andre Moreira Magalhaes (andrunko) said...

@Anonymous Unfortunately we don't support writing connection manager using TelepathyQt4 for now, maybe in the future we will add support for this. TelepathyQt4 as of now is a client side API, that can be used by applications wanting to communicate with CMs, etc.

As for Kopete the current experimental branch only implements a new kopete protocol plugin using telepathy. The idea is to show that using telepathy is possible. It's up to the kopete devs to decide whether they want to replace kopete protocol plugin code with telepathy or not.

Anonymous said...

Hi,
I have tried to use qt to communicate through dbus with some services on maemo. It worked in some cases, but there is one problem, that I could not overcome. I can't create an array of arrays of bytes and send it as an argument when I make a call. I wan't able to do that either with glib libraries. The only one solution I found was to use python in following way:

ay = dbus.Array(byte_sequence)
aay = dbus.Array([ay])

Is it possible to the same with TelepathyQt4?

I want to mention that using qtdbus module I was able to send an array of variant arrays of bytes, but I can't have this variant in the middle if I want to make that certain service work.

Ian Monroe said...

@the last anonymous (hey Andre disable anonymous posts, its confusing!):

TelepathyQt4 uses QtDbus internally. So obviously its not able to do anything that QtDbus isn't able to do.

Tico said...

Is it possible to do video conferencing on top of Telepathy-Qt4? If not, what is missing to build something like a cross platform version of Empathy with only Qt-related dependencies?

headless said...

What about http(s) proxy support?
AFAIK so basic stuff should be usable, but apparently - it's not. I had to install pidgin just for proxy support on my N810.

Andre Moreira Magalhaes (andrunko) said...

@tico video conferencing is possible using jabber (gabble), not sure about other CMs. We are using farsight+gstreamer for the actually streaming.

Andre Moreira Magalhaes (andrunko) said...

@headless What CM are you using? gabble supports http proxy for a long time. You just need to set the proper params to the account. Actually this is completely unrelated to TelepathyQt4, whether the CM supports feature X or Y, tp-qt4 should be able to communicate with them.

headless said...

Lack of proxy support is a wide gaping hole in Maemo core user apps (chat, VoIP, some browsers) feature set:

https://bugs.maemo.org/show_bug.cgi?id=3783

http://talk.maemo.org/showthread.php?t=32814&highlight=proxy+support

According to this thread:
http://talk.maemo.org/showthread.php?t=34859&highlight=chat+proxy+support

problem lies in Telepathy itself - so that's why I'm rising awareness here :)

Andre Moreira Magalhaes (andrunko) said...

@headless I am not aware of what version of gabble (or other CM) is used in n810. What I can say is that gabble supports http proxy for a long time, and I believe it should work on the device. The thing is that it's probably not respecting the general device proxy settings, but you can overcome this by manually configuring the account to support http proxies. You can find me at #telepathy@freenode, pvt me if you want (nickname andrunko)

spichel said...

Hi,
how about server-related classes? I see only classes for client development.

Kate Alhola said...

About Maemo port, Telepathy-qt4 for Fremantle is now in extras-devel

九份 said...

haha~ funny! thank you for your share~ ........................................

ya said...

只用微笑說話的人,才能擔當重任。 ..................................................

friend said...

你要保守你的心,勝過保守一切,因為一生的果效是由心發出 ..................................................

玉苓 said...

Birthdays are good for you. The more you have, the longer you live.............................................

茂珊茂珊 said...

KK777一夜激情聊天live show成人自拍貼圖自慰少婦自拍裸體圖片台灣色情成人網站情人視訊網情色留言板視訊美女免費視訊聊天室限制級極度震撼情色論壇色情特區自拍裸女貼圖潮吹性影片觀賞小穴情色片a圖片sex story性愛影片美女做愛成人色情網站性愛圖片成人情色貼圖全裸寫真集圖片走光圖女生陰毛自慰影片色情av1007成人色情聊天室女生自慰裸體照成人影音聊天台灣色情網站色情片打手槍情色天堂成人視訊聊天免費情色網站av網超性感辣妹激突成人論壇情色視訊聊天鹹濕成人網站av成人論壇免費美女視訊

鍾FeR_Quade0426 said...

看到你的好文章真是開心 加油囉.......................................

義珊 said...

Birth is much but breeding is more. 加油! .........................................

秀吉 said...

一間沒有書的屋子,正如一個沒有窗子的房間。......................................................

KimberelyM14165 said...

haha~ funny! thank you for your share~ ........................................

韋于倫成 said...

打炮打手槍打飛機巨乳巨奶女優大奶性交性愛淫蕩淫慾淫亂淫婦淫妹淫叫淫水淫女情慾情色做愛限制級波霸口交18禁貼圖寫真視訊援交露點爆乳潮吹裸體裸照裸女

湘嬌湘嬌 said...

天氣變涼囉~請注意........................................

佳慧 said...

Learning makes life sweet.......................................................

東芳 said...

靠山山倒,靠人人老,靠自己最好。 ............................................................

rl64@yahoo.com.hk said...

恨一個人,比原諒一個人,更傷力氣。............................................................

歐英傑 said...

逛到你的部落格,第一個感覺就很好,希望每次更新都是美好的開始,也祝你天天都都開心喔........................................

佳皓 said...

要持續更新下去喲!!祝你心情愉快.............................................................

韋富 said...

^^~~輕輕鬆鬆的逛部落格,多謝有您的分享哦~~~ .................................................................

黃允妏 said...

知識可以傳授,智慧卻不行。每個人必須成為他自己。......................................................................

祐白祐白 said...

一個人的價值,應該看他貢獻了什麼,而不是他取得了什麼....................................................................

怡文怡文 said...

人生是故事的創造與遺忘。............................................................

江彭珮陽v彥璋 said...

Hello~Nice meet you~~............................................................

溫緯李娟王季 said...

Riches serve a wise man but command a fool.............................................................

JasonBirk佳琪 said...

Riches serve a wise man but command a fool.............................................................

家愛家愛 said...

加油-不論如何都支持你............................................................

詹莉emmaagnes莉真 said...

來打聲招呼-大家好!!!............................................................

靜宸靜宸 said...

部落格很棒唷~ 支持你歐^^..................................................................

吳婷婷 said...

GOOD POST~~~~~~~~~~~~Support!!!!............................................................

偉倫偉倫 said...

獲益不少,謝謝分享!............................................................

佳瑩佳瑩 said...

人生中最好的禮物就是屬於自己的一部份............................................................

童祖如童祖如 said...

來打聲招呼-大家好!!!............................................................

允黃淑 said...

很不賴的分享!! 多謝啦!!◑0◐......................................................

謝可妃 said...

IS VERY GOOD..............................

宗雅欣博 said...

第一忠誠,第二勤奮,第三專心工作。..................................................

建邱勳 said...

Quietude is the crown of life.............................................................

家唐銘 said...

Cast not the first stone. ............................................................

宇緯陳陳宇緯陳陳 said...

我從來不認為不同意我的看法就是冒犯................................................

承王蓁 said...

如此動感的blog!!!............................................................

316 said...

好文章就值得回響,如果可以常常看到您的更新,應該是件很幸福的事情~~...............................................................

昱陳陳陳意陳陳 said...

無私分享,很不錯哦~謝謝~~.................................[/url]...............

48684 said...

從人生中拿走友誼,猶如從生活中移走陽光......................................................................

淑蕙春蕙春芬 said...

來給你加油,幫你推一下喔~期待你的下一個更新,謝謝............................................................