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 PDFInfo
- 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
Links
- 238000004891 communication Methods 0.000 title claims description 158
- 238000000034 method Methods 0.000 title claims description 50
- 230000009471 action Effects 0.000 description 29
- 230000004044 response Effects 0.000 description 15
- 230000008859 change Effects 0.000 description 12
- 230000006870 function Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 8
- 235000008694 Humulus lupulus Nutrition 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000005641 tunneling Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000000060 site-specific infrared dichroism spectroscopy Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0806—Configuration setting for initial configuration or provisioning, e.g. plug-and-play
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/082—Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO 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/00—Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
- G01S19/01—Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
- G01S19/13—Receivers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/2514—Translation of Internet protocol [IP] addresses between local and global IP addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5007—Internet protocol [IP] addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/80—Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W8/00—Network data management
- H04W8/26—Network addressing or numbering for mobility support
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W84/00—Network topologies
- H04W84/02—Hierarchically pre-organised networks, e.g. paging networks, cellular networks, WLAN [Wireless Local Area Network] or WLL [Wireless Local Loop]
- H04W84/10—Small scale networks; Flat hierarchical networks
- H04W84/12—WLAN [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
- 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.
- 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, andEP 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.
- 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.
- 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. - 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. Thesystem 10 includes acommunication device 20 on which aclient 30 is installed and running, and aconfiguration server 40 that is operationally connected to theclient 30 through thecommunication device 20 and anetwork 50. Theconfiguration server 40 includes anintelligent agent 60, which is described in further detail below. - The
communication device 20 is any suitable electronic device than can run theclient 30 and communicate with theconfiguration server 40 through thenetwork 50. Examples of acommunication device 20 include a mobile phone, a smartphone, a personal digital assistant (PDA), tablets, a desktop computer, and a laptop computer. Theclient 30 is a computer program or software that provides a communication service to a user. In an embodiment, theclient 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, theclient 30 communicates with another client (not shown) through thenetwork 50. Theconfiguration server 40 is operationally connected to theclient 30 for configuring theclient 30 to enable communication with other clients (not shown) via thenetwork 50. - The
intelligent agent 60 generates configurations for theclient 30 as described in further detail below. Each configuration generated by theintelligent agent 60 includes parameters or settings that theclient 30 uses to configure itself. - Referring now to
Figure 2 , a flowchart of a method of configuring aclient 30 installed on acommunication 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 theconfiguration 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. Ataction 210. theconfiguration server 40 obtains, from theclient 30, data related to the environment within which theclient 30 operates. In an embodiment, theconfiguration server 40 obtains, from theclient 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, theconfiguration server 40 obtains, from theclient 30, data related to the environment during operation of theclient 30 The data related to the environment in which the client operates is referred to as environment identification data. In an embodiment, theconfiguration 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 theclient 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 thecommunication device 20, parameters of thenetwork 50 to which thecommunication device 20 is operationally connected (hereinafter referred to as network parameters), or parameters associated with the physical location at which thecommunication 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 thecommunication 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 thecommunication device 20, the brand and/or model of a processor in thecommunication device 20, the number of processors running in thecommunication device 20, the type and the number of data converters (e.g., audio codecs, video codecs) installed in thecommunication device 20, the brand of the communication hardware (including, e.g., the brand of a transceiver) installed in thecommunication device 20, any peripheral device operationally connected to thecommunication device 20 using, for example, Bluetooth™, an audio input device that is part of, or that is operationally connected to, thecommunication device 20, a video or image capture device that is part of, or that is operationally connected to, thecommunication device 20, the hardware platform interface of thecommunication device 20, the battery level of thecommunication 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 thecommunication device 20, the software and firmware, running on thecommunication device 20, including the versions of the software and firmware. - Examples of data that identifies parameters of the
network 50 includes data that identifies thenetwork 50 to which thecommunication device 20 is operationally connected, a type of connection between thecommunication 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 thenetwork 50 can also include, for example, an external IP address of thecommunication device 20, an internal IP address of thecommunication device 20, or both, a Domain Name Server (DNS) to which thecommunication device 20 is operationally connected, a routing database of thenetwork 50, the routes defined in the routing database, and the number of hops (network hops) between thecommunication device 20 and another client (not shown). Additionally, the data that identifies parameters of thenetwork 50 can include a MAC address of any suitable device that is part of the network that operationally connects thecommunication device 20 to thenetwork 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 thecommunication device 20, the location of the cell in a cellular network to which thecommunication 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 thecommunication device 20 is operationally connected. In addition, data that identifies parameters associated with the physical location in which thecommunication device 20 operates can include data from the output of inertial sensors and data from the output of a barometric pressure sensor installed in thecommunication 20 or location. In an embodiment, a geographic location of thecommunication device 20 can be determined from the GPS coordinates of thecommunication device 20. The GPS coordinates of thecommunication 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 theclient 30 ataction 210, the method proceeds toaction 220. Ataction 220, theintelligent agent 60 of theconfiguration server 40 retrieves administrative constraints or rules and generates a configuration for theclient 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 theconfiguration 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 thecommunication device 20 on which theclient 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 theclient 30, a network administrator may set the administrative constraints or rules such that theintelligent agent 60 generates a configuration that provides access to the premium service options. Also, when thecommunication device 20 is in a particular office of a company or when the user of thecommunication device 20 meets or does not meet a certain security clearance level, theintelligent agent 60 may generate a configuration accordingly. - Subsequent to generating a configuration at
action 220, the method proceeds toaction 230. Ataction 230, theconfiguration server 40 pushes the configuration that was generated at theconfiguration server 40, to thecommunication device 20 via thenetwork 50, and in turn thecommunication device 20 pushes the configuration that is received from theconfiguration server 40 to theclient 30. In an embodiment, theconfiguration server 40 generates a text file that includes the configuration and pushes the text file to theclient 30. In an alternative embodiment, when thecommunication device 20 is a desktop or laptop computer, theconfiguration server 40 may also push binary files to theclient 30 that define new service options for theclient 30. For example, the configuration server may push a binary plug-in that can be loaded dynamically and installed into theclient 30 as an extension to enable theclient 30 to provide the new service options. - Upon receipt of the configuration from the
communication device 20, theclient 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, theconfiguration 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 thecommunication 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 theconfiguration 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 theclient 30 running on the smart phone, and theclient 30 uses the parameters in the configuration to configure itself. The configuration that is generated by theintelligent agent 60 includes parameters or settings that inform theclient 30 to use the audio codec G.711 and the video codec H.264 of the smart phone, and parameters or settings that enable theclient 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 thecommunication device 20, or activate a virtual private network (VPN) for theclient 30. In another embodiment, after theclient 30 configures itself based on the configuration received from theconfiguration server 40, theclient 30 may restart itself. In an alternative embodiment, theclient 30 may disconnect and reconnect to servers connected to thenetwork 50 to broadcast its new capabilities. - The
configuration server 40 that pushes the generated configuration presupposes that theclient 30 has all the configurable options or functionalities addressed by the configuration. In another embodiment, theconfiguration server 40 pushes not only the configuration that theintelligent agent 60 generates, but also binary files that define new functions of theclient 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 toaction 310. Ataction 310, theconfiguration server 40 obtains, from theclient 30, data related to the environment in which the client operates, i.e., environment identification data. After the environment identification data is obtained ataction 310, the method proceeds to 320. - At
action 320, theconfiguration server 40 determines whether there has been a change in the environment identification data. When theconfiguration server 40 determines that there has been no change in the environment identification data, the method proceeds toaction 330 and ends or, alternatively, the method can loop back toaction 310. In an embodiment, there can be a predetermined time delay betweenactions configuration server 40 determines that there has been a change in the environment identification data obtained from theclient 30, the method proceeds fromaction 320 toaction 340. Ataction 340, theintelligent 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 theconfiguration server 40. The method proceeds toaction 350. - At
action 350, theconfiguration server 40 determines whether the new configuration that is generated by theintelligent agent 60 ataction 340 is different from a previous configuration generated by theintelligent agent 60 and pushed to theclient 30. In this embodiment, theconfiguration server 40 can receive and store a record of the previous configuration generated and pushed to theclient 30 at the time the environment identification data is obtained ataction 310. In an alternative embodiment, theconfiguration server 40 may simply keep a record of the last configuration pushed to theclient 30. When theconfiguration server 40 determines that the new configuration that is generated by theintelligent agent 60 is different from the previously generated configuration by theintelligent agent 60, the method proceeds toaction 360. Ataction 360. theconfiguration server 40 pushes the new configuration to thecommunication device 20 via thenetwork 50. and in turn thecommunication device 20 pushes the new configuration to theclient 30. Upon receipt of the new configuration from thecommunication device 20, theclient 30 configures itself based on the new configuration. - When the
configuration server 40 determines that the new configuration generated by theintelligent agent 60 is the same as the configuration previously generated by theintelligent agent 60 ataction 340, the method proceeds toaction 370 and ends, or alternatively, loops back toaction 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 theclient 30. That is, theintelligent agent 60 of theconfiguration 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 thecommunication device 20 has multiple audio codecs and multiple video codecs, theconfiguration server 40 receives environment identification data from theclient 30, which data identifies the multiple audio and the multiple video codecs of the device, theintelligent agent 60 of theconfiguration 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 theintelligent agent 60 includes parameters or setting that theclient 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 thenetwork 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 thecommunication device 20 to thenetwork 50 is weak, theintelligent agent 60 can generate a configuration that provides a reduced set of service options to a user of theclient 30 in order not to over-stress the weak connection. Further examples of data that identifies parameters of thenetwork 50 that may affect the generation of the configuration by theintelligent 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 theclient 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 theclient 30. For example, when the location or approximate location of thecommunication device 20 is determined to be in a country where eavesdropping on communications is common, theintelligent agent 60 of theconfiguration server 40 generates a configuration that theclient 30 utilizes to configure itself to encrypt outgoing communications. Theintelligent agent 60 may also generate a configuration which theclient 30 utilizes to configure itself to use, for example, secured HTTPS port 443 instead of unsecured HTTP port 80. Further, theintelligent agent 60 may generate a configuration that theclient 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 aclient 30 and aconfiguration server 40 in accordance with an embodiment of the present disclosure. - When the
communication device 20 is activated by a user, thecommunication device 20 connects to thenetwork 50 through any suitable known process at 400. In doing so, thecommunication device 20, at 405, acquires an IP address, identifies thenetwork 50 to which thecommunication device 20 is connected, and identifies the type of connection between thecommunication device 20 and thenetwork 50. In the present example, thecommunication device 20 connects to thenetwork 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 thenetwork 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. Thecommunication device 20 also stores in memory further environment identification data such as, for example, data that identifies a subscriber identity number (SIN) associated with thecommunication device 20, data that identifies the operating system installed and running on thecommunication device 20, and data that identifies the firmware installed and running on thecommunication device 20. - When a user logs into the
client 30, theclient 30 is activated and theclient 30 sends arequest 410 to thecommunication device 20 for the environment identification data stored on thecommunication device 20. In response to receipt of therequest 400. thecommunication device 20 sends 415 the environment identification data stored thereon to theclient 30. In response to receipt of the environment identification data, theclient 30 then sends 420 the environment identification data to theconfiguration server 40, via thecommunication device 20 and thenetwork 50. - When the
client 30 sends the environment identification data, the configuration sever 40 obtains the environment identification data from theclient 30. Upon obtaining the environment identification data from theclient 30, theintelligent agent 60 of theconfiguration 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 thecommunication device 20, to theclient 30. In response to receipt of the configuration pushed 425 from theconfiguration server 40, theclient 30 configures itself based on received configuration. - In an alternative embodiment, the
configuration server 40 may periodically obtain new environment identification data to theclient 30 during operation of the client. Upon receipt of the new environment identification data, theintelligent agent 60 of theconfiguration 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 thenetwork 50 and thecommunication device 20, to theclient 30. In response to receipt of the new configuration pushed 425 from theconfiguration server 40, theclient 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 theintelligent agent 60 of theconfiguration 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, theconfiguration server 40pushes 425 the new configuration to theclient 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 theclient 30. -
Figure 5 shows another example of a data sequence diagram showing the flow of environment identification data and a configuration between aclient 30 and aconfiguration server 40 in accordance with an embodiment of the present disclosure. - The method begins with the
client 30 sending arequest 500 to thecommunication device 20 for environment identification data. Theclient 30 sends therequest 500 when a user logs into theclient 30 or periodically during operation of theclient 30. In response to receipt of therequest 500, thecommunication device 20 sends arequest 505 to thenetwork 50 for data that identifies network parameters. In response to the receipt of therequest 505 from thecommunication device 20, thenetwork 50 sends 510 environment identification data to thecommunication device 20. In the present embodiment, the environment identification data includes data that identifies parameters of thenetwork 50 to which thecommunication device 20 is connected. The data that identifies parameters of thenetwork 50 include, for example, data that identifies thenetwork 50, data that identifies the number of hops between thenetwork 50 and theconfiguration 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 thecommunication device 20 operates, data that identifies the time zone thecommunication 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 thecommunication device 20 can reach the private SIP interface of a phone system, and data that identifies whether thecommunication device 30 can a VPN concentrator. - In response to receipt of the environment identification data that identifies the parameters of the
network 50, thecommunication device 20 combines the environment identification data received from thenetwork 50 with further environment identification data stored in a memory of thecommunication device 20. The environment identification data stored in memory includes, for example, data that identifies parameters of the hardware of thecommunication device 20, data that identifies the parameters of the software installed on thecommunication device 20, and optionally, data that identifies a physical location of thecommunication device 20, to form the environment identification data. Thecommunication device 20 then sends 515 the combined environment identification data to theclient 30. - In response to receipt of the combined environment identification data from the
client 30, theclient 30 then sends 520 the combined environment identification data to theconfiguration server 40, via thecommunication device 20 and thenetwork 50. - When the
client 30 sends the combined environment identification data, the configuration sever 40 obtains the combined environment identification data from theclient 30. Upon obtaining the combined environment identification data from theclient 30, theintelligent agent 60 of theconfiguration 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 thecommunication device 20, to theclient 30. In response to receipt of the configuration pushed 525 by theconfiguration server 40, theclient 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 aclient 30 and aconfiguration server 40 in accordance with an embodiment of the present disclosure. - In the embodiment shown in
Figure 6 , thecommunication device 20 includes sensors for obtaining data that identifies parameters associated with the physical location at which thecommunication device 20 operates. Thecommunication device 20 includesinertial 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 thecommunication device 20 operates. - In present embodiment, the
client 30 sends arequest 600 to thesensors 60 for environment identification data. In the present embodiment, theclient 30 sends therequest 600 to thesensors 60 for environment identification data that includes data that identifies parameters associated with the physical location in which thecommunication device 20 operates. The clients may send therequest 600 to thesensors 60 when theclient 30 is activated by a user logging into theclient 30 or periodically during operation of theclient 30. - In response to receipt of the
request 600 from theclient 30, thesensors 60 provide 605 environment identification data to theclient 30, which includes data that identifies parameters associated with the physical location in which thecommunication device 20 operates. - Also, either when the
client 30 is activated or periodically during operation of theclient 30, theclient 30 sends arequest 610 to thecommunication device 20 for environment identification data. In response to receipt of therequest 610, thecommunication device 20 sends arequest 615 to thenetwork 50 for environment identification data that includes data that identifies network parameters. In response to receipt of therequest 615 from thecommunication device 20, thenetwork 50 sends 620 environment identification data that includes data that identifies the network parameters of thenetwork 50 to which thecommunication device 20 is connected. The network parameters include, for example, data that identifies thenetwork 50, the number of hops between thenetwork 50 and theconfiguration server 40. - In response to receipt of environment identification data from the
sensors 60 and environment identification data from thenetwork 50, thecommunication device 20 combines the environment identification data received from both thesensors 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 theclient 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 thecommunication device 20. - In response to receipt of the environment identification data from the
communication device 20, theclient 30 sends 630 the combined environment identification data to theconfiguration server 40 via thecommunication device 20 and thenetwork 50. - When the
client 30 sends the combined environment identification data, the configuration sever 40 obtains the combined environment identification data from theclient 30. Upon obtaining the combined environment identification data from theclient 30. theintelligent agent 60 of theconfiguration 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 thecommunication device 20, to theclient 30. In response to receipt of the configuration pushed 635 from theconfiguration server 40, theclient 30 configures itself based on the configuration. - In an embodiment, the
configuration server 40 can obtain the environment identification data from theclient 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 thecommunication device 20 is a portable electronic device, theconfiguration server 40 can obtain environment identification data once when theclient 30 is initialized for the first time, at startup each time the client is launched, when theclient 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 thecommunication 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 theclient 30. In addition to the configuration, theconfiguration server 40 can provide theclient 30 with additional software modules that allow theclient 30 to enable new or different service options. Theconfiguration server 40 can provide theclient 30 with a configuration that has parameters or settings for enabling theclient 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)
- 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; andpushing (230), to the client, the configuration, the configuration for configuring the client to operate in the environment.
- The method of claim 1, wherein obtaining comprises periodically obtaining the environment identification data during operation of the client.
- 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.
- 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 ; andthe 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.
- 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.
- The method of claim 5 wherein:the communication device has an IP address, the IP address is associated to a geographical region; andthe geographical location data includes an identification of the geographical region.
- 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; andthe environment identification data includes the IP address data.
- 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. - 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.
- The method of claim 1 wherein:the communication device is operationally connected to a Bluetooth device; andthe environment identification data includes an identification of the Bluetooth device.
- The method of claim 1 wherein:the communication device has associated thereto a user; andthe environment identification data further includes an identification of the user.
- The method of claim 1, wherein the environment identification data further includes a connection of the communication device on a USB.
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)
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)
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 |
-
2014
- 2014-11-07 CA CA2966930A patent/CA2966930C/en active Active
- 2014-11-07 US US15/524,855 patent/US10985983B2/en active Active
- 2014-11-07 EP EP14905362.1A patent/EP3216168B1/en active Active
- 2014-11-07 WO PCT/CA2014/000813 patent/WO2016070259A1/en active Application Filing
- 2014-11-07 ES ES14905362T patent/ES2834488T3/en active Active
Non-Patent Citations (1)
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 |