Doing a Skype video call with C# / .Net

Introduction and premise

If you’re using ActiveS to control Skype, it’s easy. If not, you should check if you can migrate to ActiveS – which is really recommended! ActiveS is a nice .NET library that supports most of the Skype API – for free (BSD licence – you can even use it for commercial applications).
Skype supports video calls since Skype version 2.0.

Example – doing a Skype video call

With ActiveS it’s easy: you do just a normal call and than switch on the video support:

This example assume’s that m_objAccess is an instance of the SKYPEAPILib.AccessClass which is the ActiveX stub that connects .NET to Skype. skypeId is a string containing the username of the skype user you’re calling. The next to lines enable the sending of video messages (START_VIDEO_SEND) and the receiving of video messages (START_VIDEO_RECEIVE).

Call call = this.m_objAccess.PlaceCall(skypeId); m_objAccess.SendCommand("ALTER CALL " + call.ID + " START_VIDEO_SEND"); m_objAccess.SendCommand("ALTER CALL " + call.ID + " START_VIDEO_RECEIVE");

You can find more information about the video support at the description of the updated Skype protocol – video section

Skype video calls and conference conversations

The Skype conference calls doesn’t support video conversations. Even the Skype window doesn’t support it, the API seems to behave the same.

You can try to do a conference call and than switch on the video support – but it still doesn’t work. So maybe Skype checks the network load and the usage of the video calls – and then maybe enables the conference calls or makes it a payed service. But – nobody knows execept the Skype developer, we’ll see.