MSN Video Chat Application


MSN Video Chat Application

MSN.gif

Introduction

This application allows any person on the Internet to use Messenger Services. There are several Messengers working parallel with MSN Messenger. aMSN, Pidgin, Miranda, Mercury(Java MSN Messenger Client) are some of them. I used MSNPSharp which is a .Net library that implements the MSN protocol. It's the continuation of project DotMSN started in 2002. Today, It has more than 10,000,000 users around the world using services developed based on its library.

The MSNPSharp currently supports the following features:

Messaging

  • Custom emoticons
  • Offline messages (oim)
  • Mobile messages (sms)
  • Group messages (circle)
  • Decorated text messages
  • Nudges and typing messages
  • Yahoo! messages (nudge, typing, text messaging)
Address Book
  • Adding, removing and blocking contacts
  • Creating, removing and changing contact groups
  • Contact type recognition (passport, yahoo and phone)
  • Saving contacts and deltas in encrypted addressbook files (.mcl)
  • Convenient enumerating through contacts in allow, block, reverse, pending and forward lists
  • Personal data of a contact / display image / personal message
  • Event-based design to notify contact presence status changes
  • Support for What's New service
  • Support for Circle groups
Roaming Profile
  • Privacy settings of the contact list owner
  • Updating display name and personal message
  • Saving display picture on MSN storage servers

Nameserver(NS) and Switchboard(SB)

  • Signing in from multiple places (MPOP)
  • Support for bots (Provisioned_Accounts)
  • Hotmail mailbox status
  • Notifications of new mail
  • Setting presence status
  • Request or receive conversations
  • Multiple users in one conversation
  • File transfers
  • P2P framework support
  • Flexible tracing of warnings and errors
  • Proxy support and custom servers

Video Conference

In MSNPSharp application, there is no video conference feature although there are several commonly used video conference applications today. Each has its own performance enhancement techniques. The major problem in video conferencing is that the size of video frames is too big for transmission. Hence the performance is based on the codec used for encoding and decoding the frame.

In MSN World, users don't communicate directly each other. Instead, they send their text messages or video/audio packets on specialized servers even if both sides are very near or not. Because of this centralized system, there is latency and this affects quality of conference.
In order to raise performance and quality on video/audio conference on MSN systems, I decided to examine P2P open source video/audio conference systems instead of centralized systems. After researching, I found VideoNet application suitable for this job. I modified VideoNet and adapted to MSNPSharp. I am using Mimic Codec Encoder library which gives good compression rate and used commonly in MSN Messengers.

The VideoNet currently supports the following features:

Recording and Playing Audio

Video Capture

Displaying the Captured Video Frame


In MSNSharp source code,

Collapse

            String name = "VideoNet.exe";
            if (isProcessStarted(name)) return;
            // isProcessStarted method check if "VideoNet.exe"
            //application is still working

            String strVar = "";
            strVar += " -k " + panel5.Handle;
            //This panel is the main panel for VideoNet.
            //VideoNet will be shown in it.

            ProcessStartInfo start = new ProcessStartInfo();

            start.Arguments = strVar;
            start.FileName = name;
            start.WindowStyle = ProcessWindowStyle.Minimized;
            process = Process.Start(start);
            //These codes' aim is to run VideoNet.exe
            //in MSNSharp application
        }

In this code samples, I run VideoNet.exe in MSNSharp(Managed code) application.

I give panel's parameter in MSNSharp's Conversation Form in order to open VideoNet application in it. In VideoNet, I take this parameter and create a child form(VideoNet's screen) of this main form/window(MSNSharp's Panel).

As a result of these processes, I can show VideoNet application in the panel of MSNSharp which makes more attractive.
VideoNet's project's detail is already defined by Nagareshwar.

How to run the application

First of all, minimum .Net framework 2.0 must be installed in order to run MSNSharp. After installing .Net, you use MSNSharp like MSN Messenger. Most of MSN Messenger Services also supported by MSNSharp as I mentioned.
For using Video Conference Feature,

You must be logged on MSNSharp application and you must also have webcam. And then choose "Start Camera" option on Conversation Form of MSNSharp from 2 different machines A & B which are on the internet. From machine A, select Connect menu item in Conference menus, and in the popup dialog box write IP Address of the other host (B), and press Connect button.

MSN1.gif

In the other machine (B), Accept/Reject dialog box will appear. Press Accept button.

MSN2.gif

That's it.

Your Video Conference should be started after this acceptance.

Warning: If you have firewall, please ensure that your firewall allows to pass Video/Audio packets of VideoNet, otherwise no video/audio transmission may be held.

You can also adjust Audio Settings from "Volume Control" Menu. And you may like to detain your audio/video conversation from Audio/Video Menu.
In MSNSharp Menus, you are able to stop Video Conferencing from "Stop Camera" option on Conversation Form.
Enjoy......

Acknowledgement

I like to thank developers and owners of MSNSharp and Nagareshwar for his VideoNet Application.

If you have any queries or suggestions, please feel free to mail me at [email protected].
 


Similar Articles