Избавляемся от дополнительных настроек jabber-клиента в Google apps
Судя по количеству плюсов к посту про использование google apps в качестве сервера jabber эта тема волнует хабрапользователей. Поэтому я решил внести свои пять копеек.
В документации гугла сказано, что при настройке кастомного клиента нужно вводить в свойствах соединения сервер talk.google.com и порт. Это очень не удобно, так как надо всё время помнить эти настройки, да и затрудняет настройку клиента вашими родственниками/знакомыми, которых пугает только одно слово порт :) Почему-то в документации к google apps этого не сказано, но прописать адрес и порт, которые должны быть использовать при подключении, можно в srv записях dns, да именно там, где вы указаывали адреса для федеративных сетей.
Добавляем запись типа:
_xmpp-client._tcp.yourdomain.com. IN SRV 5 0 5222 talk.google.com.
И вауля, клиент коннектится безо всяких танцев и дополнительных настроек.
Стоит добавить, что:
- Клиент должнен поддерживать чтение srv записей.
Протестированы клиенты:
Работают:
Не работают:
- Bombus — чтение записей происходит, но из-за несоответствия сертификата соединение обрывается.
- Kopete Bug 133097 (TiGR)
- Клиент должен выдать ошибку о несовпадении сертификатов серверов, проверьте, что это сертификат действительно принадлежит Google, Inc. Если да, то спокойно кликайте ok
- На обновление записей может потребоваться существенное время, так что не стоит ждать, что всё заработает через минуту. Проверить, видит ли ваш локальный 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:
- Для большей надёжности можно прописать несколько серверов гугла для коннекта. Насколько это повышает надёжность, мне не известно. Взял из того же 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.
Спасибо за внимание, надеюсь кому-то этот пост будет полезен!