AnsweredAssumed Answered

Smack OMEMO muc implementation support

Question asked by cmeng on Jun 23, 2017
Latest reply on Jun 27, 2017 by Paul Schaub

aTalk has implemented most of the basic features supporting Omemo using smack 4.2.1. I have tested aTalk with Xmpp client conversations.

Currently aTalk is able to set up Omemo chat with conversations; sending and receiving of the omemo encrypted chat messages are working properly. However aTalk is facing problem in omemo support for muc. Below is the sendMessage() implementation for muc in aTalk. However when executing the following statement, smack throws an exception (log below)

encryptedMucMessage = omemoManager.encrypt(multiUserChat, msgContent);

(note: Message message is aTalk implementation is different from  org.jivesoftware.smack.packet.Message)

 

I investigated the process how conversations setup the omemo muc. From the ejabberd xmpp server I can only detect the following stanza being send from conversations i.e. without the "attribute node='eu.siacs.conversations.axolotl.devicelist'"

2017-06-24 10:28:34.809 [debug] <0.23198.0>@ejabberd_receiver:process_data:284 Received XML on stream = <<"<iq to='chatroom@conference.atalk.org' id='Wz62Z-284' type='get'><query xmlns='http://jabber.org/protocol/disco#info'></query></iq>">>

 

With the modified conversations source, I managed to capture limited xmpp messages send/receive by conversations during startup as shown in below log.

 

## While receive muc encrypted message

aTalk also failed to receive encryptedMucMessage sends from conversations (see log). I thinks it is because it cannot retrieve the omemodevice list for the muc members

However the message is received/sent OK with another conversation muc member.

 

I see there is a OmemoManager#buildSessionsWith(BareJid contact) for contact in setting up single user chat. How do I set up a conference chat session for omemo muc chat?

 

======== aTalk sendMessage() method for omemo muc chat ==========

public void sendMessage(Message message, OmemoManager omemoManager)
   throws OperationFailedException
{
   try {
  assertConnected();
   String msgContent = message.getContent();
   org.jivesoftware.smack.packet.Message encryptedMucMessage = new org.jivesoftware.smack.packet.Message();


   try {
   EntityBareJid multiUserChat = mMultiUserChat.getRoom();
   encryptedMucMessage = omemoManager.encrypt(multiUserChat, msgContent);
   }
   catch (CryptoFailedException | UndecidedOmemoIdentityException
   | NoSuchAlgorithmException | InterruptedException
   | CannotEstablishOmemoSessionException | SmackException.NotConnectedException
   | SmackException.NoResponseException e) {
   e.printStackTrace();
   }
   mMultiUserChat.sendMessage(encryptedMucMessage);
   }
   catch (NotConnectedException | InterruptedException e) {
   logger.error("Failed to send message " + message, e);
   throw new OperationFailedException("Failed to send message " + message,
   OperationFailedException.GENERAL_ERROR, e);
   }
}

========= Smack exception log for omemoManager.encrypt(multiUserChat, msgContent);  ============

06-24 08:44:05.751 D/SMACK: SENT (0): <iq to='chatroom@conference.atalk.org' id='Wz62Z-171' type='get'><query xmlns='http://jabber.org/protocol/disco#info' node='eu.siacs.conversations.axolotl.devicelist'></query></iq>

06-24 08:44:05.761 D/SMACK: RECV (0): <iq xml:lang='en' to='leopard@atalk.org/atalk' from='chatroom@conference.atalk.org' type='error' id='Wz62Z-171'><query xmlns='http://jabber.org/protocol/disco#info' node='eu.siacs.conversations.axolotl.devicelist'/><error code='503' type='cancel'><service-unavailable xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/><text xml:lang='en' xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'>The feature requested is not supported by the conference</text></error></iq>

06-24 08:44:05.771 D/SMACK: SENT (0): <iq to='chatroom@conference.atalk.org' id='Wz62Z-173' type='get'><pubsub xmlns='http://jabber.org/protocol/pubsub'><items node='eu.siacs.conversations.axolotl.devicelist' max_items='1'/></pubsub></iq>

06-24 08:44:05.821 D/SMACK: RECV (0): <iq xml:lang='en' to='leopard@atalk.org/atalk' from='chatroom@conference.atalk.org' type='error' id='Wz62Z-173'><pubsub xmlns='http://jabber.org/protocol/pubsub'><items node='eu.siacs.conversations.axolotl.devicelist' max_items='1'/></pubsub><error code='503' type='cancel'><service-unavailable xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/><text xml:lang='en' xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'>The feature requested is not supported by the conference</text></error></iq>

06-24 08:44:05.831 D/SMACK: RECV (0): <r xmlns='urn:xmpp:sm:3'/>

06-24 08:44:05.841 D/SMACK: SENT (0): <a xmlns='urn:xmpp:sm:3' h='68'/>

06-24 08:44:05.841 W/αTalk: [1] org.jivesoftware.smackx.omemo.OmemoService.refreshDeviceList() Could not fetch device list of chatroom@conference.atalk.org: org.jivesoftware.smack.XMPPException$XMPPErrorException: XMPP error reply received from chatroom@conference.atalk.org: XMPPError: service-unavailable - cancel

                            org.jivesoftware.smack.XMPPException$XMPPErrorException: XMPP error reply received from chatroom@conference.atalk.org: XMPPError: service-unavailable - cancel

                                at org.jivesoftware.smack.StanzaCollector.nextResultOrThrow(StanzaCollector.java:2 56)

                                at org.jivesoftware.smack.StanzaCollector.nextResultOrThrow(StanzaCollector.java:2 08)

                                at org.jivesoftware.smackx.pubsub.LeafNode.getItems(LeafNode.java:196)

                                at org.jivesoftware.smackx.pubsub.LeafNode.getItems(LeafNode.java:189)

                                at org.jivesoftware.smackx.pubsub.LeafNode.getItems(LeafNode.java:139)

                                at org.jivesoftware.smackx.pubsub.PubSubManager.getLeafNodeProsodyWorkaround(PubSu bManager.java:346)

                                at org.jivesoftware.smackx.pubsub.PubSubManager.getLeafNode(PubSubManager.java:329 )

                                at org.jivesoftware.smackx.omemo.OmemoService.fetchDeviceListNode(OmemoService.jav a:435)

                                at org.jivesoftware.smackx.omemo.OmemoService.fetchDeviceList(OmemoService.java:45 2)

                                at org.jivesoftware.smackx.omemo.OmemoService.refreshDeviceList(OmemoService.java: 504)

                                at org.jivesoftware.smackx.omemo.OmemoService.buildOrCreateOmemoSessionsFromBundle s(OmemoService.java:605)

                                at org.jivesoftware.smackx.omemo.OmemoService.processSendingMessage(OmemoService.j ava:810)

                                at org.jivesoftware.smackx.omemo.OmemoService.processSendingMessage(OmemoService.j ava:787)

                                at org.jivesoftware.smackx.omemo.OmemoManager.encrypt(OmemoManager.java:209)

                                at net.java.sip.communicator.impl.protocol.jabber.ChatRoomJabberImpl.sendMessage(C hatRoomJabberImpl.java:813)

                                at org.atalk.android.gui.chat.conference.ConferenceChatTransport.sendInstantMessag e(ConferenceChatTransport.java:169)

                                at org.atalk.android.gui.chat.ChatController.sendMessage(ChatController.java:263)

                                at org.atalk.android.gui.chat.ChatController.onClick(ChatController.java:365)

                                at android.view.View.performClick(View.java:5181)

                                at android.view.View$PerformClick.run(View.java:20887)

                                at android.os.Handler.handleCallback(Handler.java:739)

                                at android.os.Handler.dispatchMessage(Handler.java:95)

                                at android.os.Looper.loop(Looper.java:145)

                                at android.app.ActivityThread.main(ActivityThread.java:5938)

                                at java.lang.reflect.Method.invoke(Native Method)

                                at java.lang.reflect.Method.invoke(Method.java:372)

                                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1389 )

                                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1184)

06-24 08:44:05.851 D/SMACK: SENT (0): <message to='chatroom@conference.atalk.org' id='Wz62Z-175' type='groupchat'><body>I sent you an OMEMO encrypted message but your client doesn’t seem to support that. Find more information on https://conversations.im/omemo</body><encrypted xmlns='eu.siacs.conversations.axolotl'><header sid='1077854796'><iv>5g0A7LjYAScYhG3CGbs93Q==</iv></header><payload>grk0jA==</p ayload></encrypted><store xmlns='urn:xmpp:hints'/><encryption xmlns='urn:xmpp:eme:0' namespace='eu.siacs.conversations.axolotl' name='OMEMO'/></message>

06-24 08:44:05.861 D/SMACK: SENT (0): <r xmlns='urn:xmpp:sm:3'/>

06-24 08:44:05.991 D/SMACK: RECV (0): <a h='42' xmlns='urn:xmpp:sm:3'/>

06-24 08:44:06.041 D/SMACK: RECV (0): <message xml:lang='en' to='leopard@atalk.org/atalk' from='chatroom@conference.atalk.org/Chong Meng Eng' type='groupchat' id='Wz62Z-175'><archived by='chatroom@conference.atalk.org' id='1498264984722637' xmlns='urn:xmpp:mam:tmp'/><stanza-id by='chatroom@conference.atalk.org' id='1498264984722637' xmlns='urn:xmpp:sid:0'/><encrypted xmlns='eu.siacs.conversations.axolotl'><header sid='1077854796'><iv>5g0A7LjYAScYhG3CGbs93Q==</iv></header><payload>grk0jA==</p ayload></encrypted><store xmlns='urn:xmpp:hints'/><encryption xmlns='urn:xmpp:eme:0' namespace='eu.siacs.conversations.axolotl' name='OMEMO'/><body>I sent you an OMEMO encrypted message but your client doesn’t seem to support that. Find more information on https://conversations.im/omemo</body></message>

06-24 08:44:06.041 D/SMACK: RECV (0): <r xmlns='urn:xmpp:sm:3'/>

06-24 08:44:06.051 D/SMACK: SENT (0): <a xmlns='urn:xmpp:sm:3' h='69'/>

06-24 08:44:06.051 E/αTalk: [37] org.jivesoftware.smack.AbstractXMPPConnection.run() Exception in async packet listener

                            java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.Object.hashCode()' on a null object reference

                                at java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:746)

                                at org.jivesoftware.smackx.muc.MultiUserChat.getOccupantPresence(MultiUserChat.jav a:1667)

                                at org.jivesoftware.smackx.muc.MultiUserChat.getOccupant(MultiUserChat.java:1680)

                                at org.jivesoftware.smackx.omemo.OmemoService.getSender(OmemoService.java:1184)

                                at org.jivesoftware.smackx.omemo.OmemoService.access$000(OmemoService.java:106)

                                at org.jivesoftware.smackx.omemo.OmemoService$OmemoStanzaListener.processStanza(Om emoService.java:1229)

                                at org.jivesoftware.smack.AbstractXMPPConnection$4.run(AbstractXMPPConnection.java :1198)

                                at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)

                                at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)

                                at java.lang.Thread.run(Thread.java:818)

 

========= Smack log when receiving Omemo encrypted message during muc from conversations ============

06-24 08:12:40.741 D/SMACK: RECV (0): <message xml:lang='en' to='leopard@atalk.org/atalk' from='chatroom@conference.atalk.org/swan' type='groupchat' id='34e86e97-9b8d-4e4c-bae7-0badada02eff'><archived by='chatroom@conference.atalk.org' id='1498263099350965' xmlns='urn:xmpp:mam:tmp'/><stanza-id by='chatroom@conference.atalk.org' id='1498263099350965' xmlns='urn:xmpp:sid:0'/><encrypted xmlns='eu.siacs.conversations.axolotl'><header sid='816614937'><key rid='887665691' prekey='true'>MwgrEiEFjOpAL8Rk1LGO9siB1h+nnL/qIbJ2pfy7SecSZPgxKV0aIQUUV5ApOiQnN cECsTvKWCH8wDMrQe4XtFTcxf88Tg61YSJiMwohBZRYbdpGHqgLARP8MvtRaWYet/KjoaYELN5qMpDK1 moNECoYACIw0hcyS2bFtdHinZKpAnubByCXeq2nzkcykWh68JWo5AzaJS6yGtFNZ1ooAnYiTxFIbVMyc d/1v20omZyyhQMwAQ==</key><key rid='1077854796'>MwohBYdKaVS16Aof/OpK87Cpogp5UszF6qSYaLGvpptx7HRzEAEYACIwpZU6/Z dSKGR7H9oAzftTl+zVs00WSQR+JpaQO/u9NrXrb5NKrg5H1Aysq54tD5GNLXfaJ6EFz44=</key><key rid='1796289951'>MwohBVPts29CYR1rBpL4w45rrqTrfCXEllki6D363gF3t8VbEAMYACIwx0vd+H YZk3kzRBKwtxnKe9oZNvBAi8OEjFYmYCw60whbl4f7WRIdN9Z6+IUFj3UqqUiEvpaIIi8=</key><key rid='2087839431' prekey='true'>MwgfEiEFGQFL/66piWEridyeU0KsMS34/B/B+vOykndiRvVV4SYaIQUUV5ApOiQnN cECsTvKWCH8wDMrQe4XtFTcxf88Tg61YSJiMwohBe/VhE2upLjyhpHX4sc9s60s98CXdy12HdSFvI46W x5VECsYACIw+MLmq47BHFKIi/j2UAqzTWGpafOT6YfUJgED5m2F2m5NKrYlMPKMQkgPIqQaGhpwnK2hf 4Z2XWoomZyyhQMwAQ==</key><key rid='37379719' prekey='true'>MwgDEiEFOmOEA5w9J66CT8nG7LWl5x/Uyy8quduZS2EBzF8HolQaIQUUV5ApOiQnN cECsTvKWCH8wDMrQe4XtFTcxf88Tg61YSJiMwohBYakBsGB75jRG03R9fMYINhqZe4FSaoQG0xG0tFX3 xkJECsYACIwNlZdeJNP25nS7towrDIsDBlPcEWF2swJaOKMA74feroChSgsTfX15Jn4u35ei0WCAEJ7G BhO+hMomZyyhQMwAQ==</key><key rid='1691254927' prekey='true'>MwhfEiEFfce91m91LPiK4a13nvGNPU/9EhNqXl6oiWS8TyN3zTgaIQUUV5ApOiQnN cECsTvKWCH8wDMrQe4XtFTcxf88Tg61YSJiMwohBXBVQIN5oLgT1OoYy1/7RfFRDoZVY7hoc35r/TKiL rVhECoYACIwIpwH38/F0uS/0uTj/EJbqufLKmXV/CHn1/2Fwnfm21FHCD+Q9olbVunQMMUvf3tWYIAvM sVs7CUomZyyhQMwAQ==</key><iv>hU6QBVDCIlQNg0yXLdIlVg==</iv></header><payload>9JeJ FnC+yaEBGFnMwDJjIhI=</payload></encrypted><origin-id xmlns='urn:xmpp:sid:0' id='34e86e97-9b8d-4e4c-bae7-0badada02eff'/><store xmlns='urn:xmpp:hints'/><encryption xmlns='urn:xmpp:eme:0' namespace='eu.siacs.conversations.axolotl' name='OMEMO'/><body>I sent you an OMEMO encrypted message but your client doesn’t seem to support that. Find more information on https://conversations.im/omemo</body></message>

06-24 08:12:40.941 D/SMACK: RECV (0): <r xmlns='urn:xmpp:sm:3'/>

06-24 08:12:40.951 D/SMACK: SENT (0): <a xmlns='urn:xmpp:sm:3' h='60'/>

06-24 08:12:41.011 E/αTalk: [33] org.jivesoftware.smack.AbstractXMPPConnection.run() Exception in async packet listener

                            java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.Object.hashCode()' on a null object reference

                                at java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:746)

                                at org.jivesoftware.smackx.muc.MultiUserChat.getOccupantPresence(MultiUserChat.jav a:1667)

                                at org.jivesoftware.smackx.muc.MultiUserChat.getOccupant(MultiUserChat.java:1680)

                                at org.jivesoftware.smackx.omemo.OmemoService.getSender(OmemoService.java:1184)

                                at org.jivesoftware.smackx.omemo.OmemoService.access$000(OmemoService.java:106)

                                at org.jivesoftware.smackx.omemo.OmemoService$OmemoStanzaListener.processStanza(Om emoService.java:1229)

                                at org.jivesoftware.smack.AbstractXMPPConnection$4.run(AbstractXMPPConnection.java :1198)

                                at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)

                                at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)

                                at java.lang.Thread.run(Thread.java:818)

 

============ Conversations log message during startup ==============

D/conversations: ### SMACK SENT: <iq from="hawk@atalk.org/phone" id="1l138qpo1i" to="chatroom@conference.atalk.org" type="get"><query xmlns="http://jabber.org/protocol/disco#info"/></iq>

D/conversations: hawk@atalk.org: retrieved own device list: [1796289951, 793357486]

I/conversations: AxolotlService (hawk@atalk.org): Building new session for hawk@atalk.org:793357486

D/conversations: AxolotlService (hawk@atalk.org): Retrieving bundle: <iq to="hawk@atalk.org" type="get"><pubsub xmlns="http://jabber.org/protocol/pubsub"><items node="eu.siacs.conversations.axolotl.bundles:793357486"/></pubsub></iq>

D/conversations: ### SMACK SENT: <iq from="hawk@atalk.org/phone" id="3xdj55rfs6" to="hawk@atalk.org" type="get"><pubsub xmlns="http://jabber.org/protocol/pubsub"><items node="eu.siacs.conversations.axolotl.bundles:793357486"/></pubsub></iq>

D/conversations: ### SMACK RECV: <iq to="hawk@atalk.org/phone" from="hawk@atalk.org" xmlns="jabber:client" id="7ljsx2uo8u" type="result" xml:lang="en">

D/conversations: ### SMACK RECV: <iq to="hawk@atalk.org/phone" from="hawk@atalk.org" xmlns="jabber:client" id="agslnhxq2p" type="result" xml:lang="en">

D/conversations: ### SMACK RECV: <iq to="hawk@atalk.org/phone" from="hawk@atalk.org" xmlns="jabber:client" id="4mwpvq67g3" type="result" xml:lang="en">

D/conversations: ### SMACK RECV: <presence to="hawk@atalk.org/phone" from="leopard@atalk.org/atalk" xmlns="jabber:client" id="Wz62Z-125" xml:lang="en">

D/conversations: ### SMACK RECV: <presence from="swan@atalk.org/phone" xmlns="jabber:client" to="hawk@atalk.org/phone" xml:lang="en">

D/conversations: ### SMACK RECV: <presence to="hawk@atalk.org/phone" from="abc123@atalk.org/jitsi-1rkr7uc" xmlns="jabber:client" id="JaYfJ-844" xml:lang="en">

D/conversations: ### SMACK RECV: <presence from="hawk@atalk.org/phone" xmlns="jabber:client" to="hawk@atalk.org/phone" xml:lang="en">

D/conversations: AxolotlService (hawk@atalk.org): Received PEP device list ([1691254927, 1077854796, 887665691]) update from leopard@atalk.org, processing...

D/conversations: ### SMACK RECV: <message from="leopard@atalk.org" xmlns="jabber:client" type="headline" to="hawk@atalk.org/phone">

D/conversations: AxolotlService (hawk@atalk.org): Received PEP device list ([793357486]) update from abc123@atalk.org, processing...

D/conversations: ### SMACK RECV: <message from="abc123@atalk.org" xmlns="jabber:client" type="headline" to="hawk@atalk.org/phone">

D/conversations: AxolotlService (hawk@atalk.org): Received PEP device list ([37379719, 816614937, 2087839431]) update from swan@atalk.org, processing...

D/conversations: ### SMACK RECV: <message from="swan@atalk.org" xmlns="jabber:client" type="headline" to="hawk@atalk.org/phone">

D/conversations: ### SMACK RECV: <presence from="hawk@atalk.org/phone" xmlns="jabber:client" to="hawk@atalk.org/phone" xml:lang="en">

D/conversations: AxolotlService (hawk@atalk.org): Received PEP device list ([1796289951, 793357486]) update from hawk@atalk.org, processing...

D/conversations: ### SMACK RECV: <message from="hawk@atalk.org" xmlns="jabber:client" type="headline" to="hawk@atalk.org/phone">

D/conversations: ### SMACK RECV: <message from="hawk@atalk.org" xmlns="jabber:client" type="headline" to="hawk@atalk.org/phone">

D/conversations: ### SMACK RECV: <message from="hawk@atalk.org" xmlns="jabber:client" type="headline" to="hawk@atalk.org/phone">

D/conversations: ### SMACK RECV: <iq to="hawk@atalk.org/phone" from="hawk@atalk.org" xmlns="jabber:client" id="88e0nijaml" type="result" xml:lang="en">

D/conversations: hawk@atalk.org: finished mam after 0(0) messages. messages left=true

D/conversations: ### SMACK RECV: <message from="hawk@atalk.org" xmlns="jabber:client" to="hawk@atalk.org/phone">

D/conversations: hawk@atalk.org: joining conversation chatroom@conference.atalk.org/hawk

D/conversations: ### SMACK SENT: <presence from="hawk@atalk.org/phone" to="chatroom@conference.atalk.org/hawk"><x xmlns="jabber:x:signed">iQG4BAEBCgAiGxxjbWVuZyA8Y21lbmcuZ21AZ21haWwuY29tPgUCWMc G8AAKCRAnJWERuLqvl9O1C/wJqTV4Dnj5OAAF8LRF9x5PoXX3AXqexutZXY5GY7T1HDNwhzm2mDsRFjA 30JyjFXIApDKh3ywgh3oBanwMXqPEt/5S78fABnz8fQdXg4xf51r512rGkM0tJJeVhBe1Ss904ZOg8C6 U+i2wt3UJMaU7rlVo2ElvVxI7raQgtGORO9+RmE+4tDPR4QkBTFzcDyLBh5OTEvsk5RykjsPXX4fAkXd kmv1fjrmge3/1y7YDawmvJc1X8IWo/nME5Hp9SnfwtuAeYK8qZR+zeC5YxgSEibQz9FjoEXecLwlul8K KCu/DPRono8FpgBrT8I21Ll2a51OyGAW19vZZvluPEwdEB+JfprXoy3hTnz1yyTHkPKatxX8QjtRVUIK TdG780XglifH35fswZIMuIpzfvqL0vMYNGu0W8QDLY5Qs7YJYFnJPLV4WyaV4Ja903EcB/NrTZlhoccf yUYt3sUvCbeXfybaoqxDyYqyT+uYe9jQSl9XY3yMGcz5B3pLFBgZoZAE==MkF9</x><c node="http://conversations.im" hash="sha-1" xmlns="http://jabber.org/protocol/caps" ver="cuU3bSMQ7/DHfzbTYBji+0k4aOc="/><x xmlns="http://jabber.org/protocol/muc"><history maxchars="0"/></x></presence>

D/conversations: hawk@atalk.org: running mam query to=chatroom@conference.atalk.org, start=2017-06-24T00:43:30.960Z, end=2017-06-24T02:29:46.564Z, order=NORMAL, catchup=true

D/conversations: ### SMACK SENT: <iq from="hawk@atalk.org/phone" id="b14pk6oq56" to="chatroom@conference.atalk.org" type="set"><query xmlns="urn:xmpp:mam:0" queryid="193anhqru6"><x type="submit" xmlns="jabber:x:data"><field var="FORM_TYPE"><value>urn:xmpp:mam:0</value></field><field var="start"><value>2017-06-24T00:43:30.960Z</value></field><field var="end"><value>2017-06-24T02:29:46.564Z</value></field></x><set xmlns="http://jabber.org/protocol/rsm"><max>50</max></set></query></iq>

D/conversations: ### SMACK SENT: <iq from="hawk@atalk.org/phone" id="4owqnws7tw" to="chatroom@conference.atalk.org" type="get"><query xmlns="http://jabber.org/protocol/muc#admin"><item affiliation="member"/></query></iq>

D/conversations: ### SMACK SENT: <iq from="hawk@atalk.org/phone" id="a155ia5mtv" to="chatroom@conference.atalk.org" type="get"><query xmlns="http://jabber.org/protocol/muc#admin"><item affiliation="admin"/></query></iq>

D/conversations: ### SMACK SENT: <iq from="hawk@atalk.org/phone" id="ammu6ff9g4" to="chatroom@conference.atalk.org" type="get"><query xmlns="http://jabber.org/protocol/muc#admin"><item affiliation="owner"/></query></iq>

D/conversations: hawk@atalk.org: fetching members for Group Chat

D/conversations: hawk@atalk.org: fetched muc configuration for chatroom@conference.atalk.org - [vcard-temp, http://jabber.org/protocol/muc, muc_hidden, muc_persistent, muc_membersonly, muc_nonanonymous, muc_moderated, muc_unsecured, urn:xmpp:mam:tmp, urn:xmpp:mam:0, urn:xmpp:mam:1]

D/conversations: ### SMACK RECV: <iq to="hawk@atalk.org/phone" from="chatroom@conference.atalk.org" xmlns="jabber:client" id="1l138qpo1i" type="result" xml:lang="en">

D/conversations: AxolotlService (hawk@atalk.org): Received preKey IQ packet, processing...

E/conversations: AxolotlService (hawk@atalk.org): Error building session for hawk@atalk.org:793357486: org.whispersystems.libaxolotl.InvalidKeyException, Invalid signature on device key!

D/conversations: ### SMACK RECV: <iq to="hawk@atalk.org/phone" from="hawk@atalk.org" xmlns="jabber:client" id="3xdj55rfs6" type="result" xml:lang="en">

D/conversations: ### SMACK RECV: <presence from="chatroom@conference.atalk.org/swan" xmlns="jabber:client" to="hawk@atalk.org/phone" xml:lang="en">

D/conversations: ### SMACK RECV: <presence to="hawk@atalk.org/phone" from="chatroom@conference.atalk.org/Chong Meng Eng" xmlns="jabber:client" id="Wz62Z-131" xml:lang="en">

D/conversations: ### SMACK RECV: <presence from="chatroom@conference.atalk.org/hawk" xmlns="jabber:client" to="hawk@atalk.org/phone" xml:lang="en">

D/conversations: ### SMACK RECV: <message from="chatroom@conference.atalk.org/Chong Meng Eng" xmlns="jabber:client" type="groupchat" to="hawk@atalk.org/phone">

D/conversations: ### SMACK RECV: <iq to="hawk@atalk.org/phone" from="chatroom@conference.atalk.org" xmlns="jabber:client" id="b14pk6oq56" type="result" xml:lang="en">

D/conversations: hawk@atalk.org: finished mam after 0(0) messages. messages left=true

D/conversations: ### SMACK RECV: <message from="chatroom@conference.atalk.org" xmlns="jabber:client" to="hawk@atalk.org/phone">

D/conversations: ### SMACK RECV: <iq to="hawk@atalk.org/phone" from="chatroom@conference.atalk.org" xmlns="jabber:client" id="4owqnws7tw" type="result" xml:lang="en">

D/conversations: ### SMACK RECV: <iq to="hawk@atalk.org/phone" from="chatroom@conference.atalk.org" xmlns="jabber:client" id="a155ia5mtv" type="result" xml:lang="en">

D/conversations: hawk@atalk.org: retrieved members for chatroom@conference.atalk.org: [leopard@atalk.org, swan@atalk.org]

D/conversations: ### SMACK RECV: <iq to="hawk@atalk.org/phone" from="chatroom@conference.atalk.org" xmlns="jabber:client" id="ammu6ff9g4" type="result" xml:lang="en">

W/art: Suspending all threads took: 9.797ms

D/conversations: ### SMACK SENT: <iq from="hawk@atalk.org/phone" id="12873963889353812700" to="atalk.org" type="result"/>

D/conversations: ### SMACK RECV: <iq to="hawk@atalk.org/phone" from="atalk.org" xmlns="jabber:client" id="12873963889353812700" type="get">

D/conversations: deleted file /storage/emulated/0/WhatsApp/.Shared/H5uM7RD3qo6NN+f5MEVvNam88Pt8VjNXoPgIsOmvJ4 k=.enc.tmp

D/conversations: ### SMACK SENT: <iq from="hawk@atalk.org/phone" id="7159757968606198767" to="atalk.org" type="result"/>

D/conversations: ### SMACK RECV: <iq to="hawk@atalk.org/phone" from="atalk.org" xmlns="jabber:client" id="7159757968606198767" type="get">

W/art: Suspending all threads took: 14.015ms

D/conversations: ### SMACK SENT: <iq from="hawk@atalk.org/phone" id="12924153605228032138" to="atalk.org" type="result"/>

D/conversations: ### SMACK RECV: <iq to="hawk@atalk.org/phone" from="atalk.org" xmlns="jabber:client" id="12924153605228032138" type="get">

Outcomes