U.S. patent application number 14/495307 was filed with the patent office on 2015-01-08 for system and method for combining instant messaging and video communication systems.
The applicant listed for this patent is Vidyo, Inc.. Invention is credited to Jeffrey S. Robertson.
Application Number | 20150009273 14/495307 |
Document ID | / |
Family ID | 44115303 |
Filed Date | 2015-01-08 |
United States Patent
Application |
20150009273 |
Kind Code |
A1 |
Robertson; Jeffrey S. |
January 8, 2015 |
System And Method For Combining Instant Messaging And Video
Communication Systems
Abstract
A method and apparatus for initiating videoconferences in
instant messaging systems is described, including posting of a
videoconference URL in the instant messaging chat window if any of
the desired participants of the videoconferencing session is
unavailable, so that the unavailable participants can simply click
on the videoconference URL and join the videoconferencing
session.
Inventors: |
Robertson; Jeffrey S.;
(Wyckoff, NJ) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Vidyo, Inc. |
Hackensack |
NJ |
US |
|
|
Family ID: |
44115303 |
Appl. No.: |
14/495307 |
Filed: |
September 24, 2014 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
13487008 |
Jun 1, 2012 |
8872884 |
|
|
14495307 |
|
|
|
|
PCT/US10/58801 |
Dec 2, 2010 |
|
|
|
13487008 |
|
|
|
|
61266051 |
Dec 2, 2009 |
|
|
|
Current U.S.
Class: |
348/14.03 ;
348/14.09 |
Current CPC
Class: |
H04L 65/1069 20130101;
H04L 12/1818 20130101; H04L 51/18 20130101; H04M 3/56 20130101;
H04N 7/152 20130101; H04N 7/15 20130101; H04L 51/04 20130101; H04N
7/155 20130101; H04M 3/42382 20130101; H04M 2203/4536 20130101;
H04L 65/4038 20130101; H04M 2203/5054 20130101; H04L 51/046
20130101; H04M 2203/652 20130101 |
Class at
Publication: |
348/14.03 ;
348/14.09 |
International
Class: |
H04L 12/58 20060101
H04L012/58; H04L 29/06 20060101 H04L029/06; H04N 7/15 20060101
H04N007/15 |
Claims
1. A method of initiating a videoconference between an initiating
user and one or more selected users of an instant messaging system,
the method comprising: receiving a request from the initiating user
to create a videoconference between himself and the one or more
selected users; verifying that the initiating user is not in a
videoconference or is in a videoconference that he is allowed to
manage; if the initiating user is not a videoconference, starting a
new videoconference; if the videoconference does not have an
associated URL, requesting that an associated videoconference URL
is created; obtaining the associated videoconference URL;
requesting that the one or more selected users are added to the
videoconference; checking if any of the one or more selected users
is unavailable to be added to the videoconference; and if any of
the one or more selected instant messaging system users is
unavailable to be added to the videoconference, posting the
associated videoconferencing URL to an instant messaging chat
window of the initiating user and the one or more selected users so
that the one or more selected users can join the videoconference by
accessing the associated videoconferencing URL.
2. The method of claim 1, wherein the initiating user request is
performed through graphical user interface means.
3. A method of initiating a videoconference between an initiating
user and one or more selected users of an instant messaging system,
the method comprising the steps of: receiving a request from the
initiating user to create a videoconference between himself and the
one or more selected users; obtaining the user names of the
initiating user and the one or more selected users from the instant
messaging system; obtaining, from the user names of the initiating
user and each of the one or more selected users, the associated
user names in the videoconferencing system; verifying that the
initiating user is not in a videoconference or is in a
videoconference that he is allowed to manage; if the initiating
user is not a videoconference, starting a new videoconference; if
the videoconference does not have an associated URL, creating an
associated videoconference URL; obtaining the associated
videoconference URL; requesting that the one or more selected users
are added to the videoconference; checking if any of the one or
more selected users is unavailable to be added to the
videoconference; and if any of the one or more selected users is
unavailable to be added to the videoconference, posting the
associated videoconferencing URL to an instant messaging chat
window of the initiating user and the one or more selected users so
that the one or more selected users can join the videoconference by
accessing the associated videoconferencing URL.
4. The method of claim 3, wherein the initiating user request is
performed through graphical user interface means.
5. A non-transitory computer-readable medium for initiating
videoconferencing sessions from instant messaging sessions, the
computer-readable medium having a set of instructions operable to
direct a processing system to: receive a request from the
initiating user to create a videoconference between himself and the
one or more selected users; verify that the initiating user is not
in a videoconference or is in a videoconference that he is allowed
to manage; if the initiating user is not a videoconference, start a
new videoconference; if the videoconference does not have an
associated URL, request that an associated videoconference URL is
created; obtain the associated videoconference URL; request that
the one or more selected users are added to the videoconference;
check if any of the one or more selected users is unavailable to be
added to the videoconference; and if any of the one or more
selected instant messaging system users is unavailable to be added
to the videoconference, post the associated videoconferencing URL
to an instant messaging chat window of the initiating user and the
one or more selected users so that the one or more selected users
can join the videoconference by accessing the associated
videoconferencing URL.
6. The non-transitory computer readable medium of claim 5, wherein
the initiating user request is performed through graphical user
interface means.
7. A non-transitory computer-readable medium for initiating a
videoconference between an initiating user and one or more selected
users of an instant messaging system, the computer-readable medium
having a set of instructions operable to direct a processing system
to: receive a request from the initiating user to create a
videoconference between himself and the one or more selected users;
obtain the user names of the initiating user and the one or more
selected users from the instant messaging system; obtain, from the
user names of the initiating user and each of the one or more
selected users, the associated user names in the videoconferencing
system; verify that the initiating user is not in a videoconference
or is in a videoconference that he is allowed to manage; if the
initiating user is not a videoconference, start a new
videoconference; if the videoconference does not have an associated
URL, create an associated videoconference URL; obtain the
associated videoconference URL; request that the one or more
selected users are added to the videoconference; check if any of
the one or more selected users is unavailable to be added to the
videoconference; and if any of the one or more selected users is
unavailable to be added to the videoconference, post the associated
videoconferencing URL to an instant messaging chat window of the
initiating user and the one or more selected users so that the one
or more selected users can join the videoconference by accessing
the associated videoconferencing URL.
8. The non-transitory computer readable medium of claim 7, wherein
the initiating user request is performed through graphical user
interface means.
Description
CROSS-REFERENCE TO RELATED APPLICATION
[0001] This application is a continuation of U.S. patent
application Ser. No. 13/487,008, filed Jun. 1, 2012, which is a
continuation of International Patent Application Serial No.
PCT/US2010/058801 filed Dec. 2, 2010, which claims priority to U.S.
Provisional Application Ser. No. 61/266,051, filed on Dec. 2, 2009,
the contents of each of which are hereby incorporated by reference
in their entireties herein.
FIELD
[0002] The present invention relates to personal communication, and
specifically digital communication using instant messaging as well
as digital audio and video.
BACKGROUND
[0003] Instant messaging systems have proliferated over the past
several years, with several commercial offerings available today.
These systems offer individual users the ability to communicate
with other users using text, audio, video, and other types of
multimedia data. Examples include free offerings such as Skype and
Google Talk, as well as commercial, enterprise systems such as the
Microsoft Office Communication Server (hereinafter `OCS`) and its
associated client Microsoft Office Communicator,
[0004] Typically, such systems provide a so-called "presence
engine" as well as the ability to communicate via text-based
messages. The presence engine is responsible for registering the
status of a user (e.g., available to communicate, idle,
unavailable, etc.) and reporting it to other users (co-workers,
users declared in the system as `friends` of the specific user). A
user can typically initiate communication just by typing a text
message in a window, addressed to another user. The intended
recipient of the message will be notified by the software and will
be offered the opportunity to reply. These systems are referred to
as "Instant Messaging" or IM systems.
[0005] Most IM systems offer the ability to conduct text-based
conversations among groups of users, i.e., with groups of more than
two users at a time. Several IM systems offer the ability to
combine the text-based communication with audio communication
whereas others offer the ability to use video as well.
[0006] Due to the complexity in offering multi-point video
communication, most systems allow multi-user audio communication
(e.g., Skype or Google Talk) but only person-to-person video
communication. The technical problems in multi-point video are
significant, especially when desktop operation is desired (a
requirement for an IM system).
[0007] Vidyo, Inc. (`Vidyo`) has developed a solution for
videoconferencing which surmounts the technical challenges
associated with low-delay, multi-point video communication on the
desktop. Using Scalable Video Coding and the so-called Scalable
Video Communication Server (SVCS) architecture implemented in
Vidyo's VidyoRouter.TM. system and described in part in commonly
assigned U.S. Pat. No. 7,593,032, incorporated herein by reference
in its entirety, the Vidyo system allows telepresence-quality
multi-point video communication even from regular PC and Mac
desktops. It is thus suitable for use in a desktop-based IM
system.
[0008] A problem, however, is that the Vidyo system--like any
videoconferencing-only system--is a system designed and implemented
separately from the IM system. It is therefore desirable to provide
a system and method through which a multi-point video and audio
communication system can be seamlessly integrated with the
operation of an IM system, so that a user would not even perceive
that two different systems are actually used.
SUMMARY
[0009] A method and apparatus for initiating a videoconference
between an initiating user and one or more selected users in an
instant messaging system that uses a videoconference URL are
disclosed herein. In an exemplary embodiment, the videoconference
URL is uniquely associated with the initiating user or his
resources on the videoconferencing system. Specifically, if any of
the one or more selected users is not available to be added to the
videoconference, the videoconference URL is posted in the instant
messaging chat window between the initiating user and the one or
more selected users. This way, anyone of the one or more selected
users that may not be available to be added to the videoconference
(because he is in another videoconference or because he is not
registered on the videoconference system) can simply click on the
URL to join the videoconference session.
BRIEF DESCRIPTION OF THE DRAWINGS
[0010] Further features, the nature, and various advantages of the
present invention will be more apparent from the following detailed
description of the exemplary embodiments and the accompanying
drawings in which:
[0011] FIG. 1 is a schematic illustration of a background art
exemplary instant messaging system;
[0012] FIGS. 2A-B is a schematic illustration of a background art
exemplary videoconferencing system;
[0013] FIG. 3 is a schematic illustration of an exemplary system
combining instant messaging and videoconferencing functionality in
accordance with an aspect of the present invention;
[0014] FIG. 4 is a schematic illustration of the client system
architecture in accordance with an aspect of the present
invention;
[0015] FIG. 5 is a flow diagram of the videoconferencing call
initiation process;
[0016] FIGS. 6A-B provides exemplary screen snapshots from Vidyo's
portal during the process of creating a room URL;
[0017] FIGS. 7A-E provides exemplary screen snapshots from an
exemplary embodiment of the present invention in the form of
Vidyo's plug-in for Microsoft.RTM. Office Communicator
[0018] FIG. 8 shows a computer system for implementing an
embodiment of the present invention.
[0019] The Figures are incorporated and constitute part of this
disclosure. Throughout the Figures the same reference numerals and
characters, unless otherwise stated, are used to denote like
features, elements, components or portions of the illustrated
embodiments. Moreover, while the present invention will now be
described in detail with reference to the Figures, it is done so in
connection with the illustrative embodiments.
DETAILED DESCRIPTION
[0020] FIG. 1 depicts the architecture of a typical IM system 100.
The system consists of an IM Server 120 and one or more users that
employ IM Client systems 110. In the figure three such clients are
shown (110A, 110B, and 110C), but any number of clients can be
used. The IM Clients 110 are connected to the IM Server 120 through
a network over connections 115. In an exemplary embodiment of the
present invention a packet-based network using the Internet
Protocol (IP) is used, but other types of networks are also
possible.
[0021] The IM Client 110 can be standalone software installed and
running on a user's computer, or it can be a web page that is
loaded from the IM Server 120 (or another server) onto a user's
browser. In the latter case the connections 115 may not be over a
network, but instead within the IM Server 120.
[0022] In an IM system such as the one shown in FIG. 1, users
employ their IM Client 110 to log in to the IM Server 120 that
registers their name and availability. In other words, a user
connects to the IM system stating that it is user, for example,
`bob`, and provides a password. During the time the user remains
logged in, the system will consider the user available for
communication. The user may be given the option to select the type
of `status` that he or she wants the system to report. For example:
away, not available, do not disturb, invisible, and offline. One
example of an IM system is the Microsoft.RTM. Office Communications
Server with the Office Communicator client.
[0023] FIG. 2(a) depicts the architecture of a typical
videoconferencing system 200, such as the system offered
commercially by Vidyo. The system has one or more VC Servers 220
and one or more VC Clients 210. Three such clients are shown in the
figure (A, B, and C), with a single VC Server for purposes of
illustration--an exemplary embodiment of the present invention can
be directly used in the case where multiple VC Servers 220 are
present. The VC Clients 210 and the VC Server 220 are connected via
network connections 218 (A through C). In an exemplary embodiment
of the present invention the IP protocol is used for the underlying
network. The VC Client 210 can be a standalone system such as a
VidyoRoom system, which is a computer-based system with a camera
and one or more displays, or it can be a software that is
downloaded and ran on a user's computer, such as the VidyoDesktop
software.
[0024] FIG. 2(b) depicts the architecture of the VC Server 220. The
server includes two components, a Portal 230 and a Core 240. In an
exemplary embodiment of the present invention, the Portal 230 is a
web-based registration service, where users log in and through
which they can initiate, receive, or control videoconferencing
calls. The VC Server 220 also includes the Core 240 module, which
is the component that receives, processes, and forwards media. As
shown in the figure, the information carried over network
connection 218 is split between the Portal 230 and the Core 240,
with media data flowing to/from the Core 240, and user/session
management data flowing to/from the Portal 230.
[0025] The Portal 230 and Core 240 communicate through a connection
258. Although the VC Server is shown as a single unit, the Portal
230 and Core 240 can be hosted on distinct systems that may even be
physically in different locations. In that case the connection 258
is over the network, rather than being an internal connection
within a single system.
[0026] In an exemplary embodiment of the present invention, the VC
Server Core is a Scalable Video Communication Server (SVCS), as
described in part in U.S. Pat. No. 7,593,032 and as implemented in
the VidyoRouter.TM. system. Alternative VC Server Core
architectures include the traditional switching Multipoint Control
Unit (MCU) or the transcoding MCU.
[0027] FIG. 3 depicts an integrated IM and VC system 300 in
accordance with an embodiment of the present invention. As shown in
the figure, the system has two servers, an IM Server 320 and a VC
Server 330. One or more Clients 310, in this example three (A
through C), are connected to both servers using corresponding
connections 315 and 318, respectively. The IM Server 320 and VC
Server 330 operate as with the standalone systems shown in FIG. 1
and FIG. 2, respectively. In other words the system is really two
combined systems, an IM system and a VC system. Whereas the servers
here are identical to the servers used in traditional, standalone
IM and VC systems, the difference lies in the architecture and
operation of the Client 310.
[0028] FIG. 4 shows the Client system architecture in accordance
with an embodiment of the present invention. The Client 400
contains an IM client module 450 and a VC client module 490. The IM
client module 450 operates as an IM Client, in the same way as the
IM Client(s) shown in FIG. 1. Similarly, the VC client module 490
operates as a VC Client in the same way as the VC Client(s) shown
in FIG. 2. The Client 400 also includes a VC Plug-in module 480
which provides videoconferencing system integration, as discussed
in detail later on. The VC Plug-in module 480 and the IM client
module 450 communicate through the plug-in interface 460. This
interface is defined by, and provided from, the IM system
manufacturer. It allows third-party code, such as the VC Plug-in
module 480, to integrate with the IM client and augment the base IM
client functionality. In an exemplary embodiment of the present
invention where the Microsoft.RTM. Office Communicator is used, the
plug-in interface 460 is COM-based. It is also possible of course
that the VC Plug-in module 480 is integrated into the IM client
module 450 as a single entity by the IM system manufacturer, in
which case the distinction between the modules is functional rather
than structural.
[0029] The VC Plug-in module 480 also communicates with the VC
Client module 490 through the interface 485. In an exemplary
embodiment of the present invention where the Vidyo system is used,
the interface 485 is HTTP-based.
[0030] Notice that the IM client module 450 communicates with the
IM server via the connection 415, whereas the VC client module 490
communicates with the VC Server via the connection 418. The VC
Server interface through the connection 418 in an exemplary
embodiment of the present invention where the Vidyo system is used
is SOAP-based.
[0031] Although the VC Client module 490 is shown here as part of
the Client 400, it is noted that this is only a logical
association. Indeed, the VC Client module 490 could be in the same
computer system as the IM Client 450 and VC Plug-in 480, or it
could be in a different system, possibly even at a different
physical location. Indeed, the fact that the VC Client module 490
communicates with the rest of the system through connections 485
and 418, makes the actual physical location of the VC Client module
490 irrelevant. A significant benefit of this architecture is that
the VC Client module 490 could be a standalone videoconferencing
system such as the VidyoRoom series of systems. In this case the
videoconference could run on a separate computer system than the IM
Client 450, but the process of initiating the videoconference from
the IM system, as disclosed below, would be identical.
[0032] When the Client 400 system is operated, it should be
provided with the login credentials of the user on the IM and VC
systems of FIG. 3. Indeed, the IM Server 320 and the VC Server 330
may offer completely different log in systems (e.g., with user
credentials originating from different databases). In an exemplary
embodiment of the present invention the user name is identical in
both systems. This simplifies the implementation because the system
does not have to maintain a mapping database between user names on
the IM system and user names on the VC system. But if necessary,
such a database could be used.
[0033] We now describe the operation of the Client 400 with
reference to FIG. 6 and FIG. 7. These figures show snapshots from
an exemplary embodiment of the present invention on the Vidyo
platform and the Microsoft.RTM. Office Communicator platform.
[0034] We first note that the Vidyo system, allows logged in users
to start up videoconferencing calls and invite guest users to join
them, even if they do not have log in privileges on the
videoconferencing system portal. These users can utilize a special
URL generated by the portal for the particular user that is
conducting the videoconferencing call. The URL is associated with
the user's "room", i.e., a logical entity offered by the portal
where any registered user can freely join in (unless the "room" is
protected by a PIN or password). Rooms are the logical entity in
which multi-point videoconferencing sessions take place in the
Vidyo system. Accessing that room URL enables anyone to log in as
"guests" into the system, install the VC client software if not
already installed and running, and connect to the conference call
of the particular user. This enables registered users to conduct
conference calls with any user, whether he is registered on the VC
system or not. This is shown in FIGS. 6(a) and (b) where the "My
Account" page is shown as produced by the portal; in figure (a)
there is no URL yet created, whereas in figure (b) the URL has been
created and is now available for use.
[0035] We also note that the Vidyo system further provides the
client software automatically through the portal, so that the users
do not have to pre-install software in advance of making a call.
The user is prompted to download the software after connecting to
the portal through the URL, if the software is not already
available and running on the user's computer.
[0036] With reference now to FIG. 7, we assume that a user (in this
example, "Allen Bigsby," with the email address
"abigsby@vidyo.com") is logged in on the IM system and wants to add
video to the existing communication session. The login process is
shown in FIG. 7(a). After logging in, the user sees the main IM
client Graphical User Interface (GUI), as shown in FIG. 7(b).
[0037] We assume that the IM user that wants to activate video in
the current session is a user that is already registered with the
Vidyo portal. When a user wants to initiate a videoconferencing
call for the current session, he uses an add-on menu entry in the
IM client module 460 GUI. This menu entry is added by the VC
Plug-in module 480. FIG. 7(c) shows this additional menu entry in
the main GUI ("VidyoConferencing" menu entry), whereas FIG. 7(d)
shows this additional menu entry in the Conversation window of the
IM client module 460 GUI.
[0038] After the video call menu entry is selected, the VC plug-in
module 480 will obtain the user names of all selected participants
of the IM session. This is accomplished through the plug-in
interface 460 shown in FIG. 4. The VC plug-in module will then
examine if the user is already in a conference call. In an
exemplary embodiment of the present invention where the Vidyo
system is used this is done by examining Windows registry entries
that are managed by the VC Client 490. If the user is in a call
that he does not own, i.e., it was not initiated by him, then the
system does not proceed with the videoconferencing call. If the
user is not in a conference, the VC plug-in module 480 will first
initiate a conference. In an exemplary embodiment of the present
invention, the VC plug-in module 480 obtains a security key from
the Windows registry, placed there by the VC Client 490, so that it
can connect to the VC Server directly on behalf of the VC Client
490. In an alternative embodiment of the present invention, the VC
plug-in module 480 could instruct the VC Client 490 to initiate the
conference.
[0039] After the conference is initiated, or if the user was
already in a conference that he bad previously initiated, then the
VC plug-in module 480 will communicate with the Portal 230, in
order to invite each of the selected users as participants. It is
assumed that the user is already logged in on the Portal 230. The
VC plug-in module 480 uses the IM user names of the other users to
locate them in the Portal 230. If these users are not currently
logged in on the Portal 230, if they do not have accounts on the
Portal 230, or if they are already in videoconferences, then the
system will report them as unavailable.
[0040] In an embodiment of the present invention, if one or more of
the invited users is reported as unavailable, the URL generated by
the Portal 230 for the particular videoconferencing call in order
to allow the unavailable or unregistered users to join in the call
will then be used. The URL is generated by the Portal 230, is
obtained by the VC client module 480, and is communicated to the
remaining participants via the IM communication channel(s) that
already exist between the initiating user and the other
participants. The URL can be created by the Portal 230 in advance,
or it may be created on demand, when required for inviting
unavailable users. This is shown in FIG. 7(e), which shows the
Conversation window of the IM Client module 450 for user "emily",
where the URL of the videoconferencing session has been posted by
the VC plug-in module 480 of user "Allen Bigsby" (through his IM
client module 450) together with an informative message ("Allen
Bigsby would like to invite you to a conference. Please click on
the following link to join: . . . ").
[0041] The users who are either not logged in or not registered on
the video portal, can then simply click on this URL on their IM
client software window so that their web browser directs them to
the Portal 230, in order to install the videoconferencing software,
if needed, and to join the initiated videoconferencing session.
Furthermore, users who are logged in on the Portal 230 but are in
ongoing videoconferences will get to see the invitation on the IM
client interface, and can decide whether or not they want to
terminate their current videoconferencing session in order to join
the new one they are invited on.
[0042] FIG. 5 shows a detailed flow diagram of the
videoconferencing session initiation process. In step 510 the
Client is started. Then in step 512 the IM Client is initialized
and the user (user A) is asked to login to the IM system. In step
514 the VC plug-in is initialized and attached to the IM client.
The system then enters an input-waiting mode in step 516.
[0043] When the user presses the videoconferencing button in 518,
the VC plug-in will obtain the names of the currently selected IM
users B1 through Bn in step 520. The VC plug-in will check if the
current user A is currently in a conference in step 522. If the
user A is not in a conference, then the VC plug-in will start one
at the VC server. If the current user A is in a conference, the VC
plug-in will check if that conference is "owned" by user A.
Ownership here means that user A has the authority to add or remove
participants in the conference. In the Vidyo system, each user is
associated with his own "room", in which he has full control in
terms of who can join. If the current conference is not owned by A,
then the system cannot initiate a new videoconference for A and the
algorithm proceeds to step 516, waiting for user input.
[0044] Regardless if a new conference is created for A or if A is
already in a videoconference that he owns, the VC plug-in next
makes a request to the VC Portal to add the selected users B1
through Bn. The request can be done sequentially, one user at a
time, or it can be done as a single request. In an exemplary
embodiment of the present invention, the VC plug-in makes such
requests sequentially. The VC portal responds with one of the
following status messages: 1) successfully invited, 2) not logged,
and 3) busy (in a conference already). We group the last two
categories into a single one, in which the user is considered
`unavailable`.
[0045] If any one of the invited users B1 through Bn is
unavailable, as examined in step 530, the VC plug-in posts the
conference URL obtained from the VC portal onto the IM chat window
in step 532, together with an informative message that the users
are invited to join a videoconference (see, e.g., FIG. 7(e)). The
VC plug-in then goes back to the waiting state of step 516.
[0046] We note that this process only takes care of the
videoconference initiation process. After a conference is started,
the IM chat portion and the VC portion of the system operate
independently. In an exemplary embodiment of the present invention
the VC plug-in reports the videoconference status on the IM system.
Microsoft.RTM. Office Communicator R1 allows the use of custom
"status" messages, such as "In VidyoConference". The next release,
OC R2, removed that capability, and only allows the VC plug-in to
indicate that the user is "Busy", if the user is engaged in a
videoconference initiated by the IM client.
[0047] The disclosed subject matter allows the initiation of
multi-point videoconferencing calls with greatly reduced user
involvement. In an exemplary embodiment, the VC client module 480
just registers a "video call" menu option or button on the IM
client module 460 GUI. This way the initiating user only has to
click a single button to initiate the videoconferencing call. On
the remote end, users that are already registered and logged in on
the separate video Portal 230 will be directly connected to the
initiated call. Most significantly, users that are not registered
or logged in on the video Portal 230 only have to click on the
Portal URL to enter the videoconferencing call.
[0048] In an alternative embodiment of the present invention, it is
possible that instead of having the VC client module 480
communicate directly with the video Portal 230, the IM Server 320
instead is extended so that it communicates with the video portal.
The videoconferencing session could then be setup by the IM server
(at the request of one of the users).
[0049] The system and method described herein is not limited to
adding audiovisual communication to IM systems, but can rather be
used for any system or service that can be accessed via a URL. In
other words, the text messaging ability of IM systems coupled with
the presence engine can be used as a conveyor of activation or
command strings for various different types of services. It is
further noted that URL strings are not limited to just those of the
"http" protocol, but can include standard or even proprietary
protocol indicators (e.g., `ftp`, `call`, `sip`, etc.).
[0050] While in the exemplary embodiment the URL will initiate a
software download which, in turn, will cause the downloaded
software to connect to the videoconferencing session, in
alternative embodiments the URL can instruct existing software
(i.e., software that is already installed on the user's computer as
an additional application or part of the operating system) to
connect to the videoconferencing session. For example, a `callto`
protocol indicator in a URL (e.g., "callto:service.vidyo.com/bob")
would cause the program registered to handle the "callto" URL on
the user's computer to make a connection to the server
service.vidyo.com and contact user `bob`).
[0051] It will be understood that in accordance with the disclosed
subject matter, the techniques described herein can be implemented
using any suitable combination of hardware and software. The
software (i.e., instructions) for implementing and operating the
aforementioned videoconferencing initialization techniques can be
provided on computer-readable media, which can include, without
limitation, firmware, memory, storage devices, microcontrollers,
microprocessors, integrated circuits, ASICs, downloadable media,
and other available media.
Computer System
[0052] The methods for combining instant messaging and video
communication systems described above can be implemented as
computer software using computer-readable instructions and
physically stored in computer-readable medium. The computer
software can be encoded using any suitable computer languages. The
software instructions can be executed on various types of
computers. For example, FIG. 8 illustrates a computer system 800
suitable for implementing embodiments of the present
disclosure.
[0053] The components shown in FIG. 8 for computer system 800 are
exemplary in nature and are not intended to suggest any limitation
as to the scope of use or functionality of the computer software
implementing embodiments of the present disclosure. Neither should
the configuration of components be interpreted as having any
dependency or requirement relating to any one or combination of
components illustrated in the exemplary embodiment of a computer
system. Computer system 800 can have many physical forms including
an integrated circuit, a printed circuit board, a small handheld
device (such as a mobile telephone or PDA), a personal computer or
a super computer.
[0054] Computer system 800 includes a display 832, one or more
input devices 833 (e.g., keypad, keyboard, mouse, stylus, etc.),
one or more output devices 834 (e.g., speaker), one or more storage
devices 835, various types of storage medium 836.
[0055] The system bus 840 link a wide variety of subsystems. As
understood by those skilled in the art, a "bus" refers to a
plurality of digital signal lines serving a common function. The
system bus 840 can be any of several types of bus structures
including a memory bus, a peripheral bus, and a local bus using any
of a variety of bus architectures. By way of example and not
limitation, such architectures include the Industry Standard
Architecture (ISA) bus, Enhanced ISA (EISA) bus, the Micro Channel
Architecture (MCA) bus, the Video Electronics Standards Association
local (VLB) bus, the Peripheral Component Interconnect (PCI) bus,
the PCI-Express bus (PCI-X), and the Accelerated Graphics Port
(AGP) bus.
[0056] Processor(s) 801 (also referred to as central processing
units, or CPUs) optionally contain a cache memory unit 802 for
temporary local storage of instructions, data, or computer
addresses. Processor(s) 801 are coupled to storage devices
including memory 803. Memory 803 includes random access memory
(RAM) 804 and read-only memory (ROM) 805. As is well known in the
art, ROM 805 acts to transfer data and instructions
uni-directionally to the processor(s) 801, and RAM 804 is used
typically to transfer data and instructions in a bi-directional
manner. Both of these types of memories can include any suitable of
the computer-readable media described below.
[0057] A fixed storage 808 is also coupled bi-directionally to the
processor(s) 801, optionally via a storage control unit 807. It
provides additional data storage capacity and can also include any
of the computer-readable media described below. Storage 808 can be
used to store operating system 809, EXECs 810, application programs
812, data 811 and the like and is typically a secondary storage
medium (such as a hard disk) that is slower than primary storage.
It should be appreciated that the information retained within
storage 808, can, in appropriate cases, be incorporated in standard
fashion as virtual memory in memory 803.
[0058] Processor(s) 801 is also coupled to a variety of interfaces
such as graphics control 821, video interface 822, input interface
823, output interface, storage interface, and these interfaces in
turn are coupled to the appropriate devices. In general, an
input/output device can be any of: video displays, track balls,
mice, keyboards, microphones, touch-sensitive displays, transducer
card readers, magnetic or paper tape readers, tablets, styluses,
voice or handwriting recognizers, biometrics readers, or other
computers. Processor(s) 801 can be coupled to another computer or
telecommunications network 830 using network interface 820. With
such a network interface 820, it is contemplated that the CPU 801
might receive information from the network 830, or might output
information to the network in the course of performing the
above-described method. Furthermore, method embodiments of the
present disclosure can execute solely upon CPU 801 or can execute
over a network 830 such as the Internet in conjunction with a
remote CPU 801 that shares a portion of the processing.
[0059] According to various embodiments, when in a network
environment, i.e., when computer system 800 is connected to network
830, computer system 800 can communicate with other devices that
are also connected to network 830. Communications can be sent to
and from computer system 800 via network interface 820. For
example, incoming communications, such as a request or a response
from another device, in the form of one or more packets, can be
received from network 830 at network interface 820 and stored in
selected sections in memory 803 for processing. Outgoing
communications, such as a request or a response to another device,
again in the form of one or more packets, can also be stored in
selected sections in memory 803 and sent out to network 830 at
network interface 820. Processor(s) 801 can access these
communication packets stored in memory 803 for processing.
[0060] In addition, embodiments of the present disclosure further
relate to computer storage products with a computer-readable medium
that have computer code thereon for performing various
computer-implemented operations. The media and computer code can be
those specially designed and constructed for the purposes of the
present disclosure, or they can be of the kind well known and
available to those having skill in the computer software arts.
Examples of computer-readable media include, but are not limited
to: magnetic media such as hard disks, floppy disks, and magnetic
tape; optical media such as CD-ROMs and holographic devices;
magneto-optical media such as floptical disks; and hardware devices
that are specially configured to store and execute program code,
such as application-specific integrated circuits (ASICs),
programmable logic devices (PLDs) and ROM and RAM devices. Examples
of computer code include machine code, such as produced by a
compiler, and files containing higher-level code that are executed
by a computer using an interpreter.
[0061] As an example and not by way of limitation, the computer
system having architecture 800 can provide functionality as a
result of processor(s) 801 executing software embodied in one or
more tangible, computer-readable media, such as memory 803. The
software implementing various embodiments of the present disclosure
can be stored in memory 803 and executed by processor(s) 801. A
computer-readable medium can include one or more memory devices,
according to particular needs. Memory 803 can read the software
from one or more other computer-readable media, such as mass
storage device(s) 835 or from one or more other sources via
communication interface. The software can cause processor(s) 801 to
execute particular processes or particular parts of particular
processes described herein, including defining data structures
stored in memory 803 and modifying such data structures according
to the processes defined by the software. In addition or as an
alternative, the computer system can provide functionality as a
result of logic hardwired or otherwise embodied in a circuit, which
can operate in place of or together with software to execute
particular processes or particular parts of particular processes
described herein. Reference to software can encompass logic, and
vice versa, where appropriate. Reference to a computer-readable
media can encompass a circuit (such as an integrated circuit (IC))
storing software for execution, a circuit embodying logic for
execution, or both, where appropriate. The present disclosure
encompasses any suitable combination of hardware and software.
[0062] While this disclosure has described several exemplary
embodiments, there are alterations, permutations, and various
substitute equivalents, which fall within the scope of the
disclosed subject matter. It should also be noted that there are
many alternative ways of implementing the methods and apparatuses
of the disclosed subject matter.
* * * * *