Jingle: различия между версиями

Материал из Мир Jabber
Перейти к навигацииПерейти к поиску
м (Добавление клиента eyeCU)
 
(не показано 46 промежуточных версий 10 участников)
Строка 3: Строка 3:
Jabber - текстовый протокол, поэтому он лучше всего приспособлен для передачи текста, например, сообщений. Однако в некоторых случаях требуется передать бинарные данные. Текстовые протоколы плохо приспособлены к передаче бинарных данных, не исключение и Jabber. По этой причине появилась необходимость создать спецификацию по передаче бинарных данных в обход основного протокола.
Jabber - текстовый протокол, поэтому он лучше всего приспособлен для передачи текста, например, сообщений. Однако в некоторых случаях требуется передать бинарные данные. Текстовые протоколы плохо приспособлены к передаче бинарных данных, не исключение и Jabber. По этой причине появилась необходимость создать спецификацию по передаче бинарных данных в обход основного протокола.


Jingle - это расширение протокола Jabber, предназначенное для передачи бинарных данных. Подобно [[ru_wikipedia:Skype|Skype]], Jingle является [[ru_wikipedia:Одноранговая сеть|пиринговой]] (P2P) сетью, это значит что данные передаются напрямую между клиентами. Прямая передача данных значительно снижает нагрузку на сервера Jabber.
Jingle - это расширение протокола Jabber, предназначенное для передачи бинарных данных. Подобно [[Skype]], Jingle является [[ru_wikipedia:Одноранговая сеть|пиринговой]] (P2P) сетью, это значит, что данные передаются напрямую между клиентами. Прямая передача данных значительно снижает нагрузку на сервера Jabber.


У Jingle существует множество применений, таких как:
У Jingle существует множество применений, таких как:
Строка 12: Строка 12:
Jingle поддерживают следующие клиенты:
Jingle поддерживают следующие клиенты:


* [[Psi]] <ref>Для передачи голоса и видеосигнала на Linux и Mac OS X необходимо установить [http://delta.affinix.com/psimedia/ плагин]. Файл libgstprovider.so нужно скопировать в папку "plugins", находящуюся в месте установки Psi (в случае GNU/Linux - /usr/lib/psi/). Если Вы собираете Psimedia самостоятельно, то для сборки необходим GStreamer версии не ниже 0.10.22, а также Speex и некоторые другие библиотеки.<br></ref>
* [[Psi]] / [[Psi+]] (с плагином psimedia)
* [[Gajim]] (только для Linux/BSD)
* [[eyeCU]]
* Jabbin
* Jabbin
* [[Empathy]]
* [[Empathy]]
* [[Jabbim]] (только передача файлов, в тестировании)
<!--* [[Jabbim]] (только передача файлов, в тестировании)
* [[Kopete]] (в версиях для KDE 3.5, а также для KDE 4.2 и выше)
Пока убираю, ибо в http://dev.jabbim.cz/jabbim/wiki/en/JabbimXEPSupport стоит Unknown -->
* [[Spark]] (только для Windows, возможно для Mac OS X)
* [[Spark]] (только для Windows, возможно для Mac OS X)
* [[Coccinella]]
<!--* [[Coccinella]] <ref>Несовместимо с остальными клиентами</ref>-->
* [[Google Talk клиент|Google Talk]]
* [[Google Talk клиент|Google Talk]]
* [[Nimbuzz]]
* [[Nimbuzz]]
* [[Talkonaut]]
* [[Talkonaut]]
* [[Pidgin]] (только Linux-версия)
* [[Pidgin]] (только Linux-версия)
* [[QIP Infium]]
<!--* [[QIP Infium]]-->
* [[Maemo 5]] (Операционная система, предустановленная на Nokia N900. Jabber-клиент интегрирован в менеджер контактов, так что выделить его в "отдельный" клиент проблематично)
* [[Maemo 5]] <ref>Операционная система, предустановленная на Nokia N900. Jabber-клиент интегрирован в менеджер контактов, так что выделить его в "отдельный" клиент проблематично</ref>
* [[Jitsi]]
* [[Kopete]] <ref>в версиях для KDE 3.5, а также для KDE 4.2 и выше; однако готовых сборок с включенным Jingle в популярных дистрибутивах практически не встречается</ref>


==Совместимость Jingle в различных Jabber-клиентах==
==Совместимость Jingle в различных Jabber-клиентах==


Существуют несколько различных несовместимых спецификаций Jingle. Одна из них разработана Google для [[Google Talk клиент|своего клиента]], а вторая создана [http://xmpp.org/ XMPP Standards Foundation]. Кроме того, по причинам слабой протестированности различных реализаций Jingle возможны проблемы совместимости. Ниже представлена таблица, в которой указана возможность совершать аудиовызовы между различными клиентами:
На данный момент одна из основных проблем Jingle - слабая совместимость различных клиентов. Существуют несколько несовместимых спецификаций Jingle. Одна из них разработана Google для [[Google Talk клиент|своего клиента]], а вторая создана [http://xmpp.org/ XMPP Standards Foundation]. Ниже представлена таблица, в которой указана возможность совершать звонки между различными клиентами:


<center>
<center>
Строка 35: Строка 39:
|colspan=14 align=center bgcolor=lightblue|'''Принимающая сторона'''
|colspan=14 align=center bgcolor=lightblue|'''Принимающая сторона'''
|-
|-
!width=60 bgcolor=lightblue|[[Psi|Psi+]]
!width=60 | [[Psi|Psi+]]
!width=60 bgcolor=lightblue|[[Gajim]]
!width=60 | [[Gajim]]
!width=60 bgcolor=lightblue|[[Pidgin]]
!width=60 | [[Pidgin]]
!width=60 bgcolor=lightblue|[[QIP Infium]]
!width=60 | [[QIP Infium]]
!width=60 bgcolor=lightblue|[[Empathy]]
!width=60 | [[Empathy]]
!width=60 bgcolor=lightblue|[[Maemo 5]]
!width=60 | [[Maemo 5]]
!width=60 bgcolor=lightblue|[[Kopete]]
!width=60 | [[Spark]]
!width=60 bgcolor=lightblue|[[Spark]]
!width=60 | [[Google Talk]]
!width=60 bgcolor=lightblue|[[Google Talk]]
!width=60 | [[Coccinella]]
!width=60 bgcolor=lightblue|[[Coccinella]]
!width=60 | [[Talkonaut]]
!width=60 bgcolor=lightblue|[[Talkonaut]]
!width=60 | [[Nimbuzz]]
!width=60 bgcolor=lightblue|[[Nimbuzz]]
!width=60 | [[Jitsi]]
!width=60 | [[ru_wikipedia:Asterisk|Asterisk]]
!width=60 | [[eyeCU]]
|-
|-
!bgcolor=lightgreen|[[Psi|Psi+]]
! [[Psi|Psi+]]
|{{Да}}
|{{Да}}
|{{Да}}
|{{Да}}
|{{Частично|?<ref name=timeout>Вызов проходит и разговор начинается, но клиент вылетает по таймауту</ref>}}
|{{Частично|?<ref name='timeout1'>Соединение происходит и голос слышно, но клиент через время отключается по таймауту</ref>}}
|{{Нет}}
|{{Нет}}
|{{Да}}
|{{Да}}
|{{Да|Да<ref name="no_voice">Соединение происходит успешно, однако голоса не слышно</ref>}}
|{{Частично|?<ref name="no_voice">Соединение происходит успешно, однако голоса не слышно</ref>}}
|
|{{Нет}}
|{{Нет}}
|{{Нет}}
|{{Нет}}
|{{Нет}}
|{{Нет}}
|{{Нет}}
|{{Нет}}
|{{Нет}}
|{{Нет}}
|
|
|
|-
|-
!bgcolor=lightgreen|[[Gajim]]
! [[Gajim]]
|{{Да}}
|{{Да}}
|{{Да}}
|{{Да}}
Строка 69: Строка 77:
|{{Да}}
|{{Да}}
|{{Да}}
|{{Да}}
|
|{{Нет}}
|{{Нет}}
|{{Нет}}
|{{Нет}}
|{{Нет}}
|{{Нет}}
|
|{{Нет}}
|{{Нет}}
|{{Нет}}
|{{Нет}}
|
|
|-
|-
!bgcolor=lightgreen|[[Pidgin]]
! [[Pidgin]]
|{{Да}}
|{{Да}}
|{{Да}}
|{{Да}}
|{{Да}}
|{{Да}}
|{{Нет}}
|{{Да}}
|{{Да}}
|{{Да}}
|{{Да}}
|{{Нет}}
|{{Да}}
|{{Да}}
|
|{{Нет}}
|{{Нет}}
|{{Частично|?<ref name="osv_pidgin">Соединение устанавливается, но звук только в Pidgin</ref>}}
|{{Нет}}
|{{Частично|?<ref name="osv_pidgin">Соединение устанавливается, но звук только в Pidgin</ref><ref name="no_ice">Необходимо отключить ICE в настройках учетной записи в Jitsi</ref>}}
|{{Да}}
|{{Да}}
|{{Нет}}
|
|
|
|-
|-
!bgcolor=lightgreen|[[QIP Infium]]
! [[QIP Infium]]
|{{Нет}}
|{{Нет}}
|{{Нет}}
|{{Нет}}
|{{Нет}}
|{{Нет}}
|{{Нет}}
|{{Нет}}
|{{Нет}}
|{{Нет}}
|{{Нет}}
|{{Нет}}
|{{Нет}}
|{{Да}}
|{{Частично}}
|{{Да}}
|{{Нет}}
|{{Нет}}
|
|
|
|
|
|
|
|-
|-
!bgcolor=lightgreen|[[Empathy]]
! [[Empathy]]
|{{Да}}
|{{Да}}
|{{Да}}
|{{Да}}
|{{Да}}
|{{Да}}
|{{Нет}}
|{{Да}}
|{{Да}}
|{{Да}}
|{{Да}}
|{{Нет}}
|{{Да}}
|{{Да}}
|
|{{Нет}}
|{{Нет}}
|{{Частично|?<ref name="osv_empathy">Соединение устанавливается, но звук только в Empathy</ref>}}
|{{Нет}}
|{{Частично|?<ref name="osv_jitsi">Соединение устанавливается, но звук только в Jitsi</ref>}}
|{{Да}}
|{{Да}}
|{{Нет}}
|
|
|
|-
|-
!bgcolor=lightgreen|[[Maemo 5]]
! [[Maemo 5]]
|{{Да|Да<ref name="no_voice">Соединение происходит успешно, однако голоса не слышно</ref>}}
|{{Частично|?<ref name="no_voice">Соединение происходит успешно, однако голоса не слышно</ref>}}
|{{Да}}
|{{Да}}
|{{Да|Да<ref name="no_voice">Соединение происходит успешно, однако голоса не слышно</ref>}}
|{{Частично|?<ref name="no_voice">Соединение происходит успешно, однако голоса не слышно</ref>}}
|{{Нет}}
|{{Нет}}
|{{Да}}
|{{Да}}
|{{Да}}
|{{Да}}
|
|
|
|{{Да}}
|{{Да}}
Строка 131: Строка 145:
|
|
|
|
|-
!bgcolor=lightgreen|[[Kopete]]
|
|
|
|
|
|
|-
! [[Spark]]
|{{Нет}}
|{{Нет}}
|{{Нет}}
|{{Нет}}
|{{Нет}}
|
|
|
|
|{{Нет}}
|{{Нет}}
|
|
|
|
Строка 143: Строка 164:
|
|
|
|
|-
! [[Google Talk]]
|{{Нет}}
|{{Нет}}
|{{Да}}
|{{Нет}}
|{{Да}}
|{{Да}}
|{{Нет}}
|{{Да}}
|{{Нет}}
|{{Да}}
|
|
|{{Нет}}
|{{Да}}
|
|
|-
|-
!bgcolor=lightgreen|[[Spark]]
! [[Coccinella]]
|{{Нет}}
|{{Нет}}
|{{Нет}}
|{{Нет}}
|{{Нет}}
|{{Нет}}
Строка 152: Строка 189:
|
|
|{{Нет}}
|{{Нет}}
|{{Нет}}
|{{Да|Да<ref name="version_specific">Соединение происходит успешно, но в зависимости от версии может быть не слышно звука у вызывающей или принимающей стороны.</ref>}}
|
|
|
|
|
|
|
|{{Нет}}
|
|
|
|
|-
|-
!bgcolor=lightgreen|[[Google Talk]]
! [[Talkonaut]]
|{{Нет}}
|{{Нет}}
|{{Частично|?<ref name="osv_pidgin">Соединение устанавливается, но звук только в Pidgin</ref>}}
|{{Нет}}
|{{Нет}}
|{{Нет}}
|{{Нет}}
|{{Нет}}
|{{Частично|?<ref name='freeze'>Клиент вешался при приеме звонка</ref>}}
|
|
|{{Частично|?<ref name='freeze'>Клиент вешался при приеме звонка</ref>}}
|{{Да}}
|{{Да}}
|
|
|{{Да}}
|{{Да}}
|{{Да}}
|
|
|
|
|
|
|
|-
|-
!bgcolor=lightgreen|[[Coccinella]]
! [[Nimbuzz]]
|{{Нет}}
|{{Нет}}
|{{Нет}}
|{{Нет}}
|{{Да}}
|{{Нет}}
|{{Нет}}
|{{Частично|?<ref name="no_voice">Соединение происходит успешно, однако голоса не слышно</ref>}}
|
|
|
|
|
|
|
|{{Нет}}
|{{Нет}}
|
|
|
|
|-
! [[Jitsi]]
|{{Нет}}
|{{Нет}}
|{{Частично|?<ref>Соединение устанавливается, но звук только в Pidgin или просто сильные помехи </ref>}}
|{{Нет}}
|{{Нет}}
|{{Да}}
|
|
|
|{{Нет}}
|{{Нет}}
|
|
|
|
|-
|{{Нет}}
!bgcolor=lightgreen|[[Talkonaut]]
|
|
|
|
|
|
|-
! [[ru_wikipedia:Asterisk|Asterisk]]
|{{Нет}}
|{{Нет}}
|{{Да}}
|
|
|{{Да}}
|
|
|
|
|{{Да}}
|
|
|
|
|
|
|
|
|{{Да}}
|
|
|-
|-
|-
! [[eyeCU]]
|
|
|-
!bgcolor=lightgreen|[[Nimbuzz]]
|
|
|
|
Строка 215: Строка 277:
|
|
|
|
|-
|{{Да}}
|}
</center>
 
* Во многих сетях используется так называемый NAT, который часто является источником проблем в пиринговых сетях. Для того, чтобы узнать, есть ли он у Вас или нет, можно использовать [[Выявление NAT|эту инструкцию]]. К счастью, Jingle имеет некоторые средства для обхода NAT. Рекомендуется указать STUN-сервер в клиенте, например, stunserver.org. Обычно эта опция находится в настройках клиента, а в [[Psi]] её можно найти в настройках учетной записи. Более надежной альтернативой является [http://code.google.com/p/psi-dev/wiki/av_calls#%D0%A8%D0%B0%D0%B3_%D0%B2%D1%82%D0%BE%D1%80%D0%BE%D0%B9_--_%D0%A3%D0%B1%D0%B5%D0%B4%D0%B8%D1%82%D0%B5%D1%81%D1%8C,_%D1%87%D1%82%D0%BE_%D0%B2_%D1%81%D0%B8%D1%81%D1%82%D0%B5%EF%BF%BD использование IPv6], но, к сожалению, этот способ может не работать на некоторых клиентах. Ниже представлен список клиентов, работающих с IPv6:
 
{{ToDo|Выделить в отдельную статью, изменить таблицу (если она нужна, ибо мало элементов - можно просто составить список)}}
 
<center>
{| class="wikitable"
|rowspan=3 align=center bgcolor=lightblue width=110|'''Поддержка IPv6'''
|colspan=14 align=center bgcolor=lightblue|'''Клиент'''
|-
!width=60 bgcolor=lightblue|[[Psi|Psi+]]
!width=60 bgcolor=lightblue|[[Gajim]]
!width=60 bgcolor=lightblue|[[Pidgin]]
!width=60 bgcolor=lightblue|[[QIP Infium]]
!width=60 bgcolor=lightblue|[[Empathy]]
!width=60 bgcolor=lightblue|[[Maemo 5]]
|-
|align=center bgcolor=lightgreen|X
|align=center bgcolor=#FFAAAA|
|align=center bgcolor=#FFAAAA|
|align=center bgcolor=#FFAAAA|
|align=center bgcolor=yellow|?
|align=center bgcolor=lightgreen|X
|-
|}
|}
</center>
</center>


Если Вы хотите попробовать работоспособность Jingle в своём клиенте, то для этого можете воспользоваться следующими ботами:
Если Вы хотите попробовать работоспособность Jingle в своём клиенте, то для этого можете воспользоваться следующими ботами:
Строка 252: Строка 287:
* '''[xmpp:tellme@haar.student.utwente.nl tellme@haar.student.utwente.nl]''' - A SIP bridge to the Tell Me service (hint, say Black Jack from the main menu)-->
* '''[xmpp:tellme@haar.student.utwente.nl tellme@haar.student.utwente.nl]''' - A SIP bridge to the Tell Me service (hint, say Black Jack from the main menu)-->
* '''[xmpp:echo@test.collabora.co.uk echo@test.collabora.co.uk]''' - Тестовый бот от Collabora с несколькими тестами, включая echo и проверку видео.
* '''[xmpp:echo@test.collabora.co.uk echo@test.collabora.co.uk]''' - Тестовый бот от Collabora с несколькими тестами, включая echo и проверку видео.
==Jingle и [[ru_wikipedia:SIP|SIP]]==
Многим известен протокол SIP, часто применяемый для совершения голосовых звонков. Jingle во многом похож на него. В обоих протоколах используются такие технологии как [[ru_wikipedia:STUN|STUN]], [[ru_wikipedia:TURN|TURN]], [[ru_wikipedia:ICE|ICE]] и [[ru_wikipedia:RTP|RTP]], кодек [[ru_wikipedia:G.711|G.711]]. В то же время Jingle ушёл дальше SIP и предоставляет более качественный звук и реализует больше методов обхода NAT.
Существует также протокол SIMPLE, который добавляет в SIP поддержку общения текстом. Однако по функционалу и распространенности он не может сравниться с Jabber.
Взаимодействие между Jingle и SIP возможно установить с помощью сервиса [[GTalk2VoIP]], а также с помощью Asterisk, Yate или других подобных программ.


'''Примечание:'''
'''Примечание:'''

Текущая версия на 20:18, 15 декабря 2022

Логотип Jingle

Jabber - текстовый протокол, поэтому он лучше всего приспособлен для передачи текста, например, сообщений. Однако в некоторых случаях требуется передать бинарные данные. Текстовые протоколы плохо приспособлены к передаче бинарных данных, не исключение и Jabber. По этой причине появилась необходимость создать спецификацию по передаче бинарных данных в обход основного протокола.

Jingle - это расширение протокола Jabber, предназначенное для передачи бинарных данных. Подобно Skype, Jingle является пиринговой (P2P) сетью, это значит, что данные передаются напрямую между клиентами. Прямая передача данных значительно снижает нагрузку на сервера Jabber.

У Jingle существует множество применений, таких как:

  • Передача голоса в реальном времени (аудиозвонки или просто разговор голосом, так называемый VoIP)
  • Передача видео в реальном времени (видеозвонки)
  • Передача файлов

Jingle поддерживают следующие клиенты:

Совместимость Jingle в различных Jabber-клиентах[править]

На данный момент одна из основных проблем Jingle - слабая совместимость различных клиентов. Существуют несколько несовместимых спецификаций Jingle. Одна из них разработана Google для своего клиента, а вторая создана XMPP Standards Foundation. Ниже представлена таблица, в которой указана возможность совершать звонки между различными клиентами:

Вызывающая сторона Принимающая сторона
Psi+ Gajim Pidgin QIP Infium Empathy Maemo 5 Spark Google Talk Coccinella Talkonaut Nimbuzz Jitsi Asterisk eyeCU
Psi+ Да Да ?[3] Нет Да ?[4] Нет Нет Нет Нет Нет Нет Нет
Gajim Да Да Да Нет Да Да Нет Нет Нет Нет Нет Нет Нет
Pidgin Да Да Да Нет Да Да Нет Да Нет ?[5] Нет ?[5][6] Да
QIP Infium Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет
Empathy Да Да Да Нет Да Да Нет Да Нет ?[7] Нет ?[8] Да
Maemo 5 ?[4] Да ?[4] Нет Да Да Да
Spark Нет Нет Нет Нет Нет Нет Нет
Google Talk Нет Нет Да Нет Да Да Нет Да Нет Да Нет Да
Coccinella Нет Нет Нет Нет Нет Нет Нет Да[9]
Talkonaut Нет Нет ?[5] Нет Нет Нет Да Да
Nimbuzz Нет Нет Да Нет ?[4] Нет
Jitsi Нет Нет ?[10] Нет Да Нет Нет
Asterisk Нет Нет Да Да Да Да
eyeCU Да

Если Вы хотите попробовать работоспособность Jingle в своём клиенте, то для этого можете воспользоваться следующими ботами:

Jingle и SIP[править]

Многим известен протокол SIP, часто применяемый для совершения голосовых звонков. Jingle во многом похож на него. В обоих протоколах используются такие технологии как STUN, TURN, ICE и RTP, кодек G.711. В то же время Jingle ушёл дальше SIP и предоставляет более качественный звук и реализует больше методов обхода NAT.

Существует также протокол SIMPLE, который добавляет в SIP поддержку общения текстом. Однако по функционалу и распространенности он не может сравниться с Jabber.

Взаимодействие между Jingle и SIP возможно установить с помощью сервиса GTalk2VoIP, а также с помощью Asterisk, Yate или других подобных программ.

Примечание:

  1. Операционная система, предустановленная на Nokia N900. Jabber-клиент интегрирован в менеджер контактов, так что выделить его в "отдельный" клиент проблематично
  2. в версиях для KDE 3.5, а также для KDE 4.2 и выше; однако готовых сборок с включенным Jingle в популярных дистрибутивах практически не встречается
  3. Соединение происходит и голос слышно, но клиент через время отключается по таймауту
  4. 4,0 4,1 4,2 4,3 Соединение происходит успешно, однако голоса не слышно
  5. 5,0 5,1 5,2 Соединение устанавливается, но звук только в Pidgin
  6. Необходимо отключить ICE в настройках учетной записи в Jitsi
  7. Соединение устанавливается, но звук только в Empathy
  8. Соединение устанавливается, но звук только в Jitsi
  9. Соединение происходит успешно, но в зависимости от версии может быть не слышно звука у вызывающей или принимающей стороны.
  10. Соединение устанавливается, но звук только в Pidgin или просто сильные помехи

Ссылки[править]