Abstract:
A system, method and apparatus for relaying mobile communications is provided. The system hosts a communication application operated by mobile communication devices. When a communication is received for a user of a destination device that is off-line, the system determines whether the destination device is capable of receiving an unsolicited message (e.g., a push message, a peer-to-peer message). The system then selects a different mobile device capable of sending a peer-to-peer relay message to the destination device. A relay request is transmitted to the selected device, which causes it to generate and transmit toward the destination device a relay message that will cause the destination device to connect to the system. Either or both of the relay device and the destination device may delete the messages it sends and/or receives during this process, before a user of the device opens the message(s).
Abstract:
A system and methods are provided for aggregating communication connections. Multiple users connect to a system (e.g., a web-based system) that hosts an application or service for exchanging communications. Users who exchange communications among themselves may be considered “associates.” When one user who is on-line with the application sends a communication through the system for an associate, the system determines whether the associate is on-line or off-line. If the associate is off-line, the system crafts and sends toward the associate a notification regarding the communication, including an address of the communication server to which the one user is connected. When the associate's device receives the notification, the application may attempt to connect to the specified address. In this way associated users' connections will aggregate or gravitate toward the same communication server, thereby eliminating the latency and cost of exchanging users' communications between multiple communication servers.
Abstract:
A system and methods are provided for aggregating communication connections. Multiple users connect to a system (e.g., a web-based system) that hosts an application or service for exchanging communications. Users who exchange communications among themselves may be considered “associates.” When one user who is on-line with the application sends a communication through the system for an associate, the system determines whether the associate is on-line or off-line. If the associate is off-line, the system crafts and sends toward the associate a notification regarding the communication, including an address of the communication server to which the one user is connected. When the associate's device receives the notification, the application may attempt to connect to the specified address. In this way associated users' connections will aggregate or gravitate toward the same communication server, thereby eliminating the latency and cost of exchanging users' communications between multiple communication servers.
Abstract:
A system and methods are provided for dynamically muting or suppressing notifications of new communications. When a new communication is received for a user of a communication device (e.g., a mobile telephone, a computer) while notifications are muted, no notification may be issued to the user or, alternatively, a muted notification that differs from a normal notification may be issued. A muted notification may have muted sound or no sound, abbreviated vibration or no vibration, or may otherwise be a dampened version of a normal notification. Dynamic muting may be applied or managed on the user's device or on a system that hosts the communication application for which notifications are muted. Different applications and/or communication sessions (e.g., different chat groups) may be muted differently (e.g., for different periods of time). When a group chat session is muted, the duration of muting may be proportional to the number of participants.
Abstract:
A system and method for detecting unwanted electronic content, such as spam. As a user operates an application to send messages, several metrics are tracked to allow the system to analyze her activity. Illustrative metrics may include, but are not limited to, block count (e.g., how many other users have blocked her), block rate (e.g., the rate at which other users block her), peer symmetry (e.g., percentage of her messages that are to other users that have her in their address book), message uniqueness (e.g., how unique her messages are from each other), peer uniqueness (e.g., how unique the addressees of her messages are), and message rate (e.g., the rate at which she sends messages). Periodically, metrics may be compared to corresponding thresholds. Depending on whether a threshold is crossed, and which threshold is crossed, she may be banned from using the application or placed on a watch list.
Abstract:
A system and methods are provided for establishing an authenticated and encrypted communication connection between two devices with at most two round-trip communications. During establishment of an initial authenticated, encrypted communication connection (or afterward), a first device (e.g., a server) provides the second device (e.g., a client) with a token (e.g., a challenge) that lives or persists beyond the current connection. After that connection is terminated and the second device initiates a new connection, it uses the token as part of the handshaking process to reduce the necessary round-trip communications to one.
Abstract:
A system and method for detecting unwanted electronic content, such as spam. As a user operates an application to send messages, several metrics are tracked to allow the system to analyze her activity. Illustrative metrics may include, but are not limited to, block count (e.g., how many other users have blocked her), block rate (e.g., the rate at which other users block her), peer symmetry (e.g., percentage of her messages that are to other users that have her in their address book), message uniqueness (e.g., how unique her messages are from each other), peer uniqueness (e.g., how unique the addressees of her messages are), and message rate (e.g., the rate at which she sends messages). Periodically, metrics may be compared to corresponding thresholds. Depending on whether a threshold is crossed, and which threshold is crossed, she may be banned from using the application or placed on a watch list.
Abstract:
A system and methods are provided for dynamically muting or suppressing notifications of new communications. When a new communication is received for a user of a communication device (e.g., a mobile telephone, a computer) while notifications are muted, no notification may be issued to the user or, alternatively, a muted notification that differs from a normal notification may be issued. A muted notification may have muted sound or no sound, abbreviated vibration or no vibration, or may otherwise be a dampened version of a normal notification. Dynamic muting may be applied or managed on the user's device or on a system that hosts the communication application for which notifications are muted. Different applications and/or communication sessions (e.g., different chat groups) may be muted differently (e.g., for different periods of time). When a group chat session is muted, the duration of muting may be proportional to the number of participants.
Abstract:
A system and methods are provided for aggregating communication connections. Multiple users connect to a system (e.g., a web-based system) that hosts an application or service for exchanging communications. Users who exchange communications among themselves may be considered “associates.” When one user who is on-line with the application sends a communication through the system for an associate, the system determines whether the associate is on-line or off-line. If the associate is off-line, the system crafts and sends toward the associate a notification regarding the communication, including an address of the communication server to which the one user is connected. When the associate's device receives the notification, the application may attempt to connect to the specified address. In this way associated users' connections will aggregate or gravitate toward the same communication server, thereby eliminating the latency and cost of exchanging users' communications between multiple communication servers.
Abstract:
A system and methods are provided for conveying connection-oriented communications (e.g., textual messages among multiple users) via a protocol such as HTTP (Hypertext Transfer Protocol). When a device operating a communication application that features a custom application layer protocol for formatting messages for transmission cannot connect to the system hosting the application using a default protocol stack that include the custom application layer protocol, it instead connects using HTTP's chunked mode of transfer encoding. Each outgoing communication is encapsulated in a separate HTTP chunk, and communications to multiple different users may be conveyed via the one connection. Incoming communications (e.g., from the multiple users) are received as separate chunks and are unwrapped or de-encapsulated to retrieve the communication for presentation to a user.