Latest revision |
Your text |
Line 1: |
Line 1: |
| {{interwiki | | {{interwiki |
| | ruwiki = Jingle (протокол) | | | ruwiki = Jingle (протокол) |
− | | enwiki = | + | | enwiki = Jingle (protocol) |
− | | jworld = Jingle
| + | |
| }} | | }} |
| : ''Эта статья о протоколе {{xep|0166|Jingle}}. О реализующей его библиотеке см. [[libjingle]].'' | | : ''Эта статья о протоколе {{xep|0166|Jingle}}. О реализующей его библиотеке см. [[libjingle]].'' |
− | [[File:JingleLogo.png|thumb|Один из вариантов логотипа Jingle]]
| |
− | '''Jingle''' - универсальный сигнальный протокол для XMPP. В его функции не входит сама передача данных, а только организация соединения - т.н. "рукопожатие". Другими словами, два клиента, используя Jingle, оговаривают адреса, порты, тип передаваемых данных, кодеки, тип канала, используемые транспорты и другую информацию, необходимую для установки соединения, по которому уже будет происходить непосредственная передача данных.
| |
| | | |
− | == Состояние и применимость технологии == | + | == Описание == |
− | | + | Универсальный сигнальный протокол для XMPP. В его функции не входит сама передача данных, а только организация соединения - т.н. "рукопожатие". Другими словами, два клиента, используя Jingle, обговаривают адреса, порты, тип передаваемых данных, кодеки, тип канала, используемые транспорты и другую информацию, необходимую для установки соединения, по которому уже будет происходить непосредственная передача данных. |
− | В данный момент пока сложно пользоваться голосовыми функциями в силу различных технических моментов и несовместимости клиентов. Но ситуация постепенно выправляется и уже можно найти рабочие комбинации, в которых голосовое взаимодействие возможно (смотрите таблицу размещенную ниже). Если у вас есть сомнения, то на обеих сторонах используйте один и тот же клиент. О практической стороне использования мультимедийный возможностей информация изложена на странице [[Голос и видео в jabber]]. | + | |
− | | + | |
− | == Применение ==
| + | |
− | | + | |
− | XEP-166 определяет только базовую функциональность сигнального протокола. Для каждого типа потока данных (звук, файлы, видео) существуют отдельные стандарты, конкретизирующие применение Jingle в своей области:
| + | |
− | # {{xep|0167|Jingle RTP Sessions}} — звук и видео через [http://ru.wikipedia.org/wiki/RTP RTP].
| + | |
− | # {{xep|0177|Jingle Raw UDP Transport}} — создание UDP соединения для передачи любых данных.
| + | |
− | # шуточный {{xep|0183|Jingle Telepathy Transport}} — создание телепатического канала для передачи мыслей.
| + | |
− | | + | |
− | == Поддержка в программах ==
| + | |
− | | + | |
− | === Две версии Jingle ===
| + | |
− | Клиент [[GTalk]] (на библиотеке [[libjingle]], созданной командой Google) работает поверх очень похожего на Jingle протокола, но все же, это не тот Jingle, который описан в соответствующем [[XEP]] ({{xep|0166|Jingle}}). По этой причине клиенты на базе [[libjingle]] не совместимы с клиентами, имеющими реализацию по XEP.
| + | |
− | | + | |
− | Например, в [[QIP]] реализация Jingle от Google ([[libjingle]]), поэтому с [[Psi+]] он не может взаимодействовать. Но даже эта, устаревшая реализация Jingle, есть только в версиях 9032 и 9034. Озвучиваются планы во возврату этой поддержки позднее<ref>http://juick.com/leksey/1282084#54</ref>. Но полноценный Jingle трудно ожидать в QIP, потому что в [[RBK|РБК]] делается упор на [[SIP]].
| + | |
− | | + | |
− | В данной вики есть специальная [[:Category:Jingle|категория для программ, поддерживающих Jingle]], где есть как клиенты, так и [[:Category:Библиотеки с поддержкой Jingle|библиотеки]].
| + | |
− | | + | |
− | Данная таблица взята со страницы из вики [[jworld:Jingle|JabberWorld]] и может содержать неверную информацию. Но она должна правиться и снабжаться соответствующими сносками-пояснениями. Методика и протоколы тестирования планируется [[Jingle/test|опубликовать здесь]].
| + | |
− | <center>
| + | |
− | {| class="wikitable"
| + | |
− | |rowspan=2 align=center bgcolor=lightgreen width=110|'''Вызывающая сторона'''
| + | |
− | |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]]
| + | |
− | !width=60 bgcolor=lightblue|[[Kopete]]
| + | |
− | !width=60 bgcolor=lightblue|[[Spark]]
| + | |
− | !width=60 bgcolor=lightblue|[[Google Talk (клиент)|Google Talk]]
| + | |
− | !width=60 bgcolor=lightblue|[[Coccinella]]
| + | |
− | !width=60 bgcolor=lightblue|[[Talkonaut]]
| + | |
− | !width=60 bgcolor=lightblue|[[Nimbuzz]]
| + | |
− | |-
| + | |
− | !bgcolor=lightgreen|[[Psi+|Psi+]]
| + | |
− | |{{Да}}
| + | |
− | |{{Да}}
| + | |
− | |{{Частично|?<ref name=timeout>Вызов проходит и разговор начинается, но клиент разрывал соединение по таймауту</ref>}}
| + | |
− | |{{Нет}}
| + | |
− | |{{Да}}
| + | |
− | |{{Да|Да<ref name="no_voice">Соединение происходит успешно, однако, голоса не слышно</ref>}}
| + | |
− | |
| + | |
− | |{{Нет}}
| + | |
− | |{{Нет}}
| + | |
− | |{{Нет}}
| + | |
− | |
| + | |
− | |
| + | |
− | |-
| + | |
− | !bgcolor=lightgreen|[[Gajim]]
| + | |
− | |{{Да}}
| + | |
− | |{{Да}}
| + | |
− | |{{Да}}
| + | |
− | |{{Нет}}
| + | |
− | |{{Да}}
| + | |
− | |{{Да}}
| + | |
− | |
| + | |
− | |{{Нет}}
| + | |
− | |{{Нет}}
| + | |
− | |{{Нет}}
| + | |
− | |
| + | |
− | |
| + | |
− | |-
| + | |
− | !bgcolor=lightgreen|[[Pidgin]]
| + | |
− | |{{Да}}
| + | |
− | |{{Да}}
| + | |
− | |{{Да}}
| + | |
− | |{{Да|Да<ref name='qip'>Результаты для старой версии QIP Infium</ref>}}
| + | |
− | |{{Да}}
| + | |
− | |{{Да}}
| + | |
− | |
| + | |
− | |{{Нет}}
| + | |
− | |{{Да}}
| + | |
− | |{{Нет}}
| + | |
− | |
| + | |
− | |
| + | |
− | |-
| + | |
− | !bgcolor=lightgreen|[[QIP Infium]]
| + | |
− | |{{Нет}}
| + | |
− | |{{Нет}}
| + | |
− | |{{Да|Да<ref name='qip'>Результаты для старой версии QIP Infium</ref>}}
| + | |
− | |{{Да|Да<ref name='qip'>Результаты для старой версии QIP Infium</ref>}}
| + | |
− | |{{Да|Да<ref name='qip'>Результаты для старой версии QIP Infium</ref>}}
| + | |
− | |{{Нет}}
| + | |
− | |
| + | |
− | |
| + | |
− | |{{Да|Да<ref name='qip'>Результаты для старой версии QIP Infium</ref>}}
| + | |
− | |
| + | |
− | |
| + | |
− | |
| + | |
− | |-
| + | |
− | !bgcolor=lightgreen|[[Empathy]]
| + | |
− | |{{Да}}
| + | |
− | |{{Да}}
| + | |
− | |{{Да}}
| + | |
− | |{{Да|Да<ref name='qip'>Результаты для старой версии QIP Infium</ref>}}
| + | |
− | |{{Да}}
| + | |
− | |{{Да}}
| + | |
− | |
| + | |
− | |{{Нет}}
| + | |
− | |{{Да}}
| + | |
− | |{{Нет}}
| + | |
− | |
| + | |
− | |
| + | |
− | |-
| + | |
− | !bgcolor=lightgreen|[[Maemo 5]]
| + | |
− | |{{Да|Да<ref name="no_voice">Соединение происходит успешно, однако голоса не слышно</ref>}}
| + | |
− | |{{Да}}
| + | |
− | |{{Да|Да<ref name="no_voice">Соединение происходит успешно, однако голоса не слышно</ref>}}
| + | |
− | |{{Нет}}
| + | |
− | |{{Да}}
| + | |
− | |{{Да}}
| + | |
− | |
| + | |
− | |
| + | |
− | |{{Да}}
| + | |
− | |
| + | |
− | |
| + | |
− | |
| + | |
− | |-
| + | |
− | !bgcolor=lightgreen|[[Kopete]]
| + | |
− | |
| + | |
− | |
| + | |
− | |
| + | |
− | |
| + | |
− | |
| + | |
− | |
| + | |
− | |
| + | |
− | |
| + | |
− | |
| + | |
− | |
| + | |
− | |
| + | |
− | |
| + | |
− | |-
| + | |
− | !bgcolor=lightgreen|[[Spark]]
| + | |
− | |{{Нет}}
| + | |
− | |{{Нет}}
| + | |
− | |{{Нет}}
| + | |
− | |
| + | |
− | |{{Нет}}
| + | |
− | |
| + | |
− | |
| + | |
− | |
| + | |
− | |
| + | |
− | |{{Нет}}
| + | |
− | |
| + | |
− | |
| + | |
− | |-
| + | |
− | !bgcolor=lightgreen|[[Google Talk]]
| + | |
− | |{{Нет}}
| + | |
− | |{{Нет}}
| + | |
− | |{{Частично|?<ref name='freeze'>Клиент зависал при приеме звонка</ref>}}
| + | |
− | |{{Да|Да<ref name='qip'>Результаты для старой версии QIP Infium </ref>}}
| + | |
− | |{{Частично|?<ref name='freeze'>Клиент зависал при приеме звонка</ref>}}
| + | |
− | |{{Да}}
| + | |
− | |
| + | |
− | |{{Да}}
| + | |
− | |{{Да}}
| + | |
− | |
| + | |
− | |
| + | |
− | |
| + | |
− | |-
| + | |
− | !bgcolor=lightgreen|[[Coccinella]]
| + | |
− | |{{Нет}}
| + | |
− | |{{Нет}}
| + | |
− | |{{Нет}}
| + | |
− | |
| + | |
− | |{{Нет}}
| + | |
− | |
| + | |
− | |
| + | |
− | |{{Нет}}
| + | |
− | |
| + | |
− | |{{Нет}}
| + | |
− | |
| + | |
− | |
| + | |
− | |-
| + | |
− | !bgcolor=lightgreen|[[Talkonaut]]
| + | |
− | |
| + | |
− | |
| + | |
− | |
| + | |
− | |
| + | |
− | |
| + | |
− | |
| + | |
− | |
| + | |
− | |
| + | |
− | |
| + | |
− | |
| + | |
− | |
| + | |
− | |
| + | |
− | |-
| + | |
− | !bgcolor=lightgreen|[[Nimbuzz]]
| + | |
− | |
| + | |
− | |
| + | |
− | |
| + | |
− | |
| + | |
− | |
| + | |
− | |
| + | |
− | |
| + | |
− | |
| + | |
− | |
| + | |
− | |
| + | |
− | |
| + | |
− | |
| + | |
− | |-
| + | |
− | |}
| + | |
− | </center>
| + | |
− | | + | |
− | [[File:Gajim-voice-ubuntu.png|center|600px]]
| + | |
− | | + | |
− | == Использование клиентами за {{w|NAT}} ==
| + | |
− | | + | |
− | Прохождение NAT осуществляется с использованием [[STUN]]. Его поддержка встроена в современные версии [[ejabberd]], национальный сервер [[jabber.ru]] работает под управлением версии с поддержкой [[STUN]].
| + | |
− | | + | |
− | jingle nodes relay - реализация Jingle supernode. Узел позволяющий клиентам, не имеющих возможности передавать голос напрямую. Копия запущена, например, на сервере [[Talkr.im]]. По состоянию на весну 2011 года эта технология очень мало распространена и вряд ли может быть использована на практике.
| + | |
| | | |
| == История == | | == История == |
− | | + | До появления Jingle ситуация с поддержкой голоса, видео и других p2p потоков была следующая: существовало несколько закрытых протоколов, используемых в закрытых клиентах, с одной стороны, и был разработан открытый стандарт [[TINS]] - с другой. Закрытые протоколы, помимо того, что были закрыты от сообщества, не всегда учитывали требования, необходимые для совместимости с уже существующими сетями на базе SIP, а открытый TINS имел недостатки, непозволяющие ему легко встраиваться в Jabber/XMPP клиенты. |
− | До появления Jingle ситуация с поддержкой голоса, видео и других p2p потоков была следующая: существовало несколько закрытых протоколов, используемых в закрытых клиентах, с одной стороны, и был разработан открытый стандарт {{w|TINS}} - с другой. Закрытые протоколы, помимо того, что были закрыты от сообщества, не всегда учитывали требования, необходимые для совместимости с уже существующими сетями на базе SIP, а открытый TINS имел недостатки, непозволяющие ему легко встраиваться в Jabber/XMPP клиенты. | + | |
| | | |
| Такая ситуация привела к расколу сообщества и [[XSF]] оказалась перед выбором: | | Такая ситуация привела к расколу сообщества и [[XSF]] оказалась перед выбором: |
Line 241: |
Line 22: |
| | | |
| == Jingle и SIP == | | == Jingle и SIP == |
− | | + | Сигнальный XMPP протокол Jingle работает поверх только XMPP (без использования SIP) из-за того, что создавать и поддерживать клиенты реализующие два больших протокола вместо одного достаточно сложно. В цели разработчиков Jingle не входило заменить или выжить SIP, вместо этого они постарались сделать протокол таким, чтобы клиенты без особых сложностей могли входить в существущие SIP сети. |
− | Сигнальный XMPP протокол Jingle работает поверх только XMPP (без использования {{w|SIP}}) из-за того, что создавать и поддерживать клиенты реализующие два больших протокола вместо одного достаточно сложно. В цели разработчиков Jingle не входило заменить или выжить SIP, вместо этого они постарались сделать протокол таким, чтобы клиенты без особых сложностей могли входить в существующие SIP сети. | + | |
| {{todo|уточнить, что именно в протоколе позволяет делать такой фокус, можно ли XMPP+Jingle клиент использовать как SIPPhone}} | | {{todo|уточнить, что именно в протоколе позволяет делать такой фокус, можно ли XMPP+Jingle клиент использовать как SIPPhone}} |
| Транспорт Jabber->SIP: см. [http://www.gtalk2voip.com/ Gtalk2VoIP] | | Транспорт Jabber->SIP: см. [http://www.gtalk2voip.com/ Gtalk2VoIP] |
| | | |
− | == См. также == | + | == Применение == |
| + | XEP-166 определяет только базовую функциональность сигнального протокола. Для каждого типа потока данных (звук, файлы, видео) существуют отдельные стандарты, конкретизирующие применение Jingle в своей области: |
| + | # {{xep|0167|Jingle RTP Sessions}} — звук и видео через [http://ru.wikipedia.org/wiki/RTP RTP]. |
| + | # {{xep|0177|Jingle Raw UDP Transport}} — создание UDP соединения для передачи любых данных. |
| + | # шуточный {{xep|0183|Jingle Telepathy Transport}} — создание телепатического канала для передачи мыслей. |
| + | |
| + | == Поддержка в программах == |
| + | Клиент [[GTalk]] работает поверх очень похожего на Jingle протокола, но все же, это не Jingle в чистом виде. То же самое относится и к библиотеке [[libjingle]], созданной коммандой Google. |
| + | |
| + | Список клиентов и реализаций чистого Jingle можно найти на [http://xmpp.org/tech/jingle.shtml wiki-странице протокола] сервера [http://wiki.jabber.org wiki.jabber.org]. В Явики есть специальная [[:Category:Jingle|категория для программ, поддерживающих Jingle]] |
| + | |
| + | == Смотрите также == |
| | | |
| * [[:Category:Jingle|Программы, которые используют или реализуют Jingle]] | | * [[:Category:Jingle|Программы, которые используют или реализуют Jingle]] |
− | * [[Голос и видео в jabber]]
| |
− | * [[Muji]] (Multiparty Jingle)
| |
| | | |
| == Ссылки == | | == Ссылки == |
| | | |
| * {{xep|0166|Jingle}} | | * {{xep|0166|Jingle}} |
− | * [http://xmpp.org/about-xmpp/technology-overview/jingle/ Официальная документация по протоколу] | + | * [http://xmpp.org/tech/jingle.shtml Официальная документация по протоколу] |
− | * [[Jingle/test|Тестирование Jingle в реальных условиях]]
| + | |
| | | |
− | == Примечания ==
| |
− | <references/>
| |
| | | |
| [[Category:Протоколы]] | | [[Category:Протоколы]] |
| [[Category:Расширения]] | | [[Category:Расширения]] |