Build Instructions

Requirements

Tools and SDKs

  • Microsoft Visual Studio 2015 Update 3

  • UWP SDK for UWP/Windows 10 target.

  • Windows Phone 8 SDK for Windows Phone 8 target.

  • Configuring device for development:

    • for Windows 10, follow the instructions here

    • for Windows Phone 8.x, follow the instructions here

Host requirements

For the host, the following are required:

  • Operating System type : 64-bit Windows 8 Professional or higher.

Build Preparation

  1. Getting the source code if you haven’t already.

  2. Set your config_site.h to the following:

#define PJMEDIA_AUDIO_DEV_HAS_PORTAUDIO   0
#define PJMEDIA_AUDIO_DEV_HAS_WMME        0
#define PJMEDIA_AUDIO_DEV_HAS_WASAPI      1

Building and running the Projects

UWP

Follow the steps below to build the libraries and sample application using Visual Studio 2015:

  1. Using any text editor, open buildvspjproject-vs14-api-def.props and set API_Family to UWP, i.e:

    ...
    <API_Family>UWP</API_Family>
    ...
    

    Note

    If pjproject-vs14.sln solution is opened, you need to close and reopen the solution after changing API family.

  2. Open pjproject-vs14.sln solution file.

  3. Set solution platform to:

    • ARM to build for UWP/Windows 10 device

    • Win32 to build for emulator

  4. Set Voip as Startup Project.

  5. Build the project. This will build Voip application and all libraries needed by Voip.

  6. Run

Windows Phone 8.x

Follow the steps below to build the libraries and sample application using Visual Studio 2015:

  1. Using any text editor, open build/vs/pjproject-vs14-api-def.props and set API_Family to Winphone8, i.e:

    ...
    <API_Family>Winphone8</API_Family>
    ...
    

    Note

    If pjproject-vs14.sln solution is opened, you need to close and reopen the solution after changing API family.

  2. Open pjproject-vs14.sln solution file.

  3. Set ARM as the solution platform.

  4. Set pjsua_cli_wp as Startup Project.

  5. Build the project. This will build pjsua_cli_wp application and all libraries needed by pjsua_cli_wp.

  6. Run/deploy the pjsua_cli_wp application on a registered Windows phone device.

  7. You will see telnet instructions on the device’s screen. Telnet to this address to operate the application. See CLI Manual for command reference.

Debugging Application

To Debug native(C/C++) part of the application:

  • Set the Debugger type of project properties [Debug menu] to Native Only.

To Debug managed(C#) part of the application:

  • Set the Debugger type of project properties [Debug menu] to Managed Only.

Assert Problem on Debugging Native Code

As described here, assertion will cause process exiting (instead of just stopping). Adding the following code in the application would make process stopping on assertion:

#ifndef NDEBUG
signal(SIGABRT, [](int)
{
   __debugbreak();
});
#endif

Other References