What steps will reproduce the problem?
1.Logout from my gajim session.
2.Send and receive messages to facebook or skype contacts using Conversations on my phone.
3.Reconnect in gajim.
What is the expected output?
I'd like to see the chat history synchronized between both devices.
What do you see instead?
Nothing.
What version of the product are you using? On what operating system?
0.10.0 on debian stretch
Please provide any additional information below.
MAM works for pure XMPP on my install. So far I've tested with skype 1on1 chats, and facebook 1on1 and MUCs.
facebook transport [purple] extra options:
group-chat-open=1
show-unread=1
Zash
on
Hi! Can you provide debug logs from Prosody from when you send and receive messages from transports?
Changes
tags Status-NeedInfo
Nicoco
on
I turned my phone to flight mode, turned debug on in prosody config and sent a few messages using Gajim.
Surprisingly, when I turned my phone back on the only messages that Conversations missed were the facebook groupchat. Maybe I was wrong about 1on1 chat? Or maybe is it a "carbons" thing? I'm confused. Logs seem to indicate that 1on1 chats are indeed archived. I'll check in a few hours with Gajim on my 2nd computer if 1on1 are synced and post the results here.
Anyway, facebook group chats didn't synchronize, so at least there's a problem here. Here are the logs:
facebook groupchat:
Nov 10 14:48:46 c2s557e54d4f300 debug Received[c2s]: <message id='8418d7b0-7a5b-4555-8d86-e504ef7f59f3' type='groupchat' to='1185288644930980@facebook.mydomain.tld' from='nicoco@mydomain.tld/Gajim'>
Nov 10 14:48:46 c2s557e54d4f300 debug Not archiving stanza: <message id='8418d7b0-7a5b-4555-8d86-e504ef7f59f3' type='groupchat' to='1185288644930980@facebook.mydomain.tld' from='nicoco@mydomain.tld/Gajim'> (type)
Nov 10 14:48:46 jcp557e54b775e0 debug Received[component]: <message type='groupchat' to='nicoco@mydomain.tld/Gajim' from='1185288644930980@facebook.mydomain.tld/Nicoco Kinlidec'>
Nov 10 14:48:46 mydomain.tld:mam debug Not archiving stanza: <message type='groupchat' to='nicoco@mydomain.tld/Gajim' from='1185288644930980@facebook.mydomain.tld/Nicoco Kinlidec'> (type)
facebook 1on1:
Nov 10 14:47:20 c2s557e54d4f300 debug Received[c2s]: <message id='56215b01-6970-4329-b394-76538c7f8866' type='chat' to='1058833338@facebook.mydomain.tld' from='nicoco@mydomain.tld/Gajim'>
Nov 10 14:47:20 sql debug SQL transaction begin [function(mod_storage_sql.lua:57)]
Nov 10 14:47:20 sql debug SQL transaction success [function(mod_storage_sql.lua:57)]
Nov 10 14:47:20 mydomain.tld:mam debug nicoco's rule for 1058833338@facebook.mydomain.tld is nil
Nov 10 14:47:20 mydomain.tld:mam debug nicoco's default rule is true
Nov 10 14:47:20 c2s557e54d4f300 debug Archiving stanza: <message id='56215b01-6970-4329-b394-76538c7f8866' type='chat' to='1058833338@facebook.mydomain.tld' from='nicoco@mydomain.tld/Gajim'>
Nov 10 14:47:20 sql debug SQL transaction begin [function(mod_storage_sql.lua:228)]
Nov 10 14:47:20 sql debug SQL transaction success [function(mod_storage_sql.lua:228)]
Nov 10 14:47:20 mydomain.tld:carbons debug Sending carbon to nicoco@mydomain.tld/phone
skype 1on1:
Nov 10 14:49:47 c2s557e54d4f300 debug Received[c2s]: <message id='47d637a3-f4c5-48a8-92b5-93f660843d72' type='chat' to='clampino1@skype.mydomain.tld' from='nicoco@mydomain.tld/Gajim'>
Nov 10 14:49:47 sql debug SQL transaction begin [function(mod_storage_sql.lua:57)]
Nov 10 14:49:47 sql debug SQL transaction success [function(mod_storage_sql.lua:57)]
Nov 10 14:49:47 mydomain.tld:mam debug nicoco's rule for clampino1@skype.mydomain.tld is nil
Nov 10 14:49:47 mydomain.tld:mam debug nicoco's default rule is true
Nov 10 14:49:47 c2s557e54d4f300 debug Archiving stanza: <message id='47d637a3-f4c5-48a8-92b5-93f660843d72' type='chat' to='clampino1@skype.mydomain.tld' from='nicoco@mydomain.tld/Gajim'>
Nov 10 14:49:47 sql debug SQL transaction begin [function(mod_storage_sql.lua:228)]
Nov 10 14:49:47 sql debug SQL transaction success [function(mod_storage_sql.lua:228)]
Nov 10 14:49:47 mydomain.tld:carbons debug Sending carbon to nicoco@mydomain.tld/phone
Zash
on
Groupchat messages are by design not archived, it is up to the groupchat to implement MAM.
It says that the one-to-one messages are archived, do they not show up in other clients? If not, then full XML logs from clients would be need, possibly using mod_stanza_debug (or mod_stanzadebug from prosody-modules, until we get around to releasing 0.10.1).
You should try to capture messages in the other direction, the ones in the above log are only from you to the transport.
Nicoco
on
>Groupchat messages are by design not archived
So if I can read chat history when I enter my XMPP standard MUCs, it's because their admins set up something special?
To have transport-powered MUCs store history on my prosody instance, I would need to write a new module? I'm surprised nobody wanted or needed this before.
Zash
on
The history you get from random MUCs isn't necessarily MAM, there exists an older history mechanism that can get you some context when you join, but it's not very flexible.
No, you would have to add support in the transports themselves. Because of how MUC works, messages don't always pass through prosody, or may be duplicated if you join using more than one client.
Also, this is not a discussion forum. Can you confirm whether the one-on-one messages show up in the database and your other clients?
Nicoco
on
Sorry about the discussion part. So let's forget about MUCs as it seems to be completely different.
Anyway, I just arrived and can confirm that my other gajim home instance doesn't show the messages I've sent while it was offline. However, I examined the file /var/lib/prosody/prosody.sqlite on my server and apparently the messages are indeed stored there. Maybe the bug is on the Gajim side? I'm trying to figure this out. I'm not exactly sure what is the best way to test all this. I also don't know how to differentiate between carbons and MAM. I'm still new to XMPP. I'll try to update this thread as I have more information.
Zash
on
Hey, sorry about the delay. Did you figure out anything about this?
Nicoco
on
It turned out that Gajim < 1.0.0 did not implement the right MAM version or something like that. I now have sync'ed history between Conversations 2+ and Gajim 1+, even for the spectrum transports.
I didn't use transported MUCs much recently so I don't really know about them though.
Zash
on
Yeah, the MAM specification was a moving a bit fast for a while there.
Thanks for reporting back, I'll close this then.
What steps will reproduce the problem? 1.Logout from my gajim session. 2.Send and receive messages to facebook or skype contacts using Conversations on my phone. 3.Reconnect in gajim. What is the expected output? I'd like to see the chat history synchronized between both devices. What do you see instead? Nothing. What version of the product are you using? On what operating system? 0.10.0 on debian stretch Please provide any additional information below. MAM works for pure XMPP on my install. So far I've tested with skype 1on1 chats, and facebook 1on1 and MUCs. facebook transport [purple] extra options: group-chat-open=1 show-unread=1
Hi! Can you provide debug logs from Prosody from when you send and receive messages from transports?
ChangesI turned my phone to flight mode, turned debug on in prosody config and sent a few messages using Gajim. Surprisingly, when I turned my phone back on the only messages that Conversations missed were the facebook groupchat. Maybe I was wrong about 1on1 chat? Or maybe is it a "carbons" thing? I'm confused. Logs seem to indicate that 1on1 chats are indeed archived. I'll check in a few hours with Gajim on my 2nd computer if 1on1 are synced and post the results here. Anyway, facebook group chats didn't synchronize, so at least there's a problem here. Here are the logs: facebook groupchat: Nov 10 14:48:46 c2s557e54d4f300 debug Received[c2s]: <message id='8418d7b0-7a5b-4555-8d86-e504ef7f59f3' type='groupchat' to='1185288644930980@facebook.mydomain.tld' from='nicoco@mydomain.tld/Gajim'> Nov 10 14:48:46 c2s557e54d4f300 debug Not archiving stanza: <message id='8418d7b0-7a5b-4555-8d86-e504ef7f59f3' type='groupchat' to='1185288644930980@facebook.mydomain.tld' from='nicoco@mydomain.tld/Gajim'> (type) Nov 10 14:48:46 jcp557e54b775e0 debug Received[component]: <message type='groupchat' to='nicoco@mydomain.tld/Gajim' from='1185288644930980@facebook.mydomain.tld/Nicoco Kinlidec'> Nov 10 14:48:46 mydomain.tld:mam debug Not archiving stanza: <message type='groupchat' to='nicoco@mydomain.tld/Gajim' from='1185288644930980@facebook.mydomain.tld/Nicoco Kinlidec'> (type) facebook 1on1: Nov 10 14:47:20 c2s557e54d4f300 debug Received[c2s]: <message id='56215b01-6970-4329-b394-76538c7f8866' type='chat' to='1058833338@facebook.mydomain.tld' from='nicoco@mydomain.tld/Gajim'> Nov 10 14:47:20 sql debug SQL transaction begin [function(mod_storage_sql.lua:57)] Nov 10 14:47:20 sql debug SQL transaction success [function(mod_storage_sql.lua:57)] Nov 10 14:47:20 mydomain.tld:mam debug nicoco's rule for 1058833338@facebook.mydomain.tld is nil Nov 10 14:47:20 mydomain.tld:mam debug nicoco's default rule is true Nov 10 14:47:20 c2s557e54d4f300 debug Archiving stanza: <message id='56215b01-6970-4329-b394-76538c7f8866' type='chat' to='1058833338@facebook.mydomain.tld' from='nicoco@mydomain.tld/Gajim'> Nov 10 14:47:20 sql debug SQL transaction begin [function(mod_storage_sql.lua:228)] Nov 10 14:47:20 sql debug SQL transaction success [function(mod_storage_sql.lua:228)] Nov 10 14:47:20 mydomain.tld:carbons debug Sending carbon to nicoco@mydomain.tld/phone skype 1on1: Nov 10 14:49:47 c2s557e54d4f300 debug Received[c2s]: <message id='47d637a3-f4c5-48a8-92b5-93f660843d72' type='chat' to='clampino1@skype.mydomain.tld' from='nicoco@mydomain.tld/Gajim'> Nov 10 14:49:47 sql debug SQL transaction begin [function(mod_storage_sql.lua:57)] Nov 10 14:49:47 sql debug SQL transaction success [function(mod_storage_sql.lua:57)] Nov 10 14:49:47 mydomain.tld:mam debug nicoco's rule for clampino1@skype.mydomain.tld is nil Nov 10 14:49:47 mydomain.tld:mam debug nicoco's default rule is true Nov 10 14:49:47 c2s557e54d4f300 debug Archiving stanza: <message id='47d637a3-f4c5-48a8-92b5-93f660843d72' type='chat' to='clampino1@skype.mydomain.tld' from='nicoco@mydomain.tld/Gajim'> Nov 10 14:49:47 sql debug SQL transaction begin [function(mod_storage_sql.lua:228)] Nov 10 14:49:47 sql debug SQL transaction success [function(mod_storage_sql.lua:228)] Nov 10 14:49:47 mydomain.tld:carbons debug Sending carbon to nicoco@mydomain.tld/phone
Groupchat messages are by design not archived, it is up to the groupchat to implement MAM. It says that the one-to-one messages are archived, do they not show up in other clients? If not, then full XML logs from clients would be need, possibly using mod_stanza_debug (or mod_stanzadebug from prosody-modules, until we get around to releasing 0.10.1). You should try to capture messages in the other direction, the ones in the above log are only from you to the transport.
>Groupchat messages are by design not archived So if I can read chat history when I enter my XMPP standard MUCs, it's because their admins set up something special? To have transport-powered MUCs store history on my prosody instance, I would need to write a new module? I'm surprised nobody wanted or needed this before.
The history you get from random MUCs isn't necessarily MAM, there exists an older history mechanism that can get you some context when you join, but it's not very flexible. No, you would have to add support in the transports themselves. Because of how MUC works, messages don't always pass through prosody, or may be duplicated if you join using more than one client. Also, this is not a discussion forum. Can you confirm whether the one-on-one messages show up in the database and your other clients?
Sorry about the discussion part. So let's forget about MUCs as it seems to be completely different. Anyway, I just arrived and can confirm that my other gajim home instance doesn't show the messages I've sent while it was offline. However, I examined the file /var/lib/prosody/prosody.sqlite on my server and apparently the messages are indeed stored there. Maybe the bug is on the Gajim side? I'm trying to figure this out. I'm not exactly sure what is the best way to test all this. I also don't know how to differentiate between carbons and MAM. I'm still new to XMPP. I'll try to update this thread as I have more information.
Hey, sorry about the delay. Did you figure out anything about this?
It turned out that Gajim < 1.0.0 did not implement the right MAM version or something like that. I now have sync'ed history between Conversations 2+ and Gajim 1+, even for the spectrum transports. I didn't use transported MUCs much recently so I don't really know about them though.
Yeah, the MAM specification was a moving a bit fast for a while there. Thanks for reporting back, I'll close this then.
Changes