摘要:
Disclosed are methods that enable communications to be established regardless of the presence of communications blockers, e.g., firewalls and NATs, in the path between two computing devices. Two devices each establish communications with a rendezvous service. Through the service, the devices signal each other to set up direct, peer-to-peer communications between themselves. If the devices fail to establish direct communications, then they invoke a relay service that provides the illusion of direct communications. In another aspect, an originating device attempts to establish communications with a recipient, using an address and port number associated with the recipient. If that attempts fails, possibly because a firewall is blocking communications, then the originating device retries using a port normally held open by firewalls. If this attempt also fails, then the originating device invokes the services of a proxy to negotiate a port acceptable for use by the recipient and by any intervening firewalls.
摘要:
The imprecise caching of directory download responses for dynamic directory services is disclosed. A server maintains a dynamic directory service of a plurality of clients, and an imprecise cache of directory download responses to directory download requests provided by the clients. When the server receives a new directory download request, it first searches whether an equivalent server response is stored in the imprecise cache. If there is such a response, it is returned to the client generating the request. This saves the server from having to traverse the entire dynamic directory to respond to the request. The cached responses are desirably expirable, so that accuracy of the responses is not overly sacrificed. The responses expire according to their lifetime, which is desirably adjusted based on server workload.
摘要:
Selecting a source account for an outgoing communication content of a user is described. A collection of source accounts is associated with the user. Each source account has an individual content storage storing communication content associated with the corresponding source account. A user's authentication is validated for using the collection of source accounts. One source account in the collection is designated as a primary source account. The source accounts in the collection are aggregated to a primary content storage. The user is authenticated to sign in to the primary source account. Instructions are received from the user for generating a communication content from the primary source account and the primary content storage. Instructions are received from the user for selecting one of the source accounts in the collection as the source account for the generated communication content, and the user is signed in to the primary source account.
摘要:
Location inference using selected beacons. Data is received representing a set of beacons observed by a computing device. The beacons are located within a first geographic area. A subset (e.g., a clique) of the beacons is selected based on a coverage area of each of the beacons, where each of the beacons in the selected subset has a coverage area that overlaps with the coverage area of each of the other beacons in the selected subset. Using known or estimated positions of the beacons, a second geographic area is defined based on the selected subset of beacons and the beacon reference data and the coverage areas associated therewith. The second geographic area, smaller than the first geographic area, represents an approximate location of the computing device. In some embodiments, the computing device is calculated to be within the second geographic area with 95% probability.
摘要:
In order to minimize the delay of the video images viewed by a network conference attendee, an intelligent buffering process (IB process) selectively discards video frames from at least one point, and in an embodiment, many network points, such as at “in” and/or “out” buffers of clients, servers, routers, etc. Packets of video frame data arrive at a buffer, which can fill to a predetermined limit if the packets cannot be forwarded due to delays or slow connections. To forward the most current video images, old frames in the buffer are discarded rather than forwarded. In a particular embodiment, when the buffer is full, the next arriving delta frame packet is discarded. To avoid distortion, each subsequent delta frame is discarded until a new key frame eventually arrives. If the buffer is still full when the key frame arrives, the buffer is purged and the new key frame is added.
摘要:
A call is established between a user at a mobile device and a contact logged into a communication service through a computer application. A user selects a contact through a page displayed on a mobile device. The contact may be an email address, a messaging username, or some other contact other than a phone number. A call registration record with the contact data is generated at a network server. The mobile device places a call to a VoIP system, the VoIP system receives the call, retrieves the call registration record and establishes an audio connection between the cell phone and the computer application through which the contact is logged into the communication service. The audio connection is a hybrid connection consisting of a mobile device voice connection between the caller's cell phone and a gateway system and a VoIP connection between a computer and the gateway system.
摘要:
When the user hovers on a telephone number (or other indication of a target of a voice communication) on a web page (or other interface), the telephone number will be highlighted and the user will be provided with the opportunity to make a call using the highlighted number. If the user clicks on the highlighted telephone number, the telephone number will be provided to a communication application to facilitate making a telephone call. If the user moves away without clicking on the highlighted telephone number, the highlight will disappear. In alternative embodiments, a user can select text in a web page (or other interface) and, if there is a telephone number in the selected text, that telephone number can be automatically provided to the communication application to facilitate making a call. In another embodiment, the system finds telephone numbers in content and replaces those telephone number with hyperlinks to enable the behavior described above.
摘要:
Conferencing data is reliably delivered to computer systems participating in a hierarchically arranged multi-cast conferencing session. When a child computer system does not receive a multi-cast packet (e.g., an IP multi-cast packet), the child computer system sends a negative acknowledgment to a parent computer system. In response, the parent computer system re-transmits conferencing data that was contained in the multi-cast packet to the child computer system. Conferencing data can be re-transmitted to the child computer system via uni-cast (e.g., TCP). Accordingly, conferencing data that is not received or that is damaged via multi-cast can be repaired via uni-cast. Computer systems can join an existing multi-cast conference session without having to communicate with the root computer system. The root computer system adjusts a multi-cast send rate to compensate for changed network conditions.
摘要:
Performing conferencing without requiring communication using a specific connection port. A software module receives a function call from a conferencing application. The function call may include high-level instructions to perform a basic conferencing function, such as the communication of data from a specified buffer area. The software module then performs all of the details necessary in order to establish and maintain a connection with a conferencing server (or with one or more other participants in the case of peer-to-peer conferencing). While the conferencing application may be configured to optionally perform teleconferencing using a particular conferencing protocol and a particular conferencing connection port without the use of the software module, the software module may also be optionally used to establish, maintain, and exchanging conferencing information over an entirely different port when, for example, the usual conferencing connection port is not available.
摘要:
The recovery of online sessions for directory services is disclosed. A server maintains a directory service of a plurality of clients. In one embodiment, a unique token for each client, known to the client and to the server, permits the client to relog onto the server, for example, after the client has crashed. In another embodiment, a client caches the information sent to the server during the log-on process, so that if the server in response to a later refresh request from the client cannot locate the client—as a result, for example, of a network or server crash—the client can automatically relog onto the server using the cached information, without user intervention. The message sent by the server to the client in response to a refresh request, after the client's entry in the directory no longer exists after a server or network crash, is desirably a dedicated error message instructing the client that it is not logged onto the server, and therefore that it should relog onto the server.