XSF Discussion - 2017-12-15

  1. pep.

    Ge0rG, can you point me to a thread for PARS? (on standards?)

  2. Ge0rG

    It's in the June 2016 archive I think, will look up from PC later

  3. jonasw


  4. jonasw

    pep., https://mail.jabber.org/pipermail/standards/2016-June/031150.html https://mail.jabber.org/pipermail/standards/2017-April/032599.html https://mail.jabber.org/pipermail/standards/2017-May/032616.html (if you get a chance, Ge0rG, please confirm that this is the thread you meant to link)

  5. jonasw

    (those are three links, but it’s the same thread, mailman archive is stupid)

  6. Ge0rG

    jonasw: thanks, those are exactly the right links

  7. jonasw

    Ge0rG, yw

  8. marc

    There was some guy who proposed a protocol to access SMS via XMPP from multiple clients. What happend with this protocol/idea?

  9. Ge0rG

    marc: are you talking about https://jmp.chat/ or moparisthebest' self-echo component?

  10. Ge0rG


  11. marc

    Ge0rG, probably the self-echo stuff

  12. marc

    GitHub not reachable... fuck ... :D

  13. Zash

    Allow me to point and laugh

  14. marc

    Ge0rG, do we need to return the TOKEN (ad-hoc command)?

  15. marc

    Could be used as manual fallback but apart from that I don't know a good reason to return it

  16. Ge0rG

    marc: we MUST return an xmpp: URI and we MAY return a web URI

  17. marc

    Ge0rG, yes, I know but this wasn't the question :P

  18. Ge0rG

    marc: my answer was supposed to be comprehensive, so we should not return anything beyond that

  19. Ge0rG

    marc: one could think about adding a description text, token validity info, onboarding information etc.; but I think a minimal protocol is beneficial

  20. marc

    Ge0rG, well I already have defined a token expiration field :)

  21. Ge0rG

    marc: I think that URI and URL are not the right names, BTW.

  22. marc

    Ge0rG, I'm open for suggestions :)

  23. Ge0rG

    marc: I'd go with `uri` for the xmpp: link, but something like `landingpage` or `web` for the https

  24. marc

    yeah, but it should contain 'url' I think

  25. marc

    something like landing_url

  26. marc


  27. jonasw

    please no underscores in XML

  28. Ge0rG

    marc: after thinking about it, it's okay to return the validity to the inviter. Their client could create an i18ned message to share, like "Hi, I would like to invite you to chat with me under <https://...>. This link will expire in 2 weeks."

  29. Ge0rG

    marc: http://ajaxian.com/archives/uri-vs-url-whats-the-difference

  30. marc

    Ge0rG, I'm glad to hear this ;)

  31. marc

    Ge0rG, I know the difference between URI and URL

  32. marc

    Ge0rG, What's your point? :D

  33. jonasw

    Ge0rG, do you find it ironic that your link has UTF-8 mojibake?

  34. jonasw

    > depending on the client’s capabilities

  35. Ge0rG

    marc: my point is that by using "uri" and "url" in the response, you imply they are different representations of the same thing, whereas they are different things, more or less.

  36. Ge0rG

    jonasw: yes. Sorry.

  37. marc

    Ge0rG, yes, that's correct so we'll change this. But 'landing_url' or 'invitation_url' are okay in my opinion

  38. Ge0rG

    marc: "jonasw> please no underscores in XML"

  39. marc

    oh, missed that :D

  40. marc

    What's the reason?

  41. jonasw

    it’s ugly

  42. jonasw

    we don’t do it in XMPP so far, AFAIK

  43. Ge0rG

    jonasw: would you be ok with `landing-url`?

  44. jonasw

    (the only exception possibly features for PubSub)

  45. jonasw


  46. marc

    Just for reasons of appearance?

  47. jonasw

    marc, yes :)

  48. marc

    Ok, I like this :D

  49. SouL


  50. zinid


  51. Ge0rG

    <x xmlns='jabber:x:data' type='result'> <title>Invitation</title> <reported> <field var='uri' label='Invitation link'/> <field var='landing-url' label='Landing Page'/> <field var='expire' label='Expiration Time'/> </reported> <item> <field var='uri'><value>xmpp:georg@yax.im?add;preauth=aG5axoo8iagahS9o;ibr</value></field> <field var='landing-url'><value>https://yax.im/i/#georg@yax.im?add;preauth=aG5axoo8iagahS9o;ibr</value></field> <field var='expire'><value>2017-12-17T02:56:15Z</value></field> </item> </x>

  52. Ge0rG

    marc: like this?

  53. jonasw


  54. jonasw

    data tables

  55. jonasw

    I’m afraid of data tables

  56. marc

    Ge0rG, looks similar to my XEP yes :D

  57. marc

    But I don't use reported

  58. jonasw

    I’m afraid (literally) that Ge0rG is right in his use of reported.

  59. marc

    I think that's only necessary if you have multiple <item> elements

  60. jonasw

    marc, using a form would be the wrong semantic here.

  61. zinid

    and I don't have reported support in ejabberd

  62. zinid


  63. marc


  64. jonasw

    zinid, I know that feel

  65. Ge0rG

    I've combined an example from ad-hoc with what marc wrote in his XEP.

  66. jonasw


  67. jonasw

    I was hoping that Ad-Hoc might forbid that

  68. marc


  69. marc

    <iq type='result' to='romeo@example.com' from='example.com' id='exec2'> <command xmlns='http://jabber.org/protocol/commands' sessionid='config:20020923T213616Z-700' node='invite' status='completed'> <x xmlns='jabber:x:data' type='result'> <item> <field var='uri'> <value>xmpp:example.com?register;invite-token=TOKEN</value> </field> <field var='landing-url'> <value>https://example.com/invite/#TOKEN</value> </field> <field var='expire'> <value>2017-11-06T02:56:15Z</value> </field> </item> </x> </command> </iq>

  70. marc

    Ignore the XMPP URI...

  71. jonasw

    let me delve into the horros and re-read XEP-0004 on the reported thing

  72. Holger

    > (the only exception possibly features for PubSub) IIRC we use _ and - inconsistently there \o/

  73. marc

    Time to update the XEP then ;)

  74. jonasw

    it isn’t clear to me whether <reported/> is required when type='result' is used

  75. jonasw

    there is no normative language regarding that afaict

  76. mathieui

    btw, xmpp.net: “ It's too busy, try again later. ”

  77. jonasw


  78. jonasw

    I need to fix that issue which makes some domains break the queue

  79. jonasw

    but I was hoping not having to touch PHP

  80. SouL

    underscores for the win!

  81. moparisthebest

    marc: I also hacked it into my conversations fork and have been using it for a month or so, works great

  82. marc

    moparisthebest, how do you send SMS? How do you select the recipient?

  83. moparisthebest

    The hard part has been designing a plugin API but I'm almost done with that too

  84. moparisthebest

    The local part of the jid

  85. marc

    moparisthebest, so you just add a contact to the roster?

  86. moparisthebest

    marc: I don't really bother with that yet

  87. moparisthebest


  88. moparisthebest

    That's the hacky code, expect conversations pr and separate stand alone plugin in a few days

  89. marc

    moparisthebest, hehe nice :)

  90. moparisthebest

    marc: if you're much of an Android dev I want MMS with attachments to convert to/from http upload too but MMS on Android looks like a nightmare...

  91. jonasw


  92. jonasw

    hm, that was unfortunate

  93. jonasw

    s/MMS/anything/;s/anything/MMS/ should fix it

  94. moparisthebest

    SMS isn't bad, but yes this is all way worse than plain Java

  95. jonasw

    and plain java is already bad ;-)

  96. SouL

    What did you say!?

  97. marc

    moparisthebest, I'm not really an Android dev :D

  98. moparisthebest

    jonasw: well it's no rust, but at least it's not erlang :)

  99. marc

    moparisthebest, what happens if you have two Conversations clients with your plugin? :)

  100. moparisthebest

    marc: badness

  101. marc


  102. moparisthebest

    Double sms I'd guess

  103. jonasw

    moparisthebest, actually, I need to look into erlang.

  104. jonasw

    that video is convincing

  105. marc

    I like Erlang somehow :)

  106. SouL

    jonasw, do you have a link for it? I forgot to bookmark it

  107. moparisthebest

    Erlang http://howfuckedismydatabase.com/nosql/

  108. jonasw


  109. jonasw

    there you go

  110. marc

    moparisthebest, do you have plans to fix this or support it?

  111. moparisthebest

    marc: which

  112. marc

    moparisthebest, multiple SMS-capable devices

  113. moparisthebest

    marc: each could pick it's own different echo component and then it'd all work fine

  114. moparisthebest

    And yes the plugin will support that

  115. marc

    moparisthebest, but isn't the idea to allow sending SMS from desktop-clients, for example?

  116. moparisthebest

    Oh wait marc so all connected xmpp clients can send SMS

  117. moparisthebest

    Only the one conversations needs the plugin

  118. moparisthebest

    Others need nothing new or special

  119. moparisthebest

    That all works today

  120. marc

    Sure but what if I have two smartphones

  121. marc

    Or two SIM cards?

  122. moparisthebest

    That when you'd need a seperate echo domain for each

  123. moparisthebest

    Otherwise you don't know what number to send with

  124. marc

    moparisthebest, okay, can you somehow select which echo domain to be used?

  125. moparisthebest


  126. moparisthebest

    Not in the hacky version with no options

  127. moparisthebest

    Plugin version will support this

  128. marc

    moparisthebest, sounds promising :)

  129. marc

    moparisthebest, But selection of the SMS-device will need support in other clients as well, right?

  130. moparisthebest

    Now I don't have a phone with 2 Sim cards so that will be harder

  131. moparisthebest


  132. moparisthebest

    All other clients see is a regular xmpp chat

  133. marc

    moparisthebest, how do you decide the SIM card/device? phonenumber@echo-sim1 and phonenumber@echo-sim2 ?

  134. moparisthebest

    The phone knows anything sent to echo.burtrum.org or whatever goes out via SMS

  135. Guus

    Hi all - I'm attempting to arrange for a hotel discount for the upcoming Summit and Fosdem in Brussels (February 1st - 4th). To get some kind of headcount, it'd be good if you could sign up on the wiki page if you're planning to be there: https://wiki.xmpp.org/web/Summit_22

  136. Ge0rG

    moparisthebest> All other clients see is a regular xmpp chat Why is this message duplicated in my client? Meh.

  137. zinid

    I constantly receive duplicates

  138. Ge0rG

    zinid: it should be filtered away by yaxim's deduplicator.

  139. zinid

    yeah, heuristics

  140. Ge0rG

    Unfortunately, my client doesn't have a log going back 20mins, and my server doesn't log outgoing c2s stanzas. Meh.

  141. Ge0rG

    zinid: MUC message (ID) rewriting makes heuristics a required feature.

  142. zinid

    Ge0rG, I know

  143. jonasw

    Ge0rG, why do you see different peoples messages twice though?

  144. Ge0rG

    Ok, now this is just getting more and more weird. prosody only delivered that message ID once to my yaxim.

  145. Ge0rG

    jonasw: it's only a single message from a single person duplicated.

  146. Ge0rG

    Maybe my MSN just rejoined the MUC, but I should get the message as part of history then.

  147. Ge0rG

    Okay, there was a 0198 reconnect just in that moment.

  148. Ge0rG

    Something fishy is going on, and I don't know what it is.

  149. Ge0rG

    Will increase logcat buffer to 16M now.

  150. pep.

    jonasw, Ge0rG, thanks for the links! (PARS)

  151. zinid

    Ge0rG, does yaxim dump XML traffic in logcat?

  152. Ge0rG

    zinid: if you enable it, yes.

  153. zinid

    Ge0rG, nice

  154. jonasw

    sounds like an off-by-one in the stream management handling

  155. jonasw

    reminds me of early aioxmpp's reconnect loops when a broken stanza was received. broken stanza -> exception -> disconnect stream -> resume stream management -> receive same broken stanza

  156. Ge0rG

    jonasw: yeah, well possible. But I know for sure that I've fixed the off-by-ones in yaxim. It was a long and complex process

  157. Ge0rG

    jonasw: if you close the stream, you are not allowed to resume.

  158. jonasw

    Ge0rG, I’m not sure that the stream was closed cleanly. it’s been a while.

  159. marc

    Ge0rG, are you fine with 'invite' and 'create-account' ad-hoc command names?

  160. Ge0rG

    marc: yeah

  161. jonasw

    what are the semantics of those commands again?

  162. marc

    jonasw, invite a user, create an account (optinal with predefined username) :)

  163. jonasw

    create an account we already have an adhoc for that

  164. Ge0rG

    jonasw: the former will create a PARS link with an "ibr" tag.

  165. marc

    latter is for admins or other privileged users

  166. Ge0rG

    jonasw: do we?

  167. Ge0rG

    jonasw: the goal is for the admin to define the user name, and then the user can use IBR to specify their password.

  168. marc

    Ge0rG, jonasw I tink we had this exact same disucussion a couple of days ago :D

  169. jonasw


  170. jonasw

    Ge0rG, ah okay

  171. jonasw

    ahh, so it’s invite minus PARS

  172. marc

    I think the wording was exactly the same :D

  173. Ge0rG

    jonasw: no, it's a "I define a username and send a link" thing

  174. Ge0rG

    jonasw: so it's rather PARS-for-accounts

  175. Ge0rG

    jonasw: and it implies PARS between inviter and invitee

  176. jonasw

    Ge0rG, how is that different from "invite minus PARS"?

  177. jonasw

    no wait

  178. jonasw

    so create-account allows for IBR registration, but also PARS?

  179. jonasw

    what’s the difference to invite then?

  180. marc

    invite gives you the possiblity to create an account or just make server-side PARS

  181. marc

    account-creation creates an account on the server

  182. jonasw

    and create-account forces account creation?

  183. marc


  184. jonasw

    I see

  185. marc

    jonasw, any objections so far? :)

  186. jonasw

    make sure you make that distinction clear in the document and provide use cases which support that distinction

  187. Ge0rG

    jonasw: create-account is for admins who want to enroll friends. invite is for users of (semi)public servers.

  188. Ge0rG

    jonasw: a server admin can use invite if they don't want to pre-define the account name

  189. jonasw

    Ge0rG, I don’t see why I wouldn’t use invite as an admin, too?

  190. Ge0rG

    jonasw: however, there is no guarantee that an invite will lead to account creation

  191. Ge0rG

    jonasw: if the user already has an account, invite will merely fall-back to PARS

  192. jonasw


  193. jonasw

    why wouldn’t I want that?

  194. Ge0rG

    jonasw: what?

  195. Ge0rG

    Sigh. Something just happened, and now my yaxim got reset.

  196. Ge0rG

    like, all-data-lost-app-reset.

  197. jonasw

    why would I want force people to create an account?

  198. jonasw

    if they already have one?

  199. jonasw

    especially if they still could create an account with 'invite' if they wanted to

  200. jonasw

    create-account seems to have only limitations in my eyes

  201. jonasw

    and I’m failing to see the use-case for that

  202. marc

    jonasw, if you want to ensure that set of users is on your server, for example if you don't use E2EE :D

  203. Ge0rG

    jonasw: it's because marc insists that you want to have all your friends on your server.

  204. jonasw

    I see

  205. jonasw

    I don’t follow that argument, but okay

  206. jonasw

    I don’t care as long as both works and I don’t have to use create-account :)

  207. Ge0rG

    jonasw: I see create-account as a feature I can use to easily onboard my grand-aunt.

  208. jonasw

    why don’t use invite for that?

  209. jonasw

    why not use invite for that?

  210. jonasw

    ah, because they have to choose an account name

  211. Ge0rG


  212. jonasw

    but then again, clients could offer default names based on the screenname, as was discussed earlier here, IIRC

  213. marc

    Maybe you have a company or other organization where you have to enforce that all memebers are on a "special" server. For privacy reasons, for example.

  214. Ge0rG

    marc: good point.

  215. jonasw


  216. Ge0rG

    marc: mention it in the rationale / user-story

  217. jonasw


  218. marc

    Ge0rG, thanks!

  219. Ge0rG

    the XSF loves corporate rollouts

  220. jonasw

    that’s the kind of example I was looking for :)

  221. marc

    Okay, good that we agree on that :) I'm happy now

  222. jonasw

    (even though corporate onboarding will probably work very different)

  223. marc

    jonasw, yes, but this depends of how big the "organization" is

  224. marc


  225. jonasw

    normally there would be some kind of single-sign-on in place and the xmppd may not even have privilegues to create an account there. but sure, there may be use-cases.

  226. moparisthebest

    Ge0rG, don't know why it was duplicated, at the time I only had conversations running so single client even

  227. Ge0rG

    moparisthebest: looks like it was a yaxim bug, but we'll never find out. Sorry for bothering you.

  228. zinid

    but people already have accounts (twitter, google), why do you want to register them on your server?

  229. moparisthebest

    Ge0rG, no bother, conversations has a method for guessing if a message is the same not sure if you can copy it

  230. zinid

    why we cannot use oauth, like all others do?

  231. marc

    zinid, oauth is about authorization, you still need to create an account, right?

  232. zinid

    marc, right

  233. marc

    zinid, what's you point regarding the account creation / user invitation proposal then?

  234. zinid

    marc, you need no account creation

  235. zinid

    you can create it on the fly at first login

  236. marc

    zinid, you're talking about public servers, right?

  237. zinid

    marc, I would use it on my private server too, why not?

  238. marc

    zinid, okay, I have a private server and want somebody to join it

  239. marc

    zinid, what's your protocol flow then?

  240. zinid

    I'm not talking about invitation

  241. zinid

    this is a separate subject

  242. Ge0rG

    Step 1: troll everyone Step 2: ??? Step 3: PROFIT!

  243. SouL


  244. zinid

    Ge0rG, wow, oauth is trolling now?

  245. marc

    zinid, but we were talking about invitation

  246. zinid

    > why would I want force people to create an account? I replied to this ^^^

  247. Ge0rG

    zinid: with oauth, you can connect to an existing account. but you can't xmpp-connect to a service not offering xmpp

  248. zinid


  249. Ge0rG

    zinid: you could create an xmpp account by logging in with an oauth provider and using that provider as "identity verification"

  250. zinid

    so what?

  251. Ge0rG

    zinid: you can't login to twitter with an xmpp client

  252. zinid

    I can

  253. zinid

    for user this will be transparent

  254. zinid

    you choose an xmpp server, provides oauth provider and it's done

  255. Ge0rG

    zinid: so you will still create an xmpp account?

  256. zinid


  257. zinid

    in an automatic way

  258. zinid

    the point is that it's pain in ass to keep all accounts with passwords for a user

  259. Ge0rG

    zinid: so instead of a password, you use an oauth token issued by Faceoogle?

  260. zinid


  261. zinid

    or how it's called, I don't remember details

  262. zinid

    you can fetch address book and send invites by the way

  263. mathieui

    https://help.aol.com/articles/aim-discontinued RIP.

  264. pep.

    What a shame

  265. edhelas

    time to replace it with another protocol

  266. mathieui

    there’s nothing to replace

  267. mathieui

    nobody was using it

  268. pep.

    "Can I still use AIM between now and December 15?", *now* being Dec 11th.

  269. Ge0rG

    more users than XMPP? :P

  270. Ge0rG

    But ICQ is still running?

  271. ThurahT

    by now I've helped ~15 people to convert to xmpp. And I never even had AIM.. : )

  272. Ge0rG

    ThurahT: are they all on jabber.org? :D

  273. ThurahT

    yeah, I wanted only the best for them

  274. SamWhited

    not sure if…

  275. ThurahT

    : )

  276. Ge0rG smells sarcasm

  277. jonasw

    when the news broke that AIM was about to be discontinued, I suggested to set up an XMPP domain which focuses on easy conversion from AIM

  278. jonasw

    nobody had the time though :)

  279. Ge0rG

    jonasw: such an irony

  280. ThurahT

    I had a few who might have needed that. But eventually they caught on setting servers up.

  281. zinid

    jonasw, don't be sad, that was pointless anyway, everyone is "converted" into whatsapp 🙂