# SkypeKit C++ Wrapper Reference Documentation

### Version: Beta 3.7

## Online Resources

- Release notes
- SkypeKit overview
- SkypeKit runtime versions
- Tutorial Guide
- Developer Forum

## Introduction

Welcome to the beta version of SkypeKit SDK C++ wrapper.

This wrapper exposes the SkypeKit API's UI Interface for building client applications (client UIs) that deliver Skype functionality. The wrapper contains UI-side methods for audio and video - i.e. it lets you initiate audio and video calls.

The wrapper communicates with a SkypeKit Runtime, which you run alongside your UI application. There are various flavours of SkypeKit Runtimes. For example, those with the -novideo suffix do not include video capabilities. If video is not required, a runtime with no video support has the advantage of a smaller memory footprint. All runtimes include support for audio, whether through Skype Audio Library (optionally via PCM) or through an RTP interface to your own audio library. For more on audio and video integration, see the AV Primer

Note: As the wrapper and the runtimes and the SK distribution package work together, each version of the C++ wrapper is built and tested only against runtimes with the same SDK version. While we have attempted to design our IPC protocol so that newer versions of the wrapper are backward compatible with runtimes in earlier SDK versions, it is best to always use a wrapper and runtime from the same SDK version.

- Download and extract the SkypeKit SDK.
- Request a runtime.
- Create an application for your organization.
- Obtain a key pair for your application.
- Build the wrapper library

NB! To establish connection between a SkypeKit runtime and a client (your own or any of the demo/tutorial clients that come with the SDK), you will need to use a correct key pair. Without a correct key pair, the client connection to the runtime will fail.

Runtimes and key pairs must be requested and generated from within the same Skype Developer account. While different users associated with a particular account can request either of these components for that account, a user associated with multiple accounts cannot use a runtime built for one of their accounts with a key pair generated for another. Skype will not authorize such mismatched runtimes and key pairs, and will fail all start-up attempts.

Skype functionality is exposed through the SkypeKit API's UI Interface (the wrapper) as an object-oriented API. It consists of classes, class methods, events and properties. All the client side instances of the wrapper API classes are reflections of equivalent object instances in the runtime. Wrapper API class methods are essentially remote procedure calls - they are executed in the runtime context.

The wrapper communicates with the runtime over a transport mechanism. Current transport mechanisms are Unix sockets (for Linux builds) and TCP sockets for Microsoft Windows builds. When SkypeKit Runtime launches, it creates a socket server, listening on a specified port (default is 8963). The wrapper then creates a client socket that connects to the server. SkypeKit uses a binary communication protocol for remote procedure calls, events and property updates. The protocol is optimized to minimize IPC traffic. Specification of the binary protocol is outside the scope of this document as the wrapper makes the protocol side transparent for UI developers.

All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

(c) Skype Technologies S.A. Confidential/Proprietary

Last updated: Fri Mar 16 2012