Access load control in peer-to-peer networks

By identifying and processing high-priority messages in relay devices, the network congestion problem in relay communication is solved, ensuring the timely transmission of high-priority messages in emergency situations and improving communication efficiency and reliability.

CN115884306BActive Publication Date: 2026-06-09APPLE INC

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
APPLE INC
Filing Date
2022-09-27
Publication Date
2026-06-09

AI Technical Summary

Technical Problem

Under high usage conditions, relay communication may be affected by congestion, resulting in devices being unable to effectively access or having limited access to terrestrial or non-terrestrial networks, especially during emergencies or disasters when regular communication networks may be unavailable.

Method used

Relay devices identify and process messages that meet priority thresholds, prioritize forwarding high-priority messages, and transmit fallback messages to other devices to reduce the use of network bandwidth and computing resources.

Benefits of technology

It effectively reduces network congestion, improves the communication efficiency and reliability of devices in emergency situations, and ensures the timely transmission of high-priority messages.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115884306B_ABST
    Figure CN115884306B_ABST
Patent Text Reader

Abstract

The present disclosure relates to access load control in a peer-to-peer network. Particular implementations of the present disclosure involve identifying, by a relay device, a first message received from a first requesting device of a plurality of requesting devices; identifying, by the relay device, a second message received from a second requesting device of the plurality of requesting devices; determining, by the relay device, that the first message has a first priority level that satisfies a priority threshold based at least in part on parameters of the first message; determining, by the relay device, that the second message has a second priority level that does not satisfy the priority threshold based at least in part on parameters of the second message; transmitting, to a remote device, a relay message based at least in part on the first message; and transmitting, to the second requesting device, a fallback message.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross-references to related applications

[0002] This application claims priority to U.S. Provisional Application No. 63 / 249,403, filed September 28, 2021, entitled “Access Load Control In Peer-To-Peer Networks,” the entire contents of which are incorporated herein by reference. Background Technology

[0003] Direct communication with the network may sometimes be unavailable, and relay communication via another device may be important. However, under high usage conditions, congestion can affect the ability to relay communication. Summary of the Invention

[0004] Generally speaking, some aspects of the subject matter described in this specification can be embodied in a method comprising the following actions: a relay device identifying a first message received from a first requesting device among a plurality of requesting devices; a relay device identifying a second message received from a second requesting device among a plurality of requesting devices; the relay device determining, at least in part, based on parameters of the first message, that the first message has a first priority level that satisfies a priority threshold; the relay device determining, at least in part, based on parameters of the second message, that the second message has a second priority level that does not satisfy the priority threshold; transmitting a relay message to a remote device, at least in part based on the first message; and transmitting a rollback message to the second requesting device.

[0005] Generally, some aspects of the subject matter described in this specification can be embodied in a method that includes: generating a message related to an electronic device based at least in part on user input; transmitting the message to a relay device; and identifying a response message received from the relay device based at least in part on the message. If the relay device determines that the message has a high priority level, the response message received from the relay device may be a high-priority response message. If the relay device determines that the message has a priority level different from the high priority level, the response message received from the relay device may be a fallback message.

[0006] Generally speaking, some aspects of the subject matter described in this specification can be embodied in a method that includes the following actions: identifying an event that interrupts connectivity to a first network; determining that the device has a connection to a second network; transmitting a message indicating that the device has network connectivity to one or more adjacent devices; receiving a first relay request from the first device and a second relay request from the second device; forwarding a message associated with the first relay request using the connection to the second network; and transmitting a rollback message to the second device.

[0007] Generally, some aspects of the subject matter described in this specification can be embodied in a method comprising the following actions: the notification device having network connectivity to at least one destination; receiving two or more request messages, each of which is received from a corresponding device among two or more requesting devices excluding at least one destination, wherein the two or more request messages include one or more first request messages and one or more second request messages; selecting one or more first request messages from the two or more request messages and using corresponding priorities; forwarding the one or more first request messages from at least one destination to the corresponding destination using network connectivity; and transmitting a fallback message to each device from a subset of the two or more requesting devices, wherein each of the one or more second request messages is received from a device in the subset of devices.

[0008] The system can be configured to perform operations or actions by means of software, firmware, hardware, or combinations thereof installed on the system that cause the system to perform operations or actions during operation. One or more computer programs can be configured to perform operations or actions by means of instructions that cause the device to perform operations or actions when executed by a data processing device. The operations or actions performed by the system or by instructions executed by the data processing device may include the methods of any of the specific embodiments described.

[0009] The foregoing and other implementation schemes may each optionally include one or more of the following features, individually or in combination. A first message may be related to a first emergency situation. A second message may be related to a second emergency situation. The first and second situations may be the same or different situations. The first message may include a first status message. The second message may include a second status message.

[0010] In some implementations, the method may include a relay device transmitting a request to a remote device, at least in part, based on a first message or a second message. The remote device may include a remote device providing emergency services. A high-priority response message may include a request to establish a communication link between the first requesting device and the relay device. The high-priority response message may include a request for more information from the first requesting device. A high-priority response message or fallback message may include an indication that the relay device is sending a message to the remote system. A fallback message may include an indication of the duration until the second requesting device can transmit another message to the relay device.

[0011] In some specific implementations, the parameters of the first message can be at least one of the following: the message type of the first message, the identity of the user of the first requesting device, the proximity of the first requesting device to the relay device, or the signal quality parameters of the first requesting device. The signal quality parameter can be the Reference Received Power (RSRP). The first message can be a message from a predefined message set. The relay device can be a User Equipment (UE).

[0012] In some specific implementations, the method may include subdividing the locations of multiple requesting devices into multiple location segments by a relay device. The first requesting device and the second requesting device may be located in a first location segment of the multiple location segments. The method may include: the relay device transmitting a second high-priority response message to a third requesting device based at least in part on a determination that a third message received from a third requesting device in a second location segment of the multiple location segments has a high priority level; and the relay device transmitting a second fallback message to a fourth requesting device based at least in part on a determination that a fourth message received from a fourth requesting device in the second location segment does not have a high priority level.

[0013] In some implementations, message generation may include identifying a pre-identified message among a plurality of pre-identified messages, at least in part based on user input. A high-priority response message may include a request to establish an audio and / or video communication link between an electronic device and a relay device. A message received from the relay device may be a high-priority response message including a request for more information from the electronic device. A message received from the relay device may include an indication that the relay device is sending another message to a remote system. The method may include determining whether a message received from the relay device can be a fallback message; and, at least in part based on the determination that the message received from the relay device can be a fallback message, starting a timer with a duration indicating the time the electronic device will wait before transmitting the message to the relay device again.

[0014] Details of one or more specific embodiments of these systems and methods are set forth in the accompanying drawings and the following description. Other features, objects, and advantages of these systems and methods will be apparent from the description and drawings, as well as from the claims. Attached Figure Description

[0015] Figure 1 An exemplary wireless network according to some specific implementations is shown.

[0016] Figure 2 Exemplary implementations of wireless communication systems according to various specific embodiments are described.

[0017] Figure 3 Another exemplary embodiment of a communication system, including a requesting device associated with a relay device, is described according to various specific implementations.

[0018] Figure 4 Exemplary processing flows according to various specific implementations are described.

[0019] Figure 5 Exemplary techniques implemented by relay devices according to various specific implementations are described.

[0020] Figure 6 Exemplary techniques, implemented by the requesting device according to various specific embodiments, are described.

[0021] Figure 7 This is a flowchart of an exemplary process for selectively forwarding messages.

[0022] Figure 8 User equipment (UE) according to some specific implementations is shown. Detailed Implementation

[0023] In some situations, a device may be unable to connect to terrestrial or non-terrestrial networks, or may have difficulty connecting to terrestrial or non-terrestrial networks to communicate, such as sending data. For example, the device may be in an area with limited or no network coverage. This can occur when the device is located in sparsely populated areas (e.g., wilderness or large bodies of water), during emergencies (e.g., when a large number of devices are attempting to use the network), during disasters (e.g., when some or all network equipment is out of service), and in other such situations where the communication infrastructure of at least a subset of the devices is insufficient to meet communication needs.

[0024] To enable a device to send messages in such situations, a relay device can provide network connectivity to the device. For example, the relay device can receive a message from the device and forward it to another device. The other device can include network equipment, such as a base station. The other device can include user equipment, for example, a second user equipment when the relay device is a user equipment. The other device, the relay device, or both can include smart devices, such as smart cameras, tablets, or smartwatches.

[0025] When this situation, or a combination of different situations, affects a large number of devices, relay devices may receive an excessive number of requests, for example, from other devices that have limited or no direct access to terrestrial or non-terrestrial networks. This can cause relay devices to process requests more slowly than in other situations, especially when the relay device receives retransmission requests from one or more of the devices.

[0026] To reduce the amount of network bandwidth, computing resources, or both used, a relay device can determine which messages received from various devices meet a priority threshold, such as having high or highest priority. The relay device can process messages that meet the priority threshold (e.g., high-priority messages) while simultaneously transmitting one or more fallback messages to a requesting device from which it receives messages that do not meet the priority threshold (e.g., lower-priority messages). The fallback messages can cause (or request) the requesting device to wait until a timeout period expires before sending another message to the relay device. When processing one or more messages that meet the priority threshold (e.g., highest-priority messages), the relay device can establish a communication link between itself and the corresponding requesting device, forward the high-priority message to a remote device, and / or perform another appropriate action. Furthermore, the priority threshold can be adjusted over time, for example, as the number and / or priority of received requests change. In some examples, the priority threshold may be based at least in part on the time the message was received. In some examples, the priority threshold may be based at least in part on the content included in the message.

[0027] Figure 1 An exemplary wireless network 100 according to some specific implementations is shown. The wireless network 100 includes a UE 102 and a base station 104 connected via one or more channels 106A, 106B across an air interface 108. The UE 102 and the base station 104 communicate using a system that supports control for managing the UE 102's access to the network via the base station 104.

[0028] For convenience and not limitation, Wireless Network 100 is described in the context of Long Term Evolution (LTE) and Fifth Generation (5G) New Radio (NR) communication standards, as defined by the 3rd Generation Partnership Project (3GPP) technical specifications. More specifically, Wireless Network 100 is described in the context of a Non-Standalone (NSA) network combining both LTE and NR (e.g., E-UTRA (Evolved Universal Terrestrial Radio Access)-NR Dual Connectivity (EN-DC) network and NE-DC network). However, Wireless Network 100 can also be a Standalone (SA) network combining only NR. In addition, other types of communication standards are also possible, including future 3GPP systems (e.g., sixth-generation (6G)) systems, IEEE 802.11 technologies (e.g., IEEE 802.11a; IEEE 802.11b; IEEE 802.11g; IEEE 802.11-2007; IEEE 802.11n; IEEE 802.11-2012; IEEE 802.11ac; IEEE 802.11ax; IEEE 802.11be; and / or other currently or future IEEE 802.11 technologies), IEEE 802.16 protocols (e.g., WMAN, WiMAX, etc.), 802.15 protocols, etc. While this document may use terminology commonly associated with 5G NR to describe the aspects, the aspects of this disclosure can be applied to other systems, such as 3G, 4G, and / or systems beyond 5G (e.g., 6G).

[0029] In wireless network 100, UE 102 and any other UE in the system can be, for example, a laptop computer, smartphone, tablet computer, machine-type device, such as a smart meter or dedicated device for healthcare monitoring, remote security monitoring systems, intelligent transportation systems, or any other wireless device with or without a user interface. In network 100, base station 104 provides UE 102 with network connectivity to a wider network (not shown). This connectivity is provided by air interface 108 within the base station service area provided by base station 104. In some implementations, such a wider network can be a wide area network operated by a cellular network provider, or it can be the Internet. Each base station service area associated with base station 104 is supported by an antenna integrated with base station 104. The service area is divided into multiple sectors associated with certain antennas. Such sectors can be physically associated with fixed antennas, or they can be assigned to physical areas with tunable antennas or antenna configurations that can be adjusted during beamforming to direct signals to a particular sector.

[0030] UE 102 includes control circuitry 110 coupled to transmitting circuitry 112 and receiving circuitry 114. Transmitting circuitry 112 and receiving circuitry 114 may each be coupled to one or more antennas. Control circuitry 110 may be adapted to perform operations associated with the selection of a codec for communication and to adapt to a codec for wireless communication as part of system congestion control. Control circuitry 110 may include various combinations of dedicated circuitry and baseband circuitry. Transmitting circuitry 112 and receiving circuitry 114 may be adapted to transmit and receive data, respectively, and may include radio frequency (RF) circuitry or front-end module (FEM) circuitry, including communication using the codecs described herein.

[0031] The control circuit 110 can perform various operations described in this specification. For example, the control circuit 110 can determine the priority of a message, generate a message, start a timer, determine whether a timer has expired, and / or a combination of two or more of these.

[0032] Transmitting circuit 112 can perform various operations described in this specification. For example, transmitting circuit 112 can transmit messages to relay devices, transmit priority response messages (e.g., high priority response messages), transmit fallback messages, forward messages to remote devices or systems, and / or combinations of two or more of these operations.

[0033] The receiving circuit 114 can perform various operations described in this specification. For example, the receiving circuit 114 can receive messages from the requesting device, receive priority response messages (e.g., high priority response messages), receive rollback messages, and / or combinations of two or more of these messages.

[0034] In various specific implementations, aspects of the transmitting circuit 112, receiving circuit 114, and control circuit 110 can be integrated in various ways to implement the circuitry described herein. The control circuit 110 can be adapted or configured to perform various operations, such as the various UE-related operations described elsewhere in this disclosure. The transmitting circuit 112 can transmit multiple multiplexed uplink physical channels. Together with carrier aggregation, the multiple uplink physical channels can be multiplexed according to time division multiplexing (TDM) and / or frequency division multiplexing (FDM). The transmitting circuit 112 can be configured to receive block data from the control circuit 110 for transmission across air interface 108. Similarly, the receiving circuit 114 can receive multiple multiplexed downlink physical channels from air interface 108 and relay these physical channels to the control circuit 110. The multiple downlink physical channels can be multiplexed together with carrier aggregation according to TDM and / or FDM. The transmitting circuit 112 and the receiving circuit 114 can respectively transmit and receive, for example, structured control data and content data (e.g., messages, images, videos, etc.) within data blocks carried by a physical channel.

[0035] Figure 1 Base station 104 is also shown, for example, as a specific implementation of a remote device. In some implementations, base station 104 may be an NG radio access network (RAN) or 5G RAN, E-UTRAN, non-terrestrial cell, or a traditional RAN such as UTRAN or GERAN. As used herein, the term "NGRAN" etc. may refer to base station 104 operating in an NR or 5G wireless network 100, and the term "E-UTRAN" etc. may refer to base station 104 operating in an LTE or 4G wireless network 100. UE 102 utilizes connections (or channels) 106A, 106B, each connection including a physical communication interface or layer.

[0036] The base station 104 circuitry may include control circuitry 116 coupled to transmitting circuitry 118 and receiving circuitry 120. Transmitting circuitry 118 and receiving circuitry 120 may each be coupled to one or more (shared or dedicated) antennas, which may be used to enable communication via air interface 108.

[0037] Control circuitry 116 may be adapted to perform the following operations: analyze and select codecs, manage congestion control and bandwidth limiting communications from the base station, determine whether the base station is aware of the codecs, and communicate with base stations that are aware of the codecs to manage codec selection for the various communication operations described herein. Transmitting circuitry 118 and receiving circuitry 120 may be adapted to transmit data to and receive data from a UE connected to base station 104, respectively, using data generated using the various codecs described herein.

[0038] In such implementations, one or more channels 106A, 106B are shown as air interfaces for communication coupling and may be consistent with cellular communication protocols such as GSM, CDMA, PTT, POC, UMTS, 3GPP LTE, LTE-Advanced Long Term Evolution (LTE-A), LTE-based Unlicensed Spectrum Access (LTE-U), 5G, NR, NR-based Unlicensed Spectrum Access (NR-U), and / or any other communication protocols discussed herein. In some implementations, UE 102 may directly exchange communication data via the ProSe interface. The ProSe interface may alternatively be referred to as a sidelink (SL) interface and may include one or more logical channels, including but not limited to PSCCH, PSSCH, PSDCH, and PSBCH.

[0039] Figure 2Exemplary embodiments of a wireless communication system 200 according to various specific implementations are depicted. The communication system 200 may include a relay device 205. The relay device may be, for example, a UE that includes, is included in, or is otherwise associated with an electronic device (such as electronic device 200 or electronic device 300).

[0040] Relay device 205 may be communicatively coupled to one or more communication systems configured to allow relay device 205 to send or receive messages, data, or information to or from another device or system located remotely from relay device 205. Such communication systems may be or include terrestrial systems, such as cellular system 210 or WiFi system 220, non-terrestrial systems, such as satellite system 215 or High Altitude Platform (HAP) system, or any combination thereof. Cellular system 210 may be or include, for example, 4G networks, 5G networks, or some other networks as described above. Similarly, WiFi system 220 may be similar to the WiFi system described above. It should be understood that these systems are non-exclusive and may overlap (e.g., relay device 205 may be communicatively coupled to cellular system 210 via WiFi system 220 and / or satellite system 215).

[0041] Relay device 205 is also communicatively coupled to one or more requesting devices (such as requesting device 225). Specifically, relay device 205 and requesting device 225 can be communicatively coupled via a peer-to-peer communication protocol. The peer-to-peer communication protocol may include various channels, such as synchronization channels, control channels, shared data channels, another suitable type of channel, or a combination of two or more of these channels. Alternatively, a single channel may be used for multiple or all communications.

[0042] After synchronization is established between two or more devices, the devices can perform an authentication process via the control channel, and then the devices can exchange communication messages via the data channel.

[0043] In some implementations, dedicated time slots (e.g., emergency time slots) for message exchange can be added to existing communication protocols and used for the communications described in this specification. In some implementations, the communication protocol can allow connections between devices up to 2 kilometers (km) apart, while in other implementations, the communication protocol can have greater or lesser distance capabilities (e.g., 1 km, 2.5 km, etc.).

[0044] Similar to relay device 205, each requesting device in requesting devices 225 can be, for example, a UE, which includes, is included in, or is otherwise associated with an electronic device (such as electronic device 200 or electronic device 300). In some embodiments, one or more intermediate devices (e.g., routers, repeaters, or other devices) may be communicatively coupled between relay device 205 and one or more requesting devices in requesting devices 225. In some embodiments, requesting devices 225 may have the same form factor as relay device 205 (e.g., both may be cellular phones), while in other embodiments, at least one requesting device in requesting devices 225 may have a different form factor than relay device 205 (e.g., relay device 205 may be a cellular phone, while requesting device 225 is a tablet). It will also be noted that, although in Figure 2 Only three requesting devices 225 are depicted in this document, but in other specific implementations, the communication system 200 may include more or fewer requesting devices 225 that are communicatively coupled to the relay device 205.

[0045] Figure 3 Another exemplary embodiment of a communication system 300, including a requesting device 325 associated with a relay device 305, is depicted according to various specific implementations. The relay device 305 and the requesting device 325 may be respectively similar to... Figure 2 The relay device 205 and the requesting device 225, and share one or more characteristics with them.

[0046] When events such as disasters occur, individuals, such as users of requesting device 325, may seek communication. Therefore, requesting device 325 may transmit multiple status messages, such as one or more status messages. These status messages are summarized herein as two different types. The first type of status message is a SoS or “emergency” type message that includes a request for help or other assistance. The second type of status message is referred to as an “update” type message, which is intended to indicate an update in the status or another type of status message, but not a request for help. Such messages may be, for example, when a user wishes to notify another person of their current location, whether the user is safe or unharmed, or a combination of both.

[0047] As previously mentioned, in disaster scenarios, numerous requesting devices 325 (e.g., on the order of hundreds or thousands) may simultaneously transmit messages or other data, potentially overloading conventional communication networks (especially if such networks are damaged or otherwise affected by the disaster), or rendering them unavailable, at least for some of the requesting devices 325. In some implementations, using a relay device 305 as a central point of contact for the requesting devices 325 may be desirable; however, this can lead to significant delays in establishing connections between the requesting devices 325 and the relay device 305 due to congestion. Furthermore, attempting to connect the relay device 305 to every requesting device 325 can rapidly deplete the battery level of the relay device 305. Therefore, the implementations herein relate to techniques for prioritizing communications in relay scenarios (e.g., disasters) so that the relay device 305 provides timely service to the devices of the communication system 300.

[0048] Generally, specific implementations described herein may include techniques for controlling congestion or overload at relay device 305, reducing latency in the affected area, or both. In some implementations, at a higher level, requesting device 325 may transmit status messages as described above. Status messages may include one or more data fields, such as the content of the status message, an indication of the type of status message (e.g., whether the message is an urgent or update message), an identifier of the requesting device, and data related to the location of the requesting device. For example, the identifier may be the requesting device's telephone number, email address, network identifier, physical identifier of requesting device 325, or some other type of identifier.

[0049] In some implementations, the status message may be one of a predefined set of status messages, and the content of the status message may include an indication of predefined content. In this case, the relay device 305 may compare the indication of the predefined content with a data structure such as a lookup table to identify the content of the status message. It may be desirable to use a predefined set of status messages to, for example, reduce the size of the status messages or the required bandwidth. In some implementations, the content of the status message may be based on user input (e.g., user-input alphanumeric messages or some other type of content).

[0050] Then, the relay device 305 can subdivide the affected area into two or more distinct segments, such as location segments. For example, Figure 3 Four distinct location segments are shown, which typically represent quadrants according to the four basic directions of north, south, east, and west. These quadrants may include the northwest quadrant, northeast quadrant, southeast quadrant, and southwest quadrant.

[0051] Additionally, in some implementations, the area may be further subdivided, for example, based on range, as shown by concentric circles. In such implementations, the area may include requesting devices 325 within a first range of relay devices 305 in a first group (e.g., requesting devices 325 within a circle having a range R1), and other requesting devices 325 in a second group (e.g., requesting devices 325 outside the circle having a range R2). In some implementations, R1 may be on the order of one kilometer (km), and R2 may be on the order of two km. Alternatively or additionally, requesting devices 325 outside a given range may be excluded.

[0052] However, it should be understood that the number of sub-sections, the number of ranges, the values ​​of such ranges, the orientation of the sub-sections, or combinations thereof may differ in different specific implementations. For example, the area may be subdivided at least in part based on factors such as the location of relay device 305, the location of requesting device 325, factors predefined or pre-stored on relay device 305, some other factors or criteria, or a combination of two or more of these factors.

[0053] In some implementations, relay device 305 can prioritize communications from one or more requesting devices 325 based on one or more criteria. One such criterion could be message type. For example, urgent messages could be given a higher priority than update messages.

[0054] Another criterion could be location. For example, a requesting device 325 within range R1 could be given a higher priority than a requesting device 325 outside range R1, for example, because the signal strength (and therefore, communication efficiency) between the relay device 305 and the requesting device 325 within range R1 could be greater than the signal strength between the relay device 305 and the requesting device outside range R1.

[0055] In some implementations, relay device 305 may use the signal strength and / or physical location (e.g., with respect to relay device 305) of requesting device 325 to prioritize at least some of the requesting devices 325. In some implementations, relay device 305 may use any parameter that becomes available first (such as signal strength or physical location) to set the priority of requesting device 325. Furthermore, relay device 305 may modify the priority as other parameters of requesting device 325 or other requesting devices 325 become available.

[0056] In some cases, such as when a very large number of devices are within the area of ​​communication system 300, it may be desirable to have a pre-defined list of devices, user identifiers, and / or accounts corresponding to the requesting device to help prioritize various status messages quickly and efficiently. Such a list may include criteria such as the relationship between the requesting device 325 or its corresponding user and the relay device 305 or its corresponding user.

[0057] For example, such an effective prioritization could include identifying a user's family group as smaller than the user's friend group (e.g., the user's contact list), which in turn could be smaller than the group of all devices within the area of ​​the communication system 300. Therefore, to effectively prioritize status messages, relay device 305 could prioritize status messages by including identifiers, such as one or more of the identifiers described above, which identify the relationship between the user requesting device 325 and the user of relay device 305. However, it should be noted that in some implementations, relay device 305 can use different relationships to effectively prioritize messages. Some examples of different relationships could include those based on work events, those based on living circumstances (e.g., individuals in the same neighborhood, community, dormitory, apartment building, etc.), those based on extracurricular activities, those based on a pre-categorized list of emergency-related relationships, such as those that can be operated by a city or state, etc.

[0058] In some implementations, signal quality factors such as Reference Signal Received Power (RSRP), Reference Signal Received Quality (RSRQ), or a combination of both, or other signal quality factors that provide an indication of signal quality between relay device 305 and one or more requesting devices 325, can be used as priority setting criteria. In some implementations, this factor can be used by relay device 305 for all priority setting decisions. In some implementations, for example, where one or more other factors in use do not significantly shorten the list of requesting devices 325 attempting to communicate with relay device 305, the signal quality factor can be used as a "decisive factor" or deciding factor.

[0059] Based on different priority setting criteria, relay device 305 can identify messages received from each requesting device in requesting device 325 as having a higher priority than other messages. In some embodiments, relay device 305 can determine that messages with higher priority meet a priority threshold. The priority threshold can indicate that a predetermined number of highest priority messages should be selected. In some embodiments, the priority threshold can be a predetermined value, such as a numerical value. In these embodiments, when a higher priority message has a priority greater than, equal to, or greater than or equal to a predetermined priority threshold, replay device 305 can determine that the higher priority message meets the priority threshold.

[0060] The relay device 305 can determine such priority settings, at least in part, by assigning different weights to different criteria. As a simplified example, using only message type and location parameters, the message type can have weights as shown in Table 1.

[0061] Table 1: Message Type Priority Setting Weights Emergency type = P1 Update type = P2 Other types = P3

[0062] Location types can have weights as shown in Table 2.

[0063] Table 2: Location Type Priority Setting Weights Position ≤ R1 = W1 R1 < position ≤ R2 = W2 R2<position=W3

[0064] In this specific implementation, the priority setting calculation can be as follows, from the highest priority to the lowest priority: P1W1 (highest priority), P1W2, P2W1, P2W2, P1W3...P3W3 (lowest priority).

[0065] However, it should be understood that the above example is intended as one illustration of prioritization, and other implementations may differ. For example, in the above example, message type is considered more than location, which is why P1W2 is shown as having a higher priority than P2W1. However, in other implementations, location may be considered more. In some implementations, different weights in the weighting may have similar considerations (e.g., P1W2 may be given the same priority as P2W1), or one or more additional / alternative factors, such as the signal quality factor mentioned above, may be used.

[0066] In some implementations, as an alternative to or supplement to message prioritization, relay device 305 may prioritize requesting device 325. For example, relay device 305 may determine the priority of a particular requesting device 325 at least in part based on messages received from that device. This can occur when relay device 305 waits for a period of time to prioritize messages, for example, when a priority threshold indicates a predetermined number of highest-priority messages that should be selected. In these examples, relay device 305 may receive multiple messages from a particular requesting device 325 and determine the priority of that device at least in part based on these multiple messages. For example, relay device 305 may determine the priority of each of the multiple messages and then determine the priority of the particular requesting device 325 at least in part based on the priorities of the multiple messages.

[0067] In some specific implementations, relay device 305 may provide higher-priority messages to requesting devices 325 before providing lower-priority messages to other requesting devices 325. For example, relay device 305 may transmit a high-priority emergency response message to the requesting device 325 with the highest priority, while sending a "fallback message" to the requesting devices 325 with lower priority.

[0068] High-priority emergency response messages may include requests for two-way communication, requests to establish an audio channel, requests to establish a video channel, requests for more information, instructions to contact emergency services (e.g., police, search and rescue, fire departments, medical services, etc.), other messages, or a combination of two or more of these. In response to sending a request for more information, relay device 305 may receive additional information from the corresponding requesting device 325. Relay device 305 may use the additional information to determine the priority of the device, the priority of the request message, or both. In addition to sending higher-priority emergency response messages, relay device 305 may contact one or more of the emergency services listed above on behalf of the higher-priority requesting device 325 before establishing two-way communication.

[0069] The fallback message may include, for example, an indication of a fallback timer, which the requesting device 325 uses before retrying communication with the relay device 305. When the lower-priority requesting device 325 receives a fallback timer (e.g., a message indicating the duration of the fallback timer), the lower-priority requesting device 325 may start the timer indicated by that duration. When the lower-priority requesting device 325 determines that the timer has expired, the lower-priority requesting device 325 may retry communication with the relay device 305, for example, by sending another message to the relay device 305. This other message may be the same as or a different message previously sent by the lower-priority requesting device 325 to the relay device 305. In some implementations, the lower-priority requesting device 325 may retry communication with a different relay device, for example, when the lower-priority requesting device 325 determines that a connection with another relay device is better than a connection with the relay device 305. In some implementations, the fallback message may also include an indication, for example, that the relay device 305 has contacted emergency services, as described above.

[0070] Relay device 305 can identify any appropriate number of requesting devices 325 as having higher priority. In some embodiments, relay device 305 can identify only a single requesting device 325 as having higher priority. In some embodiments, relay device 305 can identify a single requesting device 325 or multiple requesting devices 325 per sub-section (e.g., per quadrant) as having higher priority. In such embodiments, relay device 305 can establish higher-priority communication with multiple requesting devices 325 (e.g., one requesting device 325 per sub-section). The number of requesting devices 325 identified as having higher priority can be based on criteria such as the bandwidth of relay device 305, the number of sub-sections, the number of requesting devices, a predetermined number, a combination of two or more of these factors, or one or more other factors.

[0071] In some specific implementations, for example where a single requesting device 325 in each sub-section is identified as having higher priority, that requesting device 325 can assume one or more functions of a relay device, such as relay device 305, for one or more other requesting devices 325 in that sub-section. This allows network load to be shared among different devices and can significantly reduce overall network traffic.

[0072] Figure 4 Exemplary processing flows 400 according to various specific implementations are described. For example... Figure 4As shown, the processing flow 400 may include communication between relay device 405, requesting device 425A, and requesting device 425B. In some specific embodiments, relay device 405 may be similar to relay device 205 and / or relay device 305, and requesting devices 425A / 425B may be similar to requesting device 225 and / or requesting device 325. It should be understood that this example is intended as a highly simplified illustration of communication between two requesting devices and a relay device. In other specific embodiments, there may be many more requesting devices, for example, on the order of tens, hundreds, or thousands of requesting devices. Therefore, the process can be appropriately scaled so that, as described above, the process can be repeated for requesting devices in different sub-sections of the area.

[0073] like Figure 4 As shown, at 410, requesting device 425A can transmit a status message to relay device 405. Similarly, at 415, requesting device 425B can transmit a status message to relay device 405. In some specific implementations, the status messages at 410 and 415 can be similar to the status messages described above. Although the examples described herein involve status messages, relay device 405 and requesting devices 425A-B can use other suitable types of messages in similar processes. For example, requesting device 425A can transmit a request message to relay device 405 at 410, and requesting device 425B can transmit a text message, such as a status message or another suitable type of message, to relay device 405 at 415.

[0074] At 420, relay device 405 can process status messages. In some implementations, processing status messages may include identifying the priority of different status messages as described above. Processing status messages may additionally or alternatively include performing one or more other actions based on the status messages, such as contacting emergency services, establishing sub-sections, etc., as described above.

[0075] Based at least in part on the processing of the status message at 420, relay device 405 can transmit high-priority emergency response messages and / or fallback messages to one or more requesting devices, as described above. For example, in Figure 4 In the specific implementation depicted, the status message received from the first requesting device 425A at 410 is identified as a higher priority status message than the status message received from the second requesting device 425B. Therefore, the relay device 405 can transmit a higher priority emergency response message to the first requesting device 425A at 430, as shown in the figure. The status message received from the second requesting device 425B at 415 can be identified as having a lower priority, and the relay device 405 can transmit a fallback message to the second requesting device 425B at 435.

[0076] It should be understood that the specific embodiments described above and presented herein are intended as exemplary embodiments, and other embodiments may vary. For example, additional priority levels may exist beyond the “higher” and “lower” levels described herein. Furthermore, the terms “higher” and “lower” are intended to describe priority levels that are related to each other for the purposes discussed herein. Additionally, although the transmission of certain messages, such as those at 410 / 415 and 430 / 435, is depicted as sequential, in other embodiments, one or more messages may be transmitted simultaneously or at least partially overlapping in time in a different order than that shown.

[0077] In some implementations, relay device 405 may determine that two or more messages have the same priority, and that this priority is at least the highest priority currently being processed. In these implementations, relay device 405 may determine to send an urgent response message (or other positive response message) to each of the two or more requesting devices 425 associated with the two or more messages having the same priority. Furthermore, relay device 405 may send response messages to the two or more requesting devices 425 substantially simultaneously (e.g., as broadcast), serially (e.g., as unicast), or using any other available transmission scheme.

[0078] In some implementations, relay device 405 can identify two or more messages with different priorities as higher-priority messages. For example, when relay device 405 has a predetermined number of requesting devices that indicate the corresponding message should be processed (e.g., a response message should be sent to the requesting device, or the corresponding message should be forwarded to the requesting device, or both), relay device 405 can select a predetermined number of requesting devices whose messages have the highest priority compared to other received messages. Relay device 405 can then process the predetermined number of highest-priority messages. In other implementations, other priority setting schemes can be used. For example, the relay device can identify all received messages exceeding one or more thresholds as higher-priority. The thresholds can be any suitable thresholds, such as time thresholds, sorting thresholds, etc. Furthermore, relay device 405 can also distinguish messages within a priority setting category, such as by acting on one or more higher-priority messages when sending a shorter backoff (or other delayed) message to one or more devices associated with other higher-priority messages.

[0079] In some implementations, relay device 405 can forward messages based on the time the message was received. For example, relay device 405 can forward one or more first messages received within a first time period, while responding with a fallback message to one or more second messages received within a second time period. In some examples, the relay device can use one or more additional thresholds to perform this operation.

[0080] Figure 5 Exemplary technology 500 performed by a relay device is depicted. Depending on various specific implementations, the relay device may be a device such as relay device 205, or some other relay device.

[0081] Technique 500 may include, at 505, identifying a first message received from a first requesting device among a plurality of requesting devices at a location. In some embodiments, the first message may be related to an emergency or other event at that location. In some embodiments, the location may be a geographical area, such as a park, campus, city, town, or another suitable location. In some other embodiments, the location may be associated with a communication range, such as an effective range within which device-to-device or peer-to-peer communication (or other such mesh communication) can be transmitted.

[0082] Technique 500 may also include, at 510, identifying a second requesting device among a plurality of requesting devices at that location. In some examples, the second message may also be related to an emergency, for example, at a second location or at that location when the second message is the same emergency. In some other examples, the first message and the second message may relate to different situations or events.

[0083] The requesting device may be similar to, for example, requesting device 425A / 425B, or may be any other device suitable for requesting relay communication as described herein. The message may be similar to, for example, the status message described above with respect to element 410 or 415, or may be implemented using any other message format suitable for relay communication.

[0084] Technique 500 may also include, at 515, determining, at least in part, that the first message has a first high priority that satisfies a priority threshold based on parameters of the first message. The first priority level may be a high priority level.

[0085] Technique 500 may further include, at 520, determining that the second message has a second priority level that does not meet a priority threshold, based at least on parameters of the second message. The second priority level differs from the first priority level. The second priority level can be a low priority level, a medium priority level, etc., lower than the first higher priority level. The parameters may be, or include, for example, the location of the requesting device, a device identifier, the user identity of the requesting device, signal quality parameters, message type, or any / all of some other parameters as described above.

[0086] Technique 500 may further include transmitting a high-priority emergency response message to the first requesting device at point 525, at least based on the first message. The transmission may be at least partially based on the determination that the first priority level meets a priority threshold.

[0087] In some specific implementations, technique 500 may include transmitting a high-priority emergency response message to the first requesting device based on determining that the first message has the highest priority level. The high-priority emergency response message may be similar to, for example, the high-priority emergency response message described above with respect to element 430.

[0088] Technique 500 may further include, at 530, transmitting a rollback message to the second requesting device based at least on the second message. The transmission may be based at least in part on the determination that the second priority level does not meet a priority threshold.

[0089] In some implementations, technique 500 may include transmitting a rollback message to the second requesting device based at least on determining that the second message has a priority lower than the highest priority. Such a rollback message may resemble, for example, the rollback message described above with respect to element 435. In some implementations, a high priority level may be determined relative to messages received within a given time period. For example, if no higher priority message is received during the time window, a message with intermediate priority may be considered a high priority (or highest priority) message.

[0090] Figure 6 Exemplary techniques 600, implemented according to various specific embodiments, are described by requesting devices (such as one of requesting devices 425A, 425B, or some other requesting devices discussed herein).

[0091] Technique 600 may include, at 605, generating a message related to an event (e.g., an emergency) at the location of the requesting device based on user input. In some embodiments, the message may resemble those discussed above, for example, with respect to elements 410 or 415. In other embodiments, the message may have any other suitable format. As described above, the message may be generated based on a selection of predefined messages, through custom input (e.g., text, images, voice, etc.), through a combination of these, or through some other input.

[0092] Technology 600 may also include transmitting messages at 610 to a relay device, such as relay device 405. Such transmission can be made using any wireless communication technology, including cellular (e.g., 3GPP), WiFi (e.g., 802.11), Bluetooth, UWB, or other such communication technologies / protocols, or a combination of two or more of these technologies.

[0093] Technology 600 may also include identifying messages received from the relay device at 615, for example, in response to a message transmitted at 610. The received message may be a high-priority emergency response message, a fallback message, an acknowledgment (ACK) message, or any other such message.

[0094] It should be understood that the techniques 500 and 600 described above, as well as other techniques or processes discussed or described herein, are intended as exemplary techniques and may vary in other specific implementations. For example, other techniques may have more or fewer elements than those depicted herein, or elements may appear in a different order than described (e.g., the order of appearance may be different, or elements may appear at least partially simultaneously with each other), etc. Other variations may exist.

[0095] Figure 7 This is a flowchart of an exemplary process 700 for selectively forwarding messages. For example, process 700 may be used by relay device 205, relay device 305, or relay device 405. In some examples, process 700 may be used by a processor (e.g., a baseband processor).

[0096] The relay device determines that the notification device currently has network connectivity based at least in part on a first network state and a second network state (705). The first network state can be the state of the relay device. The second network state can be the state of the relay device or another device (e.g., a requesting device). The relay device can determine the state of the other device by receiving messages from the other device or by inferring the network connectivity state of the other device at least in part based on data received by the relay device, for example, using data received from a third-party system. The data received by the relay device may include alarms, advertisements, status indicators, news data, etc., indicating, for example, that one or more devices in an area within a threshold distance of the relay device do not have network connectivity.

[0097] The relay device notifies the device that it currently has network connectivity to at least one destination (710). For example, the relay device may transmit (e.g., broadcast) a message indicating that it has network connectivity. A connectivity confirmation may be sent in response to any appropriate trigger, such as determining that one or more neighboring devices do not have network connectivity. Separately or in conjunction with connectivity notification, the relay device may notify any / all compatible devices within a range (e.g., effective communication range, threshold range, predetermined range, etc.) that it can act as a relay device. In some cases, the relay device may use an interface other than the interface associated with the network type to which other devices do not have network connectivity to communicate with neighboring devices. For example, if the relay device determines that another device may not have terrestrial network connectivity, while the relay device has non-terrestrial network connectivity, the relay device may use a short-range communication protocol (e.g., Bluetooth or WiFi) to transmit an advertisement. Alternatively, the relay device may use the same interface to communicate with neighboring devices. For example, when neighboring devices do not have or may not have cellular network connectivity, the relay device may use cellular device-to-device (D2D) communication.

[0098] A relay device may receive two or more request messages, wherein each of the two or more request messages is received from a corresponding device among the two or more requesting devices (715). In some examples, a relay device may receive a first relay request from a first device and a second relay request from a second device. For example, after a relay device sends an advertisement or other notification, it may receive two or more request messages, such as requests for communication relay. In some cases, a relay device may receive multiple messages at substantially the same time or within the same time window. In other cases, a relay device may receive messages at different times. In some cases, the two or more requesting devices may not include at least one destination with which the device currently has a network connectivity.

[0099] The relay device selects one or more first request messages from two or more request messages and uses corresponding priorities (720). The relay device can determine corresponding priority levels for the two or more request messages, and / or for the corresponding devices from which the relay device receives the two or more request messages. The relay device can at least partially use the corresponding priority levels to select one or more first request messages.

[0100] The relay device can select the first request message at any appropriate time. In some implementations, the relay device selects the first request message when it receives it from the corresponding requesting device. In some implementations, the relay device can select the first request message after a time period has expired. In some cases, the time period can begin when two or more request messages are received at the earliest.

[0101] The relay device uses a network with which it is connected to forward one or more first request messages from at least one destination to the corresponding destination (725). For example, the relay device can use a connection to a second network to forward messages associated with the first relay request.

[0102] The relay device may have a connection to a non-terrestrial network, and the relay device may use the non-terrestrial network to forward one or more first request messages to, for example, another communication network, the Internet, etc. The relay device may determine the intended destination of the request message based at least in part on data associated with the request message, such data being included, for example, in fields of the request message header or payload.

[0103] The relay device transmits a fallback message (730) to one or more of the two or more requesting devices. For example, the relay device may transmit a fallback message to a second device. A second request message in one or more second request messages may be received from one or more of the two or more requesting devices. For example, in some implementations, the relay device may broadcast fallback messages addressed to one or more devices.

[0104] In some examples, after forwarding one or more first messages, the relay device may transmit a second rollback message to the device from which it received one or more first request messages. In some implementations, the second rollback message may include an instruction from the receiving device to roll back, for example, for a period of time or until the relay device sends another message allowing subsequent communication. This period of time may be the same as or a different length from the second period of time in the rollback message sent to a subset of devices. The first period of time in the rollback message sent to the device from which the first request messages were received may have a longer duration, a shorter duration, or the same duration as the period indicated as the second period of time.

[0105] The order of operations in process 700 described above is merely illustrative, and selective message forwarding can be performed in a different order. For example, the relay device may perform operation 720 at least partially before performing one or both of operations 705 and 710. This can occur when the relay device receives the first request message and uses at least partially the data from the first request message to determine the second network state of the device from which the first request message was received. In some embodiments, the relay device may perform operations 725 and 730 substantially simultaneously, or make them at least partially overlap in time. In some embodiments, the relay device may perform operation 730 and then perform operation 725.

[0106] In some implementations, process 700 may include additional operations, fewer operations, or some of these operations may be divided into multiple operations. For example, a relay device may perform operations 710 to 725; operations 710 to 720 and operation 730; no other operations are performed in process 700. In some examples, process 700 may include identifying an event that interrupts connectivity to a first network. Process 700 may include determining that the device has connectivity to a second network. Process 700 may include transmitting a message indicating that the device has network connectivity to one or more neighboring devices, for example, instead of announcing the message.

[0107] The examples described in this specification may relate to other types of situations, messages, or both. For example, while some examples are described in relation to a relay device receiving a status message or requesting a device to send a status message, other implementations may use other types of messages. For example, in some implementations, the message may be a non-status message, such as a non-status text message or an email.

[0108] Although some examples of the devices described in this specification are given in reference to emergency situations, the described operation is used in other types of situations. For example, when a device has limited or no connectivity to a wireless network but is able to transmit data to another device (e.g., another UE), the device may send a message.

[0109] Figure 8 The diagram illustrates a specific implementation of UE 800. UE 800 may be similar to... Figure 1 The UE 102 is essentially interchangeable with it.

[0110] UE 800 can be any mobile or non-mobile computing device, such as, for example, mobile phones, computers, tablets, industrial wireless sensors (e.g., microphones, carbon dioxide sensors, pressure sensors, humidity sensors, thermometers, motion sensors, accelerometers, laser scanners, fluid level sensors, stock sensors, voltmeters / ammeters, actuators, etc.), video surveillance / monitoring devices (e.g., cameras, camcorders, etc.), wearable devices (e.g., smartwatches), and loosely coupled IoT devices.

[0111] UE 800 may include a processor 802, an RF interface circuit 804, a memory / storage device 806, a user interface 808, a sensor 810, a drive circuit 812, a power management integrated circuit (PMIC) 814, an antenna structure 816, and a battery 818. The components of UE 800 may be implemented as integrated circuits (ICs), portions of integrated circuits, discrete electronic devices or other modules, logic components, hardware, software, firmware, or combinations thereof. Figure 7 The block diagram is intended to show a high-level view of some of the components of the UE 800. However, some of the components shown may be omitted, additional components may be present, and different arrangements of the components shown may occur in other specific implementations.

[0112] The components of UE 800 can be coupled to various other components via one or more interconnects 820, which can represent any type of interface, input / output, bus (local, system, or extension), transmission line, trace, optical connector, etc., allowing various circuit components (on common or different chips or chipsets) to interact with each other.

[0113] Processor 802 may include processor circuitry such as baseband processor circuitry (BB) 822A, central processing unit circuitry (CPU) 822B, and graphics processing unit circuitry (GPU) 822C. Processor 802 may include any type of circuitry or processor circuitry that executes or otherwise operates computer-executable instructions (such as program code, software modules, or functional processes from memory / storage device 806) to cause UE 800 to perform the operations described herein.

[0114] In some implementations, the baseband processor circuit 822A can access the communication protocol stack 824 in the memory / storage device 806 to communicate over a 3GPP-compatible network. Generally, the baseband processor circuit 822A can access the communication protocol stack to perform the following operations: user plane functions at the PHY, MAC, RLC, PDCP, SDAP, and PDU layers; and control plane functions at the PHY, MAC, RLC, PDCP, RRC, and non-access layers. In some implementations, PHY layer operations may be additionally / optionally performed by components of the RF interface circuit 804. The baseband processor circuit 822A can generate or process baseband signals or waveforms carrying information from a 3GPP-compatible network. In some implementations, the waveforms used for NR may be based on cyclic prefix OFDM "CP-OFDM" in the uplink or downlink, and Discrete Fourier Transform Extended OFDM "DFT-S-OFDM" in the uplink.

[0115] Memory / storage device 806 may include one or more non-transitory computer-readable media, including instructions (e.g., communication protocol stack 824) that can be executed by one or more processors in processor 802 to cause UE 800 to perform the various operations described herein. Memory / storage device 806 includes any type of volatile or non-volatile memory that can be distributed throughout UE 800. In some specific implementations, some memory / storage devices 806 may be located on processor 802 itself (e.g., L1 cache and L2 cache), while other memory / storage devices 806 may be located external to processor 802 but accessible via a memory interface. Memory / storage device 806 may include any suitable volatile or non-volatile memory, such as, but not limited to, dynamic random access memory (DRAM), static random access memory (SRAM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), flash memory, solid-state memory, or any other type of memory device technology.

[0116] The RF interface circuit 804 may include transceiver circuitry and a radio frequency front-end module (RFEM), which allows the UE 800 to communicate with other devices via a radio access network. The RF interface circuit 804 may include various components arranged in the transmit or receive path. These components may include, for example, switches, mixers, amplifiers, filters, synthesizer circuitry, control circuitry, etc.

[0117] In the receiving path, the RFEM can receive the radiated signal from the air interface via antenna structure 816 and continue to filter and amplify the signal (using a low-noise amplifier). This signal can be provided to the receiver of the transceiver, which downconverts the RF signal into a baseband signal that is provided to the baseband processor of processor 802.

[0118] In the transmission path, the transceiver's transmitter upconverts the baseband signal received from the baseband processor and provides the RF signal to the RFEM. The RFEM can then amplify the RF signal using a power amplifier before it is radiated across the air interface via antenna 816.

[0119] In various specific implementations, the RF interface circuit 804 can be configured to transmit / receive signals in a manner compatible with NR access technology.

[0120] Antenna 816 may include antenna elements to convert electrical signals into radio waves for propagation through the air and to convert received radio waves back into electrical signals. These antenna elements may be arranged in one or more antenna panels. Antenna 816 may have omnidirectional, directional, or combinations thereof antenna panels to enable beamforming and multiple-input / multiple-output communication. Antenna 816 may include microstrip antennas, printed antennas fabricated on the surface of one or more printed circuit boards, patch antennas, phased array antennas, etc. Antenna 816 may have one or more panels designed for a specific frequency band included in FR1 or FR2.

[0121] User interface 808 includes various input / output (I / O) devices designed to enable users to interact with UE 800. User interface 808 includes input device circuitry and output device circuitry. Input device circuitry includes any physical or virtual means for accepting input, particularly including one or more physical or virtual buttons (e.g., a reset button), a physical keyboard, a keypad, a mouse, a touchpad, a touchscreen, a microphone, a scanner, a headset, etc. Output device circuitry includes any physical or virtual means for displaying information or otherwise conveying information (such as sensor readings, actuator positions, or other similar information). Output device circuitry may include any number or combination of audio or visual displays, particularly including one or more simple visual outputs / indicators (e.g., binary status indicators, such as light-emitting diodes (LEDs) and multi-character visual outputs), or more complex outputs such as display devices or touchscreens (e.g., liquid crystal displays, LED displays, quantum dot displays, projectors, etc.), where the output of characters, graphics, multimedia objects, etc., is generated or produced by the operation of UE 800.

[0122] The driving circuit 812 may include software and hardware elements for controlling specific devices embedded in, attached to, or otherwise communicatively coupled to the UE 800. The driving circuit 812 may include various drivers that allow other components to interact with or control various input / output (I / O) devices that may exist within or be connected to the UE 800. For example, the driving circuit 812 may include: a display driver for controlling and allowing access to a display device; a touchscreen driver for controlling and allowing access to a touchscreen interface; a sensor driver for acquiring sensor readings of sensor circuit 728 and controlling and allowing access to sensor circuit 728; a driver for acquiring actuator positions of electromechanical components or controlling and allowing access to electromechanical components; a camera driver for controlling and allowing access to an embedded image capture device; and an audio driver for controlling and allowing access to one or more audio devices.

[0123] The PMIC 814 manages the power supplied to various components of the UE 800. Specifically, relative to the processor 802, the PMIC 814 can control power selection, voltage scaling, battery charging, or DC-DC conversion.

[0124] In some implementations, the PMIC 814 may control or otherwise become part of various power-saving mechanisms of the UE 800, including DRX, as discussed herein. The battery 818 may power the UE 800, but in some examples, the UE 800 may be installed in a fixed location and may have a power source coupled to the grid. The battery 818 may be a lithium-ion battery, a metal-air battery such as a zinc-air battery, an aluminum-air battery, a lithium-air battery, etc. In some implementations, such as in vehicle-based applications, the battery 818 may be a typical lead-acid automotive battery.

[0125] For ease of description, various components may be described as performing one or more tasks. Such descriptions should be interpreted as including the phrase "configured to". Statements describing a component as configured to perform one or more tasks are explicitly intended not to invoke the interpretation of 35 U.S.SC §112(f) for that component.

[0126] For one or more specific embodiments, at least one of the components shown in one or more of the foregoing figures may be configured to perform one or more operations, techniques, processes, or methods as described in the Examples section below. For example, the baseband circuitry described above in conjunction with one or more of the foregoing figures may be configured to operate according to one or more of the examples below. As another example, circuitry associated with the UE, base station, network element, etc., described above in conjunction with one or more of the foregoing figures may be configured to operate according to one or more of the examples shown in the Examples section below.

[0127] Various specific implementation examples

[0128] Example 1 includes a method comprising: identifying a first message received from a first requesting device among a plurality of requesting devices by a relay device; identifying a second message received from a second requesting device among the plurality of requesting devices by the relay device; determining, at least in part, that the first message has a first priority level that satisfies a priority threshold by the relay device; determining, at least in part, that the second message has a second priority level that does not satisfy the priority threshold by the relay device based on parameters of the second message; transmitting a relay message to a remote device at least in part based on the first message; and transmitting a rollback message to the second requesting device.

[0129] Example 2 includes the method according to Example 1, wherein the remote device is associated with an emergency service.

[0130] Example 3 includes the method according to any one of Examples 1 to 2, and further includes the relay device transmitting a response message to the first requesting device.

[0131] Example 4 includes the method according to Example 3, wherein the response message includes a request to establish a communication link between the relay device and the first requesting device.

[0132] Example 5 includes the method according to any one of Examples 3 to 4, wherein the response message includes a request for additional information.

[0133] Example 6 includes the method according to any one of Examples 3 to 5, wherein the response message includes an indication that the relay device sends a message to the remote device.

[0134] Example 7 includes the method according to any one of Examples 1 to 6, wherein the fallback message indicates the duration for which the second requesting device waits before transmitting another message to the relay device.

[0135] Example 8 includes the method according to any one of Examples 1 to 7, wherein the parameter of the first message is at least one of the following: the message type of the first message, the identity of the user of the first requesting device, an indication of the proximity of the first requesting device to the relay device, or a signal quality parameter associated with the first requesting device.

[0136] Example 9 includes the method according to Example 8, wherein the signal quality parameter is the reference signal received power (RSRP).

[0137] Example 10 includes the method according to any one of Examples 1 to 9, wherein the first status message is a status message in a predefined set of status messages.

[0138] Example 11 includes the method according to any one of Examples 1 to 10, wherein the relay device includes a user equipment (UE).

[0139] Example 12 includes the method according to any one of Examples 1 to 11, and further includes the relay device logically subdividing the locations of the plurality of requesting devices into a plurality of location segments.

[0140] Example 13 includes the method according to Example 12, wherein the first requesting device and the second requesting device are in a first location segment of the plurality of location segments, and wherein the method further includes: transmitting a second response message to the third requesting device by the relay device based at least in part on a determination that a third message received from the third requesting device in a second location segment of the plurality of location segments has a third priority level that satisfies the priority threshold; and transmitting a second fallback message to the fourth requesting device by the relay device based at least in part on a determination that a fourth message received from the fourth requesting device in the second location segment has a fourth priority level that does not satisfy the priority threshold.

[0141] Example 14 includes the method according to any one of Examples 1 to 13, wherein the first emergency situation is the same emergency situation as the second emergency situation.

[0142] Example 15 includes a method comprising: generating a status message related to an emergency at the location of a requesting device, at least in part based on user input; transmitting the status message to a relay device by the requesting device; and identifying a message received from the relay device, at least in part based on the status message; wherein: if the relay device determines that the status message has a high priority level, the message received from the relay device is a high-priority emergency response message; or, if the relay device determines that the status message has a priority level different from a high priority level, the message received from the relay device is a fallback message.

[0143] Example 16 includes the method according to Example 15, wherein the priority of the status message is based at least in part on at least one of the following: the message type of the status message, the user identity of the requesting device, the proximity of the requesting device to the relay device, and the signal quality parameters of the requesting device.

[0144] Example 17 includes a method according to any one of Examples 15 or 16, wherein generating the status message includes the requesting device identifying a pre-identified status message among a plurality of pre-identified status messages based at least in part on the user input.

[0145] Example 18 includes the method according to any one of Examples 15 to 17, wherein the high-priority emergency response message includes a request to establish an audio, video, or both communication link between the requesting device and the relay device.

[0146] Example 19 includes the method according to any one of Examples 15 to 18, wherein the message received from the relay device is the high-priority emergency response message, the high-priority emergency response message including a request for more information from the requesting device.

[0147] Example 20 includes the method according to any one of Examples 15 to 19, wherein the message received from the relay device includes an instruction from the relay device to send another message to the emergency services system.

[0148] Example 21 includes the method according to any one of Examples 15 to 20, further comprising the requesting device determining whether the message received from the relay device is a rollback message; and, at least in part based on the determination that the message received from the relay device is a rollback message, starting a timer having a duration indicating the time the requesting device waits before transmitting the status message to the relay device again.

[0149] Example 22 includes the method according to any one of Examples 15 to 21, wherein the fallback message includes an indication of the duration until the requesting device is able to transmit another status message to the relay device.

[0150] Example 23 includes the method according to any one of Examples 15 to 22, wherein the requesting device includes a UE.

[0151] Example 24 includes a method comprising: announcing that a device has network connectivity to at least one destination; receiving two or more request messages, each of the two or more request messages being received from a corresponding device among two or more requesting devices excluding the at least one destination, wherein the two or more request messages include one or more first request messages and one or more second request messages; selecting the one or more first request messages from the two or more request messages and using corresponding priorities; forwarding the one or more first request messages from the at least one destination to the corresponding destination using the network connectivity; and transmitting a fallback message to each device from a subset of the two or more requesting devices, wherein each second request message from the one or more second request messages is received from a device in the subset of devices.

[0152] Example 25 includes the method according to Example 24, including determining, at least in part, based on a first network state and a second network state of the device, that the device currently has network connectivity.

[0153] Example 26 includes the method according to Example 25, comprising: determining that the device has a connection to a first type of network as a first network state of the device; and determining that the device does not have a connection to a second different type of network as a second network state of the device.

[0154] Example 27 includes a method according to any one of Examples 24 to 26, wherein selecting the one or more first request messages includes: selecting one message from the one or more first request messages at a first time within a threshold time period of receiving the one message; and selecting another message from the one or more first request messages at a second time after the first time period of receiving the other message, wherein the first time and the second time are different times.

[0155] Example 28 includes the method according to any one of Examples 24 to 27, wherein receiving the two or more request messages includes receiving the two or more request messages within a time period; selecting the one or more first request messages includes: determining that the time period has elapsed after receiving the earliest received message from the two or more request messages; and selecting the one or more first request messages from the two or more request messages, and selecting the one or more first request messages based at least in part on the determination that the time period has elapsed.

[0156] Example 29 includes the method according to any one of Examples 24 to 28, wherein transmitting the rollback message includes broadcasting the rollback message to the devices in the subset of devices.

[0157] Example 30 includes a method according to any one of Examples 24 to 29, wherein selecting the one or more first request messages includes: determining a corresponding priority for at least some of the two or more requesting devices; and selecting the one or more first request messages at least in part based on the corresponding priority of the requesting device from which the request message is received.

[0158] Example 31 includes a method according to any one of Examples 24 to 30, comprising: after forwarding the one or more first request messages, transmitting an acknowledgment message to at least one requesting device that received a corresponding first request message from the one or more first request messages, the acknowledgment message instructing the corresponding requesting device to back off within a first time period, wherein the back-off message instructs the corresponding device in the subset of devices to back off within a second time period shorter than the first time period.

[0159] Example 32 includes a method comprising: identifying an event that interrupts connectivity to a first network; determining for a device that the device has connectivity to a second network; transmitting a message indicating that the device has network connectivity to one or more adjacent devices; receiving a first relay request from the first device and a second relay request from the second device; forwarding a message associated with the first relay request using the connection to the second network; and transmitting a fallback message to the second device.

[0160] Example 33 includes the method according to Example 32, comprising: determining, at least in part, based on identifying the event of interruption of connectivity to the first network and determining that the device has connectivity to the second network, to transmit the message indicating that the device has network connectivity, wherein transmitting the message is at least in part based on determining to transmit the message.

[0161] Example 34 includes the method according to Example 33, wherein: the first network includes a first type of network; and the second network includes a second type of network.

[0162] Example 35 includes the method according to any one of Examples 32 to 34, wherein identifying the event of interrupted connectivity to the first network includes determining that the device has lost its connection to the first network.

[0163] Example 36 includes the method according to any one of Examples 32 to 35, wherein identifying the event of interruption of connectivity to the first network includes receiving data from a third-party system indicating the interruption of connectivity to the first network.

[0164] Example 37 includes a method according to any one of Examples 32 to 36, wherein receiving the first relay request and the second relay request includes: receiving the first relay request from the first device at a first time; and receiving the second relay request from the second device at a second time after the first time; forwarding the message associated with the first relay request in response to determining that the first time meets a time threshold; and transmitting the rollback message to the second device in response to determining that the second time does not meet the time threshold.

[0165] Example 38 includes the method according to any one of Examples 32 to 37, wherein transmitting the rollback message includes broadcasting the rollback message to a plurality of second devices including the second device.

[0166] Example 39 includes a method according to any one of Examples 32 to 38, wherein: in response to determining that a first priority of the first relay request meets a priority threshold, the message associated with the first relay request is forwarded; and in response to determining that a second priority of the second relay request does not meet the priority threshold, the fallback message is transmitted to the second device.

[0167] Example 40 includes a method according to any one of Examples 32 to 39, comprising: after forwarding the message, transmitting to the first device an acknowledgment message instructing the first device to roll back within a first time period, wherein the rollback message instructs the second device to roll back within a second time period shorter than the first time period.

[0168] Example 41 includes an apparatus comprising components for performing the method according to any one of Examples 1 to 40.

[0169] Example 42 includes one or more non-transitory computer-readable media, the one or more non-transitory computer-readable media including instructions that, when executed by one or more processors of an electronic device, cause the electronic device to perform the method according to any one of Examples 1 to 40.

[0170] Example 43 includes an electronic device comprising: one or more processors; and one or more non-transitory computer-readable media, the one or more non-transitory computer-readable media including instructions that, when executed by one or more processors of the electronic device, cause the electronic device to perform the method according to any one of Examples 1 to 40.

[0171] Example 44 includes means configured to perform one or more of the disclosed operations.

[0172] Example 45 includes a system for performing one or more of the disclosed operations as described herein.

[0173] A system (e.g., a base station, an apparatus including one or more baseband processors, etc.) may be configured to perform a specific operation or action by means of software, firmware, hardware, or a combination thereof installed on the system that causes the system to perform actions in operation. The operation or action performed by the system may include the method described in any of the embodiments 1 to 40 or other embodiments described throughout this specification.

[0174] Unless otherwise expressly stated, any of the examples above may be combined with any other example (or combination of examples). The foregoing description of one or more specific embodiments provides illustration and description, but is not intended to be exhaustive or to limit the scope of the embodiments to the precise form disclosed. In view of the teachings above, modifications and variations are possible, or can be derived from the practice of various specific embodiments.

[0175] While the specific embodiments described above have been described in considerable detail, many variations and modifications will become apparent to those skilled in the art once the disclosure is fully understood. This disclosure is intended to render the following claims as encompassing all such variations and modifications.

[0176] As is widely recognized, the use of personally identifiable information should comply with privacy policies and practices that are generally accepted to meet or exceed industry or governmental requirements for protecting user privacy. Specifically, personally identifiable information data should be managed and processed to minimize the risk of unintentional or unauthorized access or use, and the nature of authorized use should be clearly explained to users.

Claims

1. A method for relay communication, comprising: Identify events that disrupt connectivity to the first network; The device is determined to have a connection to a second network; The determination to transmit a message indicating that the device has network connectivity is based at least in part on identifying the event that interrupts connectivity to the first network and determining that the device has connectivity to the second network; Based at least in part on the determination to transmit the message, the message indicating that the device has network connectivity is transmitted to one or more adjacent devices; Receive a first relay request from a first device and a second relay request from a second device; The connection to the second network is used to forward messages associated with the first relay request; as well as Transmit a rollback message to the second device.

2. The method according to claim 1, wherein: The first network includes a first type of network; and The second network includes a second type of network.

3. The method of claim 1, wherein identifying the event that interrupts connectivity to the first network comprises: It was determined that the device had lost its connection with the first network.

4. The method of claim 1, wherein identifying the event of interruption of connectivity to the first network includes receiving data from a third-party system indicating the interruption of connectivity to the first network.

5. The method according to claim 1, wherein: Receiving the first relay request and the second relay request includes: Receive the first relay request from the first device at the first time; and The second relay request is received from the second device at a second time after the first time. In response to determining that the first time meets a time threshold, the message associated with the first relay request is forwarded; and In response to determining that the second time does not meet the time threshold, the rollback message is transmitted to the second device.

6. The method of claim 1, wherein transmitting the rollback message comprises broadcasting the rollback message to a plurality of second devices including the second device.

7. The method according to claim 1, wherein: In response to determining that the first priority of the first relay request meets the priority threshold, the message associated with the first relay request is forwarded; as well as In response to determining that the second priority of the second relay request does not meet the priority threshold, the fallback message is transmitted to the second device.

8. The method according to claim 1, comprising: After forwarding the message, a confirmation message instructing the first device to roll back within a first time period is transmitted to the first device. The rollback message indicates that the second device rolls back within a second time period that is shorter than the first time period.

9. An apparatus comprising one or more processors, said one or more processors being configured to perform operations, said operations including: Identify events that disrupt connectivity to the first network; It is determined that the device has a connection to a second network; The determination to transmit a message indicating that the device has network connectivity is based at least in part on identifying the event that interrupts connectivity to the first network and determining that the device has connectivity to the second network; Based at least in part on the determination to transmit the message, the message indicating that the device has network connectivity is transmitted to one or more adjacent devices; Receive a first relay request from a first device and a second relay request from a second device; The connection to the second network is used to forward messages associated with the first relay request; as well as Transmit a rollback message to the second device.

10. The apparatus according to claim 9, wherein: The first network includes a first type of network; and The second network includes a second type of network.

11. The apparatus of claim 9, wherein identifying the event of interrupted connectivity to the first network comprises: It was determined that the device had lost its connection with the first network.

12. The apparatus of claim 9, wherein identifying the event of interruption of connectivity to the first network includes receiving data from a third-party system indicating the interruption of connectivity to the first network.

13. The apparatus according to claim 9, wherein: Receiving the first relay request and the second relay request includes: Receive the first relay request from the first device at the first time; and The second relay request is received from the second device at a second time after the first time. In response to determining that the first time meets a time threshold, the message associated with the first relay request is forwarded; and In response to determining that the second time does not meet the time threshold, the rollback message is transmitted to the second device.

14. The apparatus of claim 9, wherein transmitting the rollback message comprises broadcasting the rollback message to a plurality of second devices, including the second device.

15. The apparatus of claim 9, wherein the operation includes, for each of the first relay request and the second relay request, determining whether to transmit a rollback message in response to the receipt of the relay request, wherein: In response to determining that the transmission of the fallback message should be skipped for the first relay request, the message associated with the first relay request is forwarded; as well as In response to determining that a rollback message needs to be transmitted in response to the second relay request, the rollback message is transmitted to the second device.

16. The apparatus of claim 9, wherein the operation comprises: After forwarding the message, a confirmation message instructing the first device to roll back within a first time period is transmitted to the first device. The rollback message indicates that the second device rolls back within a second time period that is shorter than the first time period.

17. A non-transitory computer storage medium encoded with instructions, the instructions causing the one or more processors of the device to perform operations when executed by the one or more processors of the device, the operations including: Identify events that disrupt connectivity to the first network; It is determined that the device has a connection to a second network; The determination to transmit a message indicating that the device has network connectivity is based at least in part on identifying the event that interrupts connectivity to the first network and determining that the device has connectivity to the second network; Based at least in part on the determination to transmit the message, the message indicating that the device has network connectivity is transmitted to one or more adjacent devices; Receive a first relay request from a first device and a second relay request from a second device; The connection to the second network is used to forward messages associated with the first relay request; as well as Transmit a rollback message to the second device.