# US 12,761,894 B1 · Custom private software channels for a client device

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,761,894 B1
- Document ID: US12761894B1
- Status: Granted
- Kind: B1
- Application number: 18/422,647
- Filed: 2024-01-25
- Granted: 2026-10-13
- Earliest claimed: 2024-01-25
- Assignees: Zoom Communications, Inc.
- Applicants: Zoom Communications, Inc.
- Inventors: William Thomas Bernabe; Benjamin Joseph DeStephen
- Web page: https://patentgrep.com/patent/US12761894B1

## CPC

- G06F 8/65: Updates (security arrangements therefor G06F21/57)
- G06F 8/71: Version control (security arrangements therefor G06F21/57); Configuration management
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Custom private channels are provided for updating a versioned software application installed on one or more client devices. A client device is configured with a channel identifier that is associated with one or more versions of the software application. The client device queries an update server from time to time to determine what version of the software application should be installed on the client device according to the channel identifier, and the client device requests installation files, or links thereto, from the update server if the client device determines its currently installed version is out of date.

## Claims

### Claim 1

A method, comprising:
receiving, at a client device, a first identifier of a first update channel for a software application, wherein the first update channel is one of a set of update channels for the software application, each update channel having been defined by one or more configuration inputs received by an update server, the one or more configuration inputs assigning a channel name to each update channel and selecting a specific version of the software application for each update channel;
sending, by the client device to the update server, a query comprising the first identifier;
receiving, at the client device from the update server, an indication of a first version of the software application associated with the first identifier;
determining, by the client device, whether a currently installed version of the software application on the client device matches the first version;
in response to determining that the currently installed version does not match the first version, sending, by the client device to the update server, a request for installation of the first version; and receiving, at the client device from the update server, an indication of one or more first installation files for the first version.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
receiving, at the client device, a second identifier of a second update channel for the software application, wherein the second update channel is one of the set of update channels for the software application;
sending, by the client device to the update server, a query comprising the second identifier;
receiving, at the client device from the update server, an indication of a second version of the software application associated with the second identifier;
determining, by the client device, whether the currently installed version of the software application on the client device matches the second version;
in response to determining that the currently installed version does not match the second version, sending, by the client device to the update server, a request for installation of the second version; and
receiving, at the client device from the update server, an indication of one or more second installation files for the second version.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
sending, by the client device to the update server, an indication of a currently installed first operating system on the client device; wherein the indication of the first version is based on the indication of the first operating system.

### Claim 4 (depends on 1)

The method of claim 1, wherein:
the sending of the query is in response to the software application launching on the client device.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
repeating the sending of the query at one or more predefined intervals.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
storing, in a memory of the client device, the first identifier.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
receiving, at the client device, a first input selecting the first update channel from the set of update channels.

### Claim 8 (depends on 1)

The method of claim 1, further comprising:
receiving, at the client device, the first identifier via a group policy object (GPO), a Microsoft standard installer (MSI) flag, or a property list (PLIST).

### Claim 9 (depends on 1)

The method of claim 1, wherein:
the software application is a component of a video conferencing software platform.

### Claim 10 (depends on 1)

The method of claim 1, further comprising:
installing the first version on the client device according to the indication of one or more first installation files; wherein
the indication of one or more first installation files comprises at least one of:
one or more installation files; or
one or more links to one or more installation files.

### Claim 11 (depends on 1)

The method of claim 1, wherein:
the first identifier comprises a random or pseudorandom string of alphanumeric characters.

### Claim 12 (depends on 1)

The method of claim 1, wherein:
the sending of the query is in response to the client device booting up.

### Claim 13

A non-transitory computer-readable medium storing instructions operable to cause one or more processors to perform operations comprising:
receiving, at a client device, a first identifier of a first update channel for a software application, wherein the first update channel is one of a set of update channels for the software application, each update channel having been defined by one or more configuration inputs received by an update server, the one or more configuration inputs assigning a channel name to each update channel and selecting a specific version of the software application for each update channel;
sending, by the client device to the update server, a query comprising the first identifier;
receiving, at the client device from the update server, an indication of a first version of the software application associated with the first identifier;
determining, by the client device, whether a currently installed version of the software application on the client device matches the first version;
in response to determining that the currently installed version does not match the first version, sending, by the client device to the update server, a request for installation of the first version; and
receiving, at the client device from the update server, an indication of one or more first installation files for the first version.

### Claim 14 (depends on 13)

The medium of claim 13, the operations further comprising:
receiving, at the client device, a first input selecting the first update channel from the set of update channels presented by a graphical user interface (GUI).

### Claim 15 (depends on 13)

The medium of claim 13, the operations further comprising:
receiving, at the client device, a second input selecting a second update channel from the set of update channels;
receiving, at the client device, a second identifier of the second update channel;
sending, by the client device to the update server, a query comprising the second identifier;
receiving, at the client device from the update server, an indication of a second version of the software application associated with the second identifier;
determining, by the client device, whether the currently installed version of the software application on the client device matches the second version;
in response to determining that the currently installed version does not match the second version, sending, by the client device to the update server, a request for installation of the second version; and
receiving, at the client device from the update server, an indication of one or more second installation files for the second version.

### Claim 16 (depends on 13)

The medium of claim 13, the operations further comprising:
resending the query after one or more predefined intervals.

### Claim 17

A system, comprising:
one or more memories; and
one or more processors configured to execute instructions stored in the one or more memories to:
receive, at a client device, a first identifier of a first update channel for a software application, wherein the first update channel is one of a set of update channels for the software application, each update channel having been defined by one or more configuration inputs received by an update server, the one or more configuration inputs assigning a channel name to each update channel and selecting a specific version of the software application for the update channel;
send, by the client device to the update server, a query comprising the first identifier;
receive, at the client device from the update server, an indication of a first version of the software application associated with the first identifier;
determine, by the client device, whether a currently installed version of the software application on the client device matches the first version;
in response to determining that the currently installed version does not match the first version, send, by the client device to the update server, a request for installation of the first version; and
receive, at the client device from the update server, an indication of one or more first installation files for the first version.

### Claim 18 (depends on 17)

The system of claim 17, the instructions including instructions to:
receive, at the client device, a first input selecting the first update channel from a subset of the set of update channels, wherein the subset is specific to the client device.

### Claim 19 (depends on 17)

The system of claim 17, the instructions including instructions to:
receive, at the client device, the first identifier via an administrative configuration setting of the client device.

### Claim 20 (depends on 17)

The system of claim 17, wherein the instructions to send the query is in response to one or more of:
the client device booting up; or
the software application launching on the client device.
