Difference between revisions of "Jingle"
(таблица с http://jabberworld.info/Jingle с стилевыми правками) |
(правки) |
||
Line 6: | Line 6: | ||
: ''Эта статья о протоколе {{xep|0166|Jingle}}. О реализующей его библиотеке см. [[libjingle]].'' | : ''Эта статья о протоколе {{xep|0166|Jingle}}. О реализующей его библиотеке см. [[libjingle]].'' | ||
− | + | '''Jingle''' - универсальный сигнальный протокол для XMPP. В его функции не входит сама передача данных, а только организация соединения - т.н. "рукопожатие". Другими словами, два клиента, используя Jingle, оговаривают адреса, порты, тип передаваемых данных, кодеки, тип канала, используемые транспорты и другую информацию, необходимую для установки соединения, по которому уже будет происходить непосредственная передача данных. | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
== Применение == | == Применение == | ||
Line 36: | Line 17: | ||
Клиент [[GTalk]] работает поверх очень похожего на Jingle протокола, но все же, это не Jingle в чистом виде. То же самое относится и к библиотеке [[libjingle]], созданной командой Google. | Клиент [[GTalk]] работает поверх очень похожего на Jingle протокола, но все же, это не Jingle в чистом виде. То же самое относится и к библиотеке [[libjingle]], созданной командой Google. | ||
− | + | В данной вики есть специальная [[:Category:Jingle|категория для программ, поддерживающих Jingle]], где есть как клиенты, так и [[:Category:Библиотеки с поддержкой Jingle|библиотеки]]. | |
<center> | <center> | ||
Line 51: | Line 32: | ||
!width=60 bgcolor=lightblue|[[Kopete]] | !width=60 bgcolor=lightblue|[[Kopete]] | ||
!width=60 bgcolor=lightblue|[[Spark]] | !width=60 bgcolor=lightblue|[[Spark]] | ||
− | !width=60 bgcolor=lightblue|[[Google Talk]] | + | !width=60 bgcolor=lightblue|[[Google Talk (клиент)|Google Talk]] |
!width=60 bgcolor=lightblue|[[Coccinella]] | !width=60 bgcolor=lightblue|[[Coccinella]] | ||
!width=60 bgcolor=lightblue|[[Talkonaut]] | !width=60 bgcolor=lightblue|[[Talkonaut]] | ||
!width=60 bgcolor=lightblue|[[Nimbuzz]] | !width=60 bgcolor=lightblue|[[Nimbuzz]] | ||
|- | |- | ||
− | !bgcolor=lightgreen|[[Psi|Psi+]] | + | !bgcolor=lightgreen|[[Psi+|Psi+]] |
|{{Да}} | |{{Да}} | ||
|{{Да}} | |{{Да}} | ||
Line 227: | Line 208: | ||
</center> | </center> | ||
+ | == Использование клиентами за {{w|NAT}} == | ||
+ | jingle nodes relay - реализация Jingle supernode. Узел позволяющий клиентам, не имеющих возможности передавать голос напрямую. Копия запущена, например, на сервере [[Talkr.im]]. | ||
− | == | + | == История == |
+ | До появления 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]] | * [[:Category:Jingle|Программы, которые используют или реализуют Jingle]] | ||
Line 235: | Line 236: | ||
* {{xep|0166|Jingle}} | * {{xep|0166|Jingle}} | ||
− | * [http://xmpp.org/ | + | |
+ | * [http://xmpp.org/about-xmpp/technology-overview/jingle/ Официальная документация по протоколу] | ||
== Примечания == | == Примечания == |
Revision as of 19:21, 9 December 2010
Статьи по этой теме на других вики-сайтах: | |
---|---|
Jingle (протокол) — Википедия | |
Jingle — JabberWorld |
- Эта статья о протоколе XEP-0166: Jingle. О реализующей его библиотеке см. libjingle.
Jingle - универсальный сигнальный протокол для XMPP. В его функции не входит сама передача данных, а только организация соединения - т.н. "рукопожатие". Другими словами, два клиента, используя Jingle, оговаривают адреса, порты, тип передаваемых данных, кодеки, тип канала, используемые транспорты и другую информацию, необходимую для установки соединения, по которому уже будет происходить непосредственная передача данных.
Contents
Применение
XEP-166 определяет только базовую функциональность сигнального протокола. Для каждого типа потока данных (звук, файлы, видео) существуют отдельные стандарты, конкретизирующие применение Jingle в своей области:
- XEP-0167: Jingle RTP Sessions — звук и видео через RTP.
- XEP-0177: Jingle Raw UDP Transport — создание UDP соединения для передачи любых данных.
- шуточный XEP-0183: Jingle Telepathy Transport — создание телепатического канала для передачи мыслей.
Поддержка в программах
Клиент GTalk работает поверх очень похожего на Jingle протокола, но все же, это не Jingle в чистом виде. То же самое относится и к библиотеке libjingle, созданной командой Google.
В данной вики есть специальная категория для программ, поддерживающих Jingle, где есть как клиенты, так и библиотеки.
Вызывающая сторона | Принимающая сторона | |||||||||||||
Psi+ | Gajim | Pidgin | QIP Infium | Empathy | Maemo 5 | Kopete | Spark | Google Talk | Coccinella | Talkonaut | Nimbuzz | |||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Psi+ | да | да | ?[1] | нет | да | Да[2] | нет | нет | нет | |||||
Gajim | да | да | да | нет | да | да | нет | нет | нет | |||||
Pidgin | да | да | да | Да[3] | да | да | нет | да | нет | |||||
QIP Infium | нет | нет | Да[3] | Да[3] | Да[3] | нет | Да[3] | |||||||
Empathy | да | да | да | Да[3] | да | да | нет | да | нет | |||||
Maemo 5 | Да[2] | да | Да[2] | нет | да | да | да | |||||||
Kopete | ||||||||||||||
Spark | нет | нет | нет | нет | нет | |||||||||
Google Talk | нет | нет | ?[4] | Да[3] | ?[4] | да | да | да | ||||||
Coccinella | нет | нет | нет | нет | нет | нет | ||||||||
Talkonaut | ||||||||||||||
Nimbuzz |
Использование клиентами за NAT
jingle nodes relay - реализация Jingle supernode. Узел позволяющий клиентам, не имеющих возможности передавать голос напрямую. Копия запущена, например, на сервере Talkr.im.
История
До появления Jingle ситуация с поддержкой голоса, видео и других p2p потоков была следующая: существовало несколько закрытых протоколов, используемых в закрытых клиентах, с одной стороны, и был разработан открытый стандарт TINS - с другой. Закрытые протоколы, помимо того, что были закрыты от сообщества, не всегда учитывали требования, необходимые для совместимости с уже существующими сетями на базе SIP, а открытый TINS имел недостатки, непозволяющие ему легко встраиваться в Jabber/XMPP клиенты.
Такая ситуация привела к расколу сообщества и XSF оказалась перед выбором:
- Рекомендовать всем клиентам реализовывать одновременную поддержку и XMPP и SIP для передачи голоса
- Сделать новый полноценный сигнальный протокол для XMPP
Опыт подсказывал, что не везде, где уже сделаны клиенты Jabber, можно реализовать двойную поддержку, поэтому XFS решило попробовать второй вариант и Joe Hildebrand вместе с Peter Saint-Andre начали разработку протокола, который бы обеспечил необходимую сигнальную функциональность и остался бы совместим с существующими стандартами. Кодовое название протокола стало Jingle ("звенеть")
После общения с разработчиками из Google стало понятно, что только появляющийся Jingle концептуально (и даже местами семантически) похож на сигнальный протокол используемый в приложении Google Talk. Тогда, ради совместимости, было решено согласовать эти два протокола и разработчики из Google стали входить в процесс разработки Jingle как соавторы.
Сейчас Jingle в основном идентичен протоколу используемому в GTalk, отличия заключаются в нескольких корректировках, основанных на откликах разработчиков приложений.
Jingle и SIP
Сигнальный XMPP протокол Jingle работает поверх только XMPP (без использования SIP) из-за того, что создавать и поддерживать клиенты реализующие два больших протокола вместо одного достаточно сложно. В цели разработчиков Jingle не входило заменить или выжить SIP, вместо этого они постарались сделать протокол таким, чтобы клиенты без особых сложностей могли входить в существующие SIP сети.
Транспорт Jabber->SIP: см. Gtalk2VoIP