EP3216168B1 - Method for dynamically configuring a client installed and running on a communication device - Google Patents

Method for dynamically configuring a client installed and running on a communication device Download PDF

Info

Publication number
EP3216168B1
EP3216168B1 EP14905362.1A EP14905362A EP3216168B1 EP 3216168 B1 EP3216168 B1 EP 3216168B1 EP 14905362 A EP14905362 A EP 14905362A EP 3216168 B1 EP3216168 B1 EP 3216168B1
Authority
EP
European Patent Office
Prior art keywords
client
communication device
network
identification data
environment identification
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
EP14905362.1A
Other languages
German (de)
French (fr)
Other versions
EP3216168A1 (en
EP3216168A4 (en
Inventor
Jim O'brien
Donovan JONES
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CounterPath Technologies Inc
Original Assignee
CounterPath Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by CounterPath Technologies Inc filed Critical CounterPath Technologies Inc
Publication of EP3216168A1 publication Critical patent/EP3216168A1/en
Publication of EP3216168A4 publication Critical patent/EP3216168A4/en
Application granted granted Critical
Publication of EP3216168B1 publication Critical patent/EP3216168B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/082Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/01Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/13Receivers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2514Translation of Internet protocol [IP] addresses between local and global IP addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/80Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/26Network addressing or numbering for mobility support
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/02Hierarchically pre-organised networks, e.g. paging networks, cellular networks, WLAN [Wireless Local Area Network] or WLL [Wireless Local Loop]
    • H04W84/10Small scale networks; Flat hierarchical networks
    • H04W84/12WLAN [Wireless Local Area Networks]

Definitions

  • the present disclosure generally relates to client-server networks. More particularly, the present disclosure relates to a method and system for configuring a client installed and running on a communication device based on the environment within which the client operates.
  • a client is a computer program or software that accesses a service provided by a server through a network.
  • a client resides on a communication device, such as, for example, a personal digital assistant (PDA), a mobile phone, a desktop computer, a laptop computer, or a tablet.
  • PDA personal digital assistant
  • a client that accesses a service provided by a server can detect its location within a network by determining environment parameters, network parameters, or both, and, accordingly, the client can control, based on these parameters, which options of the service (hereinafter referred to as service options) the client provides to a user. That is, the client can enable or disable different service options that are provided by the client to a user based on environment parameters, network parameters, or both, by selecting a configuration that is preset in the client.
  • a client may have one preset configuration that configures the client to access the service through a wireless connection, such as WiFi or WiMax, and another preset configuration that configures the client to access the service through a cellular connection, such as 4G or LTE.
  • the client during initialization, such as when a user of the communication device logs into the client to access the service, may select one of these preset configurations and configure itself accordingly.
  • the client When configuring itself, the client enables and disables different service options (e.g. network speed, security setting, etc.) provided by the client.
  • service options e.g. network speed, security setting, etc.
  • Related technology is disclosed in: US 2014/325041 that relates to a method for adapting a client to a hardware environment; US 2006/265386 that relates to a method for thin client configuration, and EP 2 472 817 that relates to system and method for optimization of execution of security tasks in local network.
  • the preset configurations that can be selected by the client during initialization of the client are static and preset in the client software.
  • network settings change i.e., when the hardware or software of the communication device or the location of the communication device changes
  • the static preset configurations that can be selected by the client are unable to dynamically adapt to these changes, and the client is likely to perform poorly or not at all.
  • the present disclosure provides a method as defined by the appended independent claim 1 for dynamically 5 configuring a client installed and running on communication device as a function of the environment within which the client operates and the administrative constraints set by, for example, a network administrator.
  • the present disclosure relates to a method for configuring a client that is installed and running on a communication device based on the environment within which the client operates.
  • elements in a network can be said to be operationally connected to each other when, for example, information in one element can be communicated to another element through the network. Further, elements in a network can be said to be operationally connected when an action in, or a state of, one element can be controlled by, or related to an action in, or a state of, another element.
  • the system 10 includes a communication device 20 on which a client 30 is installed and running, and a configuration server 40 that is operationally connected to the client 30 through the communication device 20 and a network 50.
  • the configuration server 40 includes an intelligent agent 60, which is described in further detail below.
  • the communication device 20 is any suitable electronic device than can run the client 30 and communicate with the configuration server 40 through the network 50.
  • Examples of a communication device 20 include a mobile phone, a smartphone, a personal digital assistant (PDA), tablets, a desktop computer, and a laptop computer.
  • the client 30 is a computer program or software that provides a communication service to a user.
  • the client 30 is a computer program or software that provides video calling, voice calling, or instant messaging capabilities to a user using a voice over internet protocol (VoIP).
  • VoIP voice over internet protocol
  • the client 30 communicates with another client (not shown) through the network 50.
  • the configuration server 40 is operationally connected to the client 30 for configuring the client 30 to enable communication with other clients (not shown) via the network 50.
  • the intelligent agent 60 generates configurations for the client 30 as described in further detail below. Each configuration generated by the intelligent agent 60 includes parameters or settings that the client 30 uses to configure itself.
  • FIG. 2 a flowchart of a method of configuring a client 30 installed on a communication device 20, in accordance with an embodiment of the present disclosure, is shown.
  • the method may be carried out by software executed, for example by, a processor (not shown) of the configuration server 40. Coding of software for carrying out such a method is within the scope of a person of ordinary skill in the art given the present description.
  • the method may contain additional or fewer processes than shown and/or described.
  • Computer-readable code executable by the processor to perform the method may be stored in a non-transitory, tangible computer-readable medium that is operationally connected to the processor.
  • the method begins at 200 and then proceeds to action 210.
  • the configuration server 40 obtains, from the client 30, data related to the environment within which the client 30 operates.
  • the configuration server 40 obtains, from the client 30, data related to the environment, upon initialization of the client 30 (i.e., when a user logs into the client).
  • the configuration server 40 obtains, from the client 30, data related to the environment during operation of the client 30
  • the data related to the environment in which the client operates is referred to as environment identification data.
  • the configuration server 40 obtains the environment identification data using the Hypertext Transfer Protocol (HTTP).
  • HTTP Hypertext Transfer Protocol
  • the environment identification data is formatted In accordance with the HTTP protocol and placed in the body of a POST (HTTP) request.
  • the configuration server 40 may obtain information about the client from a transmission control protocol (TCP wrapper) or from reports the client 30 has prepared with respect to sources, such as, for example, a Geo-IP lookup of the device's country or a Lookup of the carrier of record for an IP address.
  • TCP wrapper transmission control protocol
  • sources such as, for example, a Geo-IP lookup of the device's country or a Lookup of the carrier of record for an IP address.
  • NAT traversal may be more of a concern / issue in communicating with the client; this may affect an eventual choice of particular NAT traversal techniques when generating a configuration for the client.
  • a report stating that the client is currently at the enterprise facility or outside the facility may affect the choice of security settings to apply to the client when generating a configuration of the client.
  • the configuration server may obtain a report that pertains to the voice quality monitoring (VQM) or analytics of a video/audio call made using the client. This may also affect the generation of a configuration for the client.
  • VQM voice quality monitoring
  • the environment identification data can include, for example, data that identifies the parameters of the hardware of the communication device 20, the parameters of the software installed on the communication device 20, parameters of the network 50 to which the communication device 20 is operationally connected (hereinafter referred to as network parameters), or parameters associated with the physical location at which the communication device 20 operates (hereinafter referred to as environmental parameters).
  • network parameters parameters of the network 50 to which the communication device 20 is operationally connected
  • environmental parameters parameters associated with the physical location at which the communication device 20 operates
  • the environment identification data may not include parameters associated with the physical location at which the communication device 20 is located.
  • Examples of data that identifies the parameters of the hardware of the communication device 20 includes data that identifies the brand and/or the model number of the communication device 20, the brand and/or model of a processor in the communication device 20, the number of processors running in the communication device 20, the type and the number of data converters (e.g., audio codecs, video codecs) installed in the communication device 20, the brand of the communication hardware (including, e.g., the brand of a transceiver) installed in the communication device 20, any peripheral device operationally connected to the communication device 20 using, for example, BluetoothTM, an audio input device that is part of, or that is operationally connected to, the communication device 20, a video or image capture device that is part of, or that is operationally connected to, the communication device 20, the hardware platform interface of the communication device 20, the battery level of the communication device 20, etc.
  • data converters e.g., audio codecs, video codecs
  • Examples of data that identifies the parameters of the software installed on the communication device 20 includes data that identifies the operating system running on the communication device 20, the software and firmware, running on the communication device 20, including the versions of the software and firmware.
  • Examples of data that identifies parameters of the network 50 includes data that identifies the network 50 to which the communication device 20 is operationally connected, a type of connection between the communication device 20 and the network 50 (e.g. a wired connection such as Ethernet or wireless connection such as WiFi, 3G, 4G, LTE etc.) and the parameters of the connection, such as a signal strength of the wired or wireless signal.
  • a type of connection between the communication device 20 and the network 50 e.g. a wired connection such as Ethernet or wireless connection such as WiFi, 3G, 4G, LTE etc.
  • the parameters of the connection such as a signal strength of the wired or wireless signal.
  • Data that identifies parameters of the network 50 can also include, for example, an external IP address of the communication device 20, an internal IP address of the communication device 20, or both, a Domain Name Server (DNS) to which the communication device 20 is operationally connected, a routing database of the network 50, the routes defined in the routing database, and the number of hops (network hops) between the communication device 20 and another client (not shown). Additionally, the data that identifies parameters of the network 50 can include a MAC address of any suitable device that is part of the network that operationally connects the communication device 20 to the network 50.
  • DNS Domain Name Server
  • Examples of data that identifies parameters associated with the physical location in which the communication device 20 operates can include a geographical location of the communication device 20, the location of the cell in a cellular network to which the communication device 20 is connected as well as the location of one or more neighboring cells, the location of the access point of a WiFi hub to which the communication device is operationally connected, the location of near field communication system (NFC) or BluetoothTM beacons to which the communication device 20 is operationally connected.
  • data that identifies parameters associated with the physical location in which the communication device 20 operates can include data from the output of inertial sensors and data from the output of a barometric pressure sensor installed in the communication 20 or location.
  • a geographic location of the communication device 20 can be determined from the GPS coordinates of the communication device 20.
  • the GPS coordinates of the communication device 20 can be obtained from a conventional GPS system, an assisted GPS system, or a synthetic GPS system, which uses GPS satellites forecast locations days or week in advance.
  • the method proceeds to action 220.
  • the intelligent agent 60 of the configuration server 40 retrieves administrative constraints or rules and generates a configuration for the client 30 based on, or as a function of, the obtained environment identification data and the administrative constraints or rules.
  • the administrative constraints or rules are set by, for example, a network administrator and are stored in a memory of the configuration server 40.
  • administrative constraints or rules may include user options for the service provided by the client 30, security clearance level of a user, access privileges corresponding to the physical location of the communication device 20 on which the client 30 is installed, version of the client software for use with a particular service, etc.
  • a network administrator may set the administrative constraints or rules such that the intelligent agent 60 generates a configuration that provides access to the premium service options.
  • the intelligent agent 60 may generate a configuration accordingly.
  • the method proceeds to action 230.
  • the configuration server 40 pushes the configuration that was generated at the configuration server 40, to the communication device 20 via the network 50, and in turn the communication device 20 pushes the configuration that is received from the configuration server 40 to the client 30.
  • the configuration server 40 generates a text file that includes the configuration and pushes the text file to the client 30.
  • the configuration server 40 may also push binary files to the client 30 that define new service options for the client 30.
  • the configuration server may push a binary plug-in that can be loaded dynamically and installed into the client 30 as an extension to enable the client 30 to provide the new service options.
  • the client 30 Upon receipt of the configuration from the communication device 20, the client 30 configures itself based on the received configuration.
  • the configuration server 40 has obtained the following environment identification data from the client 30:
  • the administrative constraints or rules are:
  • the intelligent agent 60 of the configuration server 40 generates a configuration based on, or as function of, the environment identification data and the administrative factors noted above.
  • the configuration sever 40 pushes the generated configuration to the client 30 running on the smart phone, and the client 30 uses the parameters in the configuration to configure itself.
  • the configuration that is generated by the intelligent agent 60 includes parameters or settings that inform the client 30 to use the audio codec G.711 and the video codec H.264 of the smart phone, and parameters or settings that enable the client 30 to use more bandwidth with lower quality than what a newer device (version 5) would receive.
  • the client 30 may install any new binary items, may activate new features such as enabling a codec of the communication device, turn on session initiation protocol (SIP) presence in the communication device 20, or activate a virtual private network (VPN) for the client 30.
  • SIP session initiation protocol
  • VPN virtual private network
  • the client 30 may restart itself.
  • the client 30 may disconnect and reconnect to servers connected to the network 50 to broadcast its new capabilities.
  • the configuration server 40 that pushes the generated configuration presupposes that the client 30 has all the configurable options or functionalities addressed by the configuration.
  • the configuration server 40 pushes not only the configuration that the intelligent agent 60 generates, but also binary files that define new functions of the client 30.
  • Figure 3 shows a flowchart of a method of configuring a client installed on a communication device in accordance with another embodiment of the present disclosure.
  • the method begins at 300 and proceeds to action 310.
  • the configuration server 40 obtains, from the client 30, data related to the environment in which the client operates, i.e., environment identification data. After the environment identification data is obtained at action 310, the method proceeds to 320.
  • the configuration server 40 determines whether there has been a change in the environment identification data. When the configuration server 40 determines that there has been no change in the environment identification data, the method proceeds to action 330 and ends or, alternatively, the method can loop back to action 310. In an embodiment, there can be a predetermined time delay between actions 310 and 320. The predetermined time delay can be any suitable time duration in which the client periodically obtains environment identification data to determine if configuration changes are warranted. When the configuration server 40 determines that there has been a change in the environment identification data obtained from the client 30, the method proceeds from action 320 to action 340. At action 340, the intelligent agent 60 generates a new configuration based on the new environment identification data and the administrative constraints or rules set by a network administrator and stored in a memory on the configuration server 40. The method proceeds to action 350.
  • the configuration server 40 determines whether the new configuration that is generated by the intelligent agent 60 at action 340 is different from a previous configuration generated by the intelligent agent 60 and pushed to the client 30.
  • the configuration server 40 can receive and store a record of the previous configuration generated and pushed to the client 30 at the time the environment identification data is obtained at action 310.
  • the configuration server 40 may simply keep a record of the last configuration pushed to the client 30.
  • the configuration server 40 determines that the new configuration that is generated by the intelligent agent 60 is different from the previously generated configuration by the intelligent agent 60, the method proceeds to action 360.
  • the configuration server 40 pushes the new configuration to the communication device 20 via the network 50. and in turn the communication device 20 pushes the new configuration to the client 30.
  • the client 30 configures itself based on the new configuration.
  • the method proceeds to action 370 and ends, or alternatively, loops back to action 310 with or without being subjected to a predetermined time delay.
  • a change in the environment identification data does not warrant a change in the configuration of the client 30. That is, the intelligent agent 60 of the configuration server 40 may generate the same configuration for different sets of environment identification data and administrative constraints or rules.
  • the environment identification data affects the configuration of the client 30 and the service options provided to a user.
  • the configuration server 40 receives environment identification data from the client 30, which data identifies the multiple audio and the multiple video codecs of the device, the intelligent agent 60 of the configuration server 40 generates a configuration based on, for example, the type of network to which the communication device is operationally connected.
  • the configuration generated by the intelligent agent 60 includes parameters or setting that the client 30 utilizes to configure itself to use one video codec and one audio codec amongst the multiple audio and the multiple video codecs to configure the client.
  • the environment identification data includes data that identifies parameters of the network 50.
  • the data that identifies parameters of the network 50 can include, for example, data that identifies network health (latency, throughput, media consistency, jitter), data that identifies availability of external IP addresses and/or data that identifies different internet service providers (ISPs) using different types of network connection technologies such as DSL or dial up, etc.
  • ISPs internet service providers
  • the intelligent agent 60 can generate a configuration that provides a reduced set of service options to a user of the client 30 in order not to over-stress the weak connection.
  • data that identifies parameters of the network 50 that may affect the generation of the configuration by the intelligent agent 60 include local gateway latency, multi-hop latency, network routing between the client and the configuration server, round-trip-time for sending data between the client 30 and the gateway interface type for local connection (WiFi, Ethernet, Bluetooth, etc.).
  • the environment identification data can include data that identifies the physical location of the communication device 20, which can affect the service options that can be provided to the user by the client 30. For example, when the location or approximate location of the communication device 20 is determined to be in a country where eavesdropping on communications is common, the intelligent agent 60 of the configuration server 40 generates a configuration that the client 30 utilizes to configure itself to encrypt outgoing communications. The intelligent agent 60 may also generate a configuration which the client 30 utilizes to configure itself to use, for example, secured HTTPS port 443 instead of unsecured HTTP port 80. Further, the intelligent agent 60 may generate a configuration that the client 30 utilizes to configure itself to use a virtual private network (VPN).
  • VPN virtual private network
  • Figure 4 shows an example of a data sequence diagram showing the flow of environment identification data and a configuration between a client 30 and a configuration server 40 in accordance with an embodiment of the present disclosure.
  • the communication device 20 When the communication device 20 is activated by a user, the communication device 20 connects to the network 50 through any suitable known process at 400. In doing so, the communication device 20, at 405, acquires an IP address, identifies the network 50 to which the communication device 20 is connected, and identifies the type of connection between the communication device 20 and the network 50. In the present example, the communication device 20 connects to the network 50 using a WiFi connection.
  • the communication device 20 stores in a memory the acquired IP address, the data that identifies the network 50, data that identifies the connection as being a WiFi connection, data that identifies the signal strength of the WiFi connection as environment identification data.
  • the communication device 20 also stores in memory further environment identification data such as, for example, data that identifies a subscriber identity number (SIN) associated with the communication device 20, data that identifies the operating system installed and running on the communication device 20, and data that identifies the firmware installed and running on the communication device 20.
  • SIM subscriber identity number
  • the client 30 When a user logs into the client 30, the client 30 is activated and the client 30 sends a request 410 to the communication device 20 for the environment identification data stored on the communication device 20. In response to receipt of the request 400. the communication device 20 sends 415 the environment identification data stored thereon to the client 30. In response to receipt of the environment identification data, the client 30 then sends 420 the environment identification data to the configuration server 40, via the communication device 20 and the network 50.
  • the configuration sever 40 obtains the environment identification data from the client 30.
  • the intelligent agent 60 of the configuration server 40 generates a configuration based on, or as a function of, the obtained environment identification data and the administrative constraints or rules set by, for example, a network administrator.
  • the configuration server Upon generating a configuration, the configuration server pushes 425 the configuration, via the network 50 and the communication device 20, to the client 30. In response to receipt of the configuration pushed 425 from the configuration server 40, the client 30 configures itself based on received configuration.
  • the configuration server 40 may periodically obtain new environment identification data to the client 30 during operation of the client.
  • the intelligent agent 60 of the configuration server 40 Upon receipt of the new environment identification data, the intelligent agent 60 of the configuration server 40 generates a new configuration based on, or as a function of, the new environment identification data, and the administrative constraints or rules.
  • the configuration server pushes 415 the new configuration, via the network 50 and the communication device 20, to the client 30.
  • the client 30 configures itself based on the new configuration.
  • the configuration server 40 may obtain (e.g., the client may periodically update the configuration server) a change in the environment identification data and the intelligent agent 60 of the configuration server 40 may generate a new configuration based on the new environment identification data and the administrative constraints or rules. Upon generating the new configuration, the configuration server 40 pushes 425 the new configuration to the client 30, which configures itself based on the new configuration.
  • the method of the present disclosure dynamically generates configurations for the client as environment identification obtained from the client 30 changes during operation of the client 30.
  • Figure 5 shows another example of a data sequence diagram showing the flow of environment identification data and a configuration between a client 30 and a configuration server 40 in accordance with an embodiment of the present disclosure.
  • the method begins with the client 30 sending a request 500 to the communication device 20 for environment identification data.
  • the client 30 sends the request 500 when a user logs into the client 30 or periodically during operation of the client 30.
  • the communication device 20 sends a request 505 to the network 50 for data that identifies network parameters.
  • the network 50 sends 510 environment identification data to the communication device 20.
  • the environment identification data includes data that identifies parameters of the network 50 to which the communication device 20 is connected.
  • the data that identifies parameters of the network 50 include, for example, data that identifies the network 50, data that identifies the number of hops between the network 50 and the configuration server 40, data that identifies the local/private external IP address, data that identifies the type of connection type for the communication device 30 (WiFi or Ethernet), data that identifies the cell within which the communication device 20 operates, data that identifies the time zone the communication device 20 is in, data that identifies the wireless SSID, data that that identifies the signal strength of the connection, data that identifies the ping time to a particular network destination, data that identifies the IP speed test information, data that identifies whether the communication device 20 can reach the private SIP interface of a phone system, and data that identifies whether the communication device 30 can a VPN concentrator.
  • the communication device 20 In response to receipt of the environment identification data that identifies the parameters of the network 50, the communication device 20 combines the environment identification data received from the network 50 with further environment identification data stored in a memory of the communication device 20.
  • the environment identification data stored in memory includes, for example, data that identifies parameters of the hardware of the communication device 20, data that identifies the parameters of the software installed on the communication device 20, and optionally, data that identifies a physical location of the communication device 20, to form the environment identification data.
  • the communication device 20 then sends 515 the combined environment identification data to the client 30.
  • the client 30 In response to receipt of the combined environment identification data from the client 30, the client 30 then sends 520 the combined environment identification data to the configuration server 40, via the communication device 20 and the network 50.
  • the configuration sever 40 obtains the combined environment identification data from the client 30.
  • the intelligent agent 60 of the configuration server 40 generates a configuration based on, or as a function of, the obtained combined environment Identification data and the administrative constraints or rules set by, for example, a network administrator.
  • the configuration server Upon generating a configuration, the configuration server pushes 525 the configuration, via the network 50 and the communication device 20, to the client 30. In response to receipt of the configuration pushed 525 by the configuration server 40, the client 30 configures itself based on the configuration.
  • Figure 6 shows another example of a data sequence diagram showing the flow of environment identification data and a configuration between a client 30 and a configuration server 40 in accordance with an embodiment of the present disclosure.
  • the communication device 20 includes sensors for obtaining data that identifies parameters associated with the physical location at which the communication device 20 operates.
  • the communication device 20 includes inertial sensors 60 such as a gyroscope, a magnetometer (a compass), and an accelerometer, a barometric pressure sensor, a GPS system, each of which provides data that identifies parameters associated with the physical location in which the communication device 20 operates.
  • the client 30 sends a request 600 to the sensors 60 for environment identification data.
  • the client 30 sends the request 600 to the sensors 60 for environment identification data that includes data that identifies parameters associated with the physical location in which the communication device 20 operates.
  • the clients may send the request 600 to the sensors 60 when the client 30 is activated by a user logging into the client 30 or periodically during operation of the client 30.
  • the sensors 60 In response to receipt of the request 600 from the client 30, the sensors 60 provide 605 environment identification data to the client 30, which includes data that identifies parameters associated with the physical location in which the communication device 20 operates.
  • the client 30 sends a request 610 to the communication device 20 for environment identification data.
  • the communication device 20 sends a request 615 to the network 50 for environment identification data that includes data that identifies network parameters.
  • the network 50 sends 620 environment identification data that includes data that identifies the network parameters of the network 50 to which the communication device 20 is connected.
  • the network parameters include, for example, data that identifies the network 50, the number of hops between the network 50 and the configuration server 40.
  • the communication device 20 In response to receipt of environment identification data from the sensors 60 and environment identification data from the network 50, the communication device 20 combines the environment identification data received from both the sensors 60 and the network with further environment identification data stored in, for example, memory of the communication device, and sends 625 the combined environment identification data to the client 30.
  • the further environment identification data includes data that identifies parameters of the hardware of the communication device, data that identifies the parameters of the software installed on the communication device 20.
  • the client 30 In response to receipt of the environment identification data from the communication device 20, the client 30 sends 630 the combined environment identification data to the configuration server 40 via the communication device 20 and the network 50.
  • the configuration sever 40 obtains the combined environment identification data from the client 30.
  • the intelligent agent 60 of the configuration server 40 generates a configuration based on the obtained combined environment identification data, the technical factors associated with the network, and the administrative constraints or rules set by, for example, a network administrator.
  • the configuration server Upon generating a configuration, the configuration server pushes 635 the configuration, via the network 50 and the communication device 20, to the client 30. In response to receipt of the configuration pushed 635 from the configuration server 40, the client 30 configures itself based on the configuration.
  • the configuration server 40 can obtain the environment identification data from the client 30 using any suitable type of application layer information transfer procedure such as, for example, the hypertext transfer protocol (HTTP).
  • HTTP hypertext transfer protocol
  • Desktop clients may place this on the command line or attribute in body of POST, including JSON, XML, key value pair, etc. and at any suitable time over the lifecycle of the client.
  • the configuration server 40 can obtain environment identification data once when the client 30 is initialized for the first time, at startup each time the client is launched, when the client 30 is in the process of exiting, after network events such as change of transport (UDP, TCP, 3G, WiFi, 4G), change of IP address, change of interface availability, change of quality of interface type (e.g. Ethernet vs WiFi vs BluetoothTM) at communication events, at device related events such as a connection on USB, or connection to mains charger, plugin of a headset, headset type, upon a change of location (physical or network-wise) of the communication device 20, etc.
  • network events such as change of transport (UDP, TCP, 3G, WiFi, 4G), change of IP address, change of interface availability, change of quality of interface type (e.g. Ethernet vs WiFi vs BluetoothTM) at communication events, at device related events such as a connection on USB, or connection to mains charger, plugin of a headset, headset type, upon a change of location (physical or network-wise) of the communication
  • the configuration pushed by the configuration server 40 can also include parameters or settings to activate a module already contained within the client 30.
  • the configuration server 40 can provide the client 30 with additional software modules that allow the client 30 to enable new or different service options.
  • the configuration server 40 can provide the client 30 with a configuration that has parameters or settings for enabling the client 30 to configure itself for Transport Layer Security (TLS), Secure Real-Time Transport Protocol features, Session Initiation Protocol (SIP) port configuration, Tunneling Service Module (TSM) tunneling enablement, etc.
  • TLS Transport Layer Security
  • SIP Session Initiation Protocol
  • TSM Tunneling Service Module
  • Communications clients are often customized to work with particular platforms. In non-ideal situations clients only operate against a particular brand/model/vendor specific implementation of a communications platform or network topology, network configuration, or other environmental factor. Communications clients built with the ideas embodied in the present disclosure are more flexible. They can contain a base set of features and functions that would, for example, work across common sets of communications platforms. They can also contain loadable, configurable, or downloadable component modules that enhance the feature and functions contained within the client or modify the features, functions, or components of the client to make it work or interoperate with specific communications server platforms. These modules can be complete features / functions. These modules can be modifications to signaling stacks or existing functions. These modules can be user interface components. These modules can be independent of user interface such that similar features which are implemented in disparate manners are presented to the user in a unified way despite the communications platform's implementation.
  • Embodiments of the disclosure can be represented as a computer program product stored in a machine-readable medium (also referred to as a computer-readable medium, a processor-readable medium, or a computer usable medium having a computer-readable program code embodied therein).
  • the machine-readable medium can be any suitable tangible, non-transitory medium, including magnetic, optical, or electrical storage medium including a diskette, compact disk read only memory (CD-ROM), memory device (volatile or non-volatile), or similar storage mechanism.
  • the machine-readable medium can contain various sets of instructions, code sequences, configuration information, or other data, which, when executed, cause a processor to perform steps in a method according to an embodiment of the disclosure.

Description

    FIELD
  • The present disclosure generally relates to client-server networks. More particularly, the present disclosure relates to a method and system for configuring a client installed and running on a communication device based on the environment within which the client operates.
  • BACKGROUND
  • In client-server networks, a client is a computer program or software that accesses a service provided by a server through a network. A client resides on a communication device, such as, for example, a personal digital assistant (PDA), a mobile phone, a desktop computer, a laptop computer, or a tablet.
  • Presently, a client that accesses a service provided by a server can detect its location within a network by determining environment parameters, network parameters, or both, and, accordingly, the client can control, based on these parameters, which options of the service (hereinafter referred to as service options) the client provides to a user. That is, the client can enable or disable different service options that are provided by the client to a user based on environment parameters, network parameters, or both, by selecting a configuration that is preset in the client. For example, a client may have one preset configuration that configures the client to access the service through a wireless connection, such as WiFi or WiMax, and another preset configuration that configures the client to access the service through a cellular connection, such as 4G or LTE. The client, during initialization, such as when a user of the communication device logs into the client to access the service, may select one of these preset configurations and configure itself accordingly. When configuring itself, the client enables and disables different service options (e.g. network speed, security setting, etc.) provided by the client. Related technology is disclosed in: US 2014/325041 that relates to a method for adapting a client to a hardware environment; US 2006/265386 that relates to a method for thin client configuration, and EP 2 472 817 that relates to system and method for optimization of execution of security tasks in local network.
  • The preset configurations that can be selected by the client during initialization of the client are static and preset in the client software. Thus, when network settings change, i.e., when the hardware or software of the communication device or the location of the communication device changes, the static preset configurations that can be selected by the client are unable to dynamically adapt to these changes, and the client is likely to perform poorly or not at all.
  • Improvements in methods of configuring a client installed and running on a communication device are therefore desirable.
  • SUMMARY
  • The present disclosure provides a method as defined by the appended independent claim 1 for dynamically 5 configuring a client installed and running on communication device as a function of the environment within which the client operates and the administrative constraints set by, for example, a network administrator.
  • Further advantageous embodiments are set out in the appended dependent claims.
  • Other aspects and features of the present disclosure will become apparent to those ordinarily skilled in the art upon review of the following description of specific embodiments in conjunction with the accompanying figures.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • Embodiments of the present disclosure will now be described, by way of example only, with reference to the attached Figures.
    • Figure 1 is a block diagram of a system for configuring a client installed and running on a communication device in accordance with an example embodiment of the present disclosure;
    • Figure 2 is a flowchart illustrating a method of configuring a client installed and running on a communication device in accordance with an example embodiment of the present disclosure;
    • Figure 3 is a flowchart a method of configuring a client installed and running on a communication device in accordance with another example embodiment of the present disclosure;
    • Figure 4 is a data sequence diagram in accordance with an embodiment of the present disclosure;
    • Figure 5 is a data sequence diagram in accordance with another embodiment of the present disclosure; and
    • Figure 6 is a data sequence diagram in accordance with another embodiment of the present disclosure.
    DETAILED DESCRIPTION
  • For simplicity and clarity of illustration, reference numerals may be repeated among the figures to indicate corresponding or analogous elements. Numerous details are set forth to provide an understanding of the embodiments described herein. The embodiments may be practiced without these details. In other instances, well-known methods, procedures, and components have not been described in detail to avoid obscuring the embodiments described. The description is not to be considered as limited to the scope of the embodiments described herein.
  • Generally, the present disclosure relates to a method for configuring a client that is installed and running on a communication device based on the environment within which the client operates.
  • In the present disclosure, elements in a network can be said to be operationally connected to each other when, for example, information in one element can be communicated to another element through the network. Further, elements in a network can be said to be operationally connected when an action in, or a state of, one element can be controlled by, or related to an action in, or a state of, another element.
  • Referring now to Figure 1, a block diagram of a system for configuring a client installed and running on a communication device in accordance with an embodiment of the present disclosure is shown. The system 10 includes a communication device 20 on which a client 30 is installed and running, and a configuration server 40 that is operationally connected to the client 30 through the communication device 20 and a network 50. The configuration server 40 includes an intelligent agent 60, which is described in further detail below.
  • The communication device 20 is any suitable electronic device than can run the client 30 and communicate with the configuration server 40 through the network 50. Examples of a communication device 20 include a mobile phone, a smartphone, a personal digital assistant (PDA), tablets, a desktop computer, and a laptop computer. The client 30 is a computer program or software that provides a communication service to a user. In an embodiment, the client 30 is a computer program or software that provides video calling, voice calling, or instant messaging capabilities to a user using a voice over internet protocol (VoIP). In the video calling embodiment, the client 30 communicates with another client (not shown) through the network 50. The configuration server 40 is operationally connected to the client 30 for configuring the client 30 to enable communication with other clients (not shown) via the network 50.
  • The intelligent agent 60 generates configurations for the client 30 as described in further detail below. Each configuration generated by the intelligent agent 60 includes parameters or settings that the client 30 uses to configure itself.
  • Referring now to Figure 2, a flowchart of a method of configuring a client 30 installed on a communication device 20, in accordance with an embodiment of the present disclosure, is shown. The method may be carried out by software executed, for example by, a processor (not shown) of the configuration server 40. Coding of software for carrying out such a method is within the scope of a person of ordinary skill in the art given the present description. The method may contain additional or fewer processes than shown and/or described. Computer-readable code executable by the processor to perform the method may be stored in a non-transitory, tangible computer-readable medium that is operationally connected to the processor.
  • The method begins at 200 and then proceeds to action 210. At action 210. the configuration server 40 obtains, from the client 30, data related to the environment within which the client 30 operates. In an embodiment, the configuration server 40 obtains, from the client 30, data related to the environment, upon initialization of the client 30 (i.e., when a user logs into the client). In an alternative embodiment, the configuration server 40 obtains, from the client 30, data related to the environment during operation of the client 30 The data related to the environment in which the client operates is referred to as environment identification data. In an embodiment, the configuration server 40 obtains the environment identification data using the Hypertext Transfer Protocol (HTTP). In this embodiment, the environment identification data is formatted In accordance with the HTTP protocol and placed in the body of a POST (HTTP) request.
  • In an alternative embodiment, the configuration server 40 may obtain information about the client from a transmission control protocol (TCP wrapper) or from reports the client 30 has prepared with respect to sources, such as, for example, a Geo-IP lookup of the device's country or a Lookup of the carrier of record for an IP address. When such a report states that a carrier of record is located in a city/country that is far away where there may be a time-delay issue, this may affect the choice of the most suitable voice codec to use when generating a configuration for the client. As another example, when such a report states that a wireless carrier is used, NAT traversal may be more of a concern / issue in communicating with the client; this may affect an eventual choice of particular NAT traversal techniques when generating a configuration for the client. As a further example, when a client is associated with an enterprise, a report stating that the client is currently at the enterprise facility or outside the facility may affect the choice of security settings to apply to the client when generating a configuration of the client. As another example of a report, the configuration server may obtain a report that pertains to the voice quality monitoring (VQM) or analytics of a video/audio call made using the client. This may also affect the generation of a configuration for the client.
  • For the purposes of the present disclosure, the environment identification data can include, for example, data that identifies the parameters of the hardware of the communication device 20, the parameters of the software installed on the communication device 20, parameters of the network 50 to which the communication device 20 is operationally connected (hereinafter referred to as network parameters), or parameters associated with the physical location at which the communication device 20 operates (hereinafter referred to as environmental parameters). In an embodiment, the environment identification data may not include parameters associated with the physical location at which the communication device 20 is located.
  • Examples of data that identifies the parameters of the hardware of the communication device 20 includes data that identifies the brand and/or the model number of the communication device 20, the brand and/or model of a processor in the communication device 20, the number of processors running in the communication device 20, the type and the number of data converters (e.g., audio codecs, video codecs) installed in the communication device 20, the brand of the communication hardware (including, e.g., the brand of a transceiver) installed in the communication device 20, any peripheral device operationally connected to the communication device 20 using, for example, Bluetooth™, an audio input device that is part of, or that is operationally connected to, the communication device 20, a video or image capture device that is part of, or that is operationally connected to, the communication device 20, the hardware platform interface of the communication device 20, the battery level of the communication device 20, etc.
  • Examples of data that identifies the parameters of the software installed on the communication device 20 includes data that identifies the operating system running on the communication device 20, the software and firmware, running on the communication device 20, including the versions of the software and firmware.
  • Examples of data that identifies parameters of the network 50 includes data that identifies the network 50 to which the communication device 20 is operationally connected, a type of connection between the communication device 20 and the network 50 (e.g. a wired connection such as Ethernet or wireless connection such as WiFi, 3G, 4G, LTE etc.) and the parameters of the connection, such as a signal strength of the wired or wireless signal. Data that identifies parameters of the network 50 can also include, for example, an external IP address of the communication device 20, an internal IP address of the communication device 20, or both, a Domain Name Server (DNS) to which the communication device 20 is operationally connected, a routing database of the network 50, the routes defined in the routing database, and the number of hops (network hops) between the communication device 20 and another client (not shown). Additionally, the data that identifies parameters of the network 50 can include a MAC address of any suitable device that is part of the network that operationally connects the communication device 20 to the network 50.
  • Examples of data that identifies parameters associated with the physical location in which the communication device 20 operates can include a geographical location of the communication device 20, the location of the cell in a cellular network to which the communication device 20 is connected as well as the location of one or more neighboring cells, the location of the access point of a WiFi hub to which the communication device is operationally connected, the location of near field communication system (NFC) or Bluetooth™ beacons to which the communication device 20 is operationally connected. In addition, data that identifies parameters associated with the physical location in which the communication device 20 operates can include data from the output of inertial sensors and data from the output of a barometric pressure sensor installed in the communication 20 or location. In an embodiment, a geographic location of the communication device 20 can be determined from the GPS coordinates of the communication device 20. The GPS coordinates of the communication device 20 can be obtained from a conventional GPS system, an assisted GPS system, or a synthetic GPS system, which uses GPS satellites forecast locations days or week in advance.
  • Referring again to Figure 2, after obtaining the environment identification data from the client 30 at action 210, the method proceeds to action 220. At action 220, the intelligent agent 60 of the configuration server 40 retrieves administrative constraints or rules and generates a configuration for the client 30 based on, or as a function of, the obtained environment identification data and the administrative constraints or rules. The administrative constraints or rules are set by, for example, a network administrator and are stored in a memory of the configuration server 40.
  • For the purposes of the present disclosure, administrative constraints or rules may include user options for the service provided by the client 30, security clearance level of a user, access privileges corresponding to the physical location of the communication device 20 on which the client 30 is installed, version of the client software for use with a particular service, etc. For example, when a user has paid to access certain premium service options of the client 30, a network administrator may set the administrative constraints or rules such that the intelligent agent 60 generates a configuration that provides access to the premium service options. Also, when the communication device 20 is in a particular office of a company or when the user of the communication device 20 meets or does not meet a certain security clearance level, the intelligent agent 60 may generate a configuration accordingly.
  • Subsequent to generating a configuration at action 220, the method proceeds to action 230. At action 230, the configuration server 40 pushes the configuration that was generated at the configuration server 40, to the communication device 20 via the network 50, and in turn the communication device 20 pushes the configuration that is received from the configuration server 40 to the client 30. In an embodiment, the configuration server 40 generates a text file that includes the configuration and pushes the text file to the client 30. In an alternative embodiment, when the communication device 20 is a desktop or laptop computer, the configuration server 40 may also push binary files to the client 30 that define new service options for the client 30. For example, the configuration server may push a binary plug-in that can be loaded dynamically and installed into the client 30 as an extension to enable the client 30 to provide the new service options.
  • Upon receipt of the configuration from the communication device 20, the client 30 configures itself based on the received configuration.
  • An example of a configuration generated by the intelligent agent 60 will now be described. In this example, the configuration server 40 has obtained the following environment identification data from the client 30:
    • data that identifies that the user is a member of a particular enterprise and data that identifies that the user has downloaded installed the client 30 on the communication device 20;
    • data that identifies the communication device 20 as a smart phone device;
    • data that identifies the version of the client 30;
    • data that identifies the operating system of the smart phone;
    • data that identifies the version of the operating system;
    • data that identifies the hardware version of the smart phone (in this example, the data identifies that the hardware version is version 3 rather than the latest hardware version 5);
    • data that identifies that the smart phone on which the client 30 is running is connected using a wireless connection, such as a long-term evolution (LTE) connection; and
    • data that identifies that the client 30 is located in Spain.
  • In this example, the administrative constraints or rules are:
    • the administrator has chosen that all clients, no matter the type or network, should only ever use the audio codec G.711 and the video codec H.264; and
    • for this enterprise, the administrator has chosen that older models of smart phones should not use more advanced codecs.
  • Thus, the intelligent agent 60 of the configuration server 40 generates a configuration based on, or as function of, the environment identification data and the administrative factors noted above. The configuration sever 40 pushes the generated configuration to the client 30 running on the smart phone, and the client 30 uses the parameters in the configuration to configure itself. The configuration that is generated by the intelligent agent 60 includes parameters or settings that inform the client 30 to use the audio codec G.711 and the video codec H.264 of the smart phone, and parameters or settings that enable the client 30 to use more bandwidth with lower quality than what a newer device (version 5) would receive.
  • In an embodiment, the client 30 may install any new binary items, may activate new features such as enabling a codec of the communication device, turn on session initiation protocol (SIP) presence in the communication device 20, or activate a virtual private network (VPN) for the client 30. In another embodiment, after the client 30 configures itself based on the configuration received from the configuration server 40, the client 30 may restart itself. In an alternative embodiment, the client 30 may disconnect and reconnect to servers connected to the network 50 to broadcast its new capabilities.
  • The configuration server 40 that pushes the generated configuration presupposes that the client 30 has all the configurable options or functionalities addressed by the configuration. In another embodiment, the configuration server 40 pushes not only the configuration that the intelligent agent 60 generates, but also binary files that define new functions of the client 30.
  • Figure 3 shows a flowchart of a method of configuring a client installed on a communication device in accordance with another embodiment of the present disclosure. The method begins at 300 and proceeds to action 310. At action 310, the configuration server 40 obtains, from the client 30, data related to the environment in which the client operates, i.e., environment identification data. After the environment identification data is obtained at action 310, the method proceeds to 320.
  • At action 320, the configuration server 40 determines whether there has been a change in the environment identification data. When the configuration server 40 determines that there has been no change in the environment identification data, the method proceeds to action 330 and ends or, alternatively, the method can loop back to action 310. In an embodiment, there can be a predetermined time delay between actions 310 and 320. The predetermined time delay can be any suitable time duration in which the client periodically obtains environment identification data to determine if configuration changes are warranted. When the configuration server 40 determines that there has been a change in the environment identification data obtained from the client 30, the method proceeds from action 320 to action 340. At action 340, the intelligent agent 60 generates a new configuration based on the new environment identification data and the administrative constraints or rules set by a network administrator and stored in a memory on the configuration server 40. The method proceeds to action 350.
  • At action 350, the configuration server 40 determines whether the new configuration that is generated by the intelligent agent 60 at action 340 is different from a previous configuration generated by the intelligent agent 60 and pushed to the client 30. In this embodiment, the configuration server 40 can receive and store a record of the previous configuration generated and pushed to the client 30 at the time the environment identification data is obtained at action 310. In an alternative embodiment, the configuration server 40 may simply keep a record of the last configuration pushed to the client 30. When the configuration server 40 determines that the new configuration that is generated by the intelligent agent 60 is different from the previously generated configuration by the intelligent agent 60, the method proceeds to action 360. At action 360. the configuration server 40 pushes the new configuration to the communication device 20 via the network 50. and in turn the communication device 20 pushes the new configuration to the client 30. Upon receipt of the new configuration from the communication device 20, the client 30 configures itself based on the new configuration.
  • When the configuration server 40 determines that the new configuration generated by the intelligent agent 60 is the same as the configuration previously generated by the intelligent agent 60 at action 340, the method proceeds to action 370 and ends, or alternatively, loops back to action 310 with or without being subjected to a predetermined time delay.
  • As can be understood by the flowchart of Figure 3, in some scenarios, a change in the environment identification data does not warrant a change in the configuration of the client 30. That is, the intelligent agent 60 of the configuration server 40 may generate the same configuration for different sets of environment identification data and administrative constraints or rules.
  • In the present disclosure, the environment identification data affects the configuration of the client 30 and the service options provided to a user. For example, when the communication device 20 has multiple audio codecs and multiple video codecs, the configuration server 40 receives environment identification data from the client 30, which data identifies the multiple audio and the multiple video codecs of the device, the intelligent agent 60 of the configuration server 40 generates a configuration based on, for example, the type of network to which the communication device is operationally connected. The configuration generated by the intelligent agent 60 includes parameters or setting that the client 30 utilizes to configure itself to use one video codec and one audio codec amongst the multiple audio and the multiple video codecs to configure the client.
  • In a further example, the environment identification data includes data that identifies parameters of the network 50. The data that identifies parameters of the network 50 can Include, for example, data that identifies network health (latency, throughput, media consistency, jitter), data that identifies availability of external IP addresses and/or data that identifies different internet service providers (ISPs) using different types of network connection technologies such as DSL or dial up, etc. Specifically, when the strength of a wireless signal (WiFi or cellular) connecting the communication device 20 to the network 50 is weak, the intelligent agent 60 can generate a configuration that provides a reduced set of service options to a user of the client 30 in order not to over-stress the weak connection. Further examples of data that identifies parameters of the network 50 that may affect the generation of the configuration by the intelligent agent 60 include local gateway latency, multi-hop latency, network routing between the client and the configuration server, round-trip-time for sending data between the client 30 and the gateway interface type for local connection (WiFi, Ethernet, Bluetooth, etc.).
  • In a further example, the environment identification data can include data that identifies the physical location of the communication device 20, which can affect the service options that can be provided to the user by the client 30. For example, when the location or approximate location of the communication device 20 is determined to be in a country where eavesdropping on communications is common, the intelligent agent 60 of the configuration server 40 generates a configuration that the client 30 utilizes to configure itself to encrypt outgoing communications. The intelligent agent 60 may also generate a configuration which the client 30 utilizes to configure itself to use, for example, secured HTTPS port 443 instead of unsecured HTTP port 80. Further, the intelligent agent 60 may generate a configuration that the client 30 utilizes to configure itself to use a virtual private network (VPN).
  • Figure 4 shows an example of a data sequence diagram showing the flow of environment identification data and a configuration between a client 30 and a configuration server 40 in accordance with an embodiment of the present disclosure.
  • When the communication device 20 is activated by a user, the communication device 20 connects to the network 50 through any suitable known process at 400. In doing so, the communication device 20, at 405, acquires an IP address, identifies the network 50 to which the communication device 20 is connected, and identifies the type of connection between the communication device 20 and the network 50. In the present example, the communication device 20 connects to the network 50 using a WiFi connection.
  • In the present embodiment, the communication device 20 stores in a memory the acquired IP address, the data that identifies the network 50, data that identifies the connection as being a WiFi connection, data that identifies the signal strength of the WiFi connection as environment identification data. The communication device 20 also stores in memory further environment identification data such as, for example, data that identifies a subscriber identity number (SIN) associated with the communication device 20, data that identifies the operating system installed and running on the communication device 20, and data that identifies the firmware installed and running on the communication device 20.
  • When a user logs into the client 30, the client 30 is activated and the client 30 sends a request 410 to the communication device 20 for the environment identification data stored on the communication device 20. In response to receipt of the request 400. the communication device 20 sends 415 the environment identification data stored thereon to the client 30. In response to receipt of the environment identification data, the client 30 then sends 420 the environment identification data to the configuration server 40, via the communication device 20 and the network 50.
  • When the client 30 sends the environment identification data, the configuration sever 40 obtains the environment identification data from the client 30. Upon obtaining the environment identification data from the client 30, the intelligent agent 60 of the configuration server 40 generates a configuration based on, or as a function of, the obtained environment identification data and the administrative constraints or rules set by, for example, a network administrator.
  • Upon generating a configuration, the configuration server pushes 425 the configuration, via the network 50 and the communication device 20, to the client 30. In response to receipt of the configuration pushed 425 from the configuration server 40, the client 30 configures itself based on received configuration.
  • In an alternative embodiment, the configuration server 40 may periodically obtain new environment identification data to the client 30 during operation of the client. Upon receipt of the new environment identification data, the intelligent agent 60 of the configuration server 40 generates a new configuration based on, or as a function of, the new environment identification data, and the administrative constraints or rules. Upon generating the new configuration, the configuration server pushes 415 the new configuration, via the network 50 and the communication device 20, to the client 30. In response to receipt of the new configuration pushed 425 from the configuration server 40, the client 30 configures itself based on the new configuration.
  • In an alternative embodiment, the configuration server 40 may obtain (e.g., the client may periodically update the configuration server) a change in the environment identification data and the intelligent agent 60 of the configuration server 40 may generate a new configuration based on the new environment identification data and the administrative constraints or rules. Upon generating the new configuration, the configuration server 40 pushes 425 the new configuration to the client 30, which configures itself based on the new configuration.
  • Advantageously, the method of the present disclosure dynamically generates configurations for the client as environment identification obtained from the client 30 changes during operation of the client 30.
  • Figure 5 shows another example of a data sequence diagram showing the flow of environment identification data and a configuration between a client 30 and a configuration server 40 in accordance with an embodiment of the present disclosure.
  • The method begins with the client 30 sending a request 500 to the communication device 20 for environment identification data. The client 30 sends the request 500 when a user logs into the client 30 or periodically during operation of the client 30. In response to receipt of the request 500, the communication device 20 sends a request 505 to the network 50 for data that identifies network parameters. In response to the receipt of the request 505 from the communication device 20, the network 50 sends 510 environment identification data to the communication device 20. In the present embodiment, the environment identification data includes data that identifies parameters of the network 50 to which the communication device 20 is connected. The data that identifies parameters of the network 50 include, for example, data that identifies the network 50, data that identifies the number of hops between the network 50 and the configuration server 40, data that identifies the local/private external IP address, data that identifies the type of connection type for the communication device 30 (WiFi or Ethernet), data that identifies the cell within which the communication device 20 operates, data that identifies the time zone the communication device 20 is in, data that identifies the wireless SSID, data that that identifies the signal strength of the connection, data that identifies the ping time to a particular network destination, data that identifies the IP speed test information, data that identifies whether the communication device 20 can reach the private SIP interface of a phone system, and data that identifies whether the communication device 30 can a VPN concentrator.
  • In response to receipt of the environment identification data that identifies the parameters of the network 50, the communication device 20 combines the environment identification data received from the network 50 with further environment identification data stored in a memory of the communication device 20. The environment identification data stored in memory includes, for example, data that identifies parameters of the hardware of the communication device 20, data that identifies the parameters of the software installed on the communication device 20, and optionally, data that identifies a physical location of the communication device 20, to form the environment identification data. The communication device 20 then sends 515 the combined environment identification data to the client 30.
  • In response to receipt of the combined environment identification data from the client 30, the client 30 then sends 520 the combined environment identification data to the configuration server 40, via the communication device 20 and the network 50.
  • When the client 30 sends the combined environment identification data, the configuration sever 40 obtains the combined environment identification data from the client 30. Upon obtaining the combined environment identification data from the client 30, the intelligent agent 60 of the configuration server 40 generates a configuration based on, or as a function of, the obtained combined environment Identification data and the administrative constraints or rules set by, for example, a network administrator.
  • Upon generating a configuration, the configuration server pushes 525 the configuration, via the network 50 and the communication device 20, to the client 30. In response to receipt of the configuration pushed 525 by the configuration server 40, the client 30 configures itself based on the configuration.
  • Figure 6 shows another example of a data sequence diagram showing the flow of environment identification data and a configuration between a client 30 and a configuration server 40 in accordance with an embodiment of the present disclosure.
  • In the embodiment shown in Figure 6, the communication device 20 includes sensors for obtaining data that identifies parameters associated with the physical location at which the communication device 20 operates. The communication device 20 includes inertial sensors 60 such as a gyroscope, a magnetometer (a compass), and an accelerometer, a barometric pressure sensor, a GPS system, each of which provides data that identifies parameters associated with the physical location in which the communication device 20 operates.
  • In present embodiment, the client 30 sends a request 600 to the sensors 60 for environment identification data. In the present embodiment, the client 30 sends the request 600 to the sensors 60 for environment identification data that includes data that identifies parameters associated with the physical location in which the communication device 20 operates. The clients may send the request 600 to the sensors 60 when the client 30 is activated by a user logging into the client 30 or periodically during operation of the client 30.
  • In response to receipt of the request 600 from the client 30, the sensors 60 provide 605 environment identification data to the client 30, which includes data that identifies parameters associated with the physical location in which the communication device 20 operates.
  • Also, either when the client 30 is activated or periodically during operation of the client 30, the client 30 sends a request 610 to the communication device 20 for environment identification data. In response to receipt of the request 610, the communication device 20 sends a request 615 to the network 50 for environment identification data that includes data that identifies network parameters. In response to receipt of the request 615 from the communication device 20, the network 50 sends 620 environment identification data that includes data that identifies the network parameters of the network 50 to which the communication device 20 is connected. The network parameters include, for example, data that identifies the network 50, the number of hops between the network 50 and the configuration server 40.
  • In response to receipt of environment identification data from the sensors 60 and environment identification data from the network 50, the communication device 20 combines the environment identification data received from both the sensors 60 and the network with further environment identification data stored in, for example, memory of the communication device, and sends 625 the combined environment identification data to the client 30. In the present embodiment, the further environment identification data includes data that identifies parameters of the hardware of the communication device, data that identifies the parameters of the software installed on the communication device 20.
  • In response to receipt of the environment identification data from the communication device 20, the client 30 sends 630 the combined environment identification data to the configuration server 40 via the communication device 20 and the network 50.
  • When the client 30 sends the combined environment identification data, the configuration sever 40 obtains the combined environment identification data from the client 30. Upon obtaining the combined environment identification data from the client 30. the intelligent agent 60 of the configuration server 40 generates a configuration based on the obtained combined environment identification data, the technical factors associated with the network, and the administrative constraints or rules set by, for example, a network administrator.
  • Upon generating a configuration, the configuration server pushes 635 the configuration, via the network 50 and the communication device 20, to the client 30. In response to receipt of the configuration pushed 635 from the configuration server 40, the client 30 configures itself based on the configuration.
  • In an embodiment, the configuration server 40 can obtain the environment identification data from the client 30 using any suitable type of application layer information transfer procedure such as, for example, the hypertext transfer protocol (HTTP). For example, the configuration server can send a POST (HTTP) request with "attribute=??" in the body and, in return, receive the environment identification data. Desktop clients may place this on the command line or attribute in body of POST, including JSON, XML, key value pair, etc. and at any suitable time over the lifecycle of the client. For example, when the communication device 20 is a portable electronic device, the configuration server 40 can obtain environment identification data once when the client 30 is initialized for the first time, at startup each time the client is launched, when the client 30 is in the process of exiting, after network events such as change of transport (UDP, TCP, 3G, WiFi, 4G), change of IP address, change of interface availability, change of quality of interface type (e.g. Ethernet vs WiFi vs Bluetooth™) at communication events, at device related events such as a connection on USB, or connection to mains charger, plugin of a headset, headset type, upon a change of location (physical or network-wise) of the communication device 20, etc.
  • In an alternative embodiment, the configuration pushed by the configuration server 40 can also include parameters or settings to activate a module already contained within the client 30. In addition to the configuration, the configuration server 40 can provide the client 30 with additional software modules that allow the client 30 to enable new or different service options. The configuration server 40 can provide the client 30 with a configuration that has parameters or settings for enabling the client 30 to configure itself for Transport Layer Security (TLS), Secure Real-Time Transport Protocol features, Session Initiation Protocol (SIP) port configuration, Tunneling Service Module (TSM) tunneling enablement, etc.
  • Communications clients are often customized to work with particular platforms. In non-ideal situations clients only operate against a particular brand/model/vendor specific implementation of a communications platform or network topology, network configuration, or other environmental factor. Communications clients built with the ideas embodied in the present disclosure are more flexible. They can contain a base set of features and functions that would, for example, work across common sets of communications platforms. They can also contain loadable, configurable, or downloadable component modules that enhance the feature and functions contained within the client or modify the features, functions, or components of the client to make it work or interoperate with specific communications server platforms. These modules can be complete features / functions. These modules can be modifications to signaling stacks or existing functions. These modules can be user interface components. These modules can be independent of user interface such that similar features which are implemented in disparate manners are presented to the user in a unified way despite the communications platform's implementation.
  • Embodiments of the disclosure can be represented as a computer program product stored in a machine-readable medium (also referred to as a computer-readable medium, a processor-readable medium, or a computer usable medium having a computer-readable program code embodied therein). The machine-readable medium can be any suitable tangible, non-transitory medium, including magnetic, optical, or electrical storage medium including a diskette, compact disk read only memory (CD-ROM), memory device (volatile or non-volatile), or similar storage mechanism. The machine-readable medium can contain various sets of instructions, code sequences, configuration information, or other data, which, when executed, cause a processor to perform steps in a method according to an embodiment of the disclosure. Those of ordinary skill in the art will appreciate that other instructions and operations necessary to implement the described implementations can also be stored on the machine-readable medium. The instructions stored on the machine-readable medium can be executed by a processor or other suitable processing device, and can interface with circuitry to perform the described tasks.

Claims (12)

  1. A computer-implemented method of dynamically configuring a client installed on a communication device, the method comprising, at a server operationally connected to the client through a network:
    obtaining (210), from the client, environment identification data, the environment identification data identifying an environment in which the client operates, the environment identification data including a type of connection between the communication device and the network, and parameters of the connection;
    generating (220), as a function of the environment identification data and of set rules, a configuration for the client; and
    pushing (230), to the client, the configuration, the configuration for configuring the client to operate in the environment.
  2. The method of claim 1, wherein obtaining comprises periodically obtaining the environment identification data during operation of the client.
  3. The method of claim 2, wherein generating comprises, each time the environment identification data is obtained during operation of the client, generating a new configuration for the client as a function of the environment identification data and the of set rules.
  4. The method of claim 1 wherein:
    the communication device comprises at least one of a processor, an operating running on the communication device, firmware, a brand and a model, a hardware platform interface, and a software running on the communication device ; and
    the environment identification data further includes at least one of an identification of the processor, an identification of the operating system, an identification of the firmware, an identification of the brand and the model, an identification of the hardware platform interface and, identification of the software.
  5. The method of claim 1 wherein the environment identification data further Z includes geographical location data of the communication device, preferably GPS coordinates of the communication device.
  6. The method of claim 5 wherein:
    the communication device has an IP address, the IP address is associated to a geographical region; and
    the geographical location data includes an identification of the geographical region.
  7. The method of claim 1 wherein:
    the communication device has IP address data associated thereto, the IP address data preferably includes at least one of an external IP address and an internal IP address; and
    the environment identification data includes the IP address data.
  8. The method of claim 1 wherein:
    the communication device is one of:
    • operationally connected to a DNS server; and
    the environment identification data include the an identification of the DNS server;
    • operationally connected to a routing database, the routing database defining routes to connect the communication device to a target destination; and
    the environment identification data include the routes;
    • connected to a network; and
    the environment identification data includes an identification of the network;
    • connected to a network through a network connection; and
    the environment identification data includes parameters of the network connection.
  9. The method of claim 8 wherein, when the communication device is connected to a network through a network connection; the network includes one of:
    • network elements each having a network element IP address; and the environment identification data further includes at least one network element IP address;
    • a network interface having a MAC address; and the environment identification data includes the MAC address;
    • a WiFi network, the communication device and the WiFi network being operationally connected to each other by a WiFi signal, the WiFi signal having a WiFi signal strength; and the environment identification data includes the WiFi signal strength; and
    • a cell network, the communication device and the cell network being operationally connected by a cell signal, the cell signal having a cell signal strength; and the environment identification data includes the cell signal strength.
  10. The method of claim 1 wherein:
    the communication device is operationally connected to a Bluetooth device; and
    the environment identification data includes an identification of the Bluetooth device.
  11. The method of claim 1 wherein:
    the communication device has associated thereto a user; and
    the environment identification data further includes an identification of the user.
  12. The method of claim 1, wherein the environment identification data further includes a connection of the communication device on a USB.
EP14905362.1A 2014-11-07 2014-11-07 Method for dynamically configuring a client installed and running on a communication device Active EP3216168B1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CA2014/000813 WO2016070259A1 (en) 2014-11-07 2014-11-07 Method and system for dynamically configuring a client installed and running on a communication device

Publications (3)

Publication Number Publication Date
EP3216168A1 EP3216168A1 (en) 2017-09-13
EP3216168A4 EP3216168A4 (en) 2018-06-20
EP3216168B1 true EP3216168B1 (en) 2020-09-16

Family

ID=55908300

Family Applications (1)

Application Number Title Priority Date Filing Date
EP14905362.1A Active EP3216168B1 (en) 2014-11-07 2014-11-07 Method for dynamically configuring a client installed and running on a communication device

Country Status (5)

Country Link
US (1) US10985983B2 (en)
EP (1) EP3216168B1 (en)
CA (1) CA2966930C (en)
ES (1) ES2834488T3 (en)
WO (1) WO2016070259A1 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10716060B2 (en) 2017-04-03 2020-07-14 Bank Of America Corporation Data transfer between computing device and user device at different locations and over session or connection to display one or more routing networks to use
US10601718B2 (en) 2017-04-03 2020-03-24 Bank Of America Corporation Data transfer, over session or connection, and between computing device and server associated with a routing network for modifying one or more parameters of the routing network
US10608918B2 (en) 2017-04-03 2020-03-31 Bank Of America Corporation Data transfer, over session or connection, and between computing device and one or more servers to determine likelihood of user device using a routing network
US10609156B2 (en) * 2017-04-03 2020-03-31 Bank Of America Corporation Data transfer, over session or connection, and between computing device and server associated with one or more routing networks in response to detecting activity
US10601934B2 (en) 2017-04-03 2020-03-24 Bank Of America Corporation Data transfer, over session or connection, and between computing device and one or more servers for transmitting data to a third party computing device

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7756967B1 (en) 1999-04-26 2010-07-13 Mainstream Scientific, Llc Apparatus and method of hosting internet content
US6725281B1 (en) 1999-06-11 2004-04-20 Microsoft Corporation Synchronization of controlled device state using state table and eventing in data-driven remote device control model
US20030063120A1 (en) 2001-09-28 2003-04-03 Wong Hoi Lee Candy Scalable graphical user interface architecture
US7388869B2 (en) * 2002-11-19 2008-06-17 Hughes Network Systems, Llc System and method for routing among private addressing domains
US7346370B2 (en) 2004-04-29 2008-03-18 Cellport Systems, Inc. Enabling interoperability between distributed devices using different communication link technologies
TWI271076B (en) * 2004-07-02 2007-01-11 Icp Electronics Inc Security gateway with SSL protection and method for the same
US20060129878A1 (en) * 2004-11-22 2006-06-15 Carlos Soto Computer restoration method
US8364845B2 (en) 2005-05-19 2013-01-29 Wyse Technology Inc. Method and system for thin client configuration
US20070150415A1 (en) * 2005-12-22 2007-06-28 Bundy Ross E Method and apparatus for creating and entering a PIN code
US7895257B2 (en) 2006-02-21 2011-02-22 University Of Florida Research Foundation, Inc. Modular platform enabling heterogeneous devices, sensors and actuators to integrate automatically into heterogeneous networks
US20070268516A1 (en) * 2006-05-19 2007-11-22 Jamsheed Bugwadia Automated policy-based network device configuration and network deployment
US7953889B2 (en) * 2006-08-03 2011-05-31 Citrix Systems, Inc. Systems and methods for routing VPN traffic around network disruption
US8055747B2 (en) 2006-08-15 2011-11-08 Microsoft Corporation Message based network transmission for selection and auditing of internet services
US10204316B2 (en) * 2006-09-28 2019-02-12 Leaf Group Ltd. User generated content publishing system
US8560634B2 (en) * 2007-10-17 2013-10-15 Dispersive Networks, Inc. Apparatus, systems and methods utilizing dispersive networking
US8009619B1 (en) 2007-10-23 2011-08-30 Phunware, Inc. Server-side wireless communications link support for mobile handheld devices
CN101237475B (en) * 2008-02-29 2012-11-21 华为技术有限公司 Information push system, method and device
US20090228973A1 (en) * 2008-03-06 2009-09-10 Chendil Kumar Techniques for automatic discovery and update of client environmental information in a virtual private network (vpn)
US8490050B2 (en) 2008-04-17 2013-07-16 Microsoft Corporation Automatic generation of user interfaces
US8176499B2 (en) 2008-05-30 2012-05-08 Microsoft Corporation Defining, distributing and presenting device experiences
US7987241B2 (en) 2008-10-15 2011-07-26 Xerox Corporation Sharing EIP service applications across a fleet of multi-function document reproduction devices in a peer-aware network
US9185174B2 (en) 2009-04-29 2015-11-10 Ianywhere Solutions, Inc. Maintaining mobile device operations
KR20110056856A (en) * 2009-11-23 2011-05-31 삼성전자주식회사 Method for setting network and storage device applying the same
US8869138B2 (en) * 2011-11-11 2014-10-21 Wyse Technology L.L.C. Robust firmware update with recovery logic
US8972171B1 (en) * 2010-04-09 2015-03-03 Google Inc. Collective vehicle traffic routing
RU2453917C1 (en) * 2010-12-30 2012-06-20 Закрытое акционерное общество "Лаборатория Касперского" System and method for optimising execution of antivirus tasks in local area network
KR20120101609A (en) * 2011-03-04 2012-09-14 삼성전자주식회사 Server, system and method for offering distributed service
US8886625B1 (en) * 2012-10-31 2014-11-11 Google Inc. Methods and computer-readable media for providing recommended entities based on a user's social graph
US9143883B2 (en) * 2012-10-31 2015-09-22 Hewlett-Packard Development Company, L.P. Method and system for improving performance in discovery stage of fast roaming
TWI475819B (en) * 2013-02-01 2015-03-01 寶貝安科技股份有限公司 A pairing method for bluetooth devices, a bluetooth system applying the method, a bluetooth client applying the method and a bluetooth server applying the method
US20140325041A1 (en) * 2013-04-27 2014-10-30 Tencent Technology (Shenzhen) Co., Ltd. Method, apparatus, server and system for adapting a client to a hardware environment
US9887958B2 (en) * 2013-09-16 2018-02-06 Netflix, Inc. Configuring DNS clients
US9647904B2 (en) * 2013-11-25 2017-05-09 Amazon Technologies, Inc. Customer-directed networking limits in distributed systems
US10432699B2 (en) * 2014-06-26 2019-10-01 Vmware, Inc. Crowd-sourced operational metric analysis of virtual appliances
US9971320B2 (en) * 2014-07-03 2018-05-15 Google Llc Methods and systems for adaptive triggering of data collection

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
None *

Also Published As

Publication number Publication date
WO2016070259A1 (en) 2016-05-12
EP3216168A1 (en) 2017-09-13
ES2834488T3 (en) 2021-06-17
CA2966930C (en) 2021-05-11
US10985983B2 (en) 2021-04-20
CA2966930A1 (en) 2016-05-12
US20170339009A1 (en) 2017-11-23
EP3216168A4 (en) 2018-06-20

Similar Documents

Publication Publication Date Title
US10659957B2 (en) Apparatus and methods for provisioning devices to utilize services of mobile network operators
US10292042B2 (en) Apparatus and methods for selecting services of mobile network operators
EP3216168B1 (en) Method for dynamically configuring a client installed and running on a communication device
US11956703B2 (en) Context-based dynamic policy system for mobile devices and supporting network infrastructure
US10516989B2 (en) Apparatus and methods for distributing credentials of mobile network operators
US11647121B2 (en) Method and apparatus for supporting internet call sessions in a communication network
US8838836B1 (en) Systems and methods for sharing digital information between mobile devices of friends and family using multiple LAN-based embedded devices
US20140379800A1 (en) Systems and methods for sharing digital information between mobile devices of friends and family by loading application components onto embedded devices
US20140376452A1 (en) Systems and methods for sharing digital information between mobile devices of friends and family using embedded devices
US10887355B2 (en) Method and apparatus for initiating communication sessions
JP2017534205A (en) Electronic device configuration for wireless communication

Legal Events

Date Code Title Description
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE

PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE

17P Request for examination filed

Effective date: 20170605

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): 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

AX Request for extension of the european patent

Extension state: BA ME

DAX Request for extension of the european patent (deleted)
A4 Supplementary search report drawn up and despatched

Effective date: 20180524

RIC1 Information provided on ipc code assigned before grant

Ipc: H04L 12/24 20060101AFI20180517BHEP

GRAP Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOSNIGR1

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: GRANT OF PATENT IS INTENDED

INTG Intention to grant announced

Effective date: 20200525

GRAS Grant fee paid

Free format text: ORIGINAL CODE: EPIDOSNIGR3

GRAA (expected) grant

Free format text: ORIGINAL CODE: 0009210

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE PATENT HAS BEEN GRANTED

AK Designated contracting states

Kind code of ref document: B1

Designated state(s): 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

REG Reference to a national code

Ref country code: GB

Ref legal event code: FG4D

REG Reference to a national code

Ref country code: CH

Ref legal event code: EP

REG Reference to a national code

Ref country code: DE

Ref legal event code: R096

Ref document number: 602014070365

Country of ref document: DE

REG Reference to a national code

Ref country code: IE

Ref legal event code: FG4D

REG Reference to a national code

Ref country code: AT

Ref legal event code: REF

Ref document number: 1315140

Country of ref document: AT

Kind code of ref document: T

Effective date: 20201015

REG Reference to a national code

Ref country code: SE

Ref legal event code: TRGR

REG Reference to a national code

Ref country code: FI

Ref legal event code: FGE

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: GR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20201217

Ref country code: NO

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20201216

Ref country code: BG

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20201216

Ref country code: HR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20200916

REG Reference to a national code

Ref country code: AT

Ref legal event code: MK05

Ref document number: 1315140

Country of ref document: AT

Kind code of ref document: T

Effective date: 20200916

REG Reference to a national code

Ref country code: NL

Ref legal event code: MP

Effective date: 20200916

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: LV

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20200916

Ref country code: RS

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20200916

REG Reference to a national code

Ref country code: LT

Ref legal event code: MG4D

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: EE

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20200916

Ref country code: SM

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20200916

Ref country code: RO

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20200916

Ref country code: LT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20200916

Ref country code: PT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20210118

Ref country code: CZ

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20200916

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: AT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20200916

Ref country code: AL

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20200916

Ref country code: IS

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20210116

Ref country code: PL

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20200916

REG Reference to a national code

Ref country code: ES

Ref legal event code: FG2A

Ref document number: 2834488

Country of ref document: ES

Kind code of ref document: T3

Effective date: 20210617

Ref country code: DE

Ref legal event code: R097

Ref document number: 602014070365

Country of ref document: DE

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: MC

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20200916

Ref country code: SK

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20200916

REG Reference to a national code

Ref country code: CH

Ref legal event code: PL

PLBE No opposition filed within time limit

Free format text: ORIGINAL CODE: 0009261

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: LU

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20201107

REG Reference to a national code

Ref country code: BE

Ref legal event code: MM

Effective date: 20201130

26N No opposition filed

Effective date: 20210617

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: DK

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20200916

Ref country code: CH

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20201130

Ref country code: SI

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20200916

Ref country code: LI

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20201130

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: IE

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20201107

REG Reference to a national code

Ref country code: DE

Ref legal event code: R079

Ref document number: 602014070365

Country of ref document: DE

Free format text: PREVIOUS MAIN CLASS: H04L0012240000

Ipc: H04L0041000000

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: FI

Payment date: 20211108

Year of fee payment: 8

Ref country code: FR

Payment date: 20211109

Year of fee payment: 8

Ref country code: SE

Payment date: 20211115

Year of fee payment: 8

Ref country code: ES

Payment date: 20211207

Year of fee payment: 8

Ref country code: GB

Payment date: 20211109

Year of fee payment: 8

Ref country code: DE

Payment date: 20211117

Year of fee payment: 8

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: IT

Payment date: 20211105

Year of fee payment: 8

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: TR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20200916

Ref country code: MT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20200916

Ref country code: CY

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20200916

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: MK

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20200916

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: BE

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20201130

REG Reference to a national code

Ref country code: DE

Ref legal event code: R119

Ref document number: 602014070365

Country of ref document: DE

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: NL

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20200923

REG Reference to a national code

Ref country code: SE

Ref legal event code: EUG

GBPC Gb: european patent ceased through non-payment of renewal fee

Effective date: 20221107

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: SE

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20221108

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: IT

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20221107

Ref country code: GB

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20221107

Ref country code: DE

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20230601

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: FR

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20221130

REG Reference to a national code

Ref country code: ES

Ref legal event code: FD2A

Effective date: 20231229

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: ES

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20221108

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: ES

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20221108