pidgin/nest

Finish off the XMPP FAQ's.

2019-06-09, John Bailey
7220fb450aed
Finish off the XMPP FAQ's.
--- a/hugo/content/help/xmpp.md Sun Jun 09 14:01:46 2019 -0400
+++ b/hugo/content/help/xmpp.md Sun Jun 09 17:02:44 2019 -0400
@@ -3,6 +3,8 @@
date: 2019-06-04T00:16:51-04:00
---
+## 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.
@@ -15,6 +17,138 @@
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 migfht 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 fo 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 fo 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 [Ticket 5840](https://developer.pidgin.im/ticket/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 istead 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 mesage `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 NDS 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 sepcific 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.