Подключаем транспорты к GTalk. Через тернии…

IM*
То там, то здесь в течение последнего полугода возникают сообщения о том, что люди не могут подключить к их jabber-аккаунту на Google Talk новые транспорты. Как показал анализ трафика и несколько обсуждений в списке рассылки jabber-operators, дело в том, что GTalk «не любит» JIDы в формате srv.example.org, а предпочитает исключительно node@example.org и поэтому честные транспорты не могут запросить у пользователя авторизацию.

Если количество ссылок вас еще не утомило, то ниже я в двух словах расскажу, что с этим можно сделать, пока инженеры Google полгода чинят этот лютый баг.

Решение напрашивается само собой — надо сделать транспорт srv.example.org доступным по адресу вида node@example.org. И желательно это сделать не модифицируя код каждого транспорта, т.к. костыль этот явно временный[1]. Также, желательно, чтоб этот мета-транспорт был простым как топор и позволял использовать любой публичный транспорт, а не толко транспорты того сервера, где установлен мета-транспорт. Запутались? Отлично, идём дальше.

[1] — Увы, нет ничего более постоянного, чем временное.

Администраторы публичных сервисов могут взять код pymeta-t на github, если, конечно, они хотят помочь несчастным gmail-юзерам использовать те самые публичные сервисы. Несмотря на свою тривиальность код вполне может быть не без багов, и будет здорово, если бы кто-нибудь с опытом работы с twisted его прокомментирует.

Пользователи публичных jabber-транспортов же могут поступить следующим образом. Допустим, вы ходите подключить к своей учётке на GTalk транспорт srv.remote.org, тогда в service-discovery своего клиента вам следует обозреть сервисы JIDа srv.remote.org@meta.example.org, где meta.example.org — адрес мета-транспорта. Поскольку единственная копия pymeta-t установлена сейчас на meta.darkk.net.ru, то обозревать стоит, соответственно, srv.remote.org@meta.darkk.net.ru, и регистрироваться там же.

Да, и еще. Gajim тоже не особо блюдёт RFC и не предоставляет возможности зарегистрироваться на транспорте с JID вида node@example.org, попросту не отрисовывая соответствующую кнопку в интерфейсе. С Psi всё работает как положено.
+22
3 мая 2009, 23:59
24
darkk 44,6

комментарии (36)

0
corristo #
спасибо за интересную информацию.
0
archerz #
Вот еще способ. Правда я сам не пробовал его. Подключаюсь к Gtalk-у через j2j танспорт.
0
darkk #
Знаю. У знакомых не получилось заставить работать этот метод.

Кстати, а в чём смысл подключения к gtalk через j2j? Как я понимаю, единственный существенный плюс gtalk-а — server-side логи, и в случае j2j он теряется.
0
archerz #
Просто раньше gtalk криво работал с другими серверами — сообщения не всегда доходили (не знаю как сейчас). Из-за этого с теми у кого был GTalk приходилось общаться через GTalk. Поэтому я и подключил его через j2j. Да и к тому же Gtalk не поддерживает сжатия, поэтому с телефона дорого подключаться, да и не всегда возможно, когда связь плохая.
Раньше (до ноября 2008 г.) полтора года сидел на GTalk'е, пока у них не начались проблемы с транспортами — потом пришлось перейти на другой сервер.
0
IPv6 #
кстати если интересны только чтобы асечные логи были доступны в логах чата в гмейле то вот еще способ (не для всех а только для Pidginовцев):
gamerotor.com/node/270
сам юзаю под Убунтой (мессенгер естественно Pidgin)
0
Ganglery #
Логи кстати при подключении j2j сохраняются. Я пробовал на нескольких сервисах (udaff.com, jrudevels.org, jabbus.org), проблем не было. Причём, даже когда из-за свойственной жпрс нестабильности некоторые сообщения не доходят до меня, то в гмыле в логах они всегда сохраняются. И конечно экономия трафика (как уже было сказано)
+1
gorynich #
Я и вправду запутался. :) Лично мне хотелось бы более понятной инструкции как подключить ICQ к Gtalk и сделать это через Miranda IM.
0
gorynich #
Прочитал ещё несколько раз и сравнил настройки клиента и все-таки получилось зарегистрироваться через публичный транспорт в миранде. А есть ли способ, который покажет username вместо номера в контакт-листе?
0
darkk #
Что показывать в контакт-листе определяет сам клиент, насколько я знаю. В bombus, например, есть кнопочка «переименовать контакты», может быть и в миранде она есть — я не в курсе.
0
gorynich #
Да, переименовать можно и в миранде, но т.к. добавленных контактов получилось 150 штук, это займет довольно много времени. :) Хотелось бы солюшена по этой проблеме.
0
darkk #
Let Me Google That For You.
раз и два

При том «два» как раз про миранду. Под Linux миранда не идёт, так что работоспособность солюшена проверить не могу =)
0
gorynich #
Спасибо, отчасти он помог, но только процентов 20 от списка появилось с импортированными никами. Использовал транспорт от mytlt.ru и freeside.ru.

Ну если забыть это, то немного заблудился и свернул с верного пути — думал, что при добавлении второго транспорта первый автоматически не будет использоваться, я ошибался. Сейчас при подключении к серверу google talk у меня в Миранде все контакты с двух транспортов продублировались, а кнопки разрегистрации в меню у сервисов почему-то нет! Есть «войти-выйти», «определить ники» и «конвертировать в чат»

Покопался в интернете — нашел случаи, когда удалялись контакты из аськи при удалении их из ростера в jabber.

В общем пока не знаю на что ругаться — на миранду или реализацию этого pymeta-t, но как-то мне нужно отозвать регистрацию на транспортах.

p.s.
Уже боюсь испольовать icq-транспорты в jabber, слишком много вопросов возникает. :)
0
darkk #
На pymeta-t ругаться бессмысленно, он тупой как пробка. Может быть баг в реализации icq-транспорта.

«Разрегистрация» делается простым удалением транспорта из ростера, правда, работающие через этот транспорт контакты автоматом не удаляться, их придётся удалить после «разрегистрации».

На какую-то старую миранду я ругался — интерфейс там слегка фашистский был. Как сейчас дела обстоят — не знаю.
0
gorynich #
Не помогло удаление транспорта из ростера :(

Хотя mytlt.ru как-то тцепился нормально и больше не беспокоит. А вот freeside.ru до сих пор ломиться ко мне при каждом подключении с кучей моих контактов в обнимку! :))

Мучаюсь с гуглом и мирандой дальше. Мне кажется это всё из-за нее.

— Люди, если есть кто опытный с Мирандой и подключением транспортов Jabber — отзовитесь!
--------
0
darkk #
Что значит «ломится»? Запросы авторизации от транспортных icq-пользователей? Так они и будут возникать при каждом подключении, пока вы их явно не отвергнете или не примите, т.к. ваш jabber-сервер их закэшировал и ждет от вас определенной реакции.

Ну а если вы имеете что-то другое под словом «ломится», то извините, телепатии не обоучен.
0
gorynich #
Чорт, точно! Простите мне мою джаббер-неопытность, вы правы — действительно потребовалось отказать в авторизации каждому из подцепившихся контактов на транспорте. Кстати в приложении Google Talk это сделать можно в разы быстрее, чем в Миранде, там интерфейс удобней для этого, но палец устал щелкать всё равно.

Ну в общем я полностью разобрался как пользоваться всем этим делом. Благодарю за помощь!
0
darkk #
Ну хоть кому-то помогло — и то хорошо :-)
0
darkk #
Кстати, и mytlt.ru и freeside.ru работают на JIT, так что если получилось с одним — получится и с другим! Главное верить в себя и не останавливаться! :-D
+1
darkk #
Кстати, раз уж у вас получилось, можете смело написать инструкцию на человеческом языке либо отдельным постом, либо тут же в комментариях.

У меня всегда код получался лучше, чем документация :-)
0
Cyxapeff #
Имя icq пользователя получается совсем непотребным icqnumber%40srv.remote.org@meta.darkk.net.ru Да и зависеть от 2х транспортов у разных провайдеров… Очень не хочется…
0
darkk #
Я считаю, что имя «7811378» достаточно непотребно само по себе и никакой суффикс его не испортит.

Можете попросить администратора remote.org поставить pymeta-t и зависеть от 2х транспортов у одного провайдера.

Нет, я не спорю, что это система костылей и подпорок, но лучшего решения пока не предложено.
0
Cyxapeff #
Вот моё решение для gajim'а. Запускаем его через маленький скриптик: dumpz.org/8226/

Оно ещё более кривое, но мне больше нравится )
0
darkk #
У него есть как минимум одна потенциальная грабля: GTalk-сервер не будет отвечать на <presence type=«probe»>.

Вторая беда в том, что если транспорт отвалится, то от него не придёт <message /> об ошибке. Или я ошибаюсь и сообщение таки приходит?
0
Cyxapeff #
Было, отваливался. Статус становился offline. Так что всё нормально. Что именно он присылает — не знаю. Да и тьфу-тьфу-тьфу отваливается он редко, так что на это можно закрыть глаза.
+2
Gumoza #
Привет всем, я недавно тоже мучился, подключая ICQ-шников к своему любимому Gmail
Транспорты не прокатили… но оказалось, что есть способ без плясок с бубнами!

Вы просто добавляете в Gmail ICQ-шника через AIM (вместо AIM body напишите номер аськи) — вот и все!
Можно добавлять их прямо в gmail? можно их удалять там.

Вот такое простое решение, кстати в Инете очень мало по этому поводу написано, поэтому надеюсь, что не баян даже для хабра :)
0
darkk #
Можно и так, но такие контакты разве вины за пределами веб-интерфейса через «обычный» jabber-клиент? Насколько я помню — нет.
0
grinka #
grinka.habrahabr.ru/blog/51158/
угу, вот тут обсуждали
0
ColorPrint #
при таком подключении куча глюков с кодировками
0
Gumoza #
бывает, но из 5 контактов, только у одного (на Миранде) был глюк с кодировкой… вот так
0
ColorPrint #
у меня почти на всех контактах глюки с кодировкой, и абсолютно на всех контактах — html теги в сообщениях.
также пропадают оффлайн-сообщения. если при использования icq-транспорта в gmail их пропадает процентов 10, то через AOL — вроде все вообще
0
darkk #
Кстати, в последних версиях pyicq-t стало получше с оффлайновыми сообщениями. В том плане, что если транспорт не может перекодировать его в UTF-8, он шлет hexdump в таком духе:

'\xd0\x9a\xd1\x81\xd1\x82\xd0\xb0\xd1\x82\xd0\xb8, \xd0\xb2 \xd0\xbf\xd0\xbe\xd1\x81\xd0\xbb\xd0\xb5\xd0\xb4\xd0\xbd\xd0\xb8\xd1\x85 \xd0\xb2\xd0\xb5\xd1\x80\xd1\x81\xd0\xb8\xd1\x8f\xd1\x85 pyicq-t \xd1\x81\xd1\x82\xd0\xb0\xd0\xbb\xd0\xbe \xd0\xbf\xd0\xbe\xd0\xbb\xd1\x83\xd1\x87\xd1\x88\xd0\xb5 \xd1\x81 \xd0\xbe\xd1\x84\xd1\x84\xd0\xbb\xd0\xb0\xd0\xb9\xd0\xbd\xd0\xbe\xd0\xb2\xd1\x8b\xd0\xbc\xd0\xb8 \xd1\x81\xd0\xbe\xd0\xbe\xd0\xb1\xd1\x89\xd0\xb5\xd0\xbd\xd0\xb8\xd1\x8f\xd0\xbc\xd0\xb8. \xd0\x92 \xd1\x82\xd0\xbe\xd0\xbc \xd0\xbf\xd0\xbb\xd0\xb0\xd0\xbd\xd0\xb5, \xd1\x87\xd1\x82\xd0\xbe \xd0\xb5\xd1\x81\xd0\xbb\xd0\xb8 \xd1\x82\xd1\x80\xd0\xb0\xd0\xbd\xd1\x81\xd0\xbf\xd0\xbe\xd1\x80\xd1\x82 \xd0\xbd\xd0\xb5 \xd0\xbc\xd0\xbe\xd0\xb6\xd0\xb5\xd1\x82 \xd0\xbf\xd0\xb5\xd1\x80\xd0\xb5\xd0\xba\xd0\xbe\xd0\xb4\xd0\xb8\xd1\x80\xd0\xbe\xd0\xb2\xd0\xb0\xd1\x82\xd1\x8c \xd0\xb5\xd0\xb3\xd0\xbe \xd0\xb2 UTF-8, \xd0\xbe\xd0\xbd \xd1\x88\xd0\xbb\xd0\xb5\xd1\x82 hexdump \xd0\xb2 \xd1\x82\xd0\xb0\xd0\xba\xd0\xbe\xd0\xbc \xd0\xb4\xd1\x83\xd1\x85\xd0\xb5:'
+1
Kupnu4X #
Аська — зло.
Как бы это объяснить уже всем своим контактам :)
0
mrded #
я уже обиделся на них и переполз на jabber.ru, а gtalk подключаю как s2s.
0
xdemon #
Ссори за ап, но почему транспорт не видно в service discovery?
0
darkk #
Понятия не имею, у меня видно, в том числе и с gtalk.
Клиент — psi-0.13
0
xdemon #
Тьфу ты, порт сервера неправильно прописал, ссори за беспокойство. Работает отлично.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.