Судя по количеству плюсов к посту про использование google apps в качестве сервера jabber эта тема волнует хабрапользователей. Поэтому я решил внести свои пять копеек.

В документации гугла сказано, что при настройке кастомного клиента нужно вводить в свойствах соединения сервер talk.google.com и порт. Это очень не удобно, так как надо всё время помнить эти настройки, да и затрудняет настройку клиента вашими родственниками/знакомыми, которых пугает только одно слово порт :) Почему-то в документации к google apps этого не сказано, но прописать адрес и порт, которые должны быть использовать при подключении, можно в srv записях dns, да именно там, где вы указаывали адреса для федеративных сетей.

Добавляем запись типа:

_xmpp-client._tcp.yourdomain.com. IN SRV 5 0 5222 talk.google.com.


И вауля, клиент коннектится безо всяких танцев и дополнительных настроек.

Стоит добавить, что:
  1. Клиент должнен поддерживать чтение srv записей.
    Протестированы клиенты:
    Работают:

    Не работают:
    • Bombus — чтение записей происходит, но из-за несоответствия сертификата соединение обрывается.
    • Kopete Bug 133097 (TiGR)

  2. Клиент должен выдать ошибку о несовпадении сертификатов серверов, проверьте, что это сертификат действительно принадлежит Google, Inc. Если да, то спокойно кликайте ok
  3. На обновление записей может потребоваться существенное время, так что не стоит ждать, что всё заработает через минуту. Проверить, видит ли ваш локальный dns сервер новые записи можно так:
    # nslookup
    > set type=srv
    > _xmpp-client._tcp.ivlis.com
    Server:         195.208.192.19
    Address:        195.208.192.19#53
    
    Non-authoritative answer:
    _xmpp-client._tcp.ivlis.com     service = 5 0 5222 talk.google.com.
    
    Authoritative answers can be found from:
    
    
  4. Для большей надёжности можно прописать несколько серверов гугла для коннекта. Насколько это повышает надёжность, мне не известно. Взял из того же nslookup самого gmail.com
    • _xmpp-client._tcp.gmail.com service = 20 0 5222 talk1.l.google.com.
    • _xmpp-client._tcp.gmail.com service = 20 0 5222 talk2.l.google.com.
    • _xmpp-client._tcp.gmail.com service = 20 0 5222 talk3.l.google.com.
    • _xmpp-client._tcp.gmail.com service = 20 0 5222 talk4.l.google.com.
    • _xmpp-client._tcp.gmail.com service = 5 0 5222 talk.l.google.com.



  5. Спасибо за внимание, надеюсь кому-то этот пост будет полезен!