Latest revision |
Your text |
Line 1: |
Line 1: |
− | {{interwiki
| + | Разработанное [[Google]] расширение протокола Jabber. Описано в [http://www.xmpp.org/extensions/xep-0166.html XEP-0166]. |
− | | ruwiki = Jingle (протокол)
| + | |
− | | enwiki =
| + | |
− | | jworld = Jingle
| + | |
− | }}
| + | |
− | : ''Эта статья о протоколе {{xep|0166|Jingle}}. О реализующей его библиотеке см. [[libjingle]].''
| + | |
− | [[File:JingleLogo.png|thumb|Один из вариантов логотипа Jingle]] | + | |
− | '''Jingle''' - универсальный сигнальный протокол для XMPP. В его функции не входит сама передача данных, а только организация соединения - т.н. "рукопожатие". Другими словами, два клиента, используя Jingle, оговаривают адреса, порты, тип передаваемых данных, кодеки, тип канала, используемые транспорты и другую информацию, необходимую для установки соединения, по которому уже будет происходить непосредственная передача данных.
| + | |
| | | |
− | == Состояние и применимость технологии ==
| + | В полной мере поддерживается штатным клиентом [[Gtalk]], который посредством него осуществляет передачу аудио и видео информации. Также он задействован для передачи файлов. |
| | | |
− | В данный момент пока сложно пользоваться голосовыми функциями в силу различных технических моментов и несовместимости клиентов. Но ситуация постепенно выправляется и уже можно найти рабочие комбинации, в которых голосовое взаимодействие возможно (смотрите таблицу размещенную ниже). Если у вас есть сомнения, то на обеих сторонах используйте один и тот же клиент. О практической стороне использования мультимедийный возможностей информация изложена на странице [[Голос и видео в jabber]].
| + | Из сторонних клиентов поддержкой Jingle располагают [[Jabbin]] и [[Kopete]]. |
− | | + | |
− | == Применение ==
| + | |
− | | + | |
− | 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 потоков была следующая: существовало несколько закрытых протоколов, используемых в закрытых клиентах, с одной стороны, и был разработан открытый стандарт {{w|TINS}} - с другой. Закрытые протоколы, помимо того, что были закрыты от сообщества, не всегда учитывали требования, необходимые для совместимости с уже существующими сетями на базе SIP, а открытый TINS имел недостатки, непозволяющие ему легко встраиваться в Jabber/XMPP клиенты.
| + | |
− | | + | |
− | Такая ситуация привела к расколу сообщества и [[XSF]] оказалась перед выбором:
| + | |
− | # Рекомендовать всем клиентам реализовывать одновременную поддержку и XMPP и SIP для передачи голоса
| + | |
− | # Сделать новый полноценный сигнальный протокол для XMPP
| + | |
− | | + | |
− | Опыт подсказывал, что не везде, где уже сделаны клиенты Jabber, можно реализовать двойную поддержку, поэтому XFS решило попробовать второй вариант и Joe Hildebrand вместе с Peter Saint-Andre начали разработку протокола, который бы обеспечил необходимую сигнальную функциональность и остался бы совместим с существующими стандартами. Кодовое название протокола стало Jingle ("звенеть")
| + | |
− | | + | |
− | После общения с разработчиками из Google стало понятно, что только появляющийся Jingle концептуально (и даже местами семантически) похож на сигнальный протокол используемый в приложении [[GTalk|Google Talk]]. Тогда, ради совместимости, было решено согласовать эти два протокола и разработчики из Google стали входить в процесс разработки Jingle как соавторы.
| + | |
− | | + | |
− | Сейчас Jingle в основном идентичен протоколу используемому в GTalk, отличия заключаются в нескольких корректировках, основанных на откликах разработчиков приложений.
| + | |
− | | + | |
− | == Jingle и SIP ==
| + | |
− | | + | |
− | Сигнальный XMPP протокол Jingle работает поверх только XMPP (без использования {{w|SIP}}) из-за того, что создавать и поддерживать клиенты реализующие два больших протокола вместо одного достаточно сложно. В цели разработчиков Jingle не входило заменить или выжить SIP, вместо этого они постарались сделать протокол таким, чтобы клиенты без особых сложностей могли входить в существующие SIP сети.
| + | |
− | {{todo|уточнить, что именно в протоколе позволяет делать такой фокус, можно ли XMPP+Jingle клиент использовать как SIPPhone}}
| + | |
− | Транспорт Jabber->SIP: см. [http://www.gtalk2voip.com/ Gtalk2VoIP]
| + | |
− | | + | |
− | == См. также ==
| + | |
− | | + | |
− | * [[:Category:Jingle|Программы, которые используют или реализуют Jingle]]
| + | |
− | * [[Голос и видео в jabber]]
| + | |
− | * [[Muji]] (Multiparty Jingle)
| + | |
− | | + | |
− | == Ссылки ==
| + | |
− | | + | |
− | * {{xep|0166|Jingle}}
| + | |
− | * [http://xmpp.org/about-xmpp/technology-overview/jingle/ Официальная документация по протоколу]
| + | |
− | * [[Jingle/test|Тестирование Jingle в реальных условиях]]
| + | |
− | | + | |
− | == Примечания ==
| + | |
− | <references/>
| + | |
− | | + | |
− | [[Category:Протоколы]]
| + | |
− | [[Category:Расширения]]
| + | |