How to invite new user to specific server?

Imagine I live in the country where internet access is censored. DC servers listed in DC apps are blocked.
I have DC account on uncensored (yet) server.

I want to invite a new user to chat with me on DC. We have no other contacts yet - no email or messengers.

Steps we need to perform with her smartphone:

  1. setup an app on her phone; this could be done bu manual search in app market, or by reading a QR code;
  2. in DC app we need to abort creation of new profile on build-in server;
  3. then we need to read QR code with invitation to working server;
  4. after succesful account registration we need to read QR code to connect with my account.

I’m new to DC. Maybe I’m missing an easier way to do it?

3 Likes

AFAIK there is no flow to simplify this yet.

Though depending on the phone you can scan the invite qr code of your chatmail relay from a different qr code reader app (system camera app on iPhone), that then directly opens delta chat, so that may save you step 2.

There was the idea to share your server/relay when inviting others, but that idea is not realised yet as far as I know. May be a good time to revive the idea (like add a chatmail instance attribute to the invite links).

qr code content / schemes are documented in interface/uri-schemes.md at main Ā· deltachat/interface Ā· GitHub

1 Like

May be a good time to revive the idea (like add a chatmail instance attribute to the invite links).

And then with single QR she will get the links to app stores (on i.delta.chat) , and than after installing the app same QR may be read once again to register account on the right server and to create chat with specific user.

It’s still not perfect, but better then steps in starting post :slight_smile:

1 Like

Problem with relying on i.delta.chat is that the website probably is easy to block.
So step 1 may still be needed, but as soon as the app is installed to link will open directly in delta chat without going to the website.

1 Like

On my Deltatouch client, the process for adding a new account to a known chatmail server is:

  1. Go to the homepage of the server, using a browser. Rightclick in the invite QR code. Copy-to-clipboard or save the QR image file. If you can’t visit the page, get a copy of that QR code image by some other means. Maybe Tor? Or maybe she has a trusted overseas friend who could download it and send her the image file? You could even print it and send it on a piece of paper; I’m assuming you can’t meet in person.
  2. Install a secure copy of any Deltachat client. It might make sense to have a trusted friend send you the file for this, too.
  3. Have her create a new profile
    a. DO NOT click the default option (which is ā€œAgree and create profileā€). INSTEAD, click ā€œUse other serverā€.
    b. Click ā€œScan invitation codeā€.
    c. Paste or open the QR image file of the server.
  4. Send her your contact QR code somehow. Maybe the same way as step 1. The [fourboxes]>[network icon]>[nonce URL] method is always in the same domain, not in the chatmail server domain, so it’s probably blocked.

I don’t think Deltachat clients automatically set up an account with the default nine.testrun.org server; you get to choose what server to use, even for your initiak account. But I am using a different client written by a different dev, so do please double-check that with others here.

How about adding a bot that will send you the chatmail server QR code if you send it the URL, on each chatmail server? I don’t think there is an easy way to share a server QR code from another Deltachat client.

Depending, Briar might actually be a better messenger for your purposes, especially if you are physically not too far apart; it is designed to be installed from one phone to another, and work when the internet doesn’t. I don’t know.

Hm, didn’t check is site blocked or nor :thinking: But it’s entirely possible, if not done already.

Can DC app just ignore domain and path in QRcoded URL, but use only URL parameters? Then it will be impossible to block such links. And domains may lead to app market, or to custom webpage.

Actually, I just assumed the server QR codes resolve to the server and not all the same URL. I can check.

EDIT: Checked. The server invite QRs are server-specific, unlike the contact QR codes. They all use different domains.

She might even be better off making a free account with a big provider instead of a chatmail server. Slower, but harder to block and less obvious.

You don’t actually need the chatmail server QR code. If you

  1. Pretend you have an account on the chatmail server
    a. Make up a 9-character random string, and call it your user name. If your unblocked server was nine.testrun.org, use [9-char random string]@nine.testrun.org as your email address.
    b. Make up a password. A string of 12 random characters is standard.
  2. In the DC client, pick ā€œCreate New Profileā€>ā€œUse Other Serverā€>ā€œClassic E-Mail Loginā€
  3. Fill in your made-up address and password.

Everything works. Except in the unlikely event that that e-mail address already exists, the server will register it on first login.

EDIT: Expanded how-to

2 Likes

Thank you all. I need to think about it, and deal with other questions.

I am confused here. If both QR code and login link refer to the same domain, will either work if the domain is offline?

Is there a better way to share a contact in this situation?

Do you mean ā€˜SMTP / IMAP server is not answering’, or ā€˜DNS domain can’t be resolved to mailserver IP address’?
For ordinary people both cases equals to ā€˜try that link / QR later’ (or never).

Should I create a feature request?

1 Like

That sounds like blocking. You may be able to set your computer to use a specific uncensored DNS service. It might also be possible to do it over Tor, say by installing Carburetor (which proxies your connections over Tor, and may be in your app store) and connecting it; the interface is simple and tweakable to dodge blocking of Tor. I think using Carburetor would work but cannot replicate your blocking, so I’m not sure.

There is also a complex workaround involving manually transferring keys. You would need to securely transmit a file to your contact. I can write this workaround up for you if you like.

On features, making each Chatmail server serve its own contact URLs would be decentralized but maybe a security risk; these are supposed to be zero-trust servers.

For in-person contact exchanges, in theory no third party or internet connection is needed. I think this is a functionality that people are working on, but could be wrong.

Thanks, but I’m seekeng simplicity on user side here, not complexity.

User should still have a choice, will she create account on that particular server (from URL or QR), or she prefers to choose the one from the app’s list, same way like it’s implemented now on the new account creation.

Perfectly reasonable, that’s why I asked.

Users should retain a choice of servers, but I think that’s a different issue. I’ll write a feature req.

EDIT: Here, please correct and improve.

I made it a bug report instead of a feature req.

1 Like

you can simply point people to the server you want them to create an account in, in the page they can click the QR and then it will automatically open in delta chat with that server preconfigured, alternatively if you just share the URL of the server + /new it will automatically redirect to delta chat to create an account in that server, example: https://e2ee.wang/new

so you only need to tell them to install delta chat from the stores and then click that link to create an account, after that they can then click in a second link to get in contact with you

1 Like

I think @9er is proposing to combine this into a single step/single link for more convenient onboarding.

2 Likes

Yes, exactly.

the danger I see with this is that it could be used to trick people into onboarding into your fishing server where you can track them, not sure we should support such feature, it is better that it is a more explicit action that requires the person to realize they will be onboarding on your server

1 Like