Международная конференция разработчиков
и пользователей свободного программного обеспечения

telepathy-skykit announce

Maksim Melnikau, Minsk, Belarus

LVEE Winter 2013

Telepathy-skykit, a telepathy connection manager developed by the author, is presented. It implements skype protocol support and is based on Skype SDK for embedded development (skypekit). Project goal: use Skype without "regular" desktop client and use all features which telepathy provides: unified UI for all protocols, proper logging subsystem and telepathy integration with Desktop Environment.

Telepathy

Telepathy — это программный каркас, используемый для создания программного обеспечения мгновенного обмена сообщениями, IP-телефонии или видеоконференций. Telepathy позволяет создавать приложения c помощью компонентов через систему межпроцессного взаимодействия D-Bus. При этом, logger-ы, connection manager-ы и UI работают в отдельных процессах.

telepathy architecture overview

Для telepathy уже разработана поддержка основных протоколов:
1. Gabble – Jabber/XMPP, включая Jingle
2. Rakia – SIP
3. Haze – обёртка над libpurple, внутренней библиотекой Pidgin-а – поддерживает все протоколы, с которыми умеет работать сам pidgin

С точки зрения UI, основными приложениями являются следующие два:
1. empathy, обладающий хорошей интеграция с Gnome и Evalution Data Server
2. kde-telepathy, предоставляющий аналогичную интеграцию с KDE

Оба приложения поддерживают передачу звука и видео; также есть и другие, менее функциональные.

Также, уже разработаны следующие компоненты:
1. logger – сервис отвечающий за хранение и предоставление логов по запросу
2. mission-control – управление аккаунтами

Таким образом, telepathy – хорошо проработанный, модульный framework, содержащий много готовых унифицированных компонентов и позволяющий которые легко добавлять новые и/или расширять существующие.

SkypeKit

SkypeKit – коллекция утилит и API, которые позволяют разработать собственное устройство/приложение с поддержкой skype протокола: чат, аудио и видео. Причём разработан он с возможностью использования на большом количестве различных чипов, операционных систем и устройств, и является “безинтерфейсным”.

skypekit

Под Linux поддерживаются следующие аппаратные архитектуры: armv5le,
armv6le, armv7le, x86. Разработка может вестись на C++, C#, java, python. При этом сам skypekit-демон не содержит UI, и для интеграции с системой может использовать alsa, X11-opengl, либо gstreamer.

Skype в telepathy

Поддержка Skype в telepathy до этого существовала в единственном виде: skype4pidgin – plugin для Pidgin(libpurle) поддерживающий skype, который подключается как один из libpurple-протоколов, через telepathy-haze. Однако у неё существуют большие ограничения: отсутствие поддержки аудио и видео, а также части функционала чата, vcard и других не базовых возможностей.

Альтернативный вариант, разработанный автором: telepathy-skykit – connection manager, реализующий поддержку skype для telepathy. При этом используется skypekit embedded демон, который реализует поддержку skype протокола, а telepathy-skypekit при этом является лишь wrapper-ом.

Для простоты реализации(прототипирования) был выбран python. А для интеграции с telepathy используется библиотека telepathy-python, в которую была добавлена поддержка необходимого функционала.

В данный момент реализованы:
1. чат – самая базовая функциональность, общение один на один
2. контакт-лист
3. поддержка аватарок и карточка профиля (vcard)

Планы на будущее:
1. конференции – очень часто используемый функционал
2. интеграция с OS – автоматический запуск демона при dbus-запросе и т.д.
3. аудио/видео звонки – хотя бы на уровне доказательства концепции

kde telepathy skykit

Полезные ссылки

http://telepathy.freedesktop.org/wiki/
https://developer.skype.com/public/skypekit/
https://github.com/max-posedon/telepathy-skykit
https://github.com/max-posedon/telepathy-python

Abstract licensed under Creative Commons Attribution-ShareAlike 3.0 license

Назад