(19)
(11)EP 2 918 140 B1

(12)EUROPEAN PATENT SPECIFICATION

(45)Mention of the grant of the patent:
06.05.2020 Bulletin 2020/19

(21)Application number: 12888043.2

(22)Date of filing:  07.11.2012
(51)Int. Cl.: 
H04W 88/04  (2009.01)
H04W 52/02  (2009.01)
H04W 76/10  (2018.01)
H04W 84/18  (2009.01)
H04W 4/00  (2018.01)
H04W 4/80  (2018.01)
H04W 84/04  (2009.01)
(86)International application number:
PCT/CN2012/084209
(87)International publication number:
WO 2014/071564 (15.05.2014 Gazette  2014/20)

(54)

PROXY CONNECTION METHOD AND APPARATUS

PROXYVERBINDUNGSVERFAHREN UND -VORRICHTUNG

PROCÉDÉ ET APPAREIL DE CONNEXION PAR SERVEUR MANDATAIRE


(84)Designated Contracting States:
AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

(43)Date of publication of application:
16.09.2015 Bulletin 2015/38

(73)Proprietor: Provenance Asset Group LLC
Pittsford, NY 14534 (US)

(72)Inventors:
  • CHEN, Canfeng
    Beijing 100102 (CN)
  • LIU, Jia
    Beijing 100085 (CN)

(74)Representative: Derry, Paul Stefan 
Venner Shipley LLP 200 Aldersgate
London EC1A 4HD
London EC1A 4HD (GB)


(56)References cited: : 
CN-A- 1 798 354
JP-A- 2004 147 017
US-A- 5 907 540
US-B1- 6 968 153
CN-A- 101 098 180
JP-A- 2009 246 419
US-B1- 6 718 159
  
      
    Note: Within nine months from the publication of the mention of the grant of the European patent, any person may give notice to the European Patent Office of opposition to the European patent granted. Notice of opposition shall be filed in a written reasoned statement. It shall not be deemed to have been filed until the opposition fee has been paid. (Art. 99(1) European Patent Convention).


    Description

    Field



    [0001] The present application relates to proxy connections. In particular, it relates to the field of Bluetooth communications and more specifically to Bluetooth Low Energy.

    Background



    [0002] Bluetooth Low Energy (BLE) is a new wireless communication technology published by the Bluetooth SIG as a component of Bluetooth Core Specification Version 4.0. BLE is a lower power, lower complexity, and lower cost wireless communication protocol, designed for applications requiring lower data rates and shorter duty cycles. Inheriting the protocol stack and star topology of classical Bluetooth, BLE redefines the physical layer specification, and involves many new features such as a very-low power idle mode, a simple device discovery, and short data packets, etc.

    [0003] BLE technology is aimed at devices requiring a low power consumption, for example devices that may operate with one or more button cell batteries such as sensors, key fobs, and/or the like. BLE can also be incorporated into devices such as mobile phones, smart phones, tablet computers, laptop computers, desktop computers etc.

    [0004] US6718159 discloses a radio communication system wherein a plurality of radio stations perform data exchange by radio communication, each of the radio stations has a function of outputting data to another radio station in the radio communication system, a function of receiving data from another radio station, and a function of relaying data in response to a request from another radio station. When the radio station outputs data to a specific target radio station but there is no acknowledgment from the target radio station, the radio station outputs relay requests to many unspecified radio stations. The radio stations, which have received the relay requests, relay and output the data simultaneously to the target radio station.

    [0005] US5907540 discloses a radio data communication network where a plurality of radio data communication apparatuses mutually communicate information through frames carried by radio waves, a communication method using radio data communication apparatuses having a relay function is provided. When two radio data communication apparatuses cannot directly communicate with each other due to the limit of the radio wave range, another radio data communication apparatus serves as a relay station to relay frames between the two apparatuses, thus extending a communicable range.

    [0006] US6968153 discloses extending the range of effective communication as between Bluetooth enabled devices. A Bluetooth repeater may receive Bluetooth communications from an originating Bluetooth enabled device within range and then forward the same data to an intended recipient that was outside the range of the originating Bluetooth enabled device. In one embodiment, the data is forwarded with minor modifications to the source address so that subsequent message replies will be sent to the Bluetooth repeater for forwarding to the proper message originator. Source, destination, and repeater transceiver addresses are stored in the translation database to insure proper forwarding of Bluetooth messages between out of range Bluetooth devices.

    Summary



    [0007] Aspects of the invention are defined in the appended independent claims, with optional features defined in the dependent claims appended thereto.

    Brief Description Of The Drawings



    [0008] For a more complete understanding of example embodiments of the present invention, reference is now made to the following descriptions taken in connection with the accompanying drawings in which:

    Figure 1 is a schematic diagram of three devices that are used to discuss various embodiments of the invention;

    Figure 2 presents the format of an Advertising Channel PDU used in embodiments of the invention;

    Figure 3 shows a payload of a proxy connection initiation request message used in embodiments of the invention;

    Figure 4 shows a payload of a proxy setup request message used in embodiments of the invention;

    Figure 5 is a signaling diagram and illustrates operation of the three devices of Figure 1 according to various aspects of the invention;

    Figure 6 is a flow chart illustrating operation of the client device of Figure 1 when setting up a proxy connection according to various aspects of the invention;

    Figure 7 is a flow chart illustrating operation of the proxy device of Figure 1 when setting up a proxy connection according to various aspects of the invention;

    Figure 8 is a flow chart illustrating operation of the proxy device of Figure 1 when forwarding data packets according to various aspects of the invention; and

    Figure 9 is a flow chart illustrating operation of the proxy device of Figure 1 when managing a proxy connection according to various aspects of the invention.


    Detailed Description Of Various Embodiments



    [0009] The following acronyms are used in the specification and have the meanings referred to:
    BLE:
    Bluetooth Low Energy
    LE:
    Low Energy
    BT SIG:
    Bluetooth Special Interest Group
    RFU:
    Reserved for Future Use


    [0010] The latest version of the BLE specification defines three advertising channels, which serve for device discovery and other broadcasting purpose. To identify BLE devices, two important identifies - Device Address and Device Name are highly relied upon.

    [0011] According to the BLE specification, packets sent in the advertising channels (index=37, 38 and 39) shall contain the device addresses, which are used to identify a LE device. There are two types of device addresses: public device address and random device address, each of them is 48 bits in length, and a device shall contain at least one type of device address and may contain both.

    Public Device Address



    [0012] The content of a public device address contains two fields:
    • company_assigned field is in the 24 least significant bits
    • company_id field is in the 24 most significant bits


    [0013] The public device address shall be created in accordance with section 9.2 ("48-bit universal LAN MAC addresses") of the IEEE 802-2001 standard (http://standards.ieee.org/getieee802/download/802-2001.pdf) and using a valid Organizationally Unique Identifier (OUI) obtained from the IEEE Registration Authority (see http://standards.ieee.org/regauth/oui/forms/ and sections 9 and 9.1 of the IEEE 802-2001 specification).

    Random Device Address



    [0014] A random device address is divided into the following two fields:
    • hash field is in the 24 least significant bits
    • random field is in the 24 most significant bits
    The detailed specification of the hash field and random field can be found in BT Spec. v4.0, Vol.3, Part C, Section 10.8.2.3 and Section 10.8.2.2, respectively.

    [0015] On the other hand, the Generic Access Profile (GAP) also provides a Local Name AD Type to contain the device name in the BLE advertising data (BT Specification. v4.0, Vol.3, Part C, Section 11.1.2).

    [0016] Figure 1 shows a system including components according to embodiments of the invention. The system 100 includes a client device 110, a proxy device 120 and a target device 130. The client device 110 includes a Bluetooth Low Energy (BLE) module 111, which operates according to the BLE standard, currently at version 4.0. The proxy device 120 includes a BLE module 121, which also operates according to the BLE standard. The target device 130 includes a BLE module 131, which also operates according to the BLE standard.

    [0017] Each of the BLE modules 111, 121, 131 is substantially the same, so only one will be described here. The BLE module 111 of the client terminal no includes a processor 112. The processor 112 is connected to volatile memory such as RAM 113 by a bus 118. The bus 118 also connects the processor 112 and the RAM 113 to non-volatile memory, such as ROM 114. A transceiver 115 is coupled to the bus 118, and thus also to the processor 112 and the memories 113, 114. An antenna 116 is coupled to the transceiver 115. Within the ROM 114 is stored a computer program 117. This may be in the form of firmware. Alternatively, it may be in the form of an operating system and one or more applications, for instance.

    [0018] In the BLE module 121 of the proxy device 120, a processor 122, RAM 123, ROM 124, a transceiver 125, an antenna 126, software 127 and a bus 128 are constituted and connected in the same way as in the corresponding components of the BLE module 111. Similarly, in the target module 130, the BLE module 131 includes a processor 132, RAM 133, ROM 134, a transceiver 135, an antenna 136, software 137 and a bus 138 having the same functions and connections as the corresponding components in the BLE module 111 of the client device 110.

    [0019] Each of the BLE modules 111, 121, 131 may take any suitable form. Generally speaking, the BLE module 111 of the client device 110 may comprise processing circuitry 112, including one or more processors, and a storage device 114, 113, comprising a single memory unit or a plurality of memory units. The storage device 114, 113 may store computer program instructions that, when loaded into the processing circuitry 112, control the operation of the BLE module 111.

    [0020] In addition to the BLE module 111, the client terminal no comprises a number of components which are indicated together at 119. These components 119 may include any suitable combination of a display, a user input interface, a communication interface, a speaker, a microphone, and a camera. The components 119 may include a processor arrangement, a volatile memory (e.g. RAM) and non-volatile memory (e.g. ROM), connected to the processor arrangement. The proxy terminal 120 comprises a number of such components which are indicated together at 129. The target terminal 130 comprises a number of such components which are indicated together at 139.

    [0021] The terminals 110, 120, 130 may be mobile phones, smart phones, tablet computers, laptop computers etc. The terminals 110, 120, 130 may be based around any suitable operating system, for instance the Symbian operating system or Microsoft Windows operating system, although any other operating system may instead be used. The terminals 110, 120, 130 may run different operating systems.

    [0022] Each of the BLE modules 111, 121, 131 is configured to communicate with other BLE or Bluetooth modules. Basic operation of the modules is the same.

    [0023] Generally speaking, embodiments of the invention allow a Bluetooth connection between the client device 110 and the target device 130 by way of the proxy device 120. To achieve this, the client device 110 and the proxy device 120 each operate differently to conventional operation. Through the different operation, the client device 110 may have a Bluetooth connection with a target device 130 even though the devices may not be within range of one another such that they can form a Bluetooth connection directly.

    [0024] Briefly, the client device 110 is configured to transmit a new kind of advertising channel packet data unit (PDU). In response to receiving a certain advertising PDU from the client device 110, the proxy device 120 sends an advertising PDU to the target device 130. Thereafter, the proxy device 120 acts as a go-between for the client device 110 and the target device 130.

    [0025] Embodiments of the present invention provide an extension to the current Bluetooth standard in three ways. The first is that it moves away from peer-to-peer connection set-up, which is the only connection set-up that is possible with the current Bluetooth standard. The second is to extend the limited transmission range (of approximately 50 metres) which is inherent in the current Bluetooth standard. The third is to provide routing capability, which is currently absent from the Bluetooth standard.

    [0026] When a BLE packet is transmitted in an advertising physical channel, the PDU shall be the Advertising Channel PDU. When a packet is transmitted in a data physical channel, the PDU shall be the Data Channel PDU. A general advertising channel PDU will now be described with reference to Figure 2. After the general description of the PDU, it will be described what differences there are between PDUs used in embodiments of this invention and other PDUs.

    [0027] In a BLE embodiment, the format of link layer packet that contains the Advertising Channel PDU is shown in Figure 2. The PDU is encapsulated in the link layer packet.

    [0028] As shown in Figure 2, there are four main components to the message. The first part is a preamble. The second part is an Access Address. The third part is a packet data unit (PDU). The fourth part is a cyclic redundancy check (CRC). Here, the preamble is one octet (eight data bits, also known as one byte). The Access Address is four octets, generated by the device in the Initiating State and will be used in data channel packets to distinguish each Link Layer connection between any two devices (BT Specification. v4.0, Vol.6, Part B, Section 2.1.2). The PDU is between two and 39 octets. The CRC is three octets.

    [0029] As shown in Figure 2, the PDU includes two main sections. The first is the header, and the second is the payload. The header here has 16 bits (two octets). The payload has a length that is between zero and 37 octets, as per the length field in the header part of the PDU.

    [0030] The header is shown in Figure 2 as being divided into six fields. The PDU type field comprises four bits. A first reserved for future use (RFU) field comprises two bits. A TxAdd field is one bit. An RxAdd field is one bit. The Length field includes six bits. The sixth field is a second RFU field which includes two bits.

    [0031] The RFU bits in the header of the PDU are reserved for future use (RFU) in version 4.0 of the BLE specification.

    [0032] In this embodiment, two new PDU Types are provided. The formats of the PDU Types are as follows:
    PDU Type (b3b2b1b0)Packet Name
    0111 (or other reserved number) ADV_PROXY_IND
    1000 (or other reserved number) PROXY_REQ


    [0033] The current BLE specification defines several types of advertising channel PDU, e.g., ADV_IND (oboooo), ADV_DIRECT_IND (0b0001), and CONNECT_REQ (0b0101) (see Bluetooth V4.0, Vol. 6, Part B, Sec. 2.3).

    [0034] The payload section of the PDU may include different fields, in accordance to the specification of different types of Advertising PDU. For example, the ADV_IND PDU includes two fields. The first is six octets long and is called AdvA. The second part is between zero and 31 octets long and is called AdvData. For another example, the ADV_DIRECT_IND PDU includes two fields. The first is six octets long and is called AdvA. The second part is six octets long and is called InitA.

    [0035] Figure 3 shows the payload of the ADV_PROXY_IND PDU. This payload, which is referred to as the Payload field in Figure 2, is the detailed format when the PDU Type filed is set to 0111.

    [0036] The payload of ADV_PROXY_IND PDU consists of two fields: AdvA and TgtA.

    [0037] The AdvA field includes the address of the advertiser. The AdvA field contains either the advertiser's public or random device address. Which address is included is indicated by the value in the TxAdd field. In the embodiment described with reference to Figure 1, the advertiser is the client device 110.

    [0038] The TgtA field is the address of the target with which the advertiser is attempting to connect. The TgtA field contains the public or random device address of the target. Which address is included is indicated by the value in the RxAdd field. In the embodiment described with reference to Figure 1, the target is the target device 130.

    [0039] Figure 4 shows the payload of the PROXY_REQ PDU. This payload, which is referred to as the Payload field in Figure 2, is the detailed format when the PDU Type filed is set to 1000.

    [0040] The payload of PROXY_REQ PDU consists of three fields: PrxA, AdvA and LLData.

    [0041] The PrxA field contains the initiator's public or random device address. Which address is included is indicated by the value in the TxAdd field. In the embodiment described with reference to Figure 1, the initiator is the proxy device 120.

    [0042] The AdvA field contains the advertiser's public or random device address. Which address is included is indicated by the value in the RxAdd field.

    [0043] The LLData field contains specific data for connection setup, which assemble those contained in the CONNECT_REQ PDU (see Bluetooth V4.0, Vol.6, Part B, Sec. 2.3.3.1, Fig. 2.11).

    [0044] Operation of the various devices in providing a proxy-based connection between the client device 110 and the target device 130 will now be described with reference to Figures 5 to 9.

    [0045] Reference is made firstly to Figure 5. Here, the client device 110 intends to communicate with the target device 130. However, the radio propagation conditions between the client device 110 and the target device 130 are such that direct communication cannot be established between these devices. The proxy device 120 has reachability to both the client device 110 and the target device 130. The proxy device 120 may act as an intermediary to assist the client device 110 accessing the target device 130.

    [0046] Initially, the client device 110 transmits direct advertising messages 150A. These are PDUs of the ADV_DIRECT_IND PDU Type. The ADV_DIRECT_IND PDUs are addressed to the target device 130 in the sense that they include the address of the target device 130 in the InitA field of the PDU. Because the target device 130 is out of range of the client device 110, none of the ADV_DIRECT_IND PDU messages reaches the target device 130.

    [0047] After the client device 110 has detected that a number of ADV_DIRECT_IND PDU messages have been transmitted without a response from the target device 130, the client device 110 stops sending ADV_DIRECT_IND PDU messages 150 and instead starts sending ADV_PROXY_IND PDU messages 151. These messages are configured as described above. As such, the PDU Type field is populated with the data that is reserved for the ADV_PROXY_IND PDU (in this example 0111). Also, the AdvA field in the payload of the ADV_PROXY_IND PDU includes the address of the client device 110. The TgtA field in the payload of the ADV_PROXY_IND PDU includes the address of the target device 130 with which the client device 110 is attempting to connect.

    [0048] The proxy 120 responds to receiving an ADV_PROXY_IND PDU 151 from the client device 110 by sending an ADV_DIRECT_IND PDU 152, which is then received at the target 130. The ADV_DIRECT_IND PDU 152 may take any suitable form and may for instance take the form mandated by the BLE specification. The ADV_DIRECT_IND PDU is addressed to the target device 130 by including the address of the target device that was received in the TgtA field of the ADV_PROXY_IND PDU 151 in the InitA field of the ADV_DIRECT_IND PDU.

    [0049] In response to receiving the ADV_DIRECT_IND PDU 152, the target 130 sends a CONNECT_REQ PDU 153 to the proxy 120. The CONNECT_REQ PDU 153 may take any suitable form, and may for instance take the form specified in section 2.3 of part B of Bluetooth v4.0.

    [0050] Following receipt of the CONNECT_REQ PDU 153 by the proxy device 120, a BLE connection 154 is established between the proxy device 120 and the target device 130.

    [0051] After having received the CONNECT_REQ PDU 153 from the target device 130, the proxy device 120 waits until it receives another ADV_PROXY_IND PDU 151 from the client device 110. Upon receiving the next ADV_PROXY_IND PDU 151, the proxy device 120 sends a PROXY_REQ PDU 155 to the client device 110. The PROXY_REQ PDU 155 takes the form specified above. In particular, the PDU Type field in the PROXY_REQ PDU includes 1000, or whatever other number is assigned to the PROXY_REQ PDU. The PROXY_REQ PDU 155 includes the address of the proxy device 120 in the PrxA field. Whether the address is the public or random address is indicated by data included in the TxAdd field. The AdvA field includes the address of the client device 110. Whether this is the public or random address is indicated by the data stored in RxAdd. The LLData field includes specific data for connection setup. The specific data for the connection setup that is included in the LLData field corresponds to the data included in the CONNECT_REQ PDU 153, although it instead relates to the connection between the proxy device 120 and the client device 110.

    [0052] Upon receiving the PROXY_REQ PDU 155, a BLE connection 156 is established between the client 110 and the proxy device 120.

    [0053] By virtue of the BLE connection 156 between the client device 110 and the proxy device 120 and the other BLE connection 154 between the proxy device 120 and the target device 130, a proxy-based connection 157 is established between the client device 110 and the target device 130.

    [0054] In this proxy-based connection 157, there are a number of things to note. The first is that the proxy device 120 acts as a High Anonymity proxy between the client device 110 and the target device 130. Secondly, the client device 110 connects to the proxy 120 as through it is connecting to the target device 130. Put another way, once the BLE connection 156 is established between the client device 110 and the proxy device 120, the client device 110 transmits and receives packets as though it were connected directly to the target device 130. Thirdly, the target device 130 is unaware of the existence of the client device 110 and does not know the accessing activities of the client device 110, but considers that it is communicating with a proxy device 120. Put another way, once the BLE connection 154 is established between the proxy device 120 and the target device 130, the target device 130 has an anonymous connection, but not a transparent connection, to the client device 110.

    [0055] Figure 6 illustrates steps taken by the client device 110 in the process of setting up the proxy-based connection 157 with the target device 130.

    [0056] The operation starts at step S1.

    [0057] At step S2, the client device 110 sends the ADV_DIRECT_IND PDU 150. At step S3, it is determined whether a CONNECT_REQ PDU has been received. Such a PDU will be received where the target device 130 is within range of the client device 110. In the event of a positive determination, at step S4 the client device 110 connects to the target device 130. After step S4, the operation ends at step S5.

    [0058] If a CONNECT_REQ PDU is not received at step S3, at step S6 it is determined whether an advertising timeout has expired. The timeout may be expressed in terms of a measure of time or in terms of a number of ADV_DIRECT_IND messages. If the timeout has not expired, the operation returns to step S2, where another ADV_DIRECT_IND message is transmitted. Steps S2, S3 and S6 are repeated until either a CONNECT_REQ PDU message 153 is determined to have been received at step S3 or the advertising timeout is determined to have expired at step S6.

    [0059] Once the timeout expires at step S6, at step S7 an ADV_PROXY_IND PDU 151 is sent by the client device 110. At step S8, it is then determined whether a PROXY_REQ PDU 155 has been received. On a negative determination, at step S9 it is determined whether an advertising timeout has expired. The timeout of step S9 may be expressed as a measure of time or as a measure of a number of PROXY_REQ messages. If the timeout has not expired, the operation returns to step S7, where another ADV_PROXY_IND PDU is transmitted.

    [0060] If at step S9 it is determined that the timeout has expired, the operation proceeds to step S5, where it ends.

    [0061] Steps S7, S8 and S9 are repeated until either it is determined at step S9 that the timeout has expired or it is determined at step S8 that a PROXY_REQ PDU has been received. On a positive determination at step S8, the operation proceeds to an optional step S10. Here, it is determined whether the PrxA that is included in the received PROXY_REQ PDU is included in a white list of permitted proxy devices 120. On a negative determination, the operation returns to step S7, where another ADV_PROXY_IND message is transmitted. On a positive determination, or if the optional step S10 is not present, at step S11 the client device 110 connects to the proxy device 120. Following connection at step S11, the operation ends at step S5.

    [0062] The inclusion of step S10 and the checking of the PrxA identified in the PROXY_REQ PDU against the white list provides security for the client device 110. In particular, it ensures that a connection is made only to proxy devices 120 that are trustable by the client device 110. If a proxy device 110 that responds with a PROXY_REQ message is not trusted by the client device 110, no connection is made between the client device 110 and the proxy device 120.

    [0063] The provision of steps S2, S3 and S6 has an effect that a proxy connection between the client device 110 and the target device 130 is made only if direct connection is not possible, or at least has not been achieved within the timeout that is applied by step S6. This helps to reduce unnecessary use of proxy devices 120.

    [0064] Operation of the proxy device 120 during connection setup will now be descried with reference to Figure 7.

    [0065] Operation begins at step S1. At step S2, the proxy device 120 scans for A.DV_PROXY_IND PDU messages. At step S3, it is determined whether an ADV_PROXY_IND PDU has been received. On a negative determination, the operation proceeds to step S2. As such, steps S2 and S3 are repeated until an ADV_PROXY_IND PDU is received.

    [0066] On a positive determination from step S3, at step S4 it is determined whether an AdvA included in the received ADV_PROXY_IND PDU is in a white list contained within the proxy device 120. If the AdvA is not in the white list, the operation returns to step S2, where scanning is repeated. On a positive determination, the operation proceeds to step S5. It will be appreciated that step S4 is optional. If step S4 is omitted, a positive determination from step S3 proceeds directly to step S5.

    [0067] At step S5, the proxy device 120 connects to the target device 130. This involves sending the ADV_DIRECT_IND PDU 152 that is shown in Figure 5, and then receiving the CONNECT_REQ PDU 153 from the target device 130.

    [0068] At step S6, it is determined whether connection with the target device 130 has succeeded. In the event of an unsuccessful connection, the operation returns to step S2, where scanning is repeated. If connection is determined to have succeeded, at step S7 the proxy device 120 responds to the client device 110 with a PROXY_REQ PDU 155 after receiving an ADV_PROXY_IND PDU 151 from the client device 110. This initiates a connection between the proxy device 120 and the client device 110.

    [0069] At step S8, it is determined whether the proxy device 120 succeeded in connecting with the client device 110. On a positive determination, at step S9 the Client Access Address and the Target Access Address are added to a proxy database that is maintained within the proxy device 120. After step S9, the operation ends at step S10.

    [0070] If it is determined at step S8 that the connection between the proxy device 120 and the client device 110 did not succeed, at step S11 the proxy device 120 disconnects with the target device 130. Following S11, the operation ends at step S10.

    [0071] After connection setup is completed at step Sio, the proxy based connection 157 is in place between the client device 110 and the target device 130 by way of the proxy device 120.

    [0072] It will be noted that as a result of the connection setup process shown in Figure 7, the proxy device 120 acts as a master to the client device 110 and acts as a slave device to the target 130. Thus, the proxy device 120 acts as a master and slave simultaneously. In regards to the proxy-based connection 157, the client 110 acts as a slave to the target device 130.

    [0073] The proxy device 120 acting as a provider of the proxy-based connection 157 between the client device 110 and the target device 130 is not to the direct benefit of the proxy device 120 but instead benefits the client device 110 and the target device 130. Providing the proxy-based connection 157 presents a drain on battery resources of the proxy device 120, and potentially also other resources. Whilst providing the proxy-based connection 157, the proxy device 120 may be unable to connect to the client device 110 or the target device 130 by a Bluetooth connection for its own purposes. However, the proxy device 120 may connect to other Bluetooth devices except the client device 110 and the target device 130.

    [0074] The proxy device 120 is configured to allow or disallow proxy-based connections by way of a setting. The setting may be changed by a user through a user interface provided by the components 129. The setting may additionally be changed by an application or operating system of the proxy device 120. Allowing a user of the proxy device 120 to specify whether the proxy device 120 is able to provide a proxy-based connection 157 between other devices allows the user to control how the Bluetooth resources of the proxy device 120 are used. The proxy device 120 may be configured to allow the user to specify that use of the proxy device 120 to provide proxy-based connections 157 between other devices is enabled only when there is sufficient battery level remaining, and may be disabled when remaining battery level falls below a threshold, and to set the setting accordingly.

    [0075] Operation of the proxy device 120 when forwarding data as part of the proxy-based connection 157 will now be described with reference to Figure 8.

    [0076] Operation begins at step S1. At step S2, a packet is retrieved from a receiving buffer of the proxy device 120. The receiving buffer may utilise a memory of the BLE module 121, for instance it may utilise the RAM 123.

    [0077] At step S3, the Access Address data is extracted from the relevant field of the packet retrieved from the receiving buffer. At step S4, it is determined whether the data in the Access Address is found in the proxy database. The Access Address will be found in the proxy database if a proxy-based connection 157 was successfully connected and the data was added to the proxy database at step S9 of Figure 7.

    [0078] On a positive determination from step S4, the Access Address that is mapped to by the record that was found in the proxy database is obtained. At step S6, the payload of the packet retrieved from the receiving buffer at step S2 is extracted. At step S7, a new packet is generated. The new packet includes the payload that was extracted at step S6 and the mapped Access Address that was obtained at step S5. At step S8, the new packet is put into the sending buffer, after which it is transmitted from the proxy device 120.

    [0079] Following step S8, the forwarding a data packet operation ends at step S9.

    [0080] If a negative determination results from step S4, at step S10 normal packet processing is performed. Following step S10, preparation ends at step S9. At step Sio, the received packet is not forwarded.

    [0081] It will be appreciated that the operation shown in Figure 8 applies to packets that are received from the client device 110 and to packets that are received from the target device 130. In the situation where a received packet is from the client device 110 and is intended for the target device 130, the Access Address that is extracted at step S3 is different from the Access Address that is extracted in the event of receiving a packet from the target device 130 and directed to the client device 110. The mapped Access Address that is obtained at step S5 also depends on the direction in which the packet is travelling, namely from the client device 110 to the target device 130 or in the other direction. In particular it is the data from the opposite field of the record that is provided in each case.

    [0082] Operation of the proxy device 120 in connection management will now be described with reference to Figure 9.

    [0083] Operation begins at step S1. At step S2 link disconnection is detected. This can be disconnection of the BLE connection 156 between the proxy device 120 and the client 110 or the disconnection of the BLE connection 154 between the proxy device 120 and the target 130. At step S3, the Access Address of the link is obtained. At step S4 it is determined whether the Access Address is found in the proxy database. On a positive determination, the Access Address that is mapped by the record in the proxy database is obtained. At step S6, the link having the mapped Access Address is disconnected. In the event of the disconnection initially of the BLE connection 156, it is the BLE connection 154 between the proxy device 120 and the target device 130 that is disconnected at step S6. In the event of initial disconnection of the BLE connection 154 between the proxy device 120 and the target device 130, it is the BLE connection 156 between the proxy device 120 and the client device 110 that is disconnected at step S6.

    [0084] At step S7, the record is removed from the proxy database. After step S7 or following a negative determination at step S4, the operation ends at step S8.

    [0085] Connection management such as that described with reference to Figure 9, particularly with reference to steps S2 and S6, provides the effect that connections that are no longer needed are disconnected, thereby freeing radio resources for the devices that would otherwise be connected and reducing power consumption etc. for those devices.

    [0086] Removing the mapping record from the proxy database at step S7 has an effect of freeing memory resources within the proxy device 120. It also has an effect of helping to ensure correct operation of the proxy device 120 in the event of receiving a PDU that would otherwise result in action being taken by the proxy device 120. Such actions includes the forwarding of packets, as is described with reference to Figure 8.

    [0087] It is advantageous for proxy devices 120 continually to monitor link status. In this way, the termination of unneeded connections can be achieved quickly, thereby minimising the use of Bluetooth transceiver and battery etc. resources.

    [0088] In BLE networks, the data link between any two BLE devices is identified only by an Access Address (AA), which is generated during the course of connection establishment. So, a proxy device 120, working for a client device 110 (say C1) and a target device 130(say T1) has a mapping record <C1_AA, T1_AA> in the proxy database. When another client device 110 (say C2) is trying to access the same target device T1, then the proxy device 120 does not react to the ADV_PROXY_IND PDUs from the another client device C2. If it did react, the proxy device 120 would connect to the another client device C2 resulting in another mapping record <C2_AA, T1_AA>, and would not be able to discriminate where the packet from the target device T1 should be forwarded.

    [0089] If, on the other hand, the another client device C2 is trying to connect a different target device (say, T2), the proxy device 120 can respond to the another client device C2 in this case since there will be no confusion with a new mapping record <C2_AA, T2_AA> in the proxy database.

    [0090] Therefore, the proxy device 120 may simultaneously provide a proxy connection for more than one pair of client device and target device, but only if they are different Bluetooth devices.

    [0091] The value of the timeout provided in step S6 of Figure 6 may take any suitable value. For instance, it may be 1.28 seconds. Clearly, the value of the timeout dictates the number of ADV_DIRECT_IND PDU messages 150 that are transmitted without establishing a connection. It also dictates the period before the client device attempts to initiate a proxy connection by sending ADV_PROXY_IND PDUs 151.

    [0092] The value of the timeout in step S9 of Figure 6 may take any suitable value. For instance, the value of the timeout may be 10 seconds. Clearly, the value of the timeout dictates the period of time in which proxy devices 120 have in order to set up a connection with the target device 130 and then respond to the client device 110. A higher timeout value gives proxy devices 120 a greater opportunity to take the necessary steps, although at the expense of an increased time before the client device 110 ceases trying to establish a proxy connection with the target device 130.

    [0093] The interval of transmission of ADV_PROXY_IND PDUs 151, that are sent at step S7 of Figure 6, may take any suitable value. For instance, the interval between successive messages may be one second. The lower the interval between successive messages, the greater the number of messages that are sent in a given time period. The more messages that are sent then the greater the probability that a proxy device 120 will have received the ADV_PROXY_IND PDU 151 from the client device 110 and been able to establish a connection with the target device 130. However, because the establishment of the BLE connection 154 between the proxy device 120 and the target device 130 necessarily takes some time, a high frequency of transmission of ADV_PROXY_IND PDUs 151 may utilise Bluetooth and battery etc. resources of the client device 110 with no benefit.

    [0094] The above description does not address security of the BLE connections 156 and 154. Encryption may be applied to the BLE connection 156 between the client device 110 and the proxy device 120. Encryption may alternatively or in addition be provided to the BLE connection 154 between the proxy device 120 and the target device 130. Encryption need not be provided to both of the connections 154 and 156. However, if only one connection is encrypted and the other is not, packets may be eavesdropped by a device in the same general location as one of the linked devices.

    [0095] The forwarding of data by the proxy device 120 that is described with reference to Figure 8 applies to data channel PDUs. However, control channel PDUs are not forwarded by the proxy device 120. Instead, control channel PDUs relate to the specific connection 154 or 156 and are not relevant to the device 110, 130 that is not part of the specific connection. As such, control channel PDUs are not forwarded by the proxy device 120.

    [0096] As the proxy device 120 has the role of a slave to the client device 110 and the role of a master to the target device 130, the proxy 120 is configured to forward received data channel PDUs with minimal delay. This helps to optimise the proxy-based connection 157 between the client device 110 and the target device 130. This may be achieved by checking the receiving buffer at step S2 of Figure 8 frequently, and performing the remaining steps of Figure 8 as a high priority once a packet is extracted from the receiving buffer.

    [0097] The proxy device 120 may be configured to implement a multi-hop proxy-based connection. In these embodiments, the proxy 120 is configured differently to that described above. In these embodiments, in response to receiving an ADV_PROXY_IND PDU 151 from the client device 110, the proxy device 120 transmits ADV_DIRECT_IND PDUs 152 as shown in Figure 5. Upon the proxy device 120 detecting that a CONNECT-REQ PDU 153 has not been received from the target device 130 within a period (which may be determined by a time-out), the proxy device 120 takes further steps. In particular, the proxy device 120 transmits ADV_PROXY_IND PDUs 151 that includes the address of the target device 130 in the relevant field. This then allows other proxy devices 120 to act in the way mentioned above with respect to the proxy device 120 to establish a BLE connection 154 with the target device 130. In this way, a proxy-based connection 157 can be established between a client device 110 and a first proxy device 120, through a second proxy device 120 to a target device 130. The second proxy device 120 in this situation acts in the same way as the proxy device 120 described in relation to the earlier embodiments. However, the first proxy device 120 operates a little differently, in particular by transmitting ADV_PROXY_IND PDUs 151 and receiving PROXY_REQ PDUs 155. In effect, the first proxy device 120 acts in some ways the same as the client 110 and in some ways the same as the second proxy device 120.

    [0098] The scenario described above implements a two hop proxy-based connection. Three or more hop proxy based connections may be established where intervening proxy devices are configured to operate in the same way as the first proxy device 120 described above.

    [0099] An effect of providing the proxy-based connection 157 with a single intervening proxy device 120 is an extension of the communication range. By allowing for additional hops, the communication range can be extended even further.

    [0100] Some further details of components and features and alternatives for them will now be described.

    [0101] The computer program instructions 117 may provide the logic and routines that enables the BLE module 111 to perform the functionality described below. The computer program instructions 117 may be pre-programmed into the BLE module 111. Alternatively, they may arrive at the BLE module 111 via an electromagnetic carrier signal or be copied from a physical entity such as a computer program product, a non-volatile electronic memory device (e.g. flash memory) or a record medium such as a CD-ROM or DVD.

    [0102] The processing circuitry 112 may be any type of processing circuitry. For example, the processing circuitry may be a programmable processor that interprets computer program instructions and processes data. The processing circuitry may include plural programmable processors. Alternatively, the processing circuitry may be, for example, programmable hardware with embedded firmware. The processing circuitry or processor 112 may be termed processing means.

    [0103] Typically, the BLE module 111 comprises a processor 112 coupled connected to both volatile memory 113 and non-volatile memory 114. The computer program is stored in the non-volatile memory 114 and is executed by the processor 112 using the volatile memory 113 for temporary storage of data or data and instructions. Examples of volatile memory include RAM, DRAM, SDRAM etc. Examples of non-volatile memory include ROM, PROM, EEPROM, flash memory, optical storage, magnetic storage, etc.

    [0104] The BLE module 111 may be a single integrated circuit. It may alternatively be provided as a set of integrated circuits (i.e. a chipset). The BLE module 111 may alternatively be a hardwired, application-specific integrated circuit (ASIC).

    [0105] The components 119 may be arranged in any suitable way. For instance, there may be provided processing circuitry, including one or more processors, and a storage device, comprising a single memory unit or a plurality of memory units. The processing circuitry may be any type of processing circuitry. For example, the processing circuitry may be a programmable processor that interprets computer program instructions and processes data. The processing circuitry may include plural programmable processors. Alternatively, the processing circuitry may be, for example, programmable hardware with embedded firmware. The processing circuitry or processor 112 may be termed processing means. The storage device may store computer program instructions that, when loaded into the processing circuitry, control the operation of the client device 110. The computer program instructions may provide the logic and routines that enables the client device 110 to provide functions of the device that are not provided by the BLE module 111 on its own. The computer program instructions may be pre-programmed into the client device 110. Alternatively, they may arrive at the client device 110 via an electromagnetic carrier signal or be copied from a physical entity such as a computer program product, a non-volatile electronic memory device (e.g. flash memory) or a record medium such as a CD-ROM or DVD.

    [0106] Typically, the components 119 of the client device 110 comprises a processor coupled connected to both volatile memory and non-volatile memory. The computer program is stored in the non-volatile memory and is executed by the processor using the volatile memory for temporary storage of data or data and instructions. Examples of volatile memory include RAM, DRAM, SDRAM etc. Examples of non-volatile memory include ROM, PROM, EEPROM, flash memory, optical storage, magnetic storage, etc.

    [0107] The term 'memory' when used in this specification is intended to relate primarily to memory comprising both non-volatile memory and volatile memory unless the context implies otherwise, although the term may also cover one or more volatile memories only, one or more non-volatile memories only, or one or more volatile memories and one or more non-volatile memories.

    [0108] The communication interface may be configured to allow two-way communication with external devices and/or networks. The communication interface may be configured to communicate wirelessly via one or more of several protocols such as Global System for Mobile Communications (GSM), Code Division Multiple Access (CDMA), Universal Mobile Telecommunications System (UMTS) and IEEE 802.11 (Wi-Fi). Alternatively or additionally, the communication interface 114 may be configured for wired communication with a device or network.

    [0109] The apparatus may comprise further optional SW components which are not described in this specification since they may not have direct interaction to embodiments of the invention.
    Embodiments of the present invention may be implemented in software, hardware, application logic or a combination of software, hardware and application logic. The software, application logic and/or hardware may reside on memory, or any computer media. In an example embodiment, the application logic, software or an instruction set is maintained on any one of various conventional computer-readable media. In the context of this document, a "computer-readable medium" may be any media or means that can contain, store, communicate, propagate or transport the instructions for use by or in connection with an instruction execution system, apparatus, or device, such as a computer.

    [0110] A computer-readable medium may comprise a computer-readable storage medium that may be any tangible media or means that can contain or store the instructions for use by or in connection with an instruction execution system, apparatus, or device, such as a computer as defined previously.

    [0111] According to various embodiments of the previous aspect of the present invention, the computer program according to any of the above aspects, may be implemented in a computer program product comprising a tangible computer-readable medium bearing computer program code embodied therein which can be used with the processor for the implementation of the functions described above.

    [0112] The computer program instructions may arrive at the apparatus via an electromagnetic carrier signal or be copied from a physical entity such as a computer program product, a memory device or a record medium such as but not exclusively a CD-ROM or DVD, and/or an article of manufacture that tangibly embodies the computer program.

    [0113] Reference to "computer-readable storage medium", "computer program product", "tangibly embodied computer program" etc, or a "processor" or "processing circuit" etc. should be understood to encompass not only computers having differing architectures such as single/multi processor architectures and sequencers/parallel architectures, but also specialised circuits such as field programmable gate arrays FPGA, application specify circuits ASIC, signal processing devices and other devices. References to computer program, instructions, code etc. should be understood to express software for a programmable processor firmware such as the programmable content of a hardware device as instructions for a processor or configured or configuration settings for a fixed function device, gate array, programmable logic device, etc.

    [0114] If desired, the different functions discussed herein may be performed in a different order and/or concurrently with each other. Furthermore, if desired, one or more of the above-described functions may be optional or may be combined.

    [0115] It is also noted herein that while the above describes example embodiments of the invention, these descriptions should not be viewed in a limiting sense. Rather, there are several variations and modifications which may be made without departing from the scope of the present invention as defined in the appended claims.


    Claims

    1. A method comprising:
    a Bluetooth Low Energy, BLE, -enabled proxy (120) performing:

    responding to receiving from a BLE-enabled source (110) a proxy connection initiation request message (ADV_PROXY_IND) encapsulated in a BLE Link Layer packet, the proxy connection initiation request message being a request to provide a proxy and including an address of a BLE-enabled target (130) and an address of the source, by causing sending of a BLE advertising message (ADV_DIRECT_IND) addressed to the target;

    subsequently receiving a BLE connection request message (CONNECT_REQ) comprising data for connection setup between the proxy and the target from the target and establishing a connection (154) with the target; and

    subsequently responding to receiving a further proxy connection initiation request message from the source by causing sending of a proxy setup request message (PROXY_REQ) comprising data for connection setup between the proxy and the source, the proxy setup request message encapsulated in a BLE Link Layer packet and addressed to the source, and establishing a connection (156) with the source; and

    the connection (154) with the target and the connection (156) with the source establishing a proxy-based connection (157) between the source and the target.


     
    2. A method as claimed in claim 1, comprising the proxy causing addition of an address relating to the source and an address relating to the target to a record in a database, and optionally responding to detecting ceasing of the connection with the source and/or the target by causing updating of the record in the database.
     
    3. A method as claimed in claim 2, comprising the proxy responding to receiving a first data packet after connection to the source by extracting an address relating to a sender of the first data packet, using the address relating to the sender to identify the record in the database, extracting an address relating to a recipient from the identified record in the database, and generating a second data packet including a payload included in the first data packet and addressed to the recipient with the address relating to the recipient extracted from the record in the database.
     
    4. A method as claimed in any of claims 1 to 3, comprising the proxy responding to detecting ceasing of the connection with the source by causing disconnection of the connection with the target.
     
    5. A method as claimed in any of claims 1 to 4, comprising the proxy responding to detecting ceasing of the connection with the target by causing disconnection of the connection with the source.
     
    6. A method as claimed in any of claims 1 to 5, comprising the proxy scanning for proxy connection initiation request messages.
     
    7. A method as claimed in claim 6, comprising the proxy scanning for proxy connection initiation request messages when a proxy mode setting is enabled and refraining from scanning for proxy connection initiation request messages when a proxy mode setting is disabled.
     
    8. A method as claimed in any of claims 1 to 7, comprising the proxy performing:

    responding to receiving the proxy connection initiation request message by determining whether the address of the source included in the proxy connection initiation request message is included in a list of permitted addresses;

    causing sending of the advertising message addressed to the target if the address of the source included in the proxy connection initiation request message is included in the list of permitted addresses; and

    refraining from sending the advertising message addressed to the target if the address of the source included in the proxy connection initiation request message is not included in the list of permitted addresses.


     
    9. A method as claimed in any preceding claim, comprising:
    the BLE-enabled source (110) performing:

    sending one or more BLE advertising messages addressed to the target (130) using an address of the target;

    responding to determining that no response to the advertising message has been received from the target (130) by sending the proxy connection initiation request message (ADV_PROXY_IND); and

    responding to receiving the proxy setup request message (PROXY_REQ) from the proxy by connecting to the proxy.


     
    10. A method as claimed in claim 9, comprising the source sending BLE advertising messages addressed to the target (130) using an address of the target repeatedly until it is detected that a first timeout has expired or that a response has been received from the target.
     
    11. A method as claimed in claim 9 or claim 10, comprising the source sending proxy connection initiation request messages repeatedly until it is detected that a second timeout has expired or that the proxy setup request message has been received from the proxy.
     
    12. A method as claimed in any of claims 9 to 11, comprising reading an address of the proxy from the received proxy setup request message, and connecting to the proxy conditional on the address of the proxy being included in a list of permitted proxy addresses.
     
    13. A method as claimed in any preceding claim, wherein the address of the target and/or the address of the source/apparatus is included in a payload of the proxy connection initiation request.
     
    14. A method as claimed in any preceding claim, wherein the proxy setup request message includes an address of the proxy and an address of the apparatus and/or data for connection setup in a payload thereof.
     
    15. A method as claimed in any preceding claim, wherein the advertising message is an ADV_DIRECT_IND PDU and/or wherein the connection request message is a CONNECT_REQ PDU.
     
    16. A computer program comprising instructions that when executed by a processor of a BLE-enabled proxy (120) controls it to perform the method of any of claims 1 to 8.
     
    17. The computer program of claim 16, further comprising instructions that when executed by a processor of a BLE-enabled source (110) controls it to perform the method of any of claims 9 to 15.
     
    18. A BLE-enabled proxy configured to perform the method of any of claims 1 to 8.
     
    19. A system comprising the BLE-enabled proxy of claim 18, and a BLE-enabled source configured to perform the method of any of claims 9 to 15.
     


    Ansprüche

    1. Verfahren, umfassend:
    einen Bluetooth-Niederenergie-(BLE)-fähigen Proxy (120), der Folgendes ausführt:

    ein Antworten auf ein Empfangen von einer BLE-fähigen Quelle (110) einer Proxyverbindungsinitiierungsanfragemitteilung (ADV PROXY IND), die in einem BLE-Linkebenenpaket eingeschlossen ist, wobei die Proxyverbindungsinitiierungsanfragemitteilung eine Anfrage ist, einen Proxy bereitzustellen, und eine Adresse eines BLE-fähigen Ziels (130) und eine Adresse der Quelle enthält, indem ein Senden einer an das Ziel adressierten BLE-Ankündigungsmitteilung (ADV_DIRECT_IND) veranlasst wird;

    ein anschließendes Empfangen einer BLE-Verbindungsanfragemitteilung (CONNECT_REQ), die Daten für den Verbindungsaufbau zwischen dem Proxy und dem Ziel vom Ziel umfasst, und ein Einrichten einer Verbindung (154) mit dem Ziel; und ein anschließendes Antworten auf ein Empfangen einer weiteren Proxyverbindungsinitiierungsanfragemitteilung von der Quelle, indem ein Senden einer Proxyaufbauanfragemitteilung (PROXY_REQ) veranlasst wird, die Daten für den Verbindungsaufbau zwischen dem Proxy und der Quelle umfasst, wobei die Proxyaufbauanfragemitteilung in einem BLE-Linkebenenpaket eingeschlossen und an die Quelle adressiert ist, und Einrichten einer Verbindung (156) mit der Quelle; und

    die Verbindung (154) mit dem Ziel und die Verbindung (156) mit der Quelle eine proxybasierte Verbindung (157) zwischen der Quelle und dem Ziel einrichtet.


     
    2. Verfahren nach Anspruch 1, umfassend, dass der Proxy ein Hinzufügen einer sich auf die Quelle beziehenden Adresse und einer sich auf das Ziel beziehenden Adresse zu einem Datensatz in einer Datenbank veranlasst und optional ein Antworten auf ein Detektieren eines Beendens der Verbindung mit der Quelle und/oder dem Ziel, durch ein Veranlassen einer Aktualisierung des Datensatzes in der Datenbank.
     
    3. Verfahren nach Anspruch 2, umfassend, dass der Proxy auf ein Empfangen eines ersten Datenpakets nach der Verbindung zu der Quelle durch ein Extrahieren einer sich auf einen Sender des ersten Datenpakets beziehenden Adresse mithilfe der sich auf den Sender beziehenden Adresse, um den Datensatz in der Datenbank zu identifizieren, durch ein Extrahieren einer sich auf einen Empfänger beziehenden Adresse aus dem identifizierten Datensatz in der Datenbank und durch ein Generieren eines zweiten Datenpakets, das eine Nutzlast enthält, die im ersten Datenpaket enthalten und an den Empfänger mit der sich auf den aus dem Datensatz in der Datenbank extrahierten Empfänger beziehenden Adresse adressiert ist, antwortet.
     
    4. Verfahren nach einem der Ansprüche 1 bis 3, umfassend, dass der Proxy auf das Detektieren eines Beendens der Verbindung mit der Quelle durch ein Veranlassen eines Trennens der Verbindung mit dem Ziel antwortet.
     
    5. Verfahren nach einem der Ansprüche 1 bis 4, umfassend, dass der Proxy auf das Detektieren eines Beendens der Verbindung mit dem Ziel durch ein Veranlassen eines Trennens der Verbindung mit der Quelle antwortet.
     
    6. Verfahren nach einem der Ansprüche 1 bis 5, umfassend, dass der Proxy nach Proxyverbindungsinitiierungsanfragemitteilungen scannt.
     
    7. Verfahren nach Anspruch 6, umfassend, dass der Proxy nach Proxyverbindungsinitiierungsanfragemitteilungen scannt, wenn eine Proxymoduseinstellung aktiviert ist, und es unterlässt, nach Proxyverbindungsinitiierungsanfragemitteilungen zu scannen, wenn eine Proxymoduseinstellung deaktiviert ist.
     
    8. Verfahren nach einem der Ansprüche 1 bis 7, umfassend, dass der Proxy Folgendes ausführt:

    ein Antworten auf ein Empfangen der Proxyverbindungsinitiierungsanfragemitteilung durch ein Bestimmen, ob die in der Proxyverbindungsinitiierungsanfragemitteilung enthaltende Adresse der Quelle in einer Liste zulässiger Adressen enthalten ist;

    ein Veranlassen eines Sendens der an das Ziel adressierten Ankündigungsmitteilung, wenn die in der Proxyverbindungsinitiierungsanfragemitteilung enthaltene Adresse der Quelle in der Liste zulässiger Adressen enthalten ist; und

    ein Unterlassen des Sendens der an das Ziel adressierten Ankündigungsmitteilung, wenn die in der Proxyverbindungsinitiierungsanfragemitteilung enthaltene Adresse der Quelle in der Liste zulässiger Adressen nicht enthalten ist.


     
    9. Verfahren nach einem der vorangehenden Ansprüche, umfassend: dass die BLE-fähige Quelle (110) Folgendes ausführt:

    ein Senden einer oder mehrerer an das Ziel (130) adressierten BLE-Ankündigungsmitteilungen mithilfe einer Adresse des Ziels;

    ein Antworten auf ein Bestimmen, dass keine Antwort auf die Ankündigungsmitteilung vom Ziel (130) empfangen wurde, durch Senden der Proxyverbindungsinitiierungsanfragemitteilung (ADV PROXY IND); und

    ein Antworten auf ein Empfangen der Proxyaufbauanfragemitteilung (PROXY REQ) vom Proxy durch Verbinden mit dem Proxy.


     
    10. Verfahren nach Anspruch 9, umfassend, dass die Quelle die an das Ziel (130) adressierten BLE-Ankündigungsmitteilungen mithilfe einer Adresse des Ziels wiederholt sendet, bis detektiert wird, dass ein erster Timeout abgelaufen ist oder dass eine Antwort vom Ziel empfangen wurde.
     
    11. Verfahren nach Anspruch 9 oder Anspruch 10, umfassend, dass die Quelle die Proxyverbindungsinitiierungsanfragemitteilungen wiederholt sendet, bis detektiert wird, dass ein zweiter Timeout abgelaufen ist oder dass die Proxyaufbauanfragemitteilung vom Proxy empfangen wurde.
     
    12. Verfahren nach einem der Ansprüche 9 bis 11, umfassend ein Lesen einer Adresse des Proxys aus der empfangenen Proxyaufbauanfragemitteilung und ein Verbinden zum Proxy abhängig davon, dass die Adresse des Proxys in einer Liste zulässiger Proxyadressen enthalten ist.
     
    13. Verfahren nach einem der vorangehenden Ansprüche, wobei die Adresse des Ziels und/oder die Adresse der Quelle/Vorrichtung in einer Nutzlast der Proxyverbindungsinitiierungsanfrage enthalten ist.
     
    14. Verfahren nach einem der vorangehenden Ansprüche, wobei die Proxyaufbauanfragemitteilung eine Adresse des Proxys und eine Adresse der Vorrichtung und/oder Daten zum Verbindungsaufbau in einer Nutzlast davon enthält.
     
    15. Verfahren nach einem der vorangehenden Ansprüche, wobei die Ankündigungsmitteilung eine ADV_DIRECT_IND-PDU ist und/oder wobei die Verbindungsanfragemitteilung eine CONNECT_REQ-PDU ist.
     
    16. Computerprogramm, umfassend Anweisungen, die bei Ausführung durch einen Prozessor eines BLE-fähigen Proxys (120) ihn steuern, das Verfahren nach einem der Ansprüche 1 bis 8 auszuführen.
     
    17. Computerprogramm nach Anspruch 16, ferner umfassend Anweisungen, die bei Ausführung durch einen Prozessor einer BLE-fähigen Quelle (110) ihn steuern, das Verfahren nach einem der Ansprüche 9 bis 15 auszuführen.
     
    18. BLE-fähiger Proxy, konfiguriert, um das Verfahren nach einem der Ansprüche 1 bis 8 auszuführen.
     
    19. System, umfassend den BLE-fähigen Proxy nach Anspruch 18, und eine BLE-fähige Quelle, die konfiguriert ist, um das Verfahren nach einem der Ansprüche 9 bis 15 auszuführen.
     


    Revendications

    1. Procédé comprenant :
    un proxy Bluetooth basse consommation, BLE, (120) exécutant :

    la réponse à la réception depuis une source BLE (110) d'un message de requête d'initiation de connexion proxy (ADV_PROXY_IND) encapsulé dans un paquet couche BLE Link Layer, le message de requête d'initiation de connexion proxy étant une requête pour fournir un proxy et incluant une adresse d'une cible BLE (130) et une adresse de la source, par l'entraînement de l'envoi d'un message d'annonce (advertising) BLE (ADV_DIRECT_IND) adressé à la cible ;

    puis la réception d'un message de requête de connexion BLE (CONNECT_REQ) comprenant des données de configuration de connexion entre le proxy et la cible depuis la cible et l'établissement d'une connexion (154) avec la cible ; puis la réponse à la réception d'un message de requête d'initiation de connexion proxy supplémentaire depuis la source par l'entraînement de l'envoi d'un message de requête de configuration de proxy (PROXY_REQ) comprenant des données de configuration de connexion entre le proxy et la source, le message de requête de configuration de proxy encapsulé dans un paquet couche BLE Link Layer et adressé à la source, et l'établissement d'une connexion (156) avec la source ; et

    la connexion (154) avec la cible et la connexion (156) avec la source établissant une connexion basée sur proxy (157) entre la source et la cible.


     
    2. Procédé selon la revendication 1, comprenant l'entraînement par le proxy de l'ajout d'une adresse relative à la source et d'une adresse relative à la cible à un enregistrement dans une base de données, et en option la réponse à l'arrêt de détection de la connexion avec la source et/ou la cible par l'entraînement de l'actualisation de l'enregistrement dans la base de données.
     
    3. Procédé selon la revendication 2, comprenant la réponse par le proxy à la réception d'un premier paquet de données après la connexion à la source par l'extraction d'une adresse relative à un émetteur du premier paquet de données, l'utilisation de l'adresse relative à l'émetteur pour identifier l'enregistrement dans la base de données, l'extraction d'une adresse relative à un destinataire de l'enregistrement identifié dans la base de données, et la génération d'un deuxième paquet de données incluant une charge utile incluse dans le premier paquet de données et adressé au destinataire avec l'adresse relative au destinataire extraite depuis l'enregistrement de base de données.
     
    4. Procédé selon l'une quelconque des revendications 1 à 3, comprenant la réponse par le proxy à l'arrêt de détection de la connexion avec la source par l'entraînement de la déconnexion de la connexion avec la cible.
     
    5. Procédé selon l'une quelconque des revendications 1 à 4, comprenant la réponse par le proxy à l'arrêt de détection de la connexion avec la cible par l'entraînement de la déconnexion de la connexion avec la source.
     
    6. Procédé selon l'une quelconque des revendications 1 à 5, comprenant la recherche par le proxy de messages de requête d'initiation de connexion proxy.
     
    7. Procédé selon la revendication 6, comprenant la recherche par le proxy de messages de requête d'initiation de connexion proxy quand une configuration de mode proxy est activée et l'abstention de recherche des messages de requête d'initiation de connexion proxy quand une configuration de mode proxy est désactivée.
     
    8. Procédé selon l'une quelconque des revendications 1 à 7, comprenant l'exécution par le proxy de :

    la réponse à la réception du message de requête d'initiation de connexion proxy par la détermination si l'adresse de la source incluse dans le message de requête d'initiation de connexion proxy est incluse dans une liste d'adresses autorisées ;

    l'entraînement de l'envoi du message d'annonce adressé à la cible si l'adresse de la source incluse dans le message de requête d'initiation de connexion proxy est incluse dans la liste d'adresses autorisées ; et

    l'abstention de l'envoi du message d'annonce adressé à la cible si l'adresse de la source incluse dans le message de requête d'initiation de connexion proxy n'est pas incluse dans la liste d'adresses autorisées.


     
    9. Procédé selon l'une quelconque revendication précédente, comprenant : l'exécution par la source BLE (110) de :

    l'envoi d'un ou plusieurs messages d'annonce BLE adressés à la cible (130) en utilisant une adresse de la cible ;

    la réponse à la détermination qu'aucune réponse au message d'annonce n'a été reçue depuis la cible (130) par l'envoi du message de requête d'initiation de connexion proxy (ADV_PROXY_IND) ; et

    la réponse à la réception du message de requête de configuration de proxy (PROXY_REQ) depuis le proxy en se connectant au proxy.


     
    10. Procédé selon la revendication 9, comprenant l'envoi par la source de messages d'annonce BLE adressés à la cible (130) en utilisant une adresse de la cible de manière répétée jusqu'à la détection qu'un premier délai a expiré ou qu'une réponse a été reçue depuis la cible.
     
    11. Procédé selon la revendication 9 ou 10, comprenant l'envoi par la source de messages de requête d'initiation de connexion proxy de manière répétée jusqu'à la détection qu'un deuxième délai a expiré ou que le message de requête de configuration de proxy a été reçu depuis le proxy.
     
    12. Procédé selon l'une quelconque des revendications 9 à 11, comprenant la lecture d'une adresse du proxy depuis le message de requête de configuration de proxy reçu, et la connexion au proxy à la condition que l'adresse du proxy soit incluse dans une liste d'adresses de proxy autorisées.
     
    13. Procédé selon l'une quelconque revendication précédente, dans lequel l'adresse de la cible et/ou l'adresse de la source/l'appareil est incluse dans une charge utile de la requête d'initiation de connexion de proxy.
     
    14. Procédé selon l'une quelconque revendication précédente, dans lequel le message de requête de configuration de proxy inclut une adresse du proxy et une adresse de l'appareil et/ou des données de configuration de connexion dans une charge utile de celui-ci.
     
    15. Procédé selon l'une quelconque revendication précédente, dans lequel le message d'annonce est un ADV_DIRECT_IND PDU et/ou dans lequel le message de requête de connexion est un CONNECT_REQ PDU.
     
    16. Programme informatique comprenant des instructions qui lorsqu'elles sont exécutées par un processeur d'un proxy BLE (120) commandent à celui-ci d'exécuter le procédé selon l'une quelconque des revendications 1 à 8.
     
    17. Programme informatique selon la revendication 16, comprenant en outre des instructions qui lorsqu'elles sont exécutées par un processeur d'une source BLE (110) commandent à celui-ci d'exécuter le procédé selon l'une quelconque des revendications 9 à 15.
     
    18. Proxy BLE configuré pour exécuter le procédé selon l'une quelconque des revendications 1 à 8.
     
    19. Système comprenant le proxy BLE selon la revendication 18, et source BLE configurée pour exécuter le procédé selon l'une quelconque des revendications 9 à 15.
     




    Drawing






























    REFERENCES CITED IN THE DESCRIPTION



    This list of references cited by the applicant is for the reader's convenience only. It does not form part of the European patent document. Even though great care has been taken in compiling the references, errors or omissions cannot be excluded and the EPO disclaims all liability in this regard.

    Patent documents cited in the description




    Non-patent literature cited in the description