pidgin/nest

1f078d295019
Add an alias for /development/wiki/GetABacktrace to the debugging page

Testing Done:
Ran `npm hugo:server` and verified that `/development/wiki/GetABacktrace` redirected to `/development/debugging'

Reviewed at https://reviews.imfreedom.org/r/3029/
---
title: XMPP (Jabber)
date: 2019-06-05T04:19:04.000Z
weight: 70
lastmod: 2019-08-23T02:53:18.000Z
---
## General
### What is the difference between Jabber and XMPP?
Jabber and XMPP are the same protocol. The only difference is that Jabber is a
trademarked name and XMPP is the official name of the protocol.
### Does Pidgin support Nimbuzz, Web.de Messenger, GMX Messenger, or 1&1 Messenger?
Yes; they are simply services that use the XMPP protocol.
### How do I choose which XMPP server to use or configure an XMPP account?
The XMPP server is part of your XMPP ID. For example, in the ID `foo@bar.com`,
`bar.com` would be the server to use. When entering your XMPP account
information into Pidgin, specify everything _before_ the `@` (in the example,
this would be `foo`) in the Username field and everything _after_ the `@` (in
the example, this would be `bar.com`) in the Domain field.
## Setting Up Accounts
### What is the "Resource" field for in the account editor?
The resource field specifies the XMPP resource you are using. The use of unique
resources allows you to connect to your XMPP server from multiple locations
simultaneously. Resources might have meaningful names, such as Home, Work,
Mobile, etc. or something else entirely that you choose. Pidgin defaults to a
blank resource, as most servers will assign one if the client doesn't specify.
### How do I change my resource string?
Go to _Accounts_ -> _Add/Edit_. Uncheck the "Enabled" box for your XMPP
account. Then select the account and click the "Modify" button. Change the
string in the Resource field, or put something there if it's blank.
### How can I configure resource priority?
Libpurple does not currently support user-configurable priorities. We have a
static priority list that's used:
|Status Name|Priority|
|-----------|--------|
|Available|1|
|Chatty|1|
|Away|0|
|Do Not Disturb|0|
|Extended Away|0|
### How do I use Pidgin with MeiVZ/StudiVZ's chat box?
These services use XMPP. Create an XMPP account using the e-mail address you
log in with, but replace the "at sign" (`@`) with `\40`. Set the Domain to
`vz.net`. You won't need to change anything on the Advanced tab.
## XMPP Buddies (Contacts)
### How can I deauthorize a buddy from seeing my status?
Right-click the buddy in the Buddy List and select "Cancel Presence
Notification". Note that the buddy will have to request authorization again to
be able to see your presence.
### What does "Cancel Presence Notification" do?
See the previous question.
### What does "Unsubscribe" do?
If you select this, you will no longer see that buddy's presence. That means
you will not see their online or offline status or if they're away, extended
away, idle, etc. If you select this option and later change your mind, you must
re-request authorization to resume seeing the buddy's presence.
## Multi-User Conferences (Chat Rooms)
### How do I create a conference?
There are two ways to do this. One is by joining the conference and the other
is by adding it to your Buddy List.
#### Join the conference
1. In the Buddy List window, select _Buddies_ -> _Join A Chat_.
1. Select your XMPP account.
1. Fill in the fields you see.
1. **Room** should be the short name of the conference, for example,
"myconference".
1. **Server** is the server on which the conference will be created. It must
be a MUC server, such as `conference.jabber.org`. The chat's ID will be
Room@Server, so the example "myconference" would have the ID
"myconference@..."
1. **Handle** is the name you wish to be displayed in the chat. It is similar
in concept to a nickname on IRC.
1. Click "Join".
1. You will see a dialog asking you about creating the new room. You can either
accept the default configuration or configure to your liking, at your option.
#### Add the conference to your roster (buddy list)
1. In the Buddy List window, select _Buddies_ -> _Add Chat_.
1. Select your XMPP account.
1. Fill in the fields you see.
1. **Room** should be the short name of the conference, for example,
"myconference".
1. **Server** is the server on which the conference will be created. It must
be a MUC server, such as `conference.jabber.org`. The chat's ID will be
Room@Server, so the example "myconference" would have the ID
"myconference@..."
1. **Handle** is the name you wish to be displayed in the chat. It is similar
in concept to a nickname on IRC.
1. **Password** is optional for creating a new room. You probably don't want
to fill this field in.
1. **Alias** is the alias (display name) you wish to assign to the chat. By
assigning an alias, you can display a useful description in the buddy list
instead of the chat's name.
1. **Group** is the group in your buddy list (roster) in which you wish the
chat to appear.
1. Click "Add".
1. Find the chat in your Buddy List and double-click it.
1. You will see a dialog asking you about creating the new room. You can either
accept the default configuration or configure to your liking, at your option.
### How do I invite someone to a conference?
In the chat's tab, select _Conversation_ -> _Invite_. Note that you can only
invite people to a conversation that is already a chat/conference--you can't
"promote" a one-on-one conversation to a multi-user chat.
## Miscellaneous
### Why can't I send a file?
There are a number of possible reasons for this.
* If the user you're trying to send to is using the old Google Talk client, it
isn't possible, as that client doesn't use the standard XMPP file transfer
mechanisms.
* The XMPP server you're using may not support a file transfer proxy and your
network doesn't allow direct incoming connections. In this case, you may be
able to specify an alternative file transfer proxy in the "Advanced" settings
of your XMPP account.
* The file transfer proxy in use may be broken (see {{% issue PIDGIN-5840 %}}).
### Does Pidgin support Service Discovery or Transports?
Service discovery and transport _registration_ are supported in Pidgin using the
XMPP Service Discovery plugin.
If a transport has already been registered in another client, or does not
require registration, Pidgin also supports this.
If you want to use a protocol that Pidgin and libpurple natively support, we
recommend using Pidgin's own implementation instead of an XMPP transport.
### Why do I get a "Server does not use any supported authentication method" error?
If you get this error, have a look in your debug log (_Help_ -> _Debug Window_
in the Buddy List window) to see if you also get the error message `sasl:
sasl_state is -1, failing the mech and trying again`. If you are getting this,
a possible workaround is to try adding your hostname (from `/etc/hostname`) to
your `/etc/hosts` as an alias for `127.0.0.1` then trying to reconnect.
## Google Talk
### Why do I get a "Not authorized" error after turning on two-factor authentication?
If you get this error, you might need to allow "less secure apps" to connect via
[this Google page](https://www.google.com/settings/security/lesssecureapps) or
set an app password for Pidgin via [this Google
page](https://security.google.com/settings/security/apppassowrds).
### I'm using Google Apps with a non-Google e-mail address. How can I use this with Pidgin?
You can't. This is a server-side restriction.
Using Google Talk with a non-Google e-mail address (that is, an e-mail account
that doesn't live on a Google server) is not a good idea because these accounts
appear to other users as `<some terrible number>@talk.google.com` rather than
using something someone could remember.
### How do I configure Pidgin to connect to Google Talk for my domain hosted on GSuite (Google Apps)?
Put your username (the part before the `@` in your e-mail address) in the
"Username" field and your domain (the part after the `@` in your e-mail address)
in the Domain field. Enter your password in the Password field. This should be
all that's needed unless two-factor authentication is enabled.
If this doesn't work, it is likely because your domain doesn't have the
appropriate DNS SRV records set up, or your local DNS doesn't handle SRV
records. See the next question for more information.
If you are unable to fix the DNS settings, as a workaround you can specify
`talk.google.com` in the "Connect Server" field on the account's "Advanced" tab.
Note that you may get SSL/TLS certificate warnings if you do this.
See [Google's help
page](https://www.google.com/support/a/bin/answer.py?hl=en&answer=49147) for
more information.
### What are these DNS SRV records you talk about?
DNS SRV records are special entries in the domain name system that allow clients
such as Pidgin to find specific services. In the case of XMPP and Google Talk,
these records specify what servers on the Internet provide the XMPP service for
a given domain.
Many home routers, especially older ones, are broken and can't handle the SRV
record lookups required for Pidgin to automatically determine the server to
which to connect. If this is the case, in the debug log (on the Buddy List
window, _Help_ -> _Debug Window_), you will see `dnssrv: found 0 SRV entries`.
You can confirm this by running `dig +short SRV __xmpp-client._tcp.<server>` on
Linux or `nslookup -type=SRV _xmpp-client._tcp.<server>` on Windows, where
`<server>` is the domain, such as `gmail.com`. If these commands return no
results, then you will need to reconfigure the router to not act as the DNS
server for the client computers. Typically, this setting is labeled something
along the lines of "Use Router as DNS server" (this should be disabled) in the
router's configuration.
If you are using OpenWRT, you can fix this by editing `/etc/dnsmasq.conf` and
commenting out the following line by adding a `#` in front of it: `filterwin2k`.
OpenWRT 10.03.1 "Backfire" needs dnsmasq's "Domain Needed" option to be
disabled. In LuCI, this can be found under _Network_ -> _DHCP_ and _DNS_ ->
_General_ -> _Domain Required_ (unchecked). From the command line, remove the
following option from the `dnsmasq` section in `/etc/config/dhcp`.
If your GSuite (Google Apps for Your Domain) domain does not have SRV records,
add [the following
entries](http://support.google.com/a/bin/answer.py?hl=en&answer=34143):
_xmpp-server._tcp.yourdomain.com. IN SRV 5 0 5269 xmpp-server.l.google.com.
_xmpp-server._tcp.yourdomain.com. IN SRV 20 0 5269 alt1.xmpp-server.l.google.com.
_xmpp-server._tcp.yourdomain.com. IN SRV 20 0 5269 alt2.xmpp-server.l.google.com.
_xmpp-server._tcp.yourdomain.com. IN SRV 20 0 5269 alt3.xmpp-server.l.google.com.
_xmpp-server._tcp.yourdomain.com. IN SRV 20 0 5269 alt4.xmpp-server.l.google.com.
How you do this will differ depending on your your DNS server or provider works.