Jingle (протокол)
| Тип | комунікаційний протокол |
|---|---|
Jingle — універсальний сигнальний протокол для XMPP. У його функції не входить сама передача даних, а тільки організація з'єднання — т. зв. «рукостискання». Іншими словами, два клієнта, використовуючи Jingle, обмовляють адреси, порти, тип переданих даних, кодеки, тип каналу, використовувані транспорти і іншу інформацію, необхідну для встановлення з'єднання, по якому вже буде відбуватися безпосередня передача даних[1].
Офіційна назва стандарту — XEP-0166. На початок червня 2010 року Остання версія протоколу — 1.1 (від 23 грудня 2009 року).
Протокол Jingle (XEP-0166) спроєктовано як модульний фреймворк для організації однокористувацьких сесій «peer-to-peer» через XMPP, де сама передача даних відбувається поза каналом XMPP. (xmpp.org)
Однією з ключових рис Jingle є підтримка плагінованих транспортних методів:
- Jingle може використовувати UDP (наприклад, через XEP-0177 або ICE-UDP транспорт).
- Або TCP / поточні потоки, SOCKS5 Bytestreams (XEP-0065) чи In-Band Bytestreams (XEP-0047), що обираються під час переговорів.
- Також можливе застосування TLS для потокових транспортів та DTLS для дейтограмних, як умов безпеки перед передачею даних.
Jingle підтримує різноманітні «application formats» — наприклад, аудіо, відео, передачу файлів або XML-потоків — через окремі XEP-розширення, які описують, як тлумачити контент і кодеки всередині сесії.
Такий підхід дозволяє клієнтам гнучко адаптуватися до мереж із NAT, мереж із обмеженнями або динамічними маршрутами, обираючи найбільш оптимальний транспортний канал (UDP, TCP, SOCKS5 тощо) у процесі переговорів.
- Asterisk
- Coccinella
- Empathy
- FreeSWITCH
- Gajim (експериментальна підтримка)
- Google Talk
- Jabbin (2.0 beta2)
- Kopete (починаючи з версії 0.12)
- Miranda IM (з використанням плагіна JGTalk і mediastreamer2)
- Nimbuzz
- Pidgin (з версії 2.6.0)
- Psi (відновлена підтримка у версії 0.13)
- QIP Infium (починаючи з версії 9032)
- Jitsi
- Talkonaut
- Telepathy Gabble