XMPP (Jabber)

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.
  2. Select your XMPP account.
  3. Fill in the fields you see.
  4. Room should be the short name of the conference, for example, “myconference”.
  5. 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@…”
  6. Handle is the name you wish to be displayed in the chat. It is similar in concept to a nickname on IRC.
  7. Click “Join”.
  8. 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.
  2. Select your XMPP account.
  3. Fill in the fields you see.
  4. Room should be the short name of the conference, for example, “myconference”.
  5. 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@…”
  6. Handle is the name you wish to be displayed in the chat. It is similar in concept to a nickname on IRC.
  7. Password is optional for creating a new room. You probably don’t want to fill this field in.
  8. 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.
  9. Group is the group in your buddy list (roster) in which you wish the chat to appear.
  10. Click “Add”.
  11. Find the chat in your Buddy List and double-click it.
  12. 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 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 or set an app password for Pidgin via this Google page.

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 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:

_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.

Looking to reach us via XMPP? Check out the new PidginChat service!