WO2019069124A1 - Universal transmission protocol (utp) - Google Patents
Universal transmission protocol (utp) Download PDFInfo
- Publication number
- WO2019069124A1 WO2019069124A1 PCT/IB2017/058337 IB2017058337W WO2019069124A1 WO 2019069124 A1 WO2019069124 A1 WO 2019069124A1 IB 2017058337 W IB2017058337 W IB 2017058337W WO 2019069124 A1 WO2019069124 A1 WO 2019069124A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- application data
- electronic device
- portable electronic
- application
- data
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/12—Messaging; Mailboxes; Announcements
- H04W4/14—Short messaging services, e.g. short message services [SMS] or unstructured supplementary service data [USSD]
Definitions
- the present disclosure relates to offline data communication. More particularly, the present disclosure relates to UTP for handling offline data communication.
- USSD Unstructured Supplementary Service Data
- USSD channel provides a simple menu using a real-time and session based connection.
- the connection allows a two-way exchange of data thereby making it interactive and easy to use as the user is required to key-in few characters to send a response via USSD.
- communication via USSD is usually not chargeable.
- the USSD have a telco assigned maximum limit of 160 characters that may be transferred; b) USSD only allows transferring data in text format and does not support transfer of data in other formats, for example binary arbitrary data;
- USSD data menu and user selections
- USSD data are delivered as a popup on the user interface of the mobile phone which is extremely undesirable compared to the delivery of data at in-app Ul when the user is online, i.e., connected to the internet;
- USSD may have a limit of n data segments, which includes n/2 received data segments and n/2 transmitted data segments, during a session. After the n th data segment is send, the connection is suspended and can be resumed after some time. To avoid this, the session may be closed on any message between 1 and (n-1) message by sending a close message. After sending the close message all incoming and outgoing transmissions are cleared. Due to this limitation, any ongoing transmission needs to be resend and a message larger than n segments cannot be transmitted by the USSD.
- Embodiments of the present invention may relate to a method of data communication using UTP.
- the method comprising receiving a plurality of application data segments of an application data via a USSD session. Converting the plurality of application data segments from a text format to original application data format to obtain the application data. Finally, the application data is displayed at a user interface (Ul) of an application requesting the application data.
- Ul user interface
- Embodiments of the present invention may also relate to a portable electronic device
- FIG. 1 is a block diagram illustrating a system for UTP based communication, according to an embodiment
- FIG. 2 is a line diagram illustrating transmission of different packets during a UTP communication, according to an embodiment
- FIG. 3 is a flow diagram illustrating a process to transmit and receive data between an application at a portable electronic device and an offline or online communication module, according to an embodiment
- FIG. 4 is an exemplary embodiment illustrating a UTP based data communication between two portable electronic devices, according to an embodiment.
- Embodiments of the present disclosure are directed to a system and a method for
- FIG. 1 is a block diagram illustrating a system 100 for UTP based communication, according to an embodiment.
- Universal transfer protocol is a new transfer protocol that allows transfer of data in any format, including arbitrary binary data, between two nodes.
- the UTP allows transfer of any data, including arbitrary binary data, between two nodes using USSD as a transport means.
- the UTP may allow transfer of data when the node/s are offline, i.e., not connected to a data network or a Wi-Fi.
- the node may be a redistribution point or a communication endpoint that supports UTP based data transfer between the nodes.
- the nodes may include any electronic instrument.
- the electronic instrument may include a Point of Sale (PoS) terminal or a portable electronic device 102 that can send and receive data to and from a data store, for example, an offline communication module 104.
- a portable electronic device 102 may include a mobile phone, smartphone, or a wearable device.
- An offline communication module 104 may include a data server that manages reception and transfer of data to the portable electronic device.
- the UTP protocol may have several properties including:
- UTP does not follow a request-response model, i.e., a request may or may not result a response. For example, when pushing analytical data from an application it is not necessary to receive a response;
- UTP ensures delivery of data segments and provides a failure message in case a data segment is not delivered.
- UTP defines several packets to establish communication between two nodes and maintain a session. These packets include:
- SYINT This packet indicates a new USSD connection/session between the nodes.
- a node When this packet is received by a node then: a) session state is reset to open; b) any ongoing data segment transmission is cleared; and c) data segments that are currently being transmitted are marked for retransmission.
- ACK An acknowledgment message is sent to a remote node after a node has received a data segment.
- MM Message meta packet. This packet indicates beginning of a new data. This packet contains a unique data ID, length of the data, its source and destination node.
- Data packet contains the data segments.
- ERR Error packet. Sent by either node to indicate an error in protocol.
- CRS Close packet is sent by either node to indicate that the current session can be closed. On receiving this packet, the node will clear the resources taken up by this session and close the connection.
- Cancel transmission packet is sent by the node which is sending data segments to cancel it. On receiving this packet node will clear up the resources allocated for the transmission.
- the portable electronic device 102 and the offline communication module 104 include a UTP modules 106 and 108, respectively, that manages UTP based data transmission between the portable electronic device 102 and the offline communication module 104.
- the UTP modules 106 and 108 at the portable electronic device 102 and the offline communication module 104 includes four layers, i.e., application layers 110 and 112, respectively, the transmission layers 114 and 116, respectively, the protocol layers 118 and 120, respectively, and the USSD- based transport layers 122 and 124, respectively.
- the application layers 110 and 112 are defined to manage communication between offline communication module 104 and applications (apps) running on the portable electronic device 102.
- the application layer 110 at the portable electronic device 102 initiates a request for receiving an application data from the portable electronic device 102.
- the request may include the registered mobile number, the application (app) identity of the application requesting the data, and the request for data.
- the request for application data may include a request to send and/receive messages at the messaging application, the messaging application id, and the mobile number of the portable electronic device that send the request.
- the application layer 110 ensures that the application data requested at the portable electronic device 102 is displayed at the User Interface (Ul) of the application requesting the application data.
- the application layer 110 ensures that the requested data, for example data related to an application, is displayed at the application requesting the data such that the application experience when the portable electronic device is offline is same as when the portable electronic device is online.
- the application layer 110 ensures that the application data is displayed as an in-app Ul, and not as a popup like in current USSD based apps, which has the same user experience as when the application is accessed online.
- multiple applications may use the application layer 112 to send and/or receive requested data from the offline communication module 104.
- the application layer 112 at the offline communication module is the application layer 112 at the offline communication module
- id a unique transmission identity
- the id is then used to track the progress and state of transmission by the offline communication module 104 and the app executing at the portable electronic device 102.
- the UTP modules 106 and 108 at the portable electronic device 102 and the offline communication module 104 also includes transmission layers 114 and 116, respectively, that handles assembling/disassembling, multiplexing, compression/decompression, and encryption/decryption of transmissions.
- the transmission layers 114 and 116 also provides transmission progress and state to the application layers 110 and 112, respectively, that communicates it to the respective application.
- the application layers 110 and 112 transmits the application data, which may include an application data request at the portable electronic device 102 or the requested application data at the offline communication module 104, to transmission layers 114 and 116, respectively, included in the UTP modules 106 and 108, respectively.
- the application data is a random binary data that may be understood at both the UTP nodes, for example, a portable electronic device 102 and the offline communication module 104.
- the transmission layers 114 and 116 may either be receiving a requested application data, for example at the portable electronic device 102, or may be forwarding a requested data, for example from the offline communication module 104.
- the transmission layer compress, encrypts, and breaks the application data into application data segments when the requested application data is received at the transmission layers 114 and 116.
- An application data segment is a portion of the application data.
- the application data is broken into application data segments of smaller size as USSD, used by UTP for data transfer, has a limit on the data size that may be transmitted. The length of segment is selected so that it may be transmitted using USSD.
- an application data segment may be further broken into several application data packets, and the USSD may transfer one of these application data packets.
- the transmission layer 114 at the portable electronic device 102 combines the different data packets received at the protocol layer 118 to obtain the application data.
- the transmission layer 114 at the portable electronic device 102 analyzes and process the received application data packet. For example, when a MM (message meta packet) is received then the transmission layer 114 sends this information to the application using the application layer 110. The application may decide to accept or reject this message. In case the application rejects this message then a CAN packet is sent from the portable electronic device 102 to the offline communication module 104. In case the app accepts the transmission then transmission manager adds the MM packet to the partial transmission list. The partial transmission list collects the application data segments of the application data until all the application data segments of the application data are received from the offline communication module 104.
- MM messages meta packet
- the transmission layers 114 or 116 adds data part of packet to the pending partial transmission and reports the progress to the application layer 110 that is reported to the app. After all the DAT packets of a requested application data is received then the transmission layer 114 decrypts, decompress, and sends the transmission to application using application layers 110 and 112.
- the transmission layers 114 and 116 removes partial transmission from incoming transmission list and reports the cancellation to apps using the application layers 110 and 112.
- the UTP modules 106 and 108 at the portable electronic device 102 and the offline communication module 104 also include protocol layers 118 and 120 that is responsible for creation, management, and recovery of UTP sessions.
- the protocol layers 118 and 120 encodes an application data segment received from transmission layers 114 and 116 in an original application data format, for example binary format, received from the transmission layers 114 and 116 to text format or decodes application data segment received from transmission layers 114 and 116 in a text format to the original application data format.
- a binary-to-text converting algorithm for example, a 'Base 64' algorithm may be used to convert the application data segments to text format.
- the application data segments are converted to text format as USSD transfers data in text format.
- the transmission layer 116 may send a notification to the protocol layer 120 indicating availability of an outgoing session.
- the protocol layer 120 checks whether a USSD session is already open between the offline communication module 104 and the portable electronic device 102. In case a USSD session is not already open then the protocol layer 120 initiates a new USSD session by auto-dialing a USSD code or number to initiate a session between the offline communication module 104 and the portable electronic device 102.
- the USSD code also encodes different information, including client version, service identity, etc.
- Encoding this additional information allows the offline communication module 104 to support multiple protocol versions and obtain the client, for example the portable electronic device 102, information before opening the USSD session.
- the protocol layer 120 then waits for arrival of a SYN packet, from the offline communication module 104 with which the USSD session is established.
- protocol layer 118 configures itself using the configuration information from the SYN packet and sends client SYN packet to offline communication module 104. After this the session is considered to be open.
- the protocol layer 120 then requests queued outgoing packets from the transmission layer 116 and creates a segment using multiple/single packet(s). This segment is then encoded to application data segments in text format using Base 64 or any other encoding mechanism and the application data segments in text format is sent to the portable electronic device 102.
- the protocol layer 120 then awaits an acknowledgment about delivery of the USSD message and after receiving the acknowledgement generates and transmits the next segment. In case an acknowledgment is not received the protocol layer 120 will resend the same segment after a certain timeout. This process continues until all the application data segments of the application data are delivered. In case USSD session disconnects for any reason before all outgoing segments are delivered then the USSD session is reopened and the transmission is resumed from the last delivered data packet.
- the protocol layer 118 In case the protocol layer 118 is at the node receiving application data, for example at the portable electronic device 102, then the protocol layer 118 waits for incoming segments. On arrival of new segment the session manager performs validity checks on the segment. When the application data segment is valid and no errors are detected by the protocol layer 118 then the protocol layer sends acknowledgment to the other node, for example the offline communication module 104, extracts packets from application data segment and passes the application data segments to transmission layer 114 for further processing. In case an error is detected then the protocol layer 118 sends an ERR packet to the other node, for example the offline communication module 104. If ERR packet delivery fails then session is closed and reopened in order to correct the order.
- UTP modules 106 and 108 include USSD based transport layers 122 and
- the USSD based transport layers 122 and 124 also identifies SYN packet based on the special sequence of characters at beginning of a SYN packet. Information such as version and encoder identifier included in the SYN packet is provided to the transmission layers 114 and 116 to decode an encoded application data segment. Data part of SYN packet is used to configure session parameters and identify server state.
- the established USSD session allows sending/receiving 124 application data segments over a USSD session.
- UTP unlike USSD, has no limitation on the number of characters that may be transmitted and/or the type of data that may be transmitted, data of any data type corresponding to the original data type of the application, for example random binary data, and of any size may be transmitted using UTP. Further, the UTP ensures that the user experience of the displayed application data, when the portable electronic device 102 is offline, is same as the online user experience.
- UTP also addresses the data size limit issue when sending application data segments using USSD.
- UTP adds a binary character to an application data segment before transmitting the application data segment.
- the first application data segment may be provided a number '0' and then this number alternates between and '0' for subsequent application data segments. This number sequence is added based on the principle that only one application data segment may be lost in one direction.
- the nodes for example, the portable electronic device 102 and the offline management module 104, are provided with a message sequence managers 126 and 128, respectively, that stores and tracks the sequence number. Further, the SYN message does not include a sequence number as the SYN message is being sent to establish a session.
- the first bit is set depending on the bit value of the previous data segment received at nodes, for example, the portable electronic device 102 and the offline management module 104. For example, when the previous data segment, which is the last data segment of the previous session, has a bit set to 1 then the bit is set.
- the second bit for the SYN message is set if the nodes, for example, the portable electronic device 102 and the offline management module 104, are capable of resuming a previous session.
- the combination of SYN message bits and the application data segments are used to send an application data of large size, which cannot be transmitted due to data size restriction on USSD, as data segments in a series of USSD sessions and detecting any error during transmission of the data segments. For example, an application data segment received after a SYN message should have a sequence 0 else the connection is closed. Similarly, if a received segment has a same sequence number same as the last received segment then an error is detected and the session is closed.
- the node examines the sequence and ensures that the data segment is delivered. Irrespective of the data segment being delivered the node may decide to re-send the same data segment (if not delivered) or construct a new data segment and send it.
- the node sets the sequence information to no-resume state. There might be transmissions pending for delivery in the queue at this state but their delivery is not required to be resumed as they have not started.
- the node should set the second bit of SYN message to indicate that the transmission is to be resumed.
- the first bit of the SYN message is set depending on the last data segment received.
- the offline communication module 104 also includes a UTP notification module 130 that manages delivery of notifications using UTP.
- the UTP notification module 130 includes a notification API that is exposed to a third party that wants to send notifications to several users.
- the API receives as input a list of users to whom the third party wants to deliver the notification and the notification payload.
- the API checks the list of users to determine users, i.e., the portable electronic device 102 of the user, from the list that support UTP communication.
- the API provides the determined users as a result to the third party.
- the UTP notification module 126 also track users, i.e., portable electronic device 102, that are currently active on UTP. The notification for these users may be send immediately in the ongoing session.
- the UTP notification module 130 also tracks the number of sessions opened or closed by a client. This data may be used to:
- AQ.P Advanced Messaging Queueing Protocol
- UTP module 108 to communicate between the application and the UTP module 108.
- an Android Inter process Communication protocol is used for communication between the app executing at the portable electronic device and the UTP module 106.
- FIG. 2 is a flow diagram 200 illustrating transmission of different packets during a
- UTP communication between portable electronic device 202 and an offline communication module 204 UTP communication between portable electronic device 202 and an offline communication module 204, according to an embodiment.
- the portable electronic device 202 sends a service provider specific code 206 via a USSD session to initiate a communication with the offline communication module 204.
- the service provider may include a telecommunication service provider that is providing the USSD channel for USSD based data transfer between the portable electronic device 202 and the offline communication module 204.
- the offline communication module 204 may be sent
- Next SYN packet 208 is sent from the offline communication module 204 to the portable electronic device 202 to initiate a new UTP session creation.
- the portable electronic device 202 in reply sends a message meta (MM) packet 210 to the offline communication module 204.
- MM message meta
- the offline communication module 204 then sends an ACK packet 212 to acknowledge receipt of the MM packet.
- the portable electronic device may send either a data (DAT)/MM packet 214, a data (DAT) packet may include a portion of application data request to retrieve application data from the offline communication module 204 or MM packet/s to initiate more application data requests to the offline communication module.
- the offline communication module 204 may either send an ACK/MM packet (216) to acknowledge the receipt of data or MM packet or to initiate delivery of the requested data, in case the offline communication module 204 has a response ready for the received application data request.
- the portable electronic device may then send one of an ACK/DAT/MM packet 218, the MM packet may be sent to initiate a new request, a DAT packet may be sent to request application data, and an ACK packet may be sent to acknowledge receipt of application data from the offline communication module 204.
- the offline communication module 204 may send an ACK/DAT/MM packet
- the MM packet (220) the MM packet to initiate delivery of a new application data packet, a DAT packet including the requested application data, or an ACK packet to acknowledge receipt of an application request. The process continues until application data for all the requests have been delivered to the portable electronic device 202.
- FIG. 3 is a flow diagram illustrating a process 300 to transmit and receive data between an application at a portable electronic device and an offline or online communication module, according to an embodiment.
- the offline and online communication management module are data servers that manage offline communication and online communication, respectively, between the application at the portable electronic device and the different communication modules.
- the online communication module initiates an application data delivery to the portable electronic device (302).
- the application data delivery may be initiated based on a request initiated by an app executing at the portable electronic device.
- Next a check is then performed to determine whether the portable electronic device is online (304). In case the portable electronic device is online then the application data is delivered online (306).
- a check is performed to determine whether the portable electronic device is UTP-enabled (308).
- a check is performed to determine whether the portable electronic device is able to perform a handshake with the offline communication module. In case the portable electronic device is able to perform the handshake then the mobile number corresponding to the portable electronic device is included in the list of numbers that are UTP- complaint. In case the portable electronic device is not able to perform a handshake after three attempts then the mobile number corresponding to the portable electronic device is included in list of non-UTP compliant numbers.
- the application data is transferred from the offline communication module to the portable electronic device (310).
- the offline communication module transmits the application data to the application at the UTP- enabled portable device using UTP based data communication that uses USSD for data transfer, as explained in FIGS. 1-2.
- FIG. 4 is an exemplary system diagram 400 illustrating a UTP based data communication between two portable electronic devices 402 and 404, according to an embodiment.
- a data to be delivered to another portable electronic device 404 is received at one of the portable electronic device 402.
- the message is transferred to an online communication module 406.
- a check is then performed to determine whether another portable electronic device 404 to which the message is to be transferred is online. In case the other portable electronic device 404 is online then the online communication module 406 transfers the message to the other portable electronic device 404. In case the other portable electronic device 404 is not online then the online communication module 406 checks whether the other portable electronic device 404 is UTP-compliant. When the other portable electronic device 404 is identified as UTP-compliant then the online communication module 406 transfers the message to the offline communication module 408. The offline communication module 408 finally transfers the message to the other portable electronic device by UTP based data communication.
Abstract
Description
Claims
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN201711035365 | 2017-10-05 | ||
IN201711035365 | 2017-10-05 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2019069124A1 true WO2019069124A1 (en) | 2019-04-11 |
Family
ID=65994766
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/IB2017/058337 WO2019069124A1 (en) | 2017-10-05 | 2017-12-22 | Universal transmission protocol (utp) |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2019069124A1 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1997030556A2 (en) * | 1996-02-20 | 1997-08-21 | Ericsson Inc. | Sending graphic images to mobile terminals |
US20150163102A1 (en) * | 2009-06-17 | 2015-06-11 | Constantin Staykoff | Client-server system for network services and applications for mobile telecommunications terminals |
-
2017
- 2017-12-22 WO PCT/IB2017/058337 patent/WO2019069124A1/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1997030556A2 (en) * | 1996-02-20 | 1997-08-21 | Ericsson Inc. | Sending graphic images to mobile terminals |
US20150163102A1 (en) * | 2009-06-17 | 2015-06-11 | Constantin Staykoff | Client-server system for network services and applications for mobile telecommunications terminals |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101106926B1 (en) | Submit report handling in smsip | |
EP2710776B1 (en) | Anonymous signalling | |
KR102324354B1 (en) | Method and device for sharing enriched information associated with a call | |
CN109561159B (en) | Data processing method and system based on Websocket long connection | |
US10812421B2 (en) | Conveying instant messages via HTTP | |
US20070070988A1 (en) | Method For Transmitting Deferred Messages | |
CN102739411A (en) | Providing a witness service | |
WO2005119486A2 (en) | An internet protocol for the delivery of complex digital media content | |
US8650313B2 (en) | Endpoint discriminator in network transport protocol startup packets | |
CN110771117B (en) | Session layer communication using ID-oriented network | |
EP2899945B1 (en) | Method for an enhanced communication between a first network node and a second network node of a telecommunications network, and telecommunications network | |
KR101224225B1 (en) | Submit report handling in smsip | |
US9444649B2 (en) | Method for sending and receiving session history in a communications system | |
WO2019069124A1 (en) | Universal transmission protocol (utp) | |
US9525653B2 (en) | Enhanced wireless short message service | |
US10805439B2 (en) | Communicating data messages utilizing a proprietary network | |
US20230179656A1 (en) | Method for synchronising data of a database, computer programme, device for processing data, and mobile terminal therefor | |
KR101527196B1 (en) | Bi-directional service system for push message and Control method for the system | |
US10938877B2 (en) | Optimizing data transmission parameters of a proprietary network | |
CN117294749A (en) | Software and hardware data transmission method based on MQTT protocol | |
JP6396882B2 (en) | Information processing apparatus, mail transmission / reception system, mail transmission / reception method, and computer program | |
KR100756855B1 (en) | Remote object management duplexing method using mobile communication network and system thereof | |
KR101328028B1 (en) | System and method for message transmission based on session | |
EP4342157A1 (en) | Exchanging status messages during a call | |
FI126834B (en) | Delivery of messages in mobile communication networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 17927978 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 17927978 Country of ref document: EP Kind code of ref document: A1 |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 17927978 Country of ref document: EP Kind code of ref document: A1 |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 17927978 Country of ref document: EP Kind code of ref document: A1 |
|
32PN | Ep: public notification in the ep bulletin as address of the adressee cannot be established |
Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 01/04/2021) |