Обсуждение:Psi
Версия от 14:42, 19 августа 2009; H31 (обсуждение | вклад)
Побаловались тут в 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)