# US 8,751,651 B2 · System and method for improved notifications

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

- Number: US 8,751,651 B2
- Document ID: US8751651B2
- Status: Granted
- Kind: B2
- Application number: 13/471,944
- Filed: 2012-05-15
- Published: 2012-09-06
- Granted: 2014-06-10
- Earliest claimed: 2009-06-19
- Assignees: Comcast Cable Communications, LLC
- Applicants: Nirmal Mody; Srini Avirneni; Brian Van Lieu
- Inventors: Nirmal Mody; Srini Avirneni; Brian Van Lieu
- Web page: https://patentgrep.com/patent/US8751651B2

## CPC

- H04L 51/046: Interoperability with other network applications or services
- H04L 61/5007: Internet protocol [IP] addresses
- H04L 67/02: based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L 67/53: using third party service providers
- H04L 67/55: Push-based network services
- H04L 67/561: Adding application-functional data or data for application control, e.g. adding metadata
- H04L 69/22: Parsing or analysis of headers
- H04L 12/1895: {for short real-time information, e.g. alarms, notifications, alerts, updates}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Systems and methods for sending/receiving improved in-browser notification messages are provided. The notification messages are overlaid on HTTP traffic on port 80 for IP addresses provisioned to receive the notification messages from various sources, including weather, emergency broadcast, and police stations. A load balancer within the end-to-end system allows HTTP traffic on port 80 to be forked from non HTTP traffic on port 80 to selectively insert notification messages. The notifications are inserted by an internet content adoption protocol (ICAP) server in communication with other devices within the system.

## Claims

### Claim 1

A method comprising:
receiving a first set of data packets from a user device;
determining that the first set of data packets is transmitted from an address that matches one of a plurality of addresses that need to receive a notification; and
in response to determining that the first set of data packets is transmitted from an address that matches one of the plurality of addresses that need to receive the notification, marking the first set of data packets with an indicator.

### Claim 2 (depends on 1)

The method of claim 1, further comprising: marking the first set of data packets with a differentiated services value as the indicator.

### Claim 3 (depends on 1)

The method of claim 1, further comprising: marking traffic on port 80 with the indicator.

### Claim 4 (depends on 1)

The method of claim 1, further comprising: receiving information regarding setting a policy to cause the plurality of addresses to receive the notification.

### Claim 5 (depends on 1)

The method of claim 1, further comprising: receiving information from a business policy engine associated with an internet protocol (IP) service provider regarding setting a policy to mark traffic from the plurality of addresses with the indicator.

### Claim 6 (depends on 1)

The method of claim 1, further comprising: receiving information from one of a notification platform, an application manager, and a policy server regarding setting a policy to mark traffic from the plurality of addresses with the indicator.

### Claim 7 (depends on 1)

The method of claim 1, wherein the first set of data packets is transmitted via a router to a load balancer.

### Claim 8 (depends on 1)

The method of claim 1, wherein the address comprises an internet protocol (IP) address that matches one of a plurality of IP addresses that need to receive the notification.

### Claim 9

A non-transitory computer-readable storage medium having computer-executable program instructions stored thereon that when executed by a processor, cause the processor to perform a method comprising:
receiving, from a proxy server, a first set of data packets;
determining if the first set of data packets are fit for adaptation so that a notification can be inserted into the first set of data packets;
if the first set of data packets are fit for adaptation:
transmitting, to the proxy server, a first response indicating that the first set of data packets are fit for adaptation;
receiving a second set of data packets from the proxy server; and
inserting the notification into the second set of data packets.

### Claim 10 (depends on 9)

The non-transitory computer-readable storage medium of claim 9, wherein the processor further performs: if the first set of data packets are not fit for adaptation, transmitting, to the proxy server, a second response indicating that no notification will be included in the first set of data packets.

### Claim 11 (depends on 9)

The non-transitory computer-readable storage medium of claim 9, wherein the first set of data packets comprise preview data packets that are a portion of the second set of data packets.

### Claim 12 (depends on 9)

The non-transitory computer-readable storage medium of claim 9, wherein the processor further performs: if the first set of data packets are fit for adaptation, determining when the notification is cached locally.

### Claim 13 (depends on 9)

The non-transitory computer-readable storage medium of claim 9, wherein the processor further performs: if the notification is in a remote cache, obtaining the notification from a notification platform and caching the obtained notification locally.

### Claim 14 (depends on 9)

The non-transitory computer-readable storage medium of claim 9, wherein the processor further performs: parsing the second set of data packets.

### Claim 15 (depends on 14)

The non-transitory computer-readable storage medium of claim 14, wherein the processor further performs: reassembling the second set of data packets so that an original content of the second set of data packets is unaltered.

### Claim 16 (depends on 15)

The non-transitory computer-readable storage medium of claim 15, wherein the processor further performs: transmitting the reassembled packets to the proxy server.

### Claim 17 (depends on 9)

The non-transitory computer-readable storage medium of claim 9, wherein the first set of data packets and the second set of data packets comprise Hypertext Transfer Protocol (HTTP) traffic.

### Claim 18

An apparatus comprising:
a processor; and
a memory configured to store computer-readable instructions that, when executed by the processor, cause the processor to:
receive a first set of data packets marked with an indicator that indicates that an internet protocol (IP) address associated with a source of the first set of data packets should receive a notification;
transmit the first set of data packets to an internet server;
receive a second set of data packets responsive to the first set of data packets from the internet server;
communicate with an internet content adoption protocol (ICAP) server for insertion of the notification into the second set of data packets; and
transmit the second set of data packets to a user device.

### Claim 19 (depends on 18)

The apparatus of claim 18, wherein the processor further performs: removing the indicator from the first set of data packets.

### Claim 20 (depends on 18)

The apparatus of claim 18, wherein the first set of data packets are received from the user device.
