Обсуждение:Psi

Материал из Мир Jabber
Перейти к навигацииПерейти к поиску

Побаловались тут в wiki@c.q.r Jingle'ом в Psi и тестовом QIP'e, кое-какие заметки:

  • Между собой Psi и QIP Infium общаться не хотели (вообще в нем заявлена совместимость с Google Talk, но решили проверить)
  • При попытке звонка клиент дергает то 8010, то 8011 порт
  • Отдается внешний адрес машины, клиенты пытаются связаться напрямую, можно ли тут заюзать какой-то прокси для обхода НАТа - пока не знаю (через файлообменный трафик идти не хочет)
  • Подропанные пакеты выглядят так:
Aug 19 14:24:03 prox kernel: [666137.549126] DROPPED IN=eth0 OUT=ppp0 SRC=192.168.0.111 DST=192.168.1.100 LEN=96 TOS=0x0
0 PREC=0x00 TTL=126 ID=0 DF PROTO=UDP SPT=60212 DPT=8010 LEN=76
Aug 19 14:24:03 prox kernel: [666137.549458] DROPPED IN=eth0 OUT=ppp0 SRC=192.168.0.111 DST=192.168.1.100 LEN=96 TOS=0x0
0 PREC=0x00 TTL=126 ID=0 DF PROTO=UDP SPT=57520 DPT=8011 LEN=76
Aug 19 14:24:03 prox kernel: [666138.044549] DROPPED IN=eth0 OUT=ppp0 SRC=192.168.0.111 DST=192.168.1.100 LEN=96 TOS=0x0
0 PREC=0x00 TTL=126 ID=0 DF PROTO=UDP SPT=57520 DPT=8011 LEN=76
Aug 19 14:24:03 prox kernel: [666138.044575] DROPPED IN=eth0 OUT=ppp0 SRC=192.168.0.111 DST=192.168.1.100 LEN=96 TOS=0x0
0 PREC=0x00 TTL=126 ID=0 DF PROTO=UDP SPT=60212 DPT=8010 LEN=76
Aug 19 14:24:04 prox kernel: [666139.047559] DROPPED IN=eth0 OUT=ppp0 SRC=192.168.0.111 DST=192.168.1.100 LEN=96 TOS=0x0
0 PREC=0x00 TTL=126 ID=0 DF PROTO=UDP SPT=60212 DPT=8010 LEN=76
Aug 19 14:24:04 prox kernel: [666139.047584] DROPPED IN=eth0 OUT=ppp0 SRC=192.168.0.111 DST=192.168.1.100 LEN=96 TOS=0x0
0 PREC=0x00 TTL=126 ID=0 DF PROTO=UDP SPT=57520 DPT=8011 LEN=76

и так далее. Соответственно, локально у человека между машинами все работает, удаленно между нами - нет.

  • На одной винде XP строки "Позвонить" в меню и вкладки "Звонки" в настройках не было вообще, что-то там ему еще надо. На Vista все завелось из коробки. С другой стороны, у человека на том конце провода была XP. --Rain 11:43, 19 августа 2009 (UTC)
Рассказываю. Как мы помним, Jingle разработал Google для своего клиента. Протокол разработан ею же. Документацию по нему можно найти тут. Ими же был разработан libjingle. Потом главный разработчик Jabber Peter Saint-Andre на основе спецификации от Google разработал свою спецификацию, которую мы видим на xmpp.org как набор из нескольких XEP. При этом обратная совместимость была потеряна. Так вот: Psi использует официальную спецификацию (те самые XEP), а libjingle (соответственно, использующие его QIP Infium, Pidgin, Empathy, Google Talk и некоторые другие,а также Talkonaut) используют несовместимую спецификацию от Google. Были обещания перепилить libjingle под официальную спецификацию, но прогресса что-то не видно. Такие дела. Где-то в сторонке стоит стоит Coccinella, которая тоже использует официальную спецификацию, однако у меня возникли с ней проблемы. Может быть у тебя получится :). Ещё есть Spark и основанный на нем SIP Communicator, который вообще неизвестно на чем работают.
Насчет подключения. Я сейчас говорю об официальной спецификации, в гугловской может быть немного иначе. Используется обычный RTP, чаще всего поверх UDP. Тут изобретать велосипеды не стали. Для получения внешнего IP и типа NAT'а используют STUN. На данный момент только Openfire предоставляет свой STUN-сервер, в остальных случаях придется использовать публичный STUN. Если с первого раза напрямую подключиться не удалось, идут техники обхода NAT. В этом месте можно гордиться: Jingle в этом плане самый продвинутый из всех аналогов :). Если не получается - смотрят, кто может предоставить прокси. Тут используются суперноды, как в Скайпе. В отличие от Скайпа, тут это довольно гибко настраивается и по желанию. Если и так не работает - идет прокси на сервере. Есть специальный прокси для Jingle, но он есть только в Openfire. Если его нету на сервере - используется обычный SI'шный файлопрокси (его не получилось использовать, так как либо его ещё не сделали в клиентах, либо его нет в спеках от Google, что очень вероятно). H31 14:42, 19 августа 2009 (UTC)