||The Video Instant
Messaging System (VIMS) is a software application. It allows
anyone with a personal computer (and Microsoft WindowsTM)
to communicate with other users of the application via:
- text messages
- voice and video
The system assumes that a TCP/IP
network is already set up between users -- for example, two
computers both connected to the Internet.
||Our goals for the Spring 2003 offering of CENG 499B at the University of Victoria were to:
- Gain experience designing software in a Microsoft's .NET platform environment
- Learn about network and security issues in software
- Improve our knowledge of the C#
- Learn about video capture
||We set out to achieve the following objectives with our design solution:
- Develop a friendly video chat application with text, audio and video capabilities.
Text, audio, and video
capabilities would put our application on par with other
commercially available instant messengers, e.g. MSN Messenger,
- Make the application easy to use application
(suitable for any novice computer user).
In order to gain
wide-spread public acceptance and thus increase our potential
revenue, our application must be easy to use.
- Provide a peer-to-peer
architecture is required to achieve our objective of providing
real-time voice and video capabilities, since it is most
efficient to send video packets directly to their destination,
and NOT route them through an application server.
When contrasted with a
single server/multiple client architecture, a peer-to-peer
system also provides the following value:
- No need to invest in a
powerful application server, capable of supporting
(potentially) thousands of users.
- Clients can be
reassured that their communications are not monitored by the
creators of the messaging system.
- Provide an easy way to locate
other users without the need for a single, central server.
Other instant messaging
systems require users to either a) know the IP address of the
friend that they wish to contact, or b) log on to a central
server that is dedicated to locating users on the network.
Condition a) is not user
friendly. Many users that connect to the Internet via
dial-up connections get a new IP address each time that they
connect to the Internet.
Condition b) violates the
objective we wish to achieve of providing a peer-to-peer
|The Creative Process
||We started the project
by brainstorming our goals and objectives (outlined above). We
also spent time researching our options for providing voice and
video functionality. Mélanie investigated several options,
- writing our own video capture
- using a third-party code library
for video capture functionality
Jeremy researched how to use the
Microsoft .NET Framework to develop network applications, and
started the design process for the networking aspects of the
application by doing basic domain modeling, and class diagrams in
|Results: What We Built
||Ultimately, we narrowed our scope to the following for the 3 month design project:
- Integrating a third-party video
- Providing the following
- Text messaging (e-mail style)
- Text chat (typing back and forth)
- Sending files
- Recording video/audio clips
- Sending pre-recorded video/audio
- Archiving all messages received (i.e.
- A Friends list, which automatically
updates with the current IP address of each Friend in the list
- A notification window for incoming
Screen shots of the application are
provided below for 1) Text chat, 2) Recording video/audio clips, 3)
Sending files, 4) the VIMS main window with Friends list and Inbox
displayed, and 5) the incoming message notification window.
Figure 1: Text chat
Figure 2: Recording video/audio clips
Figure 3: Sending files
Figure 4: VIMS main window with Friends list and Inbox displayed
Figure 5: Incoming message notification window
- Real-time voice and video chat
- Create a friendly and easy to use help section
- Video chat rooms for multiple users
- Live game playing
- Web interface to get messages from anywhere, at any time
- Multiple platform capabilities
|About the Team