wiki:Getting-Started/Windows-Phone
Last modified 10 months ago Last modified on 01/24/17 22:48:04

Getting Started: Building for UWP and Windows Phone 8.x

  1. Build Preparation
  2. Requirements
    1. Tools and SDKs
    2. Host requirements
  3. Building and running the Projects
    1. UWP
    2. Windows Phone 8.x
  4. Debugging Application
    1. Assert Problem on Debugging Native Code
  5. Other References

Build Preparation

  1. Get the source code, if you haven't already. UWP and WP8 support is available since PJSIP 2.6.
  2. It is important that you create a config_site.h as described in Build Preparation

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.

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 build\vs\pjproject-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 PJSUA 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