xeals/signal-back

in XML and CSV output there is no way to associate messages to group chats

Opened this issue · 0 comments

  • Operating system: Fedora 30
  • Build version (signal-back --version): signal-back v0.1.7-alpha.2-1-g7b9bc21

Detailed description

Im trying to rebuild chat history from either the XML or CSV output but I run into trouble when it comes to group chats.

In XML output the address is __textsecure_group__!<some hash> when I'm sending to a group chat. The hash could be used to connect a message to a group chat (from which I don't know the name yet). Unfortunately messages sent by others to that group look like a normal 'sms' to me. (there's no way to see it has been sent to a group at all, right?)

In CSV messages have a THREAD_ID which can be used to associate a message with a thread which can be a group. Unfortunately messages sent to the group by me seem to be missing.

So even if I read both - XML and CSV output there is no way to reconstruct the thread

How to reproduce:

  • in the app create a group, add two cooperative members
  • write some "marker" string (just to find the message later), e.g. "xxyyzz"
  • let the other two members write the marker to the group
  • create a backup, and format it to XML and CSV
  • parse the output and search for the marker

Here is the interesting content extracted from the XML output:

some 'mms' sent by me to the group:
{'text_only': '1',
 'sub': 'null',
 'retr_st': 'null',
 'date': '1563089591559',
 'ct_cls': 'null',
 'sub_cs': 'null',
 'read': '1',
 'ct_l': 'null',
 'tr_id': 'null',
 'st': 'null',
 'msg_box': '2',
 'address': '__textsecure_group__!913b8f598a39a2a326d5b525b6e6289d',
 'm_cls': 'personal',
 'd_tm': 'null',
 'read_status': 'null',
 'ct_t': 'application/vnd.wap.multipart.related',
 'retr_txt_cs': 'null',
 'd_rpt': '0',
 'm_id': '',
 'date_sent': '1563089591',
 'seen': '1',
 'm_type': '128',
 'v': '18',
 'exp': 'null',
 'pri': '0',
 'rr': '0',
 'resp_txt': 'null',
 'rpt_a': 'null',
 'locked': '0',
 'retr_txt': 'null',
 'resp_st': '0',
 'm_size': '97',
 'readable_date': 'Jul 14, 2019 9:33:11 AM',
 'text': ''}

mms/part
{'seq': '0',
 'ct': 'text/plain',
 'name': 'null',
 'chset': '106',
 'cd': 'null',
 'fn': 'null',
 'cid': 'null',
 'cl': 'txt002056.txt',
 'ctt_s': 'null',
 'ctt_t': 'null',
 'text': "hey guys please write 'xxyyzz'"}

the first one of the group members replies to my request:
sms:
{'protocol': '31337',
 'address': '+672348098432',
 'date': '1563090144943',
 'type': '1',
 'body': 'xxyyzz',
 'service_center': 'GCM',
 'read': '1',
 'status': '-1',
 'date_sent': '1563090144379',
 'readable_date': 'Jul 14, 2019 9:42:24 AM'}

the second one of the group members replies to my request:
sms:
{'protocol': '31337',
 'address': '+34234545432',
 'date': '1563090197244',
 'type': '1',
 'body': 'xxyyzz',
 'service_center': 'GCM',
 'read': '1',
 'status': '-1',
 'date_sent': '1563090198466',
 'readable_date': 'Jul 14, 2019 9:43:17 AM'}

I can't see the messages are being sent to a group (and I don't know the group name neither)

Here is what grep xxyyzz output.csv returns:

47510,136,+672348098432,1,,1563090144943,1563090144379,31337,1,-1,10485780,1,0,,xxyyzz,,GCM,-1,0,0,0,0,1
47511,136,+34234545432,1,,1563090197244,1563090198466,31337,1,-1,10485780,1,0,,xxyyzz,,GCM,-1,0,0,0,0,1

(I can see THREAD_ID=136 but with no group name and my message is missing)