This document is the VOIP Media Engine .NET class reference. This help file will assist you in understanding what VOIP capabilities and features are available to your managed code and .NET applications.

The primary purpose of this document is to help you understand the managed code class structure of the VOIP Media Engine. Of primary importance is the need to give you the class documentation you will need in order to develop your VOIP application using any of the available managed code and .NET compatible languages.

Should I use managed code or native code?

The choice to develop your VOIP application using either managed code or native code is completely up to you.

As software developers at LanScape, we tend to stay with native C/C++ code when we develop our VOIP applications. We do this primarily because of the great execution speed of native code and because we have much of our “every day” source code in C/C++ shared modules or pre-built shared libraries.

That is not to say that we are not moving to managed code VOIP applications. We particularly like managed C# VOIP applications and the ease at how fast they can be developed and debugged when using the LanScape VOIP Media Engine.

As a “rule of thumb”, if you are developing a low line density VOIP application that does not have to manage many concurrent calls at the same time, either managed code or native code will work equally well. The choice is up to you.

When we speak of a “low line density” VOIP application, we generally mean a VOIP application having 32 or less concurrent phone calls active at the same time.

However, as your VOIP application requires higher and higher line densities, you may want to consider only using native C/C++ language to develop your VOIP application. Native code will allow you to perform your application functions and interface with the media engine with as little overhead as possible. This “low overhead” becomes increasingly important when trying to squeeze every last drop of VOIP performance out of the media engine and your deployed host hardware.

What VOIP Media Engine capabilities are exposed to managed VOIP applications?

The short answer is: All native VOIP capabilities that are offered to native VOIP applications are fully exposed to managed code applications.

Is the media engine implemented using managed code?

The answer is No.

The VOIP Media Engine is exclusively implemented using native code and exports a standard API. If you were going to develop a VOIP application using C/C++ or some other native compiled language, you would use the native VOIP Media Engine API that is documented in the media engine’s Software Developer’s Reference. The media engine Software Developer’s Reference is supplied with the product and is part of the basic product installation image.

In order for managed code applications to take full advantage of all the powerful VOIP features supported by the media engine, LanScape supports a “managed code wrapper” layer that encapsulates the native media engine API.

Using the managed code wrapper, managed VOIP applications gain access to all the cool and powerful features and capabilities the media engine has to offer.

Namespace and managed code class layout

The following figure depicts the basic structure of the media engine managed code wrapper.




Figure 1:Namespace and Class encapsulation




All managed code VOIP applications must reference the managed code wrapper DLL that is supplied with the media engine product (LMEVoipManaged.dll).

Once the managed code application references the above managed code DLL, the VOIP application can be developed.

All capabilities of the VOIP Media Engine reside as part of the LanScape namespace. Internal to the LanScape namespace, there exists a single outermost managed code class that encapsulates all media engine functionality. This is the VoipMediaEngine class.

The first task a VOIP application must do is instantiate an instance of the VoipMediaEngine class. Once the VoipMediaEngine class has been instantiated, the application can initialize and start using the VOIP Media Engine from managed code.

Most of the capabilities the media engine supports are exposed directly as methods available through the main VoipMediaEngine class object. However, not all media engine functionality is exposed by the main media engine object. That is where the internal classes come into play. The internal classes encapsulate media engine functionality not exposed by the main VoipMediaEngine class object. Your application will use a mix of methods that are exposed by the main VoipMediaEngine class object and any of the available internal classes.

Where to get additional information

For complete details associated with the managed code wrapper of the media engine, see the main VOIP Media Engine .NET Class Reference Section of this document using this LanScape namespace link. The LanScape namespace section contains all the documentation for all methods, properties, enumerations and classes exposed by the managed code support.




IMPORTANT:

Regardless of whether you are developing your VOIP application using managed code or native code, the VOIP Media Engine product is supplied with a “Software Developer’s Reference” manual in compiled HTML format (*.chm). Please see the “LanScape_Software_Developer's_Reference.chm” manual in your product installation directory. The software developer’s reference contains much more additional information that will make your development tasks easier.

All of the native API procedures and data types that are exposed by the media engine are fully documented. There is also additional information available in the reference that will assist you in architecting your application to get the most out of the media engine and to avoid deadlocks.