Hi guys, while reading the MIX spec, I'm wondering how the roster item for the MIX channel is added to the user joining the channel if it's an external MIX server? Is the user's server supposed to scan the MIX join/leave stanzas in order to determine if the user successfully joined the channel?
danielhas left
Alexhas left
jubalhhas joined
danielhas left
danielhas left
tuxhas joined
moparisthebesthas joined
jerehas joined
jerehas left
jerehas joined
jonasw
thomas_, yes
jonasw
the server needs MIX support
jonasw
(that is, the users server)
jonasw
you may note that the join is a command sent to the users account, not to the channel the user wants to join
jonasw
see Example 22
thomas_
jonasw, oh okay, I missed that bit of information
thomas_
jonasw, thanks for clarifying this!
jonasw
you’re welcome!
danielhas left
la|r|mahas left
efrithas joined
jubalhhas left
danielhas left
Valerianhas joined
dwdhas left
lumihas joined
jonaswhas joined
jubalhhas joined
efrithas left
jubalhhas left
danielhas left
jubalhhas joined
jubalhhas left
danielhas left
zinidhas left
jjrhhas left
sonnyhas joined
sonnyhas joined
jubalhhas joined
zinidhas left
sonnyhas joined
sonnyhas joined
sonnyhas joined
sonnyhas joined
sonnyhas joined
sonnyhas joined
sonnyhas left
sonnyhas joined
sonnyhas left
sonnyhas joined
Valerianhas left
sonnyhas left
sonnyhas joined
alacerhas joined
sonnyhas joined
ralphmhas left
Ge0rGhas joined
sonnyhas joined
jjrhhas left
jerehas left
jerehas joined
danielhas left
jjrhhas left
sonnyhas left
sonnyhas joined
danielhas left
jubalhhas left
sonnyhas joined
sonnyhas joined
Valerianhas joined
sonnyhas joined
zinidhas left
jubalhhas joined
jubalhhas left
jubalhhas joined
dwdhas left
waqashas joined
lumihas left
jubalhhas left
Valerianhas left
edhelashas left
jjrhhas left
zinidhas left
jjrhhas left
jjrhhas left
efrithas joined
alacerhas joined
alacerhas joined
bjchas left
bjchas joined
Wiktorhas left
jjrhhas left
sonnyhas joined
pep.has left
efrithas left
jubalhhas joined
Wiktorhas left
Ge0rGhas joined
jjrhhas left
jubalhhas left
sonnyhas left
sonnyhas joined
sonnyhas joined
sonnyhas joined
sonnyhas left
sonnyhas joined
archas left
archas joined
jjrhhas left
archas left
archas joined
ralphmhas joined
danielhas left
archas left
archas joined
bjchas left
bjchas joined
sonnyhas joined
sonnyhas joined
archas left
archas joined
archas left
archas joined
mimi89999has joined
sonnyhas joined
sonnyhas joined
sonnyhas joined
sonnyhas joined
sonnyhas joined
sonnyhas joined
archas left
archas joined
archas left
archas joined
xnyhpshas left
lskdjfhas left
lskdjfhas left
sonnyhas joined
sonnyhas joined
ralphmhas left
lumihas joined
archas left
archas joined
Alacerhas joined
Alacerhas left
jcbrandhas left
la|r|mahas left
lskdjfhas left
lskdjfhas left
archas left
archas joined
ralphmhas joined
jerehas left
jerehas joined
ralphmhas left
jcbrandhas joined
lskdjfhas joined
lskdjfhas left
lskdjfhas left
archas left
archas joined
lskdjfhas left
lskdjfhas left
lskdjfhas joined
jerehas left
jerehas joined
lskdjfhas left
lskdjfhas left
lskdjfhas left
moparisthebest
Is there a xep for, probably wording this wrong, a client sending messages to itself and other resources (mam/carbons) from other domains?
moparisthebest
Basically spoofing from, but only to itself
Zash
Forwarding?
jonasw
moparisthebest, why would you do that?
moparisthebest
Ok so jmp.chat gives you a phone number for sending/receiving sms with xmpp
moparisthebest
Basically thinking the same thing as a conversations plugin
jonasw
i.e. a local transport for SMS <-> XMPP?
waqashas left
jonasw
I don’t think there’s a XEP for that, but I think that’s not the worst idea.
Zash
Why not treat it as another account?
jonasw
Zash, replication to other devices
jonasw
moparisthebest, question though: how would you intercept messages sent to those SMS JIDs?
jonasw
essentially you want a component, but only for the account.
moparisthebest
Ie my phone gets SMS from 5555, I see it in conversations and all my other xmpp clients as from 5555@some.specific.fake.domain
moparisthebest
If I respond in conversations it sends it over sms, if I respond in other clients conversations sends sms when it gets the carbon?
Zash
Oh dear, is this leading to an argument for uploading into your archive?
moparisthebest, that carbons trick there would kindof work, but it would also create some strain on the server for error handling of stanzas it doesn’t even need to s2s-route
moparisthebest
Basically to allow a client to spoof from for a certain domain but only for that account
Zash
But, there's the forwarding xep (used for encapsulation by carbons and mam)
I'll have to abuse gajims XML console later and play around
moparisthebest
I feel like maybe carbons from other resources would be safe right?
archas left
Zash
Broadcast is the kind of thing you want your server to help you with
Steve Killehas joined
goffihas left
moparisthebest
I think jonasw 's description is closest to what I'm looking for, user or client components
lskdjfhas joined
moparisthebest
True Zash
moparisthebest
Hmm then you could use the phone's dialer to jingle call through it too...
Steve Killehas left
moparisthebest
Leave your cell at home and sms/call through it wherever you have an xmpp client and internet
waqashas joined
moparisthebest
Anyone interested in working with me on something like that? :)
Steve Killehas left
archas joined
lskdjfhas left
Guushas left
sonnyhas left
sonnyhas joined
lskdjfhas left
Archas joined
lskdjfhas left
thomas_
moparisthebest, maybe I didn't get your idea but why not using a transport with <phonenumber>@transport for each phone contact?
moparisthebest
I think it could be as simple as the server advertising that the client can send messages to itself from *@*.somedomain then the server not doing s2s for *. somedomain and allowing that
Steve Killehas left
moparisthebest
thomas_: the transport is per user account and runs on one of their clients is why
lovetoxhas joined
thomas_
moparisthebest, why does the transport run on a client?
Zash
It's a phone?
moparisthebest
thomas_: conversations on your phone is the only thing with access to send/recieve sms
Zash
You wanna pretend that the native SMS functionality is a component
thomas_
Oh, I though you have a device with your SIM card somewhere and want to connect via XMPP
jonasw
thomas_, the component protocol is insecure
Guushas joined
jonasw
that’s one reason why you don’t want to run that $somewhere
jonasw
second, if you don’t run your own server / the server is shared with multiple entities, you don’t want them to access your transport
moparisthebest
Plus it's per server not per account
jonasw
that’s what I mean, essentially
thomas_
ah okay
la|r|mahas left
la|r|mahas joined
moparisthebest
Hmm you could run a component that you register with and send arbitrary messages to your own account through...
so you’d start a jingle call through A and send DTMF to actually dial a number
moparisthebest
ha you could I guess, maybe, not sure what android phone API looks like
Zash
Like, whatever it's called when you call somewhere and go into an answering machine that you type more numbers into to get passed on
jonasw
moparisthebest, but I don’t think you need special protocol for that. you’d contact the gateway client at its pseudo-JID at the component and it would re-write the jingle connection negotiation messages accordingly so that the call is routed through it
Zash
Maybe you need to find/invent some way to tell the other end to proxy you
Zash
But, isn't that basically how PSTN works (or used to, way back in the analog era)?
jonasw
don’t need to, it’s already proxied through the pseudo-JID magic
moparisthebest
hmm not sure I kind of imagined them seperately
moparisthebest
that would probably be best, have to think about it
moparisthebest, I’m not entirely sure what you need that element for, but I suggest that you orient your wire-format on what XEP-0280 (Message Carbons) does
jonasw
at least for the communication between the component and the user component implementation
jonasw
(not for component<->normal resources)
moparisthebest
I think this might be the only thing the server component needs
moparisthebest
basically that would mean 'send me this message from that JID'
moparisthebest
the component ignores everything else, carbons handles that
jonasw
so the user component implementation on the phone client would send <message to=component><body>...</body><echo xmlns="..." ...>...</echo></message>?
moparisthebest
yes
jonasw
please wrap the message once
moparisthebest
I was going to include the no-copy and no-carbons stuff
jonasw
no
moparisthebest
why wrap it so I wouldn't have to do that?
jonasw
because it makes things explicit
jonasw
something like <message><echo send-from="..."><forwarded><message ...>...</message></forwarded></echo></message>
jonasw
re-uses XEP-0297 even though the naming is a bit off
jonasw
has the advantage that this won’t be picked up by MAM or carbons
jonasw
(because of type="normal" on the outer and no <body/>)
valohas left
bjchas left
moparisthebest
jonasw, that seems harder
moparisthebest
right now the entire logic of the component is this:
moparisthebest
if msg.find('{urn:moparisthebest:echo-self}echo') is not None:
to = msg['to']
msg['to'] = msg['from']
msg['from'] = to
msg.send()
moparisthebest
done
jonasw
moparisthebest, given that <no-store/> and <no-copy/> are from XEP-0334 which is in limbo since Council rejected its advancement, it seems like the more future-proof approach
moparisthebest
ignores everything without <echo>, if it has echo, swaps to/from and sends it back?
jonasw
that’s not what you want though
jonasw
what you’re doing requires all involved clients to know the echo protocol
jonasw
I’d avoid that
moparisthebest
no it's working exactly right without any clients knowing it
danielhas left
moparisthebest
except the one sending it that is
archas left
archas joined
moparisthebest
(currently gajim xml console)
jonasw
how would I reply to a message from somenumber@thatcomponent.domain?
dwd
moparisthebest, You're not an SDO - don't use "urn:...". Just use an http scheme URI to your domain. Or an xmpp scheme one, like your jid.
valohas joined
jonasw
what is an SDO?
dwd
moparisthebest, For example, I could use xmlns="xmpp:dwd@dave.cridland.net/some-proto"
dwd
jonasw, In this context, a Standards Development Organisation
jonasw
ah
moparisthebest
before today I've happily lived completely ignoring xmlns
moparisthebest
oh how I yearn for 10 minutes ago
dwd
jonasw, You're an XSF Editor, right? I noticed some of "my" XEPs are using old contact info - what's the best way to update that?
Archas left
danielhas left
dwd
moparisthebest, They're strings. Mostly without meaning, except the ones that do have meaning. But we're supposed to know how to use them properly.
zinidhas joined
jonasw
dwd, which ones exactly?
efrithas joined
jonasw
or rather: have you checked whether your info in xep.ent is up-to-date? if it isn’t, that’d be a great way to start.
moparisthebest
also, how dare dwd assume I'm not a Standards Development Organization :)
dwd
jonasw, I happened to notice XEP-0286, but there might be others.
dwd
moparisthebest, Actually the best definition I have for an SDO is whether they can register a urn prefix.
jonasw
dwd, https://github.com/xsf/xeps/blob/master/xep.ent#L924 is this up-to-date?
moparisthebest
:'(
dwd
jonasw, Yes.
jonasw
dwd, okay, will update the XEPs not using that entity definition.
dwd
jonasw, Thanks. Much appreciated.
jonasw
(there are two)
jonasw
(XEP-0376 is the other one)
jonasw
moparisthebest, I was thinking something like this:
<!-- User component to Component -->
<message to="component.domain" from="account@domain/user-component-client">
<echo xmlns="foo">
<forwarded>
<message from="phonenumber@component.domain" to="account@domain" id="xyz">
<body>Hi there!</body>
</message>
</forwarded>
</echo>
</message>
<!-- Component to account -->
<message from="phonenumber@component.domain" to="account@domain" id="xyz">
<body>Hi there!</body>
</message>
<!-- Some client from the account replies -->
<message from="account@domain/resource" to="phonenumber@component.domain" id="abc">
<body>Hi yourself!</body>
</message>
<!-- Component to User component -->
<message from="component.domain" to="account@domain/user-component-client">
<echo xmlns="foo">
<forwarded>
<message from="account@domain/resource" to="phonenumber@component.domain" id="abc">
<body>Hi yourself!</body>
</message>
</forwarded>
</echo>
</message>
danielhas left
jonasw
this has the advantage that the protocol between user component and the server-side component is explicit
jonasw
the interaction between the component and other clients is like with any other domain
jonasw
which is nice
jonasw
wrapping the actual payload saves it from being archived etc.
moparisthebest
then the component has a state
jonasw
moparisthebest, why would it need state for that?
moparisthebest
and there is, registering stuff involved
la|r|mahas left
moparisthebest
<!-- Component to User component -->
jonasw
right, it needs to know that anyways?
moparisthebest
I don't think so
jonasw
how would it not need that?
jonasw
it does have to know where to deliver messages sent by other clients to the component?
moparisthebest
the user's server handles it for them, with carbons
moparisthebest
and/or mam etc
jonasw
ugh, you’ll simply ignore them and rely on carbons? :/
jonasw
I see
moparisthebest
exactly :)
jonasw
I don’t like that approach :)
jonasw
it relies on carbon rules which are super-foggy
moparisthebest
it has the advantage of the component being potentially the simplest xmpp component of all time
jonasw
I can also see the use-case of <iq/> and other stanza types for user components.
jonasw
but it’s not really re-usable
moparisthebest
true it only works for carbon'd things
moparisthebest
still that seems like an additional xep for non-message things that don't get carboned, might as well keep this super simple
jonasw
but consistency.
edhelashas left
Alexhas left
thomas_has left
archas left
archas joined
jjrhhas left
Steve Killehas left
Valerianhas joined
moparisthebest
does message have to have a body ?
jonasw
no
jonasw
carbons for example do not have bodies
moparisthebest
I don't know if it's sleekxmpp or prosody, but one is refusing to deliver it
jonasw
care to show some XML traces?
moparisthebest
no errors, just doesn't go through until I add a body
jonasw
I suspect that might not be the only difference. there are a lot of use-cases for non-body messages.
jonasw
(chat state notifications for example)
moparisthebest
no I'm pasting into the gajim xml console and that's the only difference :)
jonasw
how are you trying to receive the message?
moparisthebest
it's sleekxmpp
moparisthebest
if I turn on COMM level logging it logs it, but doesn't send it to my app