Multipart WAP messages from verizon being detected as individual single part messages
I am using ModemManager 1.18.2 on PostmarketOS on a Verizon MVNO (Ting). When I receive MMS WAPs, they come in as transfer route MT messages, but appear to not be merged together as a multipart message:
[2678]: <debug> [1634760763.866617] [modem0/bearer1] got QMI WDS event report
[2678]: [/dev/cdc-wdm0] Received message...
<<<<<< RAW:
<<<<<< length = 190
<<<<<< data = 01:BD:00:80:05:01:04:09:00:01:00:B1:00:11:AA:00:00:FF:FF:FF:FF:00:A2:00:00:00:02:10:04:02:07:02:95:29:9D:E8:98:C0:08:92:00:03:13:5A:50:01:831
[2678]: [/dev/cdc-wdm0] Received generic indication (translated)...
<<<<<< QMUX:
<<<<<< length = 189
<<<<<< flags = 0x80
<<<<<< service = "wms"
<<<<<< client = 1
<<<<<< QMI:
<<<<<< flags = "indication"
<<<<<< transaction = 9
<<<<<< tlv_length = 177
<<<<<< message = "Event Report" (0x0001)
<<<<<< TLV:
<<<<<< type = "Transfer Route MT Message" (0x11)
<<<<<< length = 170
<<<<<< value = 00:FF:FF:FF:FF:00:A2:00:00:00:02:10:04:02:07:02:95:29:9D:E8:98:C0:08:92:00:03:13:5A:50:01:83:04:08:00:10:01:1F:80:5C:20:00:31:CB:0B:83:80
<<<<<< translated = [ ack_indicator = 'send' transact
[2678]: <debug> [1634760763.892923] [modem0] Got transfer-route MT message
[2678]: <debug> [1634760763.893031] [modem0] Need to ACK indicator
[2678]: [/dev/cdc-wdm0] Sent message...
<<<<<< RAW:
<<<<<< length = 22
<<<<<< data = 01:15:00:00:05:01:00:1D:00:37:00:09:00:01:06:00:FF:FF:FF:FF:00:01
[2678]: [/dev/cdc-wdm0] Sent generic request (translated)...
<<<<<< QMUX:
<<<<<< length = 21
<<<<<< flags = 0x00
<<<<<< service = "wms"
<<<<<< client = 1
<<<<<< QMI:
<<<<<< flags = "none"
<<<<<< transaction = 29
<<<<<< tlv_length = 9
<<<<<< message = "Send Ack" (0x0037)
<<<<<< TLV:
<<<<<< type = "Information" (0x01)
<<<<<< length = 6
<<<<<< value = FF:FF:FF:FF:00:01
<<<<<< translated = [ transaction_id = '4294967295' message_protocol = 'cdma' success = 'yes' ]
[2678]: <debug> [1634760763.893600] [modem0] parsing CDMA PDU (0)...
[2678]: <debug> [1634760763.893684] [modem0] reading teleservice ID...
[2678]: <debug> [1634760763.893762] [modem0] teleservice ID: wap (4100)
[2678]: <debug> [1634760763.893840] [modem0] reading originating address...
[2678]: <debug> [1634760763.893909] [modem0] digit mode: dtmf
[2678]: <debug> [1634760763.893981] [modem0] number mode: digit
[2678]: <debug> [1634760763.894055] [modem0] num fields: 10
[2678]: <debug> [1634760763.894129] [modem0] address: 540XXXXXXX
[2678]: <debug> [1634760763.894203] [modem0] reading bearer data...
[2678]: <debug> [1634760763.894277] [modem0] reading message ID...
[2678]: <debug> [1634760763.894349] [modem0] message type: deliver
[2678]: <debug> [1634760763.894422] [modem0] message id: 42293
[2678]: <debug> [1634760763.894495] [modem0] header indicator: 0
[2678]: <debug> [1634760763.894569] [modem0] reading user data...
[2678]: <debug> [1634760763.894640] [modem0] message encoding: octet
[2678]: <debug> [1634760763.894716] [modem0] num fields: 129
[2678]: <debug> [1634760763.894808] [modem0] data: (129 bytes)
[2678]: <debug> [1634760763.894882] [modem0] skipping message center timestamp...
[2678]: <debug> [1634760763.894956] [modem0] correctly parsed PDU (0)
[2678]: <debug> [1634760763.895063] [modem0/sms-list] SMS part at 'unknown/0' is from a singlepart SMS
[2678]: [/dev/cdc-wdm0] Received message...
<<<<<< RAW:
<<<<<< length = 20
<<<<<< data = 01:13:00:80:05:01:02:1D:00:37:00:07:00:02:04:00:01:00:54:00
[2678]: [/dev/cdc-wdm0] Received generic response (translated)...
<<<<<< QMUX:
<<<<<< length = 19
<<<<<< flags = 0x80
<<<<<< service = "wms"
<<<<<< client = 1
<<<<<< QMI:
<<<<<< flags = "response"
<<<<<< transaction = 29
<<<<<< tlv_length = 7
<<<<<< message = "Send Ack" (0x0037)
<<<<<< TLV:
<<<<<< type = "Result" (0x02)
<<<<<< length = 4
<<<<<< value = 01:00:54:00
<<<<<< translated = FAILURE: AckNotSent
[2678]: <debug> [1634760765.822496] [modem0/ttyUSB2/at] <-- '<CR><LF>+CMTI: ,8<CR><LF>'
[2678]: <debug> [1634760765.823285] [modem0/ttyUSB3/at] <-- '<CR><LF>+CMTI: ,8<CR><LF>'
[2678]: [/dev/cdc-wdm0] Received message...
<<<<<< RAW:
<<<<<< length = 142
<<<<<< data = 01:8D:00:80:05:01:04:0A:00:01:00:81:00:11:7A:00:00:FF:FF:FF:FF:00:72:00:00:00:02:10:04:02:07:02:95:29:9D:E8:98:C0:08:62:00:03:13:5A:50:01:531
[2678]: [/dev/cdc-wdm0] Received generic indication (translated)...
<<<<<< QMUX:
<<<<<< length = 141
<<<<<< flags = 0x80
<<<<<< service = "wms"
<<<<<< client = 1
<<<<<< QMI:
<<<<<< flags = "indication"
<<<<<< transaction = 10
<<<<<< tlv_length = 129
<<<<<< message = "Event Report" (0x0001)
<<<<<< TLV:
<<<<<< type = "Transfer Route MT Message" (0x11)
<<<<<< length = 122
<<<<<< value = 00:FF:FF:FF:FF:00:72:00:00:00:02:10:04:02:07:02:95:29:9D:E8:98:C0:08:62:00:03:13:5A:50:01:53:02:88:00:10:09:A9:A9:7B:9B:2B:93:B3:63:2B:A0
<<<<<< translated = [ ack_indicator = 'send' transaction_id = '4294967295' format = 'cdma' raw_data = '{ [0] = '0 ' [1] = '0 ' [2] = '2 ' [3] = '16 ' [4] = 8
[2678]: <debug> [1634760765.846172] [modem0] Got transfer-route MT message
[2678]: <debug> [1634760765.846318] [modem0] Need to ACK indicator
[2678]: [/dev/cdc-wdm0] Sent message...
<<<<<< RAW:
<<<<<< length = 22
<<<<<< data = 01:15:00:00:05:01:00:1E:00:37:00:09:00:01:06:00:FF:FF:FF:FF:00:01
[2678]: [/dev/cdc-wdm0] Sent generic request (translated)...
<<<<<< QMUX:
<<<<<< length = 21
<<<<<< flags = 0x00
<<<<<< service = "wms"
<<<<<< client = 1
<<<<<< QMI:
<<<<<< flags = "none"
<<<<<< transaction = 30
<<<<<< tlv_length = 9
<<<<<< message = "Send Ack" (0x0037)
<<<<<< TLV:
<<<<<< type = "Information" (0x01)
<<<<<< length = 6
<<<<<< value = FF:FF:FF:FF:00:01
<<<<<< translated = [ transaction_id = '4294967295' message_protocol = 'cdma' success = 'yes' ]
[2678]: <debug> [1634760765.847159] [modem0] parsing CDMA PDU (0)...
[2678]: <debug> [1634760765.847268] [modem0] reading teleservice ID...
[2678]: <debug> [1634760765.847335] [modem0] teleservice ID: wap (4100)
[2678]: <debug> [1634760765.847397] [modem0] reading originating address...
[2678]: <debug> [1634760765.847459] [modem0] digit mode: dtmf
[2678]: <debug> [1634760765.847517] [modem0] number mode: digit
[2678]: <debug> [1634760765.847580] [modem0] num fields: 10
[2678]: <debug> [1634760765.847645] [modem0] address: 5406XXXXXXX
[2678]: <debug> [1634760765.847706] [modem0] reading bearer data...
[2678]: <debug> [1634760765.847765] [modem0] reading message ID...
[2678]: <debug> [1634760765.847821] [modem0] message type: deliver
[2678]: <debug> [1634760765.847875] [modem0] message id: 42293
[2678]: <debug> [1634760765.847931] [modem0] header indicator: 0
[2678]: <debug> [1634760765.847987] [modem0] reading user data...
[2678]: <debug> [1634760765.848048] [modem0] message encoding: octet
[2678]: <debug> [1634760765.848109] [modem0] num fields: 81
[2678]: <debug> [1634760765.848358] [modem0] data: (81 bytes)
[2678]: <debug> [1634760765.848422] [modem0] skipping message center timestamp...
[2678]: <debug> [1634760765.848487] [modem0] correctly parsed PDU (0)
[2678]: <debug> [1634760765.848639] [modem0/sms-list] SMS part at 'unknown/0' is from a singlepart SMS
[2678]: [/dev/cdc-wdm0] Received message...
<<<<<< RAW:
<<<<<< length = 20
<<<<<< data = 01:13:00:80:05:01:02:1E:00:37:00:07:00:02:04:00:01:00:54:00
[2678]: [/dev/cdc-wdm0] Received generic response (translated)...
<<<<<< QMUX:
<<<<<< length = 19
<<<<<< flags = 0x80
<<<<<< service = "wms"
<<<<<< client = 1
<<<<<< QMI:
<<<<<< flags = "response"
<<<<<< transaction = 30
<<<<<< tlv_length = 7
<<<<<< message = "Send Ack" (0x0037)
<<<<<< TLV:
<<<<<< type = "Result" (0x02)
<<<<<< length = 4
<<<<<< value = 01:00:54:00
<<<<<< translated = FAILURE: AckNotSent
[2678]: [/dev/cdc-wdm0] Sent message...
<<<<<< RAW:
<<<<<< length = 20
They appear to have the same message-id, and my understanding is that these should be treated as a single multipart message. Given that as of #257, others report success with WAPs on Verizon, I wonder what is different about these messages. Are there any next steps for debugging this?