WO2015013592A1 - Adressage d'appels vidéo et de visioconférence - Google Patents

Adressage d'appels vidéo et de visioconférence Download PDF

Info

Publication number
WO2015013592A1
WO2015013592A1 PCT/US2014/048158 US2014048158W WO2015013592A1 WO 2015013592 A1 WO2015013592 A1 WO 2015013592A1 US 2014048158 W US2014048158 W US 2014048158W WO 2015013592 A1 WO2015013592 A1 WO 2015013592A1
Authority
WO
WIPO (PCT)
Prior art keywords
call
callee
caller
computer
user
Prior art date
Application number
PCT/US2014/048158
Other languages
English (en)
Inventor
Matthew B. Shoemake
Syed Nadeem Ahmed
Original Assignee
Biscotti Inc.
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Biscotti Inc. filed Critical Biscotti Inc.
Publication of WO2015013592A1 publication Critical patent/WO2015013592A1/fr

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1813Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms
    • H04L12/1827Network arrangements for conference optimisation or adaptation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/56Arrangements for connecting several subscribers to a common circuit, i.e. affording conference facilities
    • H04M3/567Multimedia conference systems

Definitions

  • the present disclosure relates, in general, to video calling, and, more particularly, to tools and techniques for enabling or implementing video or voice calling and conferencing addressing.
  • Video calling and conferencing is inhibited by the inability to easily place calls.
  • participants need to be addressable, i.e., reachable to one another.
  • video calling and conferencing does not have a common addressing scheme and an easy way to make calls between participants.
  • proprietary systems such as Skype ® , Facetime ® , and Google Hangouts ® that do not allow calling between networks.
  • protocols that are used for video calling, e.g., SIP/SIMPLE and
  • XMPP/JINGLE XMPP/JINGLE
  • Web addresses, e-mail addresses, and public switched telephone network (“PSTN”) addresses are address spaces with wide interoperability, but they are not used or designed for video calling.
  • PSTN public switched telephone network
  • IP Internet protocol
  • Web browsers are adding the ability to decode and encode video using video compression formats, such as VP8 or the like. However, they are not adding signaling for video calling. This leaves a need for smart signaling technology to bridge the chasm between being able to encode and decode video data and actually being able to easily place and receive calls.
  • Some embodiments described herein make video calling and conferencing easy. This can be done, in some embodiments, via use of web uniform resource locators ("URLs") to initiate calls. Web URLs (commonly called “web addresses”) are easy to use, common, and easily recognizable. Certain embodiments described herein enable video calling based on URLs, thereby enabling users to use standard web addresses that they are already familiar with to place video calls.
  • URLs web uniform resource locators
  • a method might comprise one or more procedures, any or all of which are executed by a user device, a video calling device, a presence detection device ("PDD") described in detail in the '279 Application, and/or a computer system.
  • PDD presence detection device
  • an embodiment might provide a user device, a video calling device, a PDD, and/or a computer system configured with instructions to perform one or more procedures in accordance with methods provided by various other embodiments.
  • a computer program might comprise a set of instructions that are executable by a user device, a video calling device, a PDD, and/or a computer system (and/or a processor therein) to perform such operations.
  • software programs are encoded on physical, tangible, and/or non-transitory computer readable media (such as, to name but a few examples, optical media, magnetic media, and/or the like).
  • a method might comprise receiving, at a computer and from a caller, a call request including a callee address in a first protocol.
  • the first protocol might be hypertext transfer protocol ("HTTP")
  • the callee address might include a uniform resource locator ("URL") associated with the callee.
  • the method might further comprise determining, with the computer, a callee at a calling destination based at least in part on the URL associated with the callee, and establishing, with the computer, a call between the caller and the callee based at least in part on the URL associated with the callee.
  • the computer might be a server located over a network.
  • the URL associated with the callee might, in some cases, be a URL associated with at least one device associated with the callee.
  • establishing the call between the caller and the callee based at least in part on the URL associated with the callee might comprise mapping, with the computer, a callee address in a second protocol different from the first protocol, logging into a calling server that utilizes the second protocol, via the computer, and initiating, with the computer, a call to the callee address in the second protocol based on the mapping.
  • the second protocol might be session initiation protocol ("SIP")
  • the callee address might include a SIP address associated with the callee.
  • the second protocol might be extensible messaging and presence protocol ("XMPP"), and the callee address might include an XMPP address associated with the callee (including, but not limited to, a Jabber ID or JID, which includes a username and one of a domain name or an Internet Protocol (“IP”) address).
  • XMPP extensible messaging and presence protocol
  • the second protocol might be public switched telephone network (“PSTN”) protocol, and the callee address might include a telephone number associated with the callee.
  • PSTN public switched telephone network
  • the call might be a video call.
  • the method might further comprise recording, with the computer, the video call and storing, with the computer, the recorded video call in a database.
  • the callee might be one of a software application, a dedicated hardware device, a web browser, or a conferencing server for multiple callers.
  • the conferencing server might perform aggregation and transcoding functions.
  • the call request in some cases, might be initiated by the caller entering the URL associated with the callee in a web browser.
  • the method might further comprise receiving, with the computer, a request to share with the callee a display screen of a first device associated with the caller, and displaying the display screen of a first device on a screen of a second device associated with the callee, in response to receiving the request to share the display screen of a first device associated with the caller.
  • the method might further comprise receiving, with the computer, a request to share files with the callee, and transferring, with the computer, one or more files designated for sharing from a first device associated with the caller to a second device associated with the callee, in response to receiving the request to share files.
  • the method might further comprise receiving, with the computer, a request to provide the callee with control of a camera associated with the caller, and providing, with the computer, remote control of the camera associated with the caller to the callee.
  • Remote control of the camera associated with the caller might include control of at least one of pan, tilt, or zoom of the camera.
  • the call might be a video call
  • the camera might be a camera used by the caller during the video call.
  • the computer might be a HTTP server.
  • Establishing the call between the caller and the callee based at least in part on the URL associated with the callee might comprise receiving, with the HTTP server and from a browser of a first device associated with the caller, a first notification indicating an incoming call, sending, with the HTTP server, a second notification to the callee indicating the incoming call, and relaying, with the HTTP server, control information and data to establish the call between the caller and the callee.
  • the HTTP server might have WebSocket ("WS") connection functionality.
  • the method might further comprise routing, with the HTTP server, traffic over a content delivery network ("CDN").
  • CDN content delivery network
  • the computer might be a HTTP server and establishing the call between the caller and the callee based at least in part on the URL associated with the callee might comprise receiving, with the HTTP server and from a browser of a first device associated with the caller, a first notification indicating an incoming call; sending, with the HTTP server, a second notification to the callee indicating the incoming call; providing, with the HTTP server and to each of the first device associated with the caller and a second device associated with the callee, at least one of the caller address, the callee address, or control information and data; and establishing the call between the caller and the callee, by streaming the control information and data from each of the first device and the second device to the other of the first device and the second device.
  • the method might further comprise maintaining, with the computer, a connection between the computer and a second device associated with the callee, and waking, with the computer, a browser running on the second device in response to receiving a notification of an incoming call.
  • maintaining, with the computer, the connection between the computer and the second device associated with the callee might comprise utilizing a WebSocket ("WS") connection.
  • maintaining, with the computer, the connection between the computer and the second device associated with the callee might comprise associating the second device with the computer, authenticating an identity of the callee through the second device, and maintaining the connection based at least in part on the association and the authentication.
  • WS WebSocket
  • waking, with the computer, the browser running on the second device might comprise waking, with the computer, the browser using a side communications channel between the computer and the second device.
  • waking, with the computer, the browser running on the second device might comprise simultaneously waking, with the computer, all browsers running on all devices associated the callee.
  • the method might further comprise receiving, with the computer and during the call between the caller and the callee, a request to establish a multi-party call with at least one additional call participant, and establishing, with the computer, a multi-party call connecting the caller, the callee, and each of the at least one additional call participant.
  • the at least one additional call participant are separate from both the caller and the callee.
  • the request to establish the multi-party call might include a request to join the call that is received from the at least one additional call participant
  • establishing the multi-party call might comprise sending, with the computer, a notification to each of the caller and the callee indicating the request to join the call that is received from the at least one additional call participant, and establishing, with the computer, a multi-party call connecting the caller, the callee, and each of the at least one additional call participant, in response to receiving, from one of the caller or the callee, instructions indicating acceptance of the multi-party call.
  • the request to establish the multi-party call might include a request, from one of the caller or the callee, to add the at least one additional call participant to the call
  • establishing the multi-party call might comprise establishing, with the computer, a multi-party call connecting the caller, the callee, and each of the at least one additional call participant, in response to receiving the request to add the at least one additional call participant to the call.
  • establishing, with the computer, a multi-party call connecting the caller, the callee, and each of the at least one additional call participant might comprise seamlessly transferring the multi-party call to a conferencing server.
  • the method might further comprise receiving, with the computer and during a first call between the caller and the callee, a request from an additional caller to call one of the caller or the callee, the additional caller being separate from both the caller and the callee.
  • the method might comprise, in response to receiving an "ignore call" user input response from the one of the caller or the callee, preventing establishment of a call connection between the additional caller and the one of the caller or the callee, without interrupting the first call.
  • the method might comprise, in response to receiving a "switch call” user input response from the one of the caller or the callee, putting the first call on hold and establishing a second call between the additional caller and the one of the one of the caller or the callee.
  • the method might comprise automatically resuming the first call (in some cases, prior to the second call being completely ended).
  • an apparatus might comprise a non-transitory computer readable medium that is communicatively coupled to at least one processor.
  • the computer readable medium might have stored thereon software comprising a set of instructions that, when executed by the at least one processor, causes the apparatus to perform one or more functions.
  • the set of instructions might comprise instructions for receiving, from a caller, a call request including a callee address in a first protocol.
  • the first protocol might be hypertext transfer protocol ("HTTP"), and the callee address might include a uniform resource locator ("URL”) associated with the callee.
  • HTTP hypertext transfer protocol
  • URL uniform resource locator
  • the set of instructions might further comprise instructions for determining a callee at a calling destination based at least in part on the URL associated with the callee and instructions for establishing a call between the caller and the callee based at least in part on the URL associated with the callee
  • the apparatus might be a user device associated with the caller, where the instructions for establishing the call might comprise instructions for sending a request to a server over a network to establish the call.
  • the apparatus might be a server over a network.
  • determining a callee at a destination based at least in part on the URL associated with the callee might be performed at the user device associated with the caller and/or at the server.
  • FIG. 1 is a block diagram illustrating a system for enabling or implementing video or voice calling and conferencing addressing, in accordance with various embodiments.
  • FIGs. 2A-2D are process flow diagrams illustrating various methods of enabling or implementing video or voice calling and conferencing addressing, in accordance with various embodiments.
  • FIG. 3 is a process flow diagram illustrating a method of waking one or more browsers running on one or more devices associated with a user in response to an incoming call, in accordance with various embodiments.
  • FIGs. 4A-4D are process flow diagrams illustrating various methods of enabling, handling, or implementing multi-party calls, in accordance with various embodiments.
  • FIGs. 5A-5D represent a system flow diagram illustrating a method for enabling or implementing video or voice calling and conferencing addressing, in accordance with various embodiments.
  • FIGs. 6A-6C are illustrations of user devices used by users that present exemplary graphical user interfaces for enabling or implementing video or voice calling and conferencing addressing, in accordance with various embodiments.
  • FIG. 7 is a generalized schematic diagram illustrating a computer system, in accordance with various embodiments.
  • Fig. 8 is a block diagram illustrating a networked system of computers, which can be used in accordance with various embodiments. DETAILED DESCRIPTION OF CERTAIN EMBODIMENTS
  • a computer might receive a call request from a caller, in which the call request includes a callee address in a first protocol.
  • the callee address might include a uniform resource locator ("URL") associated with the callee
  • the first protocol might be hypertext transfer protocol ("HTTP").
  • the computer might determine a callee at a calling destination based at least in part on the URL associated with the callee or callee's device(s), and might establish a voice or video call between the caller and the callee based at least in part on the URL associated with the callee (or callee's device(s)).
  • establishing a voice or video call may be implemented by utilizing address translation.
  • the computer might map the callee address in a second protocol (e.g., SIP, XMPP, PSTN protocol, etc.) different from the first protocol (e.g., HTTP), and might call the callee using the second protocol.
  • calls may be established without address translation, which might involve either relaying all control information and data for establishing the call, or might provide for non-relayed/direct routing of all control information and data between user devices of the caller and the callee.
  • the '182 Patent discloses some exemplary video calling devices (also referred to in the '182 Patent as video communication devices or VCDs) that can be used with embodiments disclosed herein.
  • the PDD and/or ICD described in the '499 Application can also be used as a video calling device, in accordance with various embodiments.
  • the '263 Application discloses systems for capturing and processing video, including remote control over a video or image capture device. Embodiments disclosed herein can be employed in the environment disclosed in the '263
  • FIGs. 1-8 illustrate exemplary embodiments that can provide some or all of the features described above.
  • the methods, systems, and apparatuses illustrated by Figs. 1-8 may refer to examples of different embodiments that include various components and steps, which can be considered alternatives or which can be used in conjunction with one another in the various embodiments.
  • the description of the illustrated methods, systems, and apparatuses shown in Figs. 1-8 is provided for purposes of illustration and should not be considered to limit the scope of the different embodiments.
  • Fig. 1 illustrates a functional diagram of a system 100 for controlling one or more user devices 105, in accordance with various embodiments.
  • the skilled reader should note that the arrangement of the components illustrated in Fig. 1 is functional in nature, and that various embodiments can employ a variety of different structural architectures. Merely by way of example, one exemplary, generalized architecture for the system 100 is described below with respect to Fig. 8, but any number of suitable hardware arrangements can be employed in accordance with different embodiments.
  • the one or more user devices 105 might include one or more video calling devices.
  • the one or more user devices 105 might include one or more presence detection devices (“PDDs”), such as the presence detection devices ("PDDs") described in the '279 Application, and/or the like.
  • PDDs presence detection devices
  • a video calling device 105 or a user device 105 can be any device that is capable of communicating with a control server 110 over a network 115 and can provide any of a variety of types of video communication functionality.
  • a video calling device 105 or a user device 105 can be capable of providing pass through video/audio to a display device (and/or audio playback device) from another source (such as a local content source), and/or overlaying such video/audio with additional content generated or received by the video calling device 105 or the user device 105.
  • a video calling device 105 or a user device 105 can comprise one or more sensors (e.g., digital still cameras, video cameras, webcams, security cameras, microphones, infrared sensors, touch sensors, and/or the like), and/or can be capable, using data acquired by such sensors, of sensing the presence of a user, identifying a user, and/or receiving user input from a user; further, a video calling device 105 or a user device 105 can be capable of performing some or all of the other functions described herein and/or in the Related Applications.
  • sensors e.g., digital still cameras, video cameras, webcams, security cameras, microphones, infrared sensors, touch sensors, and/or the like
  • a video calling device 105 or a user device 105 can be embodied by a video calling device, such as any of the video communication devices ("VCDs") described in the '182 Patent, a video game console, a streaming media player, to name a few non-limiting examples.
  • VCDs video communication devices
  • the system 100 can further include a control server 110, which can have any suitable hardware configuration, and an example of one such configuration is described below in relation to Fig. 8.
  • the control server 110 is a computer that is capable of receiving user input via a user interface 120 and/or performing operations for utilizing the video calling device(s) 105 and/or the user device(s) 105 to send voice or video call requests in one or more first protocols, to receive voice or video calls using one or more second protocols, to establish multiparty voice or video calls, to notify the user or callee about an incoming call, to enable the user or callee to remotely access the user's master account, user preferences, and/or the like, for example as described in further detail below.
  • the control server 110 is a computer that is capable of receiving user input via a user interface 120 and/or performing operations for utilizing the video calling device(s) 105 and/or the user device(s) 105 to send voice or video call requests in one or more first protocols, to receive voice or video calls using one or more second protocols, to establish
  • control server 110 might comprise a plurality of user devices 105 that are configured as distributed infrastructure devices in a cloud network environment, which is described in detail in the '360 Application, which has been incorporated herein by reference in its entirety for all purposes.
  • videomail messaging functionality as described in detail in the '499 Application (which has already been incorporated herein by reference in its entirety for all purposes) may be implemented in conjunction with the various embodiments described herein.
  • the control server 110 can receive a call request from a caller (e.g., through one of the user devices 105), in which the call request might include a callee address in a first protocol.
  • the first protocol might include a uniform resource locator ("URL") associated with the callee, and the first protocol might be hypertext transfer protocol ("HTTP").
  • the control server 110 might determine a callee at a calling destination based at least in part on the URL associated with the callee or with one or more user devices 105 associated with the callee.
  • the control server might establish a call (either voice or video call) between the caller and the callee based at least in part on the URL associated with the callee (or the callee's user device(s) 105).
  • the control server 110 is located over network 115 with respect to any of the user devices 105.
  • the call request might be initiated by the caller entering the URL associated with the callee in a web browser.
  • the caller might follow, execute, or click on a URL hyperlink in a web browser (or other HTTP supported document or user interface (“UI”)).
  • UI user interface
  • establishing the call between the caller and the callee might comprise the control server 110 mapping a callee address in a second protocol different from the first protocol, the control server 110 logging into a calling server (which in some cases might be conferencing server 135, another server 110, or the like) that utilizes the second protocol, and the control server 110 initiating a call to the callee address in the second protocol based on the mapping.
  • the second protocol might be session initiation protocol ("SIP")
  • the callee address might include a SIP address associated with the callee.
  • the second protocol might be extensible messaging and presence protocol ("XMPP"), and the callee address might include an XMPP address associated with the callee; the XMPP address might include a Jabber identification or Jabber ID, which might include a username and domain name (or IP address).
  • the second protocol might include public switched telephone network (“PSTN”) protocol, and the callee address might include a telephone number associated with the callee.
  • PSTN public switched telephone network
  • control server 110 might use port 80 (which is typically used in HTTP), which is commonly open by default by most firewalls and/or routers.
  • the control server 110 might record the video call, and might store the recorded video call in a database (such as cloud storage system 130).
  • the callee might be one of a software application, a dedicated hardware device, a web browser, or a conferencing server for multiple callers, wherein the conferencing server (e.g., conferencing server 135 or the like) performs aggregation and transcoding functions.
  • the conferencing server e.g., conferencing server 135 or the like
  • control server 110 might receive a request to share with the callee a display screen of a first device (e.g., user device 105a) associated with the caller, and might display the display screen of a first device on a screen of a second device (e.g., user device 105b) associated with the callee, in response to receiving the request to share the display screen of a first device (e.g., user device 105a) associated with the caller.
  • a first device e.g., user device 105a
  • a second device e.g., user device 105b
  • control server 110 might receive a request to share files with the callee, and might transfer one or more files designated for sharing from a first device (e.g., user device 105a) associated with the caller to a second device (e.g., user device 105b) associated with the callee, in response to receiving the request to share files.
  • a first device e.g., user device 105a
  • a second device e.g., user device 105b
  • placing a call might include a caller clicking, following, executing, or entering a URL associated with a callee (or a device of a callee). If necessary, the caller might have to download appropriate plugins for a web browser, and may be prompted to do so.
  • control server 110 might prompt for (or might access) user information for the caller, the user information including, without limitation, name, e- mail address, avatar, URL associated with the caller, and/or the like.
  • control server 110 might subsequently perform a database lookup (e.g., within either a local data store or within cloud storage system 130) to determine an address (and possibly a protocol, e.g., SIP, XMPP, PSTN, etc.) to be called, based on the URL.
  • the control server 110 might then place or establish a call to the callee using the appropriate protocol (e.g., HTTP, SIP, XMPP, PSTN, etc.) and address determined above.
  • control server 110 might perform negotiation with other system components to establish routing of the call; to enable video on/off capability;for video bandwidth, resolution, and codec type; for audio bandwidth, data rate, and codec type; and/or the like.
  • the control server 110 might receive a request to provide the callee with control of a camera associated with the caller, and might provide remote control of the camera associated with the caller to the callee.
  • remote control of the camera associated with the caller might include control of at least one of pan, tilt, or zoom of the camera.
  • remote control of the camera might further include manual focus, auto focus, centering of the field of view, iris control, still image capture, multiple still image capture, and/or the like. Examples of such camera control is shown, e.g., in the embodiment of Fig. 6C.
  • the call might be a video call
  • the camera might be a camera used by the caller during the video call.
  • the example described above is directed to providing the callee control of the camera of a device associated with the caller, the various embodiments are not so limited, and any of the call participants can provide control of his or her camera to any other(s) of the call participants.
  • web addresses may be used for calling, without translation to a secondary protocol (such as SIP, XMPP, PSTN, or the like).
  • the web browser might connect to a HTTP server or address associated with a user (e.g., a callee).
  • a user might provide his or her address to the world as a URL (e.g., http://matthew.com).
  • a URL e.g., http://matthew.com
  • the user might stay connected to the server (e.g., control server 110) all the time.
  • a caller might connect to the server (e.g., control server 110, which might be a HTTP server), via the web address or URL, only when the caller wants to call the user. In such a case, there is no longer any need for PSTN.
  • PSTN public switched telephone network
  • One intended benefit is that the call is done over HTTP, which is never blocked by firewalls.
  • Service providers can also offer the new service to users, e.g., can provide users with a service whereby the user informs the world that people can call the user at a URL associated with the user (or with a device(s) associated with the user).
  • Such people i.e., callers
  • Such people can place calls from their smartphones, tablet computers, desktop computers, and/or other suitable user devices (e.g., user devices 105).
  • the server 110 might be a HTTP server, and to establish a call between the caller and the callee, without translation to a secondary protocol, the HTTP server might receive a first notification (from a browser of a first device associated with a caller) indicating an incoming call (either video or voice call). The HTTP server might send a second notification (either the same notification as the first notification or a new/separate notification based on the first notification, or the like) to the callee indicating the incoming call. The HTTP server might then relay (all) control information and data to establish the call between the caller and the callee.
  • a first notification from a browser of a first device associated with a caller
  • the HTTP server might send a second notification (either the same notification as the first notification or a new/separate notification based on the first notification, or the like) to the callee indicating the incoming call.
  • the HTTP server might then relay (all) control information and data to establish the call between the caller and the call
  • control information and/or data that may be relayed to establish the call might include, without limitation, IP addresses and ports to which the actual audio and video data should be streamed for each user, resolution, aspect ratio, data rate capabilities, audio codecs supported, video codecs supported, encryption settings, and/or the like.
  • the HTTP might route traffic over a content delivery network ("CDN")- One goal of routing traffic over a CDN is to improve call quality, which might be achieved, e.g., by minimizing latency, reducing packet drops, and/or the like.
  • CDN content delivery network
  • non-relay routing or direct routing may be implemented.
  • the HTTP server might, similar to the embodiments with relaying, receive a first notification (from a browser of a first device associated with a caller) indicating an incoming call (either video or voice call), and might send a second notification (either the same notification as the first notification or a new/separate notification based on the first notification, and/or the like) to the callee indicating the incoming call.
  • the HTTP server might subsequently provide, to each of the first device (e.g., user device 105a) associated with the caller and a second device (e.g., user device 105b) associated with the callee, at least one of the caller address, the callee address, or control information and data.
  • a call between the caller and the callee may then be established (e.g., by the HTTP server), by streaming the control information and data from each of the first device and the second device to the other of the first device and the second device.
  • control server 110 might maintain a connection between the control server 110 and a user device (e.g., user device 105) associated with the user (i.e., potential callee), and might wake a browser (e.g., a web browser or the like) that is running on the user device in response to receiving a notification of an incoming call.
  • maintaining the connection between the control server 110 and the user device 105 might comprise associating the user device 105 with the control server 110, authenticating an identity of the user through the user device 105, and maintaining the connection based at least in part on the association and the authentication.
  • waking the browser might comprise the control server 110 waking the browser using a side communications channel between the control server 110 and the user device 105.
  • waking the browser might comprise the control server 110 waking all browsers running on all user devices associated the user.
  • system 100 may also allow and facilitate establishment calls involving three or more parties or call participants (herein referred to as "multi-party calls").
  • the control server 110 might receive, during a call between a caller and a callee, a request to establish a multi-party call with at least one additional call participant, the at least one additional call participant being separate from both the caller and the callee.
  • the control server 110 might subsequently establish a multi -party call connecting the caller, the callee, and each of the at least one additional call participant.
  • the request to establish the multi-party call might include a request to join the call that is received from the at least one additional call participant, in which case establishing the multi-party call comprises the control server 110 sending a notification to each of the caller and the callee indicating the request to join the call that is received from the at least one additional call participant, receiving, from one of the caller or the callee, instructions indicating acceptance of the at least one additional call participant in joining the call, and establishing a multiparty call connecting the caller, the callee, and each of the at least one additional call participant, in response to receiving the instructions indicating acceptance of the at least one additional call participant in joining the call.
  • the request to establish the multi-party call might include a request, from one of the caller or the callee, to add the at least one additional call participant to the call.
  • establishing the multi-party call might comprise the control server 110 establishing a multi-party call connecting the caller, the callee, and each of the at least one additional call participant, in response to receiving the request to add the at least one additional call participant to the call.
  • establishing a multi-party call connecting the caller, the callee, and each of the at least one additional call participant might comprise seamlessly transferring the multi-party call to a conferencing server 135.
  • party A and party B might be in a call.
  • parties might want to add party C to the call.
  • a conferencing server which might be set up in the cloud, might serve to accommodate or establish the multi-party call.
  • all three users i.e., parties A, B, and C
  • Party A and party B may maintain their current direct call.
  • connecting graphic on the screen of a communication device of one or both parties while the conference server sets up the multi-party call, and a user (or both users) can follow a link or otherwise execute a set of instructions associated with interacting with the connecting graphic to connect to the multi-party call.
  • party C might likely simply see that the call is connecting, and may be unaware of the processes through which the conferencing server might implement.
  • the server may need to signal the number and/or identities of the parties to be connected to the multi-party call.
  • an intermediate option referred to herein as "case (c)"
  • the video and audio from the server might be displayed or otherwise presented when at least N parties are connected, where N may be chosen to be 2 or 3. This ensures that when the multi -party portion of the call begins, there are in fact multiple parties in the call, although it may not be all of the parties that will ultimately join the call.
  • the conferencing server might typically be responsible for adding the additional parties as they successfully connect.
  • the conferencing server might perform processing for multiple callers, including performing aggregation and transcoding functions.
  • the conferencing server might need to first aggregate audio and video streams in order to establish/maintain the multi-party call.
  • parties A, B, and C are on the call.
  • Party C needs to be sent the combined audio from Party A and Party B.
  • Party B needs the combined audio from Party A and Party C. This is a form of audio aggregation.
  • Party/user A only wants to see the video of Party B and Party C.
  • the server may even change the layout/aggregation of the audio and video based on who is talking and/or moving. For example, if the screen layout has one position larger than the other, the server might put the user who is talking (i.e., with stronger audio) and/or moving (i.e., with more motion in the video) in the larger area of the screen. This may not be so simple, because that user who is talking may still not want to see himself or herself.
  • the aggregation may include displaying all users or only a subset of users. In an example where there are 20 people on the call, the server may opt to just display a maximum of n people (for example, 6 people, etc.) on the screen.
  • the conferencing server is responsible for not only aggregating the streams, but also converting (or transcoding) the audio and video from one format to another.
  • the device of user A might support h.264
  • the device of user B might support VP8.
  • the conferencing server must receive h.264 from user A, but it must send VP8 to user B, and vice versa.
  • the conferencing server must take the video stream from user A and convert or transcode from h.264 to VP8.
  • the conferencing server could in fact receive multiple video formats, aggregate them into the proper screen layout and transmit them in yet another video format (or, in some instances, at least a single, common video format, regardless of whether or not any of the video formats received is the same as the common video format).
  • video formats aggregate them into the proper screen layout and transmit them in yet another video format (or, in some instances, at least a single, common video format, regardless of whether or not any of the video formats received is the same as the common video format).
  • conferencing server 135 might otherwise perform the functionalities of control server 110 that are described in detail above.
  • database 140 might store, locally, data and information that is stored in cloud storage system 130 that is useful or important for establishing and/or maintaining a multi-party call.
  • conferencing server 135 might establish a multi-party call amongst three or more user devices over network 115, over network 150, or over a combination of networks 115 and 150.
  • a connection between conferencing server 135 and each of one or more of a first user device 105a, a second device 105b, or a third device 105c might be over network 115, while connections between the conferencing server 135 and each of another of the one or more of the first user device 105a, the second device 105b, or the third device 105c c might be over network 150, and/or the like.
  • the first user device 105a and the second device 105b might connect with the conferencing server 135 over network 115
  • the third user device 105c might connect with the conferencing server 135 over network 150, or vice versa.
  • control server 110 might receive, during a call between a caller and a callee, a request from an additional caller to call one of the caller or the callee, the additional caller being separate from both the caller and the callee.
  • control server 110 might prevent establishment of a call connection between the additional caller and the one of the caller or the callee, without interrupting the first call.
  • control server 110 In response to receiving a "switch call" user input response from the one of the caller or the callee, control server 110 might put the first call on hold and establishing a second call between the additional caller and the one of the one of the caller or the callee. In response to the second call ending, control server 110 might automatically (i.e., without user interaction) cause the first call to resume. In some cases, in response to receiving an "end call” user input response from the one of the caller or the callee to end the second call, the control server 110 might automatically (i.e., without further user interaction) cause the first call to resume (in some cases, prior to the second call being completely ended).
  • control server 110 can provide a user interface (which can be used by users of the video calling devices 105 and/or the user devices 105, and/or the like).
  • the control server 110 might also provide machine-to-machine interfaces, such as application programming interfaces ("APIs"), data exchange protocols, and the like, which can allow for automated communications with the video calling devices 105 and/or the user devices 105, etc.
  • APIs application programming interfaces
  • the control server 110 might be in communication with a web server 125 and/or might incorporate the web server 125, which can provide the user interface, e.g., over the network to a user computer (not shown in Fig. 1) and/or a machine-to-machine interface.
  • control server 110 might provide such interfaces directly without need for a web server 125. Under either configuration, the control server 110 provides the user interface 120, as that phrase is used in this document. In some cases, some or all of the functionality of the control server 110 might be implemented by the video calling device 105 and/or the user device 105 itself.
  • server 110 might perform the methods described in detail with respect to Figs. 2-6 below, while data associated with user account(s) or preferences and/or data associated user calling addresses might be collected by the one or more user devices 105, by server 110, by server 135, or by any combination of these computing devices.
  • the database 130 (and/or database 140) might store some or all of these collected data.
  • control server 110 can detect user presence, identify/authenticate users, and/or enable the user to remotely access the user's master account, user preferences, videomail messages, and/or the like.
  • control server 110 can receive and/or store user input and/or user preferences that can specify whether and how presence information should be used, whether and how the user' s video calling device(s) and/or user device(s) may be used in the distributed infrastructure, whether and how the user's content and profiles should be handled under certain situations, and/or the like.
  • preferences might specify which account information, content, profile information, personal communications (e.g., videomail, etc.), and/or the like should be delivered to a user when present at a device not owned by the user, whether presence information should be collected for that user at all (and/or where such information should be collected); for example, a user might specify that his presence should only be monitored in selected locations or from selected devices, and the control server 110 might remove that user's profile from the search universe when provided with presence information from a device not at the selected location or from a device other than one of the selected devices.
  • personal communications e.g., videomail, etc.
  • the user preference can include any types of parameters related to collecting presence information, using presence information, and/or serving content/information (including, without limitation, user account information, user content, user profile information, user's personal communications (e.g., videomail, etc.), and/or the like).
  • These preferences might be stored in a user profile at the control server 110, which might also include other user-specific information, such as the user's normal location(s), identifying information (such as MAC address, etc.) of other user devices owned by or associated with the user, lists of or links to content owned by the user, lists of or links to videomail messages addressed to the user, and/or the like.
  • Videomail capture, processing, and distribution is described in greater detail in the '499 and '621 Applications (already incorporated herein).
  • a plurality of video calling devices 105 might be communicatively coupled together in a network (e.g., network 115), each video calling device being located in one of a plurality of customer premises.
  • a computer might establish one or more video calling devices 105 of the plurality of video calling devices 105 as distributed infrastructure elements and might provide at least one of one or more software applications, customer data, and/or media content to the one or more video calling devices 105 for hosting on the one or more video calling devices 105.
  • user preferences might specify how the user would like his or her user devices to participate (or not) in a distributed infrastructure arrangement.
  • the user preferences might include, without limitation, preferences indicating whether or not to allow a user device owned by the user to be used for distributed infrastructure; preferences indicating what type of software applications, customer data, and/or media content (of other user device users and/or subscribers of a cloud service) are permitted to be hosted on a user device owned by the user; and/or preferences indicating amount of resources of a user device to dedicate to the distributed infrastructure; etc.
  • user preferences might allow a user to indicate how the user's own applications, data, and/or media content may be hosted on other users' user devices. For example, the user might be given the option to encrypt any and/or all personal data, any and/or all personal applications, any and/or all files or lists indicating which media content are associated with the user, and/or any and/or all files or lists pertaining to videomail messages that are addressed to the user (including the videomail messages themselves).
  • Common media content (which might include popular media content, or any other media content) may remain unencrypted for common usage by any number of users on any number of user devices, subject only to any subscription, rental, or purchase restrictions on the particular media content as associated with any user and/or any user device.
  • the user's personal communications (including, e.g., videomail messages and/or the like) may be encrypted.
  • the user might indicate that her user device may be used for distributed processing, but not distributed cloud-based data storage, or vice versa.
  • the user might indicate that her user device may be used for both distributed processing and distributed cloud-based data storage.
  • the user might allow the hosting, on his or her user device, of at least portions of software applications that are published by known and reputable software companies or published by companies on behalf of governmental agencies, or the like, while blocking hosting of software applications associated with marketing, spam, data mining, and/or potential copyright violations, etc.
  • a video calling device 105 or a user device 105 can be placed functionally inline between a local content source and a display device.
  • a local content source can be any device that provides an audio or video stream to a display device and thus can include, without limitation, a cable or satellite set-top box (“STB"), an Internet Protocol television (“IPTV”) STB, devices that generate video and/or audio, and/or acquire video and/or audio from other sources, such as the Internet, and provide that video/audio to a display device; hence, a local content source can include devices such as a video game console, a Roku® streaming media player, an AppleTV®, and/or the like.
  • the video calling device or the user device can receive an audiovisual stream output from the local content source, modify that audiovisual stream in accordance with the methods described herein, in the ' 182 Patent, and/or in the '279 Application, and provide the (perhaps modified) audiovisual stream as input to the display device.
  • a local content source can be incorporated within a video calling device or a user device, and/or the functionality of a video calling device or a user device can be incorporated within a local content source; further, it should be appreciated that a video calling device or a user device (which might or might not include local content source functionality) can be disposed inline with one or more other local content sources or one or more other video calling devices/user devices.
  • a video calling device or a user device with some local content source functionality might be disposed inline between one or more other local content sources or one or more other video calling devices/user devices (such as a cable STB, satellite STB, IPTV STB, and/or a streaming media player) and a display device.
  • the system can include a software client that can be installed on a computing device (e.g., a laptop computer, wireless phone, tablet computer, etc.) that has a built-in camera and/or has a camera attached (e.g., a USB webcam).
  • a software client can be installed on a computing device (e.g., a laptop computer, wireless phone, tablet computer, etc.) that has a built-in camera and/or has a camera attached (e.g., a USB webcam).
  • This client can act as an interface to allow remote control of the built-in and/or attached camera on the computing device.
  • the computing device might have a built-in microphone(s) and/or has a microphone(s) attached (e.g., a table-top microphone, a wall-mounted microphone, and/or a microphone removably mountable on a television, on the video calling device, on the user device, and/or on some other suitable user device, or the like).
  • the software client can alternatively and/or additionally act as an interface to allow remote control of the built-in and/or attached microphone on the computing device.
  • the camera and/or microphone can be automatically or autonomously controlled to obtain optimal video and/or audio input. Remote control of the video calling device and/or user device is described in detail in the '263 Application (already incorporated herein).
  • the user interface 120 allows users to interact with the control server 110, and by extension, the video calling devices 105 and/or the user devices 105.
  • a variety of user interfaces may be provided in accordance with various embodiments, including, without limitation, graphical user interfaces that display, for a user, display fields on display screens for providing information to the user and/or receiving user input from a user.
  • Example graphical user interfaces are shown in Fig. 6 as described below.
  • control server controls the control server
  • the user interface 110 may be configured to communicate with a user computer (not shown in Fig. 1) via a dedicated application running on the user computer; in this situation, the user interface 120 might be displayed by the user computer based on data and/or instructions provided by the control server 110. In this situation, providing the user interface might comprise providing instructions and/or data to cause the user computer to display the user interface. In other embodiments, the user interface may be provided from a web site, e.g., by providing a set of one or more web pages, which might be displayed in a web browser running on the user computer and/or might be served by the web server 125.
  • control system 110 might comprise the web server and/or be in communication with the web server 125, such that the control server 110 provides data to the web server 125 to be incorporated in web pages served by the web server 125 for reception and/or display by a browser at the user computer.
  • the network 115 (or network 150), specific examples of which are described below with regard to Fig. 8, can be any network, wired or wireless, that is capable of providing communication between the control server 110 and the video calling devices 105 and/or the user devices 105, and/or of providing communication between the control server 110 (and/or the web server 125) and a user computer.
  • the network 115 (or network 150) can comprise the Internet, and/or any Internet service provider ("ISP") access networks that provide Internet access to the control server 110, the user computer, and/or the video calling devices 105 and/or the user devices 105.
  • ISP Internet service provider
  • the system 100 can include a cloud storage system 130, which can be used, as described in further detail below, to store user addresses in at least one protocol (e.g. HTTP, SIP, XMPP, PSTN protocol, etc.); user preferences regarding call conferencing, conference addressing, etc.; and/or the like.
  • the cloud storage system 130 might further store advertisements, presence information, images, video, and/or videomail messages that are captured and uploaded by the video calling devices 105 and/or the user devices 105, and/or the like.
  • the cloud storage system 130 might be a proprietary system operated by an operator of the control server 110. In other cases, the cloud storage system 130 might be operated by a third party provider, such as one of the many providers of commercially available cloud services. In yet a further embodiment, the cloud storage system 130 might be implemented by using resources (e.g., compute, memory, storage network, etc.) shared by a plurality of video calling devices, and/or by a plurality of user devices, that are distributed among various users of the system.
  • resources e.g., compute, memory, storage network, etc.
  • a plurality of user video calling devices and/or user devices might each have some dedicated resources (such as a storage partition), which are dedicated for use by the system, and/or some ad hoc resources (such as network bandwidth, memory, compute resources, etc.) that are available to the system when not in use by a user.
  • resources can be used as cloud storage and/or can be used to provide a distributed, cloud-like platform on which a control server can run as a virtual machine, cloud container, and/or the like.
  • video calling device 105 might comprise a first video input interface to receive first video input from a first local content source (which in some embodiments can include a STB and/or the like) and a first audio input interface to receive first audio input from the first local content source.
  • Video calling device 105 might further comprise a first video output interface to provide first video output to a first video display device and a first audio output interface to provide first audio output to a first audio receiver.
  • the first video display device and the first audio receiver might be embodied in the same device (e.g., a TV with built-in speaker system, or the like).
  • video calling device 105 might provide pass-through capability for video and/or audio between the first local content source and the first display device.
  • high-definition multimedia interface (“HDMI") cables or other suitable HD signal cables may be used to provide the interconnections for the pass- through.
  • Video calling device 105 may, in some cases, comprise a first video capture device to capture at least one of first image data or first video data and a first audio capture device to capture first audio data.
  • Video calling device 105 may also comprise a first network interface, at least one first processor, and a first storage medium in communication with the at least one first processor.
  • a user can remotely access one or more video calling devices 105 and/or remotely access at least one of the user's master account, the user's user preference, the user's profiles, any videomail messages addressed to the user, and/or the like over a network.
  • a user could log into the user's master account by accessing a website hosted on a web server (e.g., web server 125, which might be hosted on a cloud server, hosted on distributed user devices, hosted on distributed video calling devices, and/or the like) and entering commands into a user interface (e.g., user interface 120) associated with remotely accessing the user's video calling device(s) 105 and/or associated with remotely accessing at least one of the user's master account, the user's user preference, the user's profiles, any videomail messages addressed to the user, and/or the like.
  • a web server e.g., web server 125, which might be hosted on a cloud server, hosted on distributed user devices, hosted on distributed video calling devices, and/or the like
  • a user interface e.g., user interface 120
  • the user might access and interact with the user interface over the network (e.g., network 115) by using a user computer selected from a group consisting of a laptop computer, a desktop computer, a tablet computer, a smart phone, a mobile phone, a portable computing device, and/or the like.
  • a user computer selected from a group consisting of a laptop computer, a desktop computer, a tablet computer, a smart phone, a mobile phone, a portable computing device, and/or the like.
  • a software application or "app” running on the user's user device, which might include, without limitation, a laptop computer, a desktop computer, a tablet computer, a smart phone, a mobile phone, a portable computing device, and/or the like.
  • the app might include another user interface (similar to the web-based user interface) that might allow for access of the user's video calling device(s) (or any paired video calling device(s)) over the network (e.g., network 115) and/or that might allow for access to at least one of the user's master account, the user's user preference, the user's profiles, any videomail messages addressed to the user, and/or the like.
  • another user interface similar to the web-based user interface
  • the network e.g., network 115
  • a user device 105 might comprise a second video input interface to receive second video input from a second local content source (which, in some embodiments, might include a STB and/or the like) and a second audio input interface to receive second audio input from the second local content source.
  • a second local content source which, in some embodiments, might include a STB and/or the like
  • a second audio input interface to receive second audio input from the second local content source.
  • User device 105 might further comprise a second video output interface to provide second video output to a second video display device and a second audio output interface to provide second audio output to a second audio receiver.
  • the second video display device and the second audio receiver might be embodied in the same device (e.g., a TV with built-in speaker system, or the like).
  • user device 105 With the input and output interfaces, user device 105 might provide pass-through capability for video and/or audio between the second local content source and the second display device.
  • high-definition multimedia interface (“HDMI”) cables or other suitable HD signal cables may be used to provide the interconnections for the pass- through.
  • HDMI high-definition multimedia interface
  • User device 105 may, in some cases, comprise a second video capture device to capture at least one of second image data or second video data, and a second audio capture device to capture second audio data, user device 105 might also comprise a second network interface, at least one second processor, and a second storage medium in communication with the at least one second processor. Similar to the video calling devices 105, a plurality of user devices 105 may be communicatively coupled together in a network (e.g., network 115), as distributed infrastructure elements for implementing distributed infrastructure for cloud computing, cloud- based application hosting, and/or cloud-based data storage.
  • a network e.g., network 115
  • a user may be provided with access to the video calling device(s) over the network and/or remote access to at least one of the user's master account, the user's user preference, the user's profiles, any videomail messages addressed to the user, and/or the like.
  • access may be in the form of web-based user interfaces, app-based user interfaces, or other suitable user interfaces.
  • Such user interfaces might be customized automatically based on the user preferences (i.e., based on the video mail capture, processing, and distribution user preferences discussed above). In some instances, the user interfaces might be configured to allow addition, modification, and/or deletion of such user preferences. According to some embodiments, the user interfaces might provide the user with options for uploading, locally storing, cloud storing, distributing/sharing, processing, and/or otherwise handling recorded videomail messages from the video calling device(s). Some of these options may be preselected (or established as default settings) in the user preferences. In some cases, processing of videomail messages from the video calling device(s) might include, without limitation, formatting, sharpening, and/or otherwise manipulating the videomail messages.
  • the user device e.g., PDD
  • the user device might be configured to determine whether the user is no longer present. Based on such a determination, access to the video calling device(s) over the network, as well as access to at least one (if not all) of the user's master account, the user's user preference, the user's profiles, any videomail messages addressed to the user (whether in the raw or processed state), and/or the like, may be blocked. Blocking such access may include automatically logging out of the web-based or app-based user interface, or the like.
  • FIGs. 2A-2D illustrate various methods 200 of enabling or implementing video or voice calling and conferencing addressing, in accordance with one set of embodiments.
  • Fig. 2A illustrates a general method
  • each of Figs. 2B-2D illustrates various alternative specific, non-limiting examples of implementations of the method. While the techniques and procedures are depicted and/or described in a certain order for purposes of illustration, it should be appreciated that certain procedures may be reordered and/or omitted within the scope of various embodiments.
  • the method illustrated by Fig. 2 can be implemented by (and, in some cases, are described below with respect to) the systems 100, 700, and/or 800 of Figs.
  • method 200 might comprise receiving, at a computer and from a caller, a call request including a callee address in a first protocol.
  • the first protocol might be hypertext transfer protocol ("HTTP")
  • the callee address might include a uniform resource locator ("URL") associated with the callee.
  • the URL associated with the callee might be a URL associated with at least one device associated with the callee.
  • the computer might be a server located over a network (e.g., server 110 or 125 over network 115, with respect to user device 105, shown in Fig. 1).
  • the caller sending the call request might include the caller entering, clicking, following, or executing the URL associated with the callee.
  • appropriate plugins might be downloaded and installed, if needed, and the caller might (optionally) be prompted for user information (or user information might be accessed), which might include name, e-mail address, caller address, avatar, and/or the like. If the user information is entered, such information may be stored locally on the user device or at a server over a network, such that the entry is not required on subsequent calls.
  • Method 200 at block 210, might comprise determining, with the computer, a callee at a calling destination based at least in part on the URL associated with the callee.
  • determining a callee at a calling destination might include, without limitation, performing a database lookup to determine address (and, in some cases, to determine a protocol) to be used to call the callee, based at least in part on the URL.
  • Method 200 might further comprise establishing, with the computer, a call between the caller and the callee based at least in part on the URL associated with the callee (block 215).
  • the call might be a video call.
  • the call might be one of a voice call, an e-mail communication, a text communication (e.g., short message service (“SMS”) communication, chat communication, etc.), multimedia communication (e.g., multimedia messaging service (“MMS”) communication, etc.), or the like.
  • SMS short message service
  • MMS multimedia messaging service
  • Method 200 might further comprise establishing, with the computer, a call between the caller and the callee based at least in part on the URL associated with the callee (block 215).
  • the call might be a video call.
  • the call might be one of a voice call, an e-mail communication, a text communication (e.g., short message service (“SMS”) communication, chat communication, etc.), multimedia communication (e.g., multimedia messaging service (“MMS”)
  • negotiation might include, but is not limited to, negotiating routing, negotiating video on/off (for video calls), negotiating video bandwidth, resolution, and codec type (also for video calls), negotiating audio bandwidth, data rate, and codec type (for video and voice calls), and/or the like.
  • the computer might be a user device associated with the caller, while in some cases, the computer might be a server over a network.
  • the process of establishing, with the computer, a call between the caller and the callee based at least in part on the URL associated with the callee (at block 215) might comprise establishing a call by sending a request to the server over the network to establish the call between the caller and the callee based at least in part on the URL associated with the callee, with the server performing the process of establishing the call.
  • determining a callee at a destination based at least in part on the URL associated with the callee might be performed at the user device associated with the caller and/or at the server.
  • the determining process (at block 210) might include either determining a callee at a destination by directly querying a database (which might be local to the user device or located over a network) or determining a callee at a destination by sending a request for a server to determine a callee at a destination.
  • Figs. 2B-2D the processes at blocks 205 and 210 of Fig. 2A might be the same or similar, but the process of establishing the call between the caller and the callee in block 215 might differ and might comprise sub-processes, as described below.
  • Fig. 2B illustrates a method that involves address translation from a first protocol (e.g., HTTP) to a second protocol different from the first protocol.
  • the second protocol (which is different from the first protocol) might include, without limitation, session initiation protocol (“SIP”), extensible messaging and presence protocol (“XMPP”), public switched telephone network (“PSTN”) protocol, and/or the like.
  • SIP session initiation protocol
  • XMPP extensible messaging and presence protocol
  • PSTN public switched telephone network
  • the process of establishing the call of block 215 (referred to herein as "call establishment with mapping"), which involves address translation, might comprise mapping, with the computer, a callee address in a second protocol different from the first protocol (block 220), logging into a calling server that utilizes the second protocol, via the computer (block 225), and initiating, with the computer, a call to the callee address in the second protocol based on the mapping (block 230).
  • the callee address might include a SIP address associated with the callee and/or with one or more devices associated with the callee.
  • the callee address might include an XMPP address associated with the callee and/or with one or more devices associated with the callee.
  • Such an XMPP address - which might otherwise be referred to by those of skill in the art as a Jabber ID or JID - might, in some instances, include a username and one of a domain name or an Internet protocol (“IP”) address.
  • IP Internet protocol
  • the callee address might include a telephone number associated with the callee and/or with one or more devices associated with the callee.
  • mapping a callee address in the second protocol might include translating the URL into one of a SIP address, a JID, a telephone number, and/or the like.
  • a computer or server e.g., control server 110 and/or web server 125 of Fig. 1 might receive a call request from a caller.
  • the call request might be in HTTP, and might include a callee address including a URL associated with the callee (e.g., "http://johndoe.name") or a URL associated with a device associated with the callee (e.g., "http://mobilel .johndoe.name”), and/or the like.
  • URLs might include, without limitation, ones including domain names of a service provider (e.g., "http://biscotti.com call/johndoe"), ones including a commercial (or more accurately, though not widely referred to, "common") domain name associated with the callee (e.g., "http://johndoe.com” or "http://www.anotherdomain.com/johndoe/”), and/or the like.
  • the computer or server might subsequently search or query a database(s) (whether internal or external, within a local area network or accessible over another network (e.g., the Internet or the like)) to determine a callee at a calling destination, based at least in part on the URL.
  • the computer or server might determine, from a search of the database(s), either an identity of a callee, an identity of a calling destination (e.g., device or location associated with the callee and/or URL), identification information of one or more devices associated with the user, and/or the like, each based (at least in part) on the URL.
  • an identity of a callee e.g., an identity of a calling destination (e.g., device or location associated with the callee and/or URL), identification information of one or more devices associated with the user, and/or the like, each based (at least in part) on the URL.
  • the computer or server might map the URL in a second protocol. For example, the computer or server might map the URL into SIP (e.g., " SIP :j ohndoe@anotherdomain.com” ; “SIP:jdoe@biscotti.com”; and/or the like), XMPP (e.g., "johndoe@yetanotherdomain.com”;
  • PSTN protocol e.g., " 123-456-7890”
  • the computer or server might subsequently log into a calling server that utilizes the second protocol (e.g., a SIP calling server (e.g., VoIP service or the like), a calling server utilizing XMPP, a calling service that utilizes time division multiplex ("TDM”) or other PSTN formats, and/or the like), and might automatically initiate or establish a call to the callee address in the second protocol based on the mapping, via the calling server.
  • the call might be initiated by using port 80, which is used by HTTP, and which is commonly open by default by most firewalls and/or routers.
  • Figs. 2C and 2D illustrate methods that do not involve address translation.
  • these embodiments use web addresses for calling, but do not translate to a secondary protocol such as SIP, XMPP, PSTN, and/or the like.
  • the web browser just connects to an HTTP server/address associated with a user.
  • the user might provide his address to the world as "http://matthew.com.”
  • anyone with a browser could call the user.
  • the user as a callee, might stay connected to his server all the time.
  • a caller might connect to the server (via the web address) only when the caller wanted to call the user. In such cases, there would no longer be a need for PSTN.
  • This calling process can all be done over HTTP, which is never blocked by firewalls.
  • Service providers can also offer the new service (i.e., a service whereby a user can tell the world that anyone can call the user at "user.org” or the like).
  • the caller can place calls from any suitable device, including, but not limited to, a smartphone, a tablet computer, a laptop computer, a desktop computer, a video calling device, and/or the like.
  • the computer might be a HTTP server and the process of establishing the call of block 215 (referred to herein as "call establishment with relaying") might comprise receiving, with the HTTP server and from a browser of a first device associated with the caller, a notification indicating an incoming call (block 235), sending, with the HTTP server, a notification to the callee indicating the incoming call (block 240), and relaying, with the HTTP server, control information and data to establish the call between the caller and the callee (block 245).
  • call establishment with relaying might comprise receiving, with the HTTP server and from a browser of a first device associated with the caller, a notification indicating an incoming call (block 235), sending, with the HTTP server, a notification to the callee indicating the incoming call (block 240), and relaying, with the HTTP server, control information and data to establish the call between the caller and the callee (block 245).
  • a HTTP server e.g., control server 110 and/or web server 125 of Fig. 1
  • a HTTP server might receive, from a caller, a call request in HTTP including a URL associated with the callee, a URL associated with a device associated with the callee, and/or the like, and might determine a callee at a calling destination based at least in part on the URL, as described in detail above. If the caller is using a tablet computer to send the call request, a browser running on the tablet computer might send a call notification to the HTTP server, which might receive the call notification and might send a notification to the callee indicating the incoming call.
  • the HTTP server might provide to the tablet computer and to a user device associated with the callee (e.g., a smartphone, laptop computer, tablet computer, desktop computer, video calling device, or the like) at least one of the caller's address (e.g., URL), the callee's address (e.g., URL), and/or control information and data to establish the call between the caller and the callee.
  • a user device associated with the callee e.g., a smartphone, laptop computer, tablet computer, desktop computer, video calling device, or the like
  • the caller's address e.g., URL
  • the callee's address e.g., URL
  • the process of establishing the call of block 215 might comprise, in addition to the processes in blocks 235 and 240 of Fig. 2C, providing, with the HTTP server and to each of the first device associated with the caller and a second device associated with the callee, at least one of the caller address, the callee address, or control information and data used for establishing the call between the caller and the callee (block 250), and establishing the call between the caller and the callee, by streaming the control information and data from each of the first device and the second device to the other of the first device and the second device (block 255).
  • control information may include information comprising, without limitation, maximum data rate(s) allowed, video codec(s) supported, audio codec(s) supported, video resolution(s) supported, open port(s), protocol(s) supported, device or display name, avatar or image for the user, and/or the like.
  • FIG. 3 is a process flow diagram illustrating a method 300 of waking one or more browsers running on one or more devices associated with a user in response to an incoming call, in accordance with various embodiments. While the techniques and procedures are depicted and/or described in a certain order for purposes of illustration, it should be appreciated that certain procedures may be reordered and/or omitted within the scope of various
  • Fig. 3 can be implemented by (and, in some cases, are described below with respect to) the systems 100, 700, and/or 800 of Figs. 1 , 7, and/or 8, respectively (or components thereof), such methods may also be implemented using any suitable hardware implementation.
  • each of the system 100 (and/or components thereof) of Fig. 1, the system 700 (and/or components thereof) of Fig. 7, and/or the system 800 (and/or components thereof) of Fig. 8 can operate according to the method illustrated by Fig. 3 (e.g., by executing instructions embodied on a computer readable medium), the system 100 can also operate according to other modes of operation and/or perform other suitable procedures.
  • method 300 might be implemented
  • method 300 may be implemented independently, separately, or otherwise without implementing method 200.
  • Web browsers are not always running. This creates a problem for incoming calls that rely on web browsers or that are otherwise based on HTTP or the like. Further, web browsers have historically had client/server relationships where the client requests information, and the server provides it. This is problematic when the server would like to notify the user of an incoming call.
  • the embodiments described below relate to always being able to receive an incoming call. Some of the embodiments described herein ensure that when there is an incoming call, the user is notified independent of whether or not his or her browser was previously running.
  • Method 300 at block 305, might comprise maintaining, with a computer, a connection between the computer and a user device associated with a user.
  • the process of maintaining the connection might comprise associating the user device with the computer (block 310), authenticating an identity of the user through the user device (block 315), and maintaining the connection based at least in part on the association and the authentication (block 320).
  • connections may be maintained using a TCP/IP connection, a WebSocket ("WS”) connection, and/or a HTTP connection, and in some cases, possibly with techniques including, but not limited to, long polling to keep the connection alive.
  • WS WebSocket
  • a persistent connection may be emulated by using polling techniques, which may use protocols including, without limitation, HTTP or TCP/IP connections. Although polling techniques may be used, in general, they tend to have more overhead, and thus non-polling-based approaches may be preferred in some situations. Persistent connections may also be achieved by using messaging protocols such as SIMPLE or XMPP. With regard to the use of WS connections, WS enables a bi-directional, persistent connection to the user device(s) (and/or browser(s) running on the user device(s)), without polling. In some cases, a WS connection might be thought of as a form of an upgraded HTTP connection. In fact, WS connections can start off as a HTTP connection and may then be upgraded to a full WS connection.
  • method 300 might comprise waking, with the computer, a browser running on the user device in response to receiving a notification of an incoming call.
  • the process of waking the browser might comprise waking, with the computer, the browser using a side communications channel between the computer and the user device (block 330) and/or simultaneously waking, with the computer, all browsers running on all devices (including, but not limited to, smartphone, tablet computer, laptop computer, desktop computer, video calling device, and/or the like) that are associated the user (block 335).
  • waking browsers there might be two scenarios: in a first scenario, the browser might have been started (or might be running), while in the second scenario, the browse might not yet be started (or might not yet be running). If the browser has not yet started (i.e., second scenario), a message must be passed to the operating system to start the process, i.e., to start the browser. Exactly how this is done varies from operating system to operating system. In a Linux system, for example, the functions system(), fork(), and/or exec() may be used to start another application. In an Android system, the startActivity() function may be used. When starting the process, additional information (e.g., a URL) may be passed for the browser to open.
  • additional information e.g., a URL
  • the browser process may already be active, and the browser just needs to follow the directive provided. In other cases, the browser process may also need to be started. Depending on the implementation, waking the browser to do work may be performed using inter-process communication techniques, including, but not limited to, shared memory, message passing, semaphores, pipes, etc.
  • Figs. 4A-4D are process flow diagrams illustrating various methods 400 of enabling, handling, or implementing multi-party calls, in accordance with various embodiments. While the techniques and procedures are depicted and/or described in a certain order for purposes of illustration, it should be appreciated that certain procedures may be reordered and/or omitted within the scope of various embodiments. Moreover, while the method illustrated by Fig. 4 can be implemented by (and, in some cases, are described below with respect to) the systems 100, 700, and/or 800 of Figs. 1, 7, and/or 8, respectively (or components thereof), such methods may also be implemented using any suitable hardware implementation.
  • each of the system 100 (and/or components thereof) of Fig. 1, the system 700 (and/or components thereof) of Fig. 7, and/or the system 800 (and/or components thereof) of Fig. 8 can operate according to the method illustrated by Fig. 4 (e.g., by executing instructions embodied on a computer readable medium), the system 100 can also operate according to other modes of operation and/or perform other suitable procedures.
  • method 400 might be implemented complementary to method 200 of Fig. 2 and/or method 300 of Fig. 3, while in other embodiments, method 400 may be implemented independently, separately, or otherwise without implementing method 200 and/or method 300.
  • a "multi-party call” refers to a call (simultaneously or concurrently) connecting three or more parties or call participants.
  • additional call participants can be added in an ad- hoc manner, which might turn a two-party call into a multi-party call.
  • a button or link in a web browser interface when depressed, clicked, or followed, allows a user (i.e., caller or callee) to invite additional participants to the call.
  • the additional call participants might each individually call the caller or callee, and another button or link in a web browser interface, when depressed, clicked, or followed, allows the user (i.e., caller or callee) to merge the incoming call from the additional participant(s) with the existing call to establish a multi-party call connecting the caller, the callee, and each of the additional participant(s).
  • the above embodiments refer to a web browser interface, other user interfaces may be similarly implements; such other user interfaces might include, without limitation, an application (or "app") -based user interface, a video calling graphical user interface, a voice calling graphical user interface, a virtual reality user interface, an augmented reality user interface, and/or the like.
  • method 400 at block 405, might comprise receiving, with a computer and during the call between the caller and the callee, a request to establish a multi-party call with at least one additional call participant, the at least one additional call participant being separate from both the caller and the callee.
  • the request might be received from an additional call participant(s), as described with respect to Fig. 4B (to join the existing call) or Fig. 4C (to call only one of the existing call participants, but open to joining the existing call), or from an existing call participant (i.e., a caller or callee), as described with respect to Fig. 4D.
  • method 400 might comprise establishing, with the computer, a multi-party call connecting the caller, the callee, and each of the at least one additional call participant.
  • additional call participant(s) may be added to an existing multi-party call, in a similar manner as described herein for adding additional call participant(s) to two-party calls.
  • method 400 might comprise receiving, with a computer and during a call between a caller and a callee, a request to join the call that is received from the at least one additional call participant (block 405') ⁇
  • Method 400 at block 415, might comprise sending, with the computer, a notification to each of the caller and the callee indicating the request to join the (existing) call that is received from the at least one additional call participant.
  • method 400 might comprise receiving, from one of the caller or the callee, instructions indicating acceptance of the at least one additional call participant in joining the call.
  • the instructions might include instructions associated with the one of the caller or the callee pressing, clicking, or following a button or link in a web browser, in a calling application ("app"), or in some other user interface.
  • Method 400 might further comprise establishing, with the computer, a multi-party call connecting the caller, the callee, and each of the at least one additional call participant, in response to receiving the instructions indicating acceptance of the at least one additional call participant in joining the call (block 410').
  • method 400 might comprise, at block 405", receiving, with a computer and during first a call between a caller and a callee, a request from the at least one additional call participant to call one of the caller or callee.
  • Method 400 at block 425, might comprise sending, with the computer, a notification to the one of the caller or the callee indicating the incoming call from the at least one additional call participant.
  • the one of the caller or the callee might decide to merge the first call with the incoming call, and might send instructions indicating such.
  • the computer might receive, from the one of the caller or the callee, the instructions indicating merging of the incoming call with the first call.
  • Method 400 might further comprise establishing, with the computer, a multi-party call connecting the caller, the callee, and each of the at least one additional call participant, in response to receiving the instructions indicating merging of the incoming call with the first call (block 410").
  • method 400 might comprise receiving, with a computer and during a call between a caller and a callee, a request, from one of the caller or the callee, to add at least one additional call participant to the call (block 405'") ⁇
  • method 400 might comprise establishing, with the computer, a multi-party call connecting the caller, the callee, and each of the at least one additional call participant, in response to receiving the request to add the at least one additional call participant to the call.
  • Figs. 5A-5D represent a system flow diagram illustrating a method for enabling or implementing video or voice calling and conferencing addressing, in accordance with various embodiments. While the techniques and procedures are depicted and/or described in a certain order for purposes of illustration, it should be appreciated that certain procedures may be reordered and/or omitted within the scope of various embodiments. Moreover, while the method illustrated by Fig. 5 can be implemented by (and, in some cases, are described below with respect to) the systems 100, 700, and/or 800 of Figs. 1, 7, and/or 8, respectively (or components thereof), such methods may also be implemented using any suitable hardware implementation.
  • each of the system 100 (and/or components thereof) of Fig. 1, the system 700 (and/or components thereof) of Fig. 7, and/or the system 800 (and/or components thereof) of Fig. 8 can operate according to the method illustrated by Fig. 5 (e.g., by executing instructions embodied on a computer readable medium), the system 100 can also operate according to other modes of operation and/or perform other suitable procedures.
  • method 500 might be implemented complementary to method 200 of Fig. 2, method 300 of Fig. 3, and/or method 400 of Fig. 4, while in other embodiments, method 500 may be implemented independently, separately, or otherwise without implementing method 200, method 300, and/or method 400.
  • Fig. 5A is directed to an embodiment in which a call is established between a caller and a callee, based at least in part on a URL associated with the callee (or with a device associated with the callee), and in which an additional caller calls the callee.
  • Fig. 5B is directed to an embodiment in which the callee chooses to ignore the call from the additional caller and the processes that may follow.
  • FIG. 5C is directed to an embodiment in which the callee chooses to merge the first call (with the caller) with the second or incoming call (with the additional caller) and the processes that may follow.
  • Figure 5D is directed to an embodiment in which the callee chooses to switch the call from the first call (with the caller) to the second or incoming call (with the additional caller) and the processes that follow.
  • method 500 might begin at block 502 with a caller (at a first device associated with the caller, including, but not limited to, one of a smartphone, a laptop computer, a desktop computer, a tablet computer, a video calling device, and/or the like) sending a call request, which might include a callee address (e.g., a URL associated with the callee or a URL associated with a device(s) associated with the callee).
  • a remote computer system(s) e.g., control server 110 or web server 125 shown in Fig.
  • Method 500 might further comprise the remote computer system(s) establishing a call between the caller and the callee based at least in part on the URL (block 508), the call being established (block 510a and 510b) between the caller and the callee (at a second device associated with the callee, including, but not limited to, one of a smartphone, a laptop computer, a desktop computer, a tablet computer, a video calling device, and/or the like).
  • an additional caller (at a third device associated with the additional caller, including, but not limited to, one of a smartphone, a laptop computer, a desktop computer, a tablet computer, a video calling device, and/or the like) might send a request to call the callee, which request is received by the remote computer system(s) (block 514).
  • the remote computer system(s) might, at block 516, send a call notification to the callee, which might be received, at block 518, by the callee.
  • Based on choices by the callee as to how to handle the incoming call from the additional caller including, but not limited to, ignoring the call (following marker "A" to Fig. 5B), merging the calls (following marker "B” to Fig. 5C), and/or switching the calls (following marker "C” to Fig. 5D), or the like), different sets of processes may be implemented.
  • the callee might, at block 520, ignore the incoming call from the additional caller, by pressing a button or clicking/following a link on a user interface running on the second device associated with the callee.
  • the remote computer system(s) Upon receiving an indication that the callee is ignoring the call from the additional caller (block 522), the remote computer system(s) might end the call by the additional caller (block 524), which might result in the call being ended (block 526) at the third device associated with the additional caller.
  • the remote computer system(s) might resume the first call between the caller and the callee, with the call being resumed (at blocks 530a and 530b) at the first device (associated with caller) and the second device (associated with the callee).
  • the first call between the caller and the callee continues without interruption in connection (except for the call notification to the callee about the incoming call from the additional callee and the instructions from the callee to ignore the call), and, in some cases, without the caller being aware of the exchange (unless told by the callee).
  • the callee might end the first call with the caller.
  • the remote computer system(s) Upon receiving a notification that the call has ended (block 534), the remote computer system(s) might end the call with the caller (block 536), which might result in the call being ended (block 538) at the first device associated with the caller.
  • the callee might, at block 540, merge the first call with the second or incoming call from the additional caller, by pressing a button or clicking/following a link on a user interface running on the second device associated with the callee.
  • the remote computer system(s) Upon receiving an indication that the first and second calls are to be merged (block 542), the remote computer system(s) might establish a multi-party call (block 544), which connects the caller (block 546a), the callee (block 546b), and the additional caller (block 546c).
  • the transition from the two-party call to the multi-party call might be seamless.
  • the transition might include seamlessly transferring the call to a conferencing server for multiple callers; the conferencing server might be configured to perform aggregation and transcoding functions (as described above).
  • the caller during the multi-party call, might decide to end the call (block 548).
  • the remote computer system(s) Upon receiving a notification that the call with the caller has ended (block 550), the remote computer system(s) might resume the remaining call (block 552), with the call between the callee (block 554a) and the additional caller (block 554b) being resumed (in some cases, without interruption).
  • the transition from the multi-party call to the two-party call might be seamless.
  • the transition might include seamlessly transferring the call from the conferencing server for multiple callers.
  • the additional caller might end the call with the callee.
  • the remote computer system(s) Upon receiving a notification that the call has ended (block 558), the remote computer system(s) might end the call between the callee and the additional caller (block 560), which might result in the call being ended (block 562) at the second device associated with the callee.
  • the callee might, at block 564, switch from the first call (with the caller) to the incoming call from the additional caller, by pressing a button or clicking/following a link on a user interface running on the second device associated with the callee.
  • the remote computer system(s) Upon receiving a notification that the callee is switching to the incoming call (block 566), the remote computer system(s) might put the caller on hold (block 568), which might result in the first call (at the first device) being put on hold (block 570).
  • the remote computer system(s) might establish a second call between the callee and the additional caller, which might result in the second call being established between the second device associated with the callee (block 574a) and the third device associated with the additional caller (block 574b).
  • the callee might end the call with the additional caller.
  • the remote computer system(s) Upon receiving a notification that the call with the additional caller has ended (block 578), the remote computer system(s) might automatically end the second call with the additional caller and resume the first call with the caller (block 580), which might result in the second call being ended (block 582) at the third device associated with the additional caller, and the first call being resumed between the first device (block 584a) and the second device (block 584b).
  • the caller might end the first call with the callee.
  • the remote computer system(s) Upon receiving a notification that the call has ended (block 588), the remote computer system(s) might end the call with the callee (block 590), which might result in the call being ended (block 592) at the second device associated with the callee.
  • method 500 is directed to an additional caller calling the callee, the various embodiments are not so limited, and similar processes may apply to the additional caller calling the caller.
  • the embodiments of Fig. 5 depict an additional caller calling one of the parties in a two-party call, the various embodiments are not so limited, and similar processes may apply to the additional caller calling one or more parties in an existing multi-party call.
  • the embodiments each show a particular one of two or more parties ending the call (e.g., at blocks 532, 548, 556, 576, and 586), for simplicity of illustration, various embodiments are not so limited, and similar processes may apply to any of the parties ending the call.
  • Figs. 6A-6C are illustrations of user devices 600 used by users that present exemplary graphical user interfaces for enabling or implementing video or voice calling and conferencing addressing, in accordance with various embodiments.
  • Fig. 6A is an illustration of a user device 600 used by users that presents an exemplary graphical user interface for presenting options for calling, options for device specific options related to calls, and options for account settings associated with a calling service, a calling app, a web browser for calling, and/or the like.
  • Fig. 6B is an illustration of a user device used by users that presents an exemplary graphical user interface during a video call (or a voice call) with another person.
  • Fig. 6C is an illustration of another user device used by users that presents another exemplary graphical user interface during a video call (or a voice call) with another person, with the system being capable of establishing multiparty calls.
  • each user device 600 is shown as a smart phone or a monitor/television with a camera (whether internal or external), the various embodiments are not so limited, and user devices 600 might be any suitable user device comprising, without limitation, a high definition television ("HDTV”), an Internet Protocol television (“IPTV”), a cable TV, a desktop computer, a laptop computer, a tablet computer, a mobile phone, a smart phone, a portable gaming device, other suitable user devices, or any combination of these user devices.
  • HDTV high definition television
  • IPTV Internet Protocol television
  • User device 600 (which is associated with and/or used by a first user) might comprise device housing 605, a display screen 605a, and the like.
  • display screen 605a might comprise a touchscreen display, a non- touchscreen display, and/or the like.
  • a panel 610 of a graphical user interface might present options 610a (in the form of buttons, links, icons, and/or the like) including, without limitation, a menu option, a back option, a home option, a call option, a search option, and/or the like.
  • Options 610a might be default options for the device 600, or might be options that are at least customizable by the first user. Other such options (or device functionalities, widgets, or apps) may be included by the first user in panel 610, as desired.
  • Panel 615 might present a logo for a calling service, a calling app, a calling GUI, and/or the like.
  • a status notification (including, "call with” someone, as shown in Fig. 6B) may also be displayed in panel 615, or in other portions of display screen 605a.
  • a panel 620 might represent a first user's accounts page, which might be part of a calling service, a calling app, a calling GUI, and/or the like.
  • the first user's accounts page might include options 625, which might comprise, but are not limited to, options pertaining to the first user's devices, options for accessing call settings, options for modifying account settings (including master account settings, user profile settings, user preferences, message preferences, and/or the like), and/or an option to logout of the first user's account page, or the like.
  • the message preferences might include, without limitation, options for accessing messages, which might include, but are not limited to, any one or combination of voicemail messages, videomail messages, e-mail messages, chat messages, text messages, and/or the like.
  • the options for accessing messages might include, but are not limited to, options to view/hear/read one or more messages, options to mark one or more messages as being already viewed/heard/read, options to mark one or more messages as being not yet viewed/heard/read, options to save one or more messages, options to respond to one or more messages, options to forward one or more messages, options to delete one or more videomail messages, and/or the like.
  • the message preferences might further include, without limitation, preferences for notifying the first user of any new or not yet viewed/heard/read messages; preferences related to prompting callers to leave one or more of voicemail messages, videomail messages, e-mail messages, chat messages, text messages, and/or the like; preferences for recording message prompts;
  • a message or notification might be sent from a service provider (in this non-limiting example, a videomail service provider) to the first user indicating that the first user associated with the user device 600 has received a new videomail message(s) from a caller.
  • the notification might provide the first user with links to access the videomail message(s) and/or to access the first user' s account information (including, without limitation, master account information, user profiles, user preferences related to videomail, videomail messages, and/or the like).
  • the links might include one or more universal resource locators ("URLs") addressing the videomail message(s), which in some cases have been post-processed (after recording) to be compatible with most (if not all) formats, play-back devices, resolutions, and/or the like.
  • URLs universal resource locators
  • a notification might provide links or buttons to access the messages, and each message might be appropriately post-processed to be compatible with most (if not all) formats, play-back devices, resolutions, and/or the like.
  • panel 615 might indicate a status including that the call has been established with the second user and is still on-going.
  • Panel 635 might include windows or fields 640 and 645 that might each include video image (or still image in the case of a voice call) of the second user and the first user associated with the device 600, respectively. In some cases, video calls might occur without field 645 depicting a video of the first user of the device 600.
  • one of fields 640 or 645 might display a video image (e.g., a live video image), while the other of fields 640 or 645 might display a still (or default) image of a generic call participant, indicating that one of the call participants (i.e., the one with the still or default image) does not wish to transmit a video of himself or herself during the call; in such a case, the call that is established between the first and second users is a hybrid video/voice call.
  • a video image e.g., a live video image
  • the other of fields 640 or 645 might display a still (or default) image of a generic call participant, indicating that one of the call participants (i.e., the one with the still or default image) does not wish to transmit a video of himself or herself during the call; in such a case, the call that is established between the first and second users is a hybrid video/voice call.
  • panel 650 might be displayed that presents options 655 (in the form of buttons, links, icons, and/or the like) including, without limitation, options for adding call participants, options for merging new callers (should they call the first user of the device 600), options for sharing the screen (or portions of the screen) of device 600, options for sharing files (including, but not limited, to photographs, images, videos, music, non-music audio files, documents, voicemail messages, videomail messages, e-mail messages, chat messages, text messages, apps, files containing communications protocols and data (for facilitating communications connections), and/or the like), options for giving control of camera 630 to one or more call participants, options for requesting control of a camera of a device associated with one or more call participants, options for recording the call, options for ending the call(s) (either ending selected calls or ending all calls), and/or the like.
  • options 655 in the form of buttons, links, icons, and/or the like
  • Fig. 6C an embodiment is shown that depicts a user device 600 (which in the non-limiting example of Fig. 6C is one of a HDTV, an IPTV, a cable TV, a monitor of a desktop computer, an external monitor for a laptop computer or for a tablet computer, and/or the like) that is associated with and/or used by a first user, and user interfaces for video communication.
  • user device 600 might comprise device housing 605, a display screen 605a, and the like.
  • display screen 605a might comprise a touchscreen display, a non-touchscreen display, and/or the like.
  • Fig. 6C like in Figs.
  • panel 615 might present a logo for a calling service, a calling app, a calling GUI, and/or the like. Other information, such as a status notification, including a welcome message, may also be displayed in panel 615. In some embodiments, buttons, links, or icons for calling service account preferences, account/device settings, log-in or logout options, and/or the like may also be displayed in panel 615, or in other portions of display screen 605a.
  • Image capture device 630 in some cases, might be any suitable camera or other image capture device - either internal to, external to, or removably insertable (e.g., in a modular manner) in user device 600 - that is capable of capturing images, video segments, audio segments, and/or any combination thereof.
  • panel 635 (which might be a GUI of a browser, an app, a calling service, and/or the like) might include window(s) or field(s) 640 corresponding to communications with a second user (who may be the caller or the callee). Panel 635 might also include window(s) or field(s) 645 corresponding to communications options available to the first user (who may be the caller or the callee) who is associated with or using user device 600 in his or her communication with the second user.
  • window(s) or field(s) 640 might include, without limitation, a status message or status notification (such as, "Incoming call from “; "Incoming message from “; “New message(s) from “; or, as in this example, "Call with Nadeem!; and/or the like), a sub-window, sub-field, or sub-panel 640a, and/or the like.
  • sub-window, sub-field, or sub-panel 640a might include display of a live video feed or a still image of the second user, or might include display of a default icon or image of a generic call participant.
  • window(s) or field(s) 640 might include one or more buttons, links, and/or icons 655a, which might include, without limitation, options to put the call on hold, options to record the call, options to share at least a portion of screen 605a, options to share files, options to give the second user control over camera 630, options to request control of a camera(s) of a device associated with the second user (in some cases, the camera(s) used for capturing the image(s) or video displayed in sub-panel 640a), other options, options to end the call with (only) the second user, and/or the like.
  • buttons, links, and/or icons 655a might include, without limitation, options to put the call on hold, options to record the call, options to share at least a portion of screen 605a, options to share files, options to give the second user control over camera 630, options to request control of a camera(s) of a device associated with the second user (in some cases, the camera(s) used for capturing the image(s
  • the button, link, text, and/or icon for requesting camera control might be made unavailable, invisible, grayed out, and/or the like.
  • sub-window, sub-field, or sub-panel 660 might be displayed that provides the first user with camera control over the camera of the device associated with and/or used by the second user.
  • sub-window, sub-field, or sub-panel 660 might provide camera controls, including, but not limited to, pan ("P") controls, tilt ("T”) controls, zoom ("Z”) controls, and/or the like.
  • the camera controls might further include, without limitation, autofocus ("AF") controls, centering ("C")/home/position reset controls, iris controls, manual focus controls, still image capture controls, multi-shot still image capture controls, and/or the like.
  • AF autofocus
  • C centering
  • iris controls manual focus controls
  • still image capture controls multi-shot still image capture controls, and/or the like.
  • the pan and tilt (“PT") controls might be embodied as separate buttons (not shown), in which the top arrow might control a forward tilt, the down arrow might control a backward tilt, the left arrow might control a leftward pan, the right arrow might control a rightward pan, and arrows between these arrows might control a combination of pan and tilt.
  • the PT controls are embodied as a ring control or dial control (e.g., as shown in Fig. 6C)
  • clicking, depressing, dragging, or otherwise manipulating a cursor or other indicator over portions of the ring or dial causes varying combinations of pan and tilt, that in some cases provides for smoother tracking of objects or persons within the field of view of the camera.
  • Fig. 6C shows, for example, sub-window, sub-field, or sub- panel 665 that provides for chat communication functionality with the second user.
  • window(s) or field(s) 645 might provide the first user with various controls or options during communication with other users.
  • Such various controls or options might include, without limitation, options 670 for controlling volume (including, increasing volume, decreasing volume, manipulating volume slider control, muting/unmuting, and/or the like), sub-panel 645 a (optional) for displaying an image or video of the first user (using image capture device 630), options 675 for controlling image capture device 630 (in a similar manner as the camera controls described above with respect to sub-window, sub-field, or sub-panel 660), options 680 for initiating a call with the second user or an additional call participant, call options 655b, sub-window, sub-field, or sub-panel 665 that provides for communication functionality (including, without limitation, text communication, chat communication, e-mail communication, and/or the like) with a group of call participants, more call options 655c, and/or the like.
  • options 670 for controlling volume including, increasing volume, decreasing volume, manipulating
  • the options for controlling image capture device 630 might include controls for control internal mechanisms for controlling pan, tilt, zoom, iris, focus, centering, and/or the like of a camera within device 630, and/or controls for controlling external mechanisms for at least adjusting the pan and tilt of the exterior/entire body (or a mount) of device 630.
  • other modes of communication including, without limitation, text communication, chat communication, e-mail communication, and/or the like may be made available to provide group
  • Fig. 6C shows, for example, sub-window, sub-field, or sub-panel 685 that provides for group chat communication functionality with two or more other users. Because the call with the third user has not yet been established, the only user in communication with the first user is the second user, thus only the sub-window, sub-field, or sub-panel 665 (associated with another mode of communication with the second user) is shown to be active, while the group chat field 685 is shown as being grayed out; once the call is connected with at least one more user (e.g., third user or incoming caller), the sub- window, sub-field, or sub-panel 685 will be displayed normally (similar to sub- window, sub-field, or sub-panel 665) (i.e., will be indicated as being active).
  • the sub-window, sub-field, or sub-panel 685 that provides for group chat communication functionality with two or more other users. Because the call with the third user has not yet been established, the only user in communication with the first user is the second user, thus only
  • the group chat functionality may be provided to allow the first user to communicate with two or more (but not necessarily all) other call participants through a group chat functionality; in such a case, the group chat function might display a selection list (not shown, but perhaps with radio boxes, check boxes, and/or the like) for the first user to select which of the other call participants (i.e., two, less than all, or all other call participants) to whom the first user would like to send a message.
  • options 680 might include links to calling addresses of potential call participants (such as from the first user's contacts list, a public directory, a company directory, and/or the like), that when clicked, followed, or entered might initiate a call with the selected individual(s).
  • potential call participants such as from the first user's contacts list, a public directory, a company directory, and/or the like
  • selection check boxes or the like adjacent to each potential call participant might be provided, thus allowing the first user to select which potential call participants to call (or add to an existing call), in which case, clicking, depressing, or following a button, link, or icon to "add call participants" (as shown among options 655b in Fig. 6C, for example) might initiate the call or merge the calls.
  • a URL associated with a callee or with a device of a callee might be entered within a URL input field of a browser (e.g., web browser, etc.), or the like.
  • the calling addresses might include, without limitation, URLs, JIDs, and/or telephone numbers associated with each of the potential call participants and/or associated with one or more devices associated with each of the potential call participants. Examples of URLs and JIDs are provided above with respect to Fig. 2.
  • Options 655b and options 655c might include, but are not limited to, options to add or call particular call participants, options to access a contacts list, other options, message options, options to simultaneously end all active calls, and/or the like.
  • other options might include options to list active call participants, to end specific calls with selected one(s) of the active call participants (and not others), to send sub-group messages (e.g., e-mail, chat, and/or text) to selected one(s) of the active call participants (and not others), to share at least a portion of display screen 605a with selected one(s) of the active call participants (and not others), to share one or more files with selected one(s) of the active call participants (and not others), to give camera control to selected one(s) of the active call participants (and not others), and/or the like.
  • sub-group messages e.g., e-mail, chat, and/or text
  • the first user might receive an incoming call request from a third user, which might result in a notification field or a window(s) or field(s) 690 being displayed.
  • window(s) or field(s) 690 might include a status message indicating "Incoming Call from ! (e.g., "Incoming Call from Chad! in the example of Fig. 6C), which might include an alert icon (such as shown in top-right region of window(s) or field(s) 690).
  • window(s) or field(s) 690 might include sub-window, sub-field, or sub- panel 690a, sub-window, sub-field, or sub-panel 695, and/or both.
  • Sub- window, sub- field, or sub-panel 690a might, when the call with the third user is accepted and established, display a live video feed or a still image of the second user, or might display a default icon or image of a generic incoming caller.
  • the sub-window, sub-field, or sub-panel 690a is shown as being grayed out; once the call is connected with the third user, the sub- window, sub-field, or sub-panel 690a will be displayed normally (similar to sub- window, sub-field, or sub-panel 640a) (i.e., will be indicated as being active).
  • window(s) or field(s) 690 might include one or more buttons, links, and/or icons 655d, which might include, without limitation, options to put the call on hold, options to send a message to the incoming caller, options to switch from the current call with the second user to the incoming call from the third user, options to let the third user join the current call with the second user (i.e., to merge the calls), other options, options to end the call with (only) the third user (before it is connected), and/or the like.
  • buttons, links, and/or icons 655d might include, without limitation, options to put the call on hold, options to send a message to the incoming caller, options to switch from the current call with the second user to the incoming call from the third user, options to let the third user join the current call with the second user (i.e., to merge the calls), other options, options to end the call with (only) the third user (before it is connected), and/or the like.
  • Fig. 6C shows, for example, sub-window, sub-field, or sub- panel 695 that provides for chat communication functionality with the third user.
  • the chat field 695 is shown as being grayed out (similar to the image of the third user being grayed out in sub-window, sub-field, or sub-panel 690a); once the call is connected with the third user, the sub-window, sub-field, or sub-panel 695 will be displayed normally (similar to sub- window, sub-field, or sub-panel 665) (i.e., will be indicated as being active).
  • Fig. 6 is directed to embodiments featuring video calling, the various embodiments are not so limited, and any type of communication (including, but not limited to, voice communication, e-mail communication, text communication, chat communication, video communication, and/or any combination of these communications) may be implemented using the system(s) and method(s) described herein, and using the user interfaces (or similar user interfaces) shown and described with respect to Fig. 6.
  • any type of communication including, but not limited to, voice communication, e-mail communication, text communication, chat communication, video communication, and/or any combination of these communications
  • Fig. 7 provides a schematic illustration of one embodiment of a computer system 700 that can perform the methods provided by various other embodiments, as described herein, and/or can function as a video calling device, a PDD, a user device, a control server, a web server, and/or the like. It should be noted that Fig. 7 is meant only to provide a generalized illustration of various components, of which one or more (or none) of each may be utilized as appropriate. Fig. 7, therefore, broadly illustrates how individual system elements may be implemented in a relatively separated or relatively more integrated manner.
  • the computer system 700 is shown comprising hardware elements that can be electrically coupled via a bus 705 (or may otherwise be in communication, as appropriate).
  • the hardware elements may include one or more processors 710, including, without limitation, one or more general-purpose processors and/or one or more special-purpose processors (such as digital signal processing chips, graphics acceleration processors, and/or the like); one or more input devices 715, which can include, without limitation, a mouse, a keyboard, and/or the like; and one or more output devices 720, which can include, without limitation, a display device, a printer, and/or the like.
  • processors 710 including, without limitation, one or more general-purpose processors and/or one or more special-purpose processors (such as digital signal processing chips, graphics acceleration processors, and/or the like)
  • input devices 715 which can include, without limitation, a mouse, a keyboard, and/or the like
  • output devices 720 which can include, without limitation, a display device, a printer, and/or the like.
  • the computer system 700 may further include (and/or be in
  • storage devices 725 can comprise, without limitation, local and/or network accessible storage, and/or can include, without limitation, a disk drive, a drive array, an optical storage device, solid-state storage device such as a random access memory (“RAM”) and/or a read-only memory (“ROM”), which can be programmable, flash-updateable, and/or the like.
  • RAM random access memory
  • ROM read-only memory
  • Such storage devices may be configured to implement any appropriate data stores, including, without limitation, various file systems, database structures, and/or the like.
  • the computer system 700 might also include a communications subsystem 730, which can include, without limitation, a modem, a network card (wireless or wired), an infra-red communication device, a wireless communication device and/or chipset (such as a BluetoothTM device, an 802.11 device, a WiFi device, a WiMax device, a WW AN device, cellular communication facilities, etc.), and/or the like.
  • the communications subsystem 730 may permit data to be exchanged with a network (such as the network described below, to name one example), with other computer systems, and/or with any other devices described herein.
  • the computer system 700 will further comprise a working memory 735, which can include a RAM or ROM device, as described above.
  • the computer system 700 also may comprise software elements, shown as being currently located within the working memory 735, including an operating system 740, device drivers, executable libraries, and/or other code, such as one or more application programs 745, which may comprise computer programs provided by various embodiments, and/or may be designed to implement methods, and/or configure systems, provided by other embodiments, as described herein.
  • an operating system 740 operating system 740
  • device drivers executable libraries
  • application programs 745 which may comprise computer programs provided by various embodiments, and/or may be designed to implement methods, and/or configure systems, provided by other embodiments, as described herein.
  • code and/or instructions can be used to configure and/or adapt a general purpose computer (or other device) to perform one or more operations in accordance with the described methods.
  • a set of these instructions and/or code might be encoded and/or stored on a non-transitory computer readable storage medium, such as the storage device(s) 725 described above.
  • the storage medium might be incorporated within a computer system, such as the system 700.
  • the storage medium might be separate from a computer system (i.e., a removable medium, such as a compact disc, etc.), and/or provided in an installation package, such that the storage medium can be used to program, configure, and/or adapt a general purpose computer with the instructions/code stored thereon.
  • These instructions might take the form of executable code, which is executable by the computer system 700 and/or might take the form of source and/or installable code, which, upon compilation and/or installation on the computer system 700 (e.g., using any of a variety of generally available compilers, installation programs, compression/decompression utilities, etc.) then takes the form of executable code.
  • some embodiments may employ a computer system (such as the computer system 700) to perform methods in accordance with various embodiments of the invention. According to a set of embodiments, some or all of the procedures of such methods are performed by the computer system 700 in response to processor 710 executing one or more sequences of one or more instructions (which might be incorporated into the operating system 740 and/or other code, such as an application program 745) contained in the working memory 735. Such instructions may be read into the working memory 735 from another computer readable medium, such as one or more of the storage device(s) 725. Merely by way of example, execution of the sequences of instructions contained in the working memory 735 might cause the processor(s) 710 to perform one or more procedures of the methods described herein.
  • a computer system such as the computer system 700
  • system 700 might further comprise one or more sensors 750, which might include, without limitation, one or more cameras, one or more IR sensors, and/or one or more 3D sensors, or the like.
  • the one or more sensors 750 might be incorporated in (or might otherwise be one of) the input device(s) 715.
  • the output device(s) 720 might, in some embodiments, further include one or more monitors, one or more TVs, and/or one or more display screens, or the like.
  • machine readable medium and “computer readable medium,” as used herein, refer to any medium that participates in providing data that causes a machine to operate in a specific fashion.
  • various computer readable media might be involved in providing instructions/code to processor(s) 710 for execution and/or might be used to store and/or carry such instructions/code (e.g., as signals).
  • processor(s) 710 for execution and/or might be used to store and/or carry such instructions/code (e.g., as signals).
  • a computer readable medium is a non-transitory, physical, and/or tangible storage medium. Such a medium may take many forms, including, but not limited to, non- volatile media, volatile media, and transmission media.
  • Non-volatile media includes, for example, optical and/or magnetic disks, such as the storage device(s) 725.
  • Volatile media includes, without limitation, dynamic memory, such as the working memory 735.
  • Transmission media includes, without limitation, coaxial cables, copper wire and fiber optics, including the wires that comprise the bus 705, as well as the various components of the communication subsystem 730 (and/or the media by which the communications subsystem 730 provides communication with other devices).
  • transmission media can also take the form of waves
  • radio including, without limitation, radio, acoustic, and/or light waves, such as those generated during radio-wave and infra-red data communications).
  • Common forms of physical and/or tangible computer readable media include, for example, a floppy disk, a flexible disk, a hard disk, magnetic tape, or any other magnetic medium, a CD-ROM, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, a RAM, a PROM, an EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave as described hereinafter, or any other medium from which a computer can read instructions and/or code.
  • Various forms of computer readable media may be involved in carrying one or more sequences of one or more instructions to the processor(s) 710 for execution.
  • the instructions may initially be carried on a magnetic disk and/or optical disc of a remote computer.
  • a remote computer might load the instructions into its dynamic memory and send the instructions as signals over a transmission medium to be received and/or executed by the computer system 700.
  • These signals which might be in the form of electromagnetic signals, acoustic signals, optical signals, and/or the like, are all examples of carrier waves on which instructions can be encoded, in accordance with various embodiments of the invention.
  • the communications subsystem 730 (and/or components thereof) generally will receive the signals, and the bus 705 then might carry the signals (and/or the data, instructions, etc. carried by the signals) to the working memory 735, from which the processor(s) 705 retrieves and executes the instructions.
  • the instructions received by the working memory 735 may optionally be stored on a storage device 725 either before or after execution by the processor(s) 710.
  • a set of embodiments comprises systems enabling or implementing video calling and conferencing addressing.
  • Fig. 8 illustrates a schematic diagram of a system 800 that can be used in accordance with one set of embodiments.
  • the system 800 can include one or more user computers 805.
  • a user computer 805 can be a video calling device, a PDD, and/or a user device, as described above.
  • a user computer 805 can be a general purpose personal computer (including, merely by way of example, desktop computers, workstations, tablet computers, laptop computers, handheld computers, mobile phones, smart phones, and the like), running any appropriate operating system, several of which are available from vendors such as Apple, Microsoft Corp., as well a variety of commercially-available UNIXTM or UNIX-like operating systems.
  • a user computer 805 can also have any of a variety of applications, including one or more applications configured to perform methods provided by various embodiments (as described above, for example), as well as one or more office applications, database client and/or server applications, and/or web browser applications.
  • a user computer 805 can be any other electronic device, such as a thin-client computer, Internet-enabled mobile telephone, and/or personal digital assistant, capable of communicating via a network (e.g. , the network 810 described below) and/or of displaying and navigating web pages or other types of electronic documents.
  • a network e.g. , the network 810 described below
  • exemplary system 800 is shown with two user computers 805, any number of user computers can be supported.
  • Certain embodiments operate in a networked environment, which can include a network 810.
  • the network 810 can be any type of network familiar to those skilled in the art that can support data communications using any of a variety of commercially- available (and/or free or proprietary) protocols, including, without limitation, TCP/IP, SNATM, IPXTM, AppleTalkTM, and the like.
  • the network 810 can include a local area network ("LAN”), including, without limitation, a fiber network, an Ethernet network, a Token-RingTM network and/or the like; a wide-area network; a wireless wide area network ("WW AN”); a virtual network, such as a virtual private network (“VPN”); the Internet; an intranet; an extranet; a public switched telephone network (“PSTN”); an infra-red network; a wireless network, including without limitation a network operating under any of the IEEE 802.11 suite of protocols, the BluetoothTM protocol known in the art, and/or any other wireless protocol; and/or any combination of these and/or other networks.
  • LAN local area network
  • WW AN wireless wide area network
  • VPN virtual private network
  • PSTN public switched telephone network
  • PSTN public switched telephone network
  • a wireless network including without limitation a network operating under any of the IEEE 802.11 suite of protocols, the BluetoothTM protocol known in the art, and/or any other wireless protocol; and/or any combination of these
  • Embodiments can also include one or more server computers 815.
  • Each of the server computers 815 may be configured with an operating system, including, without limitation, any of those discussed above with respect to the user computers 805, as well as any commercially (or freely) available server operating systems.
  • Each of the servers 815 may also be running one or more applications, which can be configured to provide services to one or more clients 805 and/or other servers 815.
  • one of the servers 815 might be a control server, with the functionality described above.
  • one of the servers might be a web server, which can be used, merely by way of example, to provide communication between a user computer 805 and a control server, for example, to process requests for web pages or other electronic documents from user computers 805 and/or to provide user input to the control server.
  • the web server can also run a variety of server applications, including HTTP servers, FTP servers, CGI servers, database servers, Java servers, and/or the like.
  • the web server may be configured to serve web pages that can be operated within a web browser on one or more of the user computers 805 to perform operations in accordance with methods provided by various embodiments.
  • the server computers 815 might include one or more application servers, which can be configured with one or more applications accessible by a client running on one or more of the client computers 805 and/or other servers 815.
  • the server(s) 815 can be one or more general purpose computers capable of executing programs or scripts in response to the user computers 805 and/or other servers 815, including, without limitation, web applications (which might, in some cases, be configured to perform methods provided by various embodiments).
  • a web application can be implemented as one or more scripts or programs written in any suitable programming language, such as JavaTM, C, C#TM or C++, and/or any scripting language, such as Perl, Python, or TCL, as well as combinations of any programming and/or scripting languages.
  • the application server(s) can also include database servers, including, without limitation, those commercially available from OracleTM, MicrosoftTM, SybaseTM, IBMTM, and the like, which can process requests from clients (including, depending on the configuration, dedicated database clients, API clients, web browsers, etc.) running on a user computer 805 and/or another server 815.
  • an application server can create web pages dynamically for displaying the information in accordance with various embodiments, such as providing a user interface for a control server, as described above.
  • Data provided by an application server may be formatted as one or more web pages (comprising HTML, JavaScript, etc., for example) and/or may be forwarded to a user computer 805 via a web server (as described above, for example).
  • a web server might receive web page requests and/or input data from a user computer 805 and/or forward the web page requests and/or input data to an application server.
  • a web server may be integrated with an application server.
  • one or more servers 815 can function as a file server and/or can include one or more of the files (e.g., application code, data files, etc.) necessary to implement various disclosed methods, incorporated by an application running on a user computer 805 and/or another server 815.
  • a file server can include all necessary files, allowing such an application to be invoked remotely by a user computer 805 and/or server 815.
  • servers 815 can be implemented by one or more containers or virtual machines operating in a cloud environment and/or a distributed, cloud-like environment based on shared resources of a plurality of user devices, a plurality of user video calling devices, and/or a plurality of PDDs.
  • the system can include one or more data stores 820.
  • the nature and location of the data stores 820 is discretionary: merely by way of example, one data store 820 might comprise a database 820a that stores information about master accounts, user profiles, user preferences, assigned video calling devices, etc.
  • a data store 820b might be a cloud storage environment for storing master accounts, user profiles, user preferences, uploaded videomail messages, and/or the like.
  • At least one of the data stores 820 might store user addresses including, but not limited to, URL associated with one or more users, URL associated with at least one device associated with one or more users, SIP address association with one or more users, XMPP address (or Jabber ID or JID) associated with one or more users, telephone number associated with one or more users, and/or the like.
  • at least one of the data stores 820 might store recorded voice calls or recorded video calls.
  • the database 820a and the cloud storage environment 820b might be collocated and/or separate from one another. Some or all of the data stores 820 might reside on a storage medium local to (and/or resident in) a server 815a. Conversely, any of the data stores 820 (and especially the cloud storage environment 820b) might be remote from any or all of the computers 805, 815, so long as it can be in communication (e.g. , via the network 810) with one or more of these.
  • a database 820a can reside in a storage-area network ("SAN") familiar to those skilled in the art, and/or the cloud storage environment 820b might comprise one or more SANs.
  • SAN storage-area network
  • the database 820a can be a relational database, such as an Oracle database, that is adapted to store, update, and retrieve data in response to SQL- formatted commands.
  • the database might be controlled and/or maintained by a database server, as described above, for example.
  • the system can also include a first video calling device 825 and a second video calling device 830.
  • the first video calling device 825 in the context of the examples described herein might correspond to the device associated with the user or caller, while the second video calling device 830 might correspond to the device associated with the callee.
  • the system might further include a third video calling device 835 from which one or more additional call participants can call one of the caller or callee, can be added as an additional party(ies) to the call (turning the call into a multi-party call), or can be called by one of the caller or callee without being included in a multi-party call with both the caller and the callee.
  • a third video calling device 835 from which one or more additional call participants can call one of the caller or callee, can be added as an additional party(ies) to the call (turning the call into a multi-party call), or can be called by one of the caller or callee without being included in a multi-party call with both the call
  • the first video calling device 825 or the second video calling device 830 can determine whether or not to accept/ignore a call by the additional call participant using the third video calling device 835, to switch from a first call between the caller and the callee to a second call with the call participant, to merge the first call and the second call, and/or the like.
  • Each of the first video calling device 825, the second video calling device 830, and/or the third video calling device 835 may be (or may have similar functionality as) a user device 105, a video calling device 105 or a PDD 105, as described in detail above; in some cases, each of the first video calling device 825, the second video calling device 830, and the third video calling device 835 might be (or may have similar functionality as) a VCD as described in the '182 Patent.
  • the various embodiments are directed specifically to video calls and video calling devices, the embodiments are not so limited and any type of communication device may be used in accordance with techniques described herein, including, but not limited to, voice communication devices, e-mail communication devices, text communication devices, multimedia communication devices, and/or the like.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Telephonic Communication Services (AREA)

Abstract

La présente invention concerne de nouveaux outils et techniques destinés à mettre en œuvre l'adressage d'appel vidéo et de visioconférence. Un ordinateur pourrait recevoir une demande d'appel d'une personne appelant. La demande d'appel pourrait comprendre une adresse de la personne appelée dans un premier protocole. Dans certains cas, l'adresse de la personne appelée pourrait inclure un localisateur de ressources uniforme (« URL ») associé à la personne appelée et le premier protocole pourrait être le protocole de transfert hypertexte (« HTTP »). L'ordinateur pourrait déterminer une personne appelée à une destination d'appel en fonction, au moins en partie, de l'URL associée à la personne appelée ou à ou aux appareils de la personne appelée et pourrait établir un appel vocal ou vidéo entre la personne appelant et la personne appelée, en fonction, au moins en partie, de l'URL associé à la personne appelée (ou à ou aux appareils de la personne appelée). Dans certains cas, l'ordinateur pourrait mettre en correspondance l'adresse de la personne appelée dans un second protocole (par exemple, le protocole SIP, XMPP, PSTN etc.) différent du premier protocole et pourrait appeler la personne appelée à l'aide du second protocole.
PCT/US2014/048158 2013-07-25 2014-07-25 Adressage d'appels vidéo et de visioconférence WO2015013592A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201361858518P 2013-07-25 2013-07-25
US61/858,518 2013-07-25

Publications (1)

Publication Number Publication Date
WO2015013592A1 true WO2015013592A1 (fr) 2015-01-29

Family

ID=52393863

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2014/048158 WO2015013592A1 (fr) 2013-07-25 2014-07-25 Adressage d'appels vidéo et de visioconférence

Country Status (1)

Country Link
WO (1) WO2015013592A1 (fr)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9253520B2 (en) 2012-12-14 2016-02-02 Biscotti Inc. Video capture, processing and distribution system
US9300910B2 (en) 2012-12-14 2016-03-29 Biscotti Inc. Video mail capture, processing and distribution
US9485459B2 (en) 2012-12-14 2016-11-01 Biscotti Inc. Virtual window
US9654563B2 (en) 2012-12-14 2017-05-16 Biscotti Inc. Virtual remote functionality
CN107707886A (zh) * 2017-10-20 2018-02-16 莲花丝路科技有限公司 基于物联网的多通信协议vr影像控制方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100062559A (ko) * 2008-12-02 2010-06-10 에스케이 텔레콤주식회사 영상통화 서비스 시스템 및 그 방법
US20100157013A1 (en) * 2008-12-24 2010-06-24 Nortel Networks Limited Web based access to video associated with calls
US20120229591A1 (en) * 2007-08-29 2012-09-13 Eun Young Lee Mobile communication terminal and method for converting mode of multiparty video call thereof
US20130007157A1 (en) * 1999-11-17 2013-01-03 Eftis Paul S System and method for maintaining presence and communicating over a computer network using the HTTP protocol
US8395652B1 (en) * 2006-06-28 2013-03-12 Insors Integrated Communications Data network collaboration systems having a shared file

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130007157A1 (en) * 1999-11-17 2013-01-03 Eftis Paul S System and method for maintaining presence and communicating over a computer network using the HTTP protocol
US8395652B1 (en) * 2006-06-28 2013-03-12 Insors Integrated Communications Data network collaboration systems having a shared file
US20120229591A1 (en) * 2007-08-29 2012-09-13 Eun Young Lee Mobile communication terminal and method for converting mode of multiparty video call thereof
KR20100062559A (ko) * 2008-12-02 2010-06-10 에스케이 텔레콤주식회사 영상통화 서비스 시스템 및 그 방법
US20100157013A1 (en) * 2008-12-24 2010-06-24 Nortel Networks Limited Web based access to video associated with calls

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9253520B2 (en) 2012-12-14 2016-02-02 Biscotti Inc. Video capture, processing and distribution system
US9300910B2 (en) 2012-12-14 2016-03-29 Biscotti Inc. Video mail capture, processing and distribution
US9310977B2 (en) 2012-12-14 2016-04-12 Biscotti Inc. Mobile presence detection
US9485459B2 (en) 2012-12-14 2016-11-01 Biscotti Inc. Virtual window
US9654563B2 (en) 2012-12-14 2017-05-16 Biscotti Inc. Virtual remote functionality
CN107707886A (zh) * 2017-10-20 2018-02-16 莲花丝路科技有限公司 基于物联网的多通信协议vr影像控制方法

Similar Documents

Publication Publication Date Title
US20140333713A1 (en) Video Calling and Conferencing Addressing
US11962840B2 (en) Services over wireless communication with high flexibility and efficiency
US9300910B2 (en) Video mail capture, processing and distribution
US10015440B2 (en) Multiple channel communication using multiple cameras
US10165016B2 (en) System for enabling communications and conferencing between dissimilar computing devices including mobile computing devices
US9559869B2 (en) Video call handling
US8144182B2 (en) Real time video communications system
US9003306B2 (en) Doodle-in-chat-context
US8797999B2 (en) Dynamically adjustable communications services and communications links
US20160261654A1 (en) Proximity session mobility extension
EP2798779B1 (fr) Transfert d'un évènement de communication
US20120303834A1 (en) Seamless digital streaming over different device types
US9736518B2 (en) Content streaming and broadcasting
US20120092439A1 (en) System and method for providing connectivity in a network environment
US9756373B2 (en) Content streaming and broadcasting
WO2015013592A1 (fr) Adressage d'appels vidéo et de visioconférence
US20110276923A1 (en) Photo Stack
US20110273576A1 (en) Video Recording Environment
US20230126656A1 (en) Video call method and display apparatus
WO2014121148A1 (fr) Capture, traitement et distribution de courriel vidéo
JP6327338B2 (ja) 宛先端末、伝送システム、中継装置の選択方法、及び記録媒体
US20240039971A1 (en) Sharing virtual whiteboard content
WO2023249832A1 (fr) Ajustement dynamique de facteur de forme pendant une vidéoconférence
US20170064377A1 (en) Content streaming and broadcasting
JP2017118218A (ja) 通信システム、通信制御方法、及びプログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14829988

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14829988

Country of ref document: EP

Kind code of ref document: A1