Step 1.
An Application Client on UE 1 sends a message to MSGin5G Client 1 that targets Application Client on UE 2.
Step 2.
The MSGin5G Client 1 compares the size of the received message to the maximum allowed packet size and detects that the size exceeds the limit of the originating UE. As a result, the MSGin5G Client segments the received message into a set of segmented messages such that each segmented message can fit within the maximum allowed packet size. Within each segmented message, the information elements defined in
Table 8.1.2-1 are included to enable reassembly of the segmented messages, with following clarifications.
-
The MSGin5G message request includes following information elements from Table 8.3.2-1:
-
Originating UE Service ID, Recipient UE Service ID, Message ID, Segmentation set identifier and Message segment number in each segmented message
-
Delivery status required and Total number of message segments, only if it is the first segment of the message
-
Last segment flag, only if it is the last segment of the message.
Step 3.
The MSGin5G Client 1 sends each segmented message to the MSGin5G Server. If any segment is not received within the expected time (based on configuration) then proceed to step 4.
Step 4.
The MSGin5G Server checks if each segment does not exceed the configured maximum packet size of the targeted UE. If the maximum packet size is not exceeded, then the MSGin5G Server proceeds with step 6.
If the maximum packet size is exceeded then the the MSGin5G Server performs the following operations:
a) If all segments are received within expected time,, then the MSGin5G Server reassembles subsequent segmented messages, until the Last segment flag indication is received, into a single MSGin5G message. The re-assembled message is then segmented such that each segment is smaller than the maximum allowed packet size of the targeted UE. Within each segmented message, the information elements as mentioned in step 2 are included to enable reassembly at the target, then proceeds with step 6.
b) If not all segments are received within expected time, then the MSGin5G Server acts as Message Receiver to recover the segments as described in
clause 8.5.6 MSGin5G message segment recovery procedure, before continuing with rest of the steps.if all segments are received after recovery procedure, then the MSGin5G Server skips to step 4-a,otherwise proceed to step 5.
Step 5.
The MSGin5G Server sends Message received confirmation to the MSGin5G Client 1. The information elements defined in
Table 8.5.2-2 are included in the request, the Result information element is
"failure", and further steps are not executed.
Step 6.
The MSGin5G Server sends each segmented message to the MSGin5G Client 2. If any segment as a separate message is not received within the expected time (based on configuration) then proceed to step 8.
Step 7.
The MSGin5G Client 2 reassembles all the segmented messages into a single MSGin5G message based on the information elements defined mentioned in step 2. If not all segments are received within expected time, then the MSGin5G Client 2 acts as Message receiver to recover the segments as described in
clause 8.5.6 MSGin5G message segment recovery procedure, before continuing with rest of the steps.
Step 8.
The MSGin5G Client 2 sends Message received confirmation to the MSGin5G Client. The information elements defined in
Table 8.5.2-2 are included in the request. The Result information element will contain
"success" if the reassembly of the segments is success. Otherwise, the Result information element will contain
"failure".
Step 9.
The MSGin5G Client 2 delivers the contents of the MSGin5G message to the targeted Application Client. If MSGin5G Client has not received all messages (even after recovery procedure) or reassembly of segments failed for any reason (e.g. corrupt data) then the MSGin5G Client will notify receiving of failed message to Application Client.