491 lines
16 KiB
C
491 lines
16 KiB
C
/*
|
|
* This file contains several sample settings especially for Windows
|
|
* Mobile and Symbian targets. You can include this file in your
|
|
* <pj/config_site.h> file.
|
|
*
|
|
* The Windows Mobile and Symbian settings will be activated
|
|
* automatically if you include this file.
|
|
*
|
|
* In addition, you may specify one of these macros (before including
|
|
* this file) to activate additional settings:
|
|
*
|
|
* #define PJ_CONFIG_NOKIA_APS_DIRECT
|
|
* Use this macro to activate the APS-Direct feature. Please see
|
|
* http://trac.pjsip.org/repos/wiki/Nokia_APS_VAS_Direct for more
|
|
* info.
|
|
*
|
|
* #define PJ_CONFIG_WIN32_WMME_DIRECT
|
|
* Configuration to activate "APS-Direct" media mode on Windows or
|
|
* Windows Mobile, useful for testing purposes only.
|
|
*/
|
|
|
|
|
|
/*
|
|
* Typical configuration for WinCE target.
|
|
*/
|
|
#if defined(PJ_WIN32_WINCE) && PJ_WIN32_WINCE!=0
|
|
|
|
/*
|
|
* PJLIB settings.
|
|
*/
|
|
|
|
/* Disable floating point support */
|
|
#define PJ_HAS_FLOATING_POINT 0
|
|
|
|
/*
|
|
* PJMEDIA settings
|
|
*/
|
|
|
|
/* Select codecs to disable */
|
|
#define PJMEDIA_HAS_L16_CODEC 0
|
|
#define PJMEDIA_HAS_ILBC_CODEC 0
|
|
|
|
/* We probably need more buffers on WM, so increase the limit */
|
|
#define PJMEDIA_SOUND_BUFFER_COUNT 32
|
|
|
|
/* Fine tune Speex's default settings for best performance/quality */
|
|
#define PJMEDIA_CODEC_SPEEX_DEFAULT_QUALITY 5
|
|
|
|
/* For CPU reason, disable speex AEC and use the echo suppressor. */
|
|
#define PJMEDIA_HAS_SPEEX_AEC 0
|
|
|
|
/* Previously, resampling is disabled due to performance reason and
|
|
* this condition prevented some 'light' wideband codecs (e.g: G722.1)
|
|
* to work along with narrowband codecs. Lately, some tests showed
|
|
* that 16kHz <-> 8kHz resampling using libresample small filter was
|
|
* affordable on ARM9 260 MHz, so here we decided to enable resampling.
|
|
* Note that it is important to make sure that libresample is created
|
|
* using small filter. For example PJSUA_DEFAULT_CODEC_QUALITY must
|
|
* be set to 3 or 4 so pjsua-lib will apply small filter resampling.
|
|
*/
|
|
//#define PJMEDIA_RESAMPLE_IMP PJMEDIA_RESAMPLE_NONE
|
|
#define PJMEDIA_RESAMPLE_IMP PJMEDIA_RESAMPLE_LIBRESAMPLE
|
|
|
|
/* Use the lighter WSOLA implementation */
|
|
#define PJMEDIA_WSOLA_IMP PJMEDIA_WSOLA_IMP_WSOLA_LITE
|
|
|
|
/*
|
|
* PJSIP settings.
|
|
*/
|
|
|
|
/* Set maximum number of dialog/transaction/calls to minimum to reduce
|
|
* memory usage
|
|
*/
|
|
#define PJSIP_MAX_TSX_COUNT 31
|
|
#define PJSIP_MAX_DIALOG_COUNT 31
|
|
#define PJSUA_MAX_CALLS 4
|
|
|
|
/*
|
|
* PJSUA settings
|
|
*/
|
|
|
|
/* Default codec quality, previously was set to 5, however it is now
|
|
* set to 4 to make sure pjsua instantiates resampler with small filter.
|
|
*/
|
|
#define PJSUA_DEFAULT_CODEC_QUALITY 4
|
|
|
|
/* Set maximum number of objects to minimum to reduce memory usage */
|
|
#define PJSUA_MAX_ACC 4
|
|
#define PJSUA_MAX_PLAYERS 4
|
|
#define PJSUA_MAX_RECORDERS 4
|
|
#define PJSUA_MAX_CONF_PORTS (PJSUA_MAX_CALLS+2*PJSUA_MAX_PLAYERS)
|
|
#define PJSUA_MAX_BUDDIES 32
|
|
|
|
#endif /* PJ_WIN32_WINCE */
|
|
|
|
|
|
/*
|
|
* Typical configuration for Symbian OS target
|
|
*/
|
|
#if defined(PJ_SYMBIAN) && PJ_SYMBIAN!=0
|
|
|
|
/*
|
|
* PJLIB settings.
|
|
*/
|
|
|
|
/* Disable floating point support */
|
|
#define PJ_HAS_FLOATING_POINT 0
|
|
|
|
/* Misc PJLIB setting */
|
|
#define PJ_MAXPATH 80
|
|
|
|
/* This is important for Symbian. Symbian lacks vsnprintf(), so
|
|
* if the log buffer is not long enough it's possible that
|
|
* large incoming packet will corrupt memory when the log tries
|
|
* to log the packet.
|
|
*/
|
|
#define PJ_LOG_MAX_SIZE (PJSIP_MAX_PKT_LEN+500)
|
|
|
|
/* Since we don't have threads, log buffer can use static buffer
|
|
* rather than stack
|
|
*/
|
|
#define PJ_LOG_USE_STACK_BUFFER 0
|
|
|
|
/* Disable check stack since it increases footprint */
|
|
#define PJ_OS_HAS_CHECK_STACK 0
|
|
|
|
|
|
/*
|
|
* PJMEDIA settings
|
|
*/
|
|
|
|
/* Disable non-Symbian audio devices */
|
|
#define PJMEDIA_AUDIO_DEV_HAS_PORTAUDIO 0
|
|
#define PJMEDIA_AUDIO_DEV_HAS_WMME 0
|
|
|
|
/* Select codecs to disable */
|
|
#define PJMEDIA_HAS_L16_CODEC 0
|
|
#define PJMEDIA_HAS_ILBC_CODEC 0
|
|
#define PJMEDIA_HAS_G722_CODEC 0
|
|
|
|
/* Fine tune Speex's default settings for best performance/quality */
|
|
#define PJMEDIA_CODEC_SPEEX_DEFAULT_QUALITY 5
|
|
|
|
/* For CPU reason, disable speex AEC and use the echo suppressor. */
|
|
#define PJMEDIA_HAS_SPEEX_AEC 0
|
|
|
|
/* Previously, resampling is disabled due to performance reason and
|
|
* this condition prevented some 'light' wideband codecs (e.g: G722.1)
|
|
* to work along with narrowband codecs. Lately, some tests showed
|
|
* that 16kHz <-> 8kHz resampling using libresample small filter was
|
|
* affordable on ARM9 222 MHz, so here we decided to enable resampling.
|
|
* Note that it is important to make sure that libresample is created
|
|
* using small filter. For example PJSUA_DEFAULT_CODEC_QUALITY must
|
|
* be set to 3 or 4 so pjsua-lib will apply small filter resampling.
|
|
*/
|
|
//#define PJMEDIA_RESAMPLE_IMP PJMEDIA_RESAMPLE_NONE
|
|
#define PJMEDIA_RESAMPLE_IMP PJMEDIA_RESAMPLE_LIBRESAMPLE
|
|
|
|
/* Use the lighter WSOLA implementation */
|
|
#define PJMEDIA_WSOLA_IMP PJMEDIA_WSOLA_IMP_WSOLA_LITE
|
|
|
|
/* We probably need more buffers especially if MDA audio backend
|
|
* is used, so increase the limit
|
|
*/
|
|
#define PJMEDIA_SOUND_BUFFER_COUNT 32
|
|
|
|
/*
|
|
* PJSIP settings.
|
|
*/
|
|
|
|
/* Disable safe module access, since we don't use multithreading */
|
|
#define PJSIP_SAFE_MODULE 0
|
|
|
|
/* Use large enough packet size */
|
|
#define PJSIP_MAX_PKT_LEN 2000
|
|
|
|
/* Symbian has problem with too many large blocks */
|
|
#define PJSIP_POOL_LEN_ENDPT 1000
|
|
#define PJSIP_POOL_INC_ENDPT 1000
|
|
#define PJSIP_POOL_RDATA_LEN 2000
|
|
#define PJSIP_POOL_RDATA_INC 2000
|
|
#define PJSIP_POOL_LEN_TDATA 2000
|
|
#define PJSIP_POOL_INC_TDATA 512
|
|
#define PJSIP_POOL_LEN_UA 2000
|
|
#define PJSIP_POOL_INC_UA 1000
|
|
#define PJSIP_POOL_TSX_LAYER_LEN 256
|
|
#define PJSIP_POOL_TSX_LAYER_INC 256
|
|
#define PJSIP_POOL_TSX_LEN 512
|
|
#define PJSIP_POOL_TSX_INC 128
|
|
|
|
/*
|
|
* PJSUA settings.
|
|
*/
|
|
|
|
/* Default codec quality, previously was set to 5, however it is now
|
|
* set to 4 to make sure pjsua instantiates resampler with small filter.
|
|
*/
|
|
#define PJSUA_DEFAULT_CODEC_QUALITY 4
|
|
|
|
/* Set maximum number of dialog/transaction/calls to minimum */
|
|
#define PJSIP_MAX_TSX_COUNT 31
|
|
#define PJSIP_MAX_DIALOG_COUNT 31
|
|
#define PJSUA_MAX_CALLS 4
|
|
|
|
/* Other pjsua settings */
|
|
#define PJSUA_MAX_ACC 4
|
|
#define PJSUA_MAX_PLAYERS 4
|
|
#define PJSUA_MAX_RECORDERS 4
|
|
#define PJSUA_MAX_CONF_PORTS (PJSUA_MAX_CALLS+2*PJSUA_MAX_PLAYERS)
|
|
#define PJSUA_MAX_BUDDIES 32
|
|
#endif
|
|
|
|
|
|
/*
|
|
* Additional configuration to activate APS-Direct feature for
|
|
* Nokia S60 target
|
|
*
|
|
* Please see http://trac.pjsip.org/repos/wiki/Nokia_APS_VAS_Direct
|
|
*/
|
|
#ifdef PJ_CONFIG_NOKIA_APS_DIRECT
|
|
|
|
/* MUST use switchboard rather than the conference bridge */
|
|
#define PJMEDIA_CONF_USE_SWITCH_BOARD 1
|
|
|
|
/* Enable APS sound device backend and disable MDA & VAS */
|
|
#define PJMEDIA_AUDIO_DEV_HAS_SYMB_MDA 0
|
|
#define PJMEDIA_AUDIO_DEV_HAS_SYMB_APS 1
|
|
#define PJMEDIA_AUDIO_DEV_HAS_SYMB_VAS 0
|
|
|
|
/* Enable passthrough codec framework */
|
|
#define PJMEDIA_HAS_PASSTHROUGH_CODECS 1
|
|
|
|
/* And selectively enable which codecs are supported by the handset */
|
|
#define PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMU 1
|
|
#define PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMA 1
|
|
#define PJMEDIA_HAS_PASSTHROUGH_CODEC_AMR 1
|
|
#define PJMEDIA_HAS_PASSTHROUGH_CODEC_G729 1
|
|
#define PJMEDIA_HAS_PASSTHROUGH_CODEC_ILBC 1
|
|
|
|
#endif
|
|
|
|
|
|
/*
|
|
* Additional configuration to activate VAS-Direct feature for
|
|
* Nokia S60 target
|
|
*
|
|
* Please see http://trac.pjsip.org/repos/wiki/Nokia_APS_VAS_Direct
|
|
*/
|
|
#ifdef PJ_CONFIG_NOKIA_VAS_DIRECT
|
|
|
|
/* MUST use switchboard rather than the conference bridge */
|
|
#define PJMEDIA_CONF_USE_SWITCH_BOARD 1
|
|
|
|
/* Enable VAS sound device backend and disable MDA & APS */
|
|
#define PJMEDIA_AUDIO_DEV_HAS_SYMB_MDA 0
|
|
#define PJMEDIA_AUDIO_DEV_HAS_SYMB_APS 0
|
|
#define PJMEDIA_AUDIO_DEV_HAS_SYMB_VAS 1
|
|
|
|
/* Enable passthrough codec framework */
|
|
#define PJMEDIA_HAS_PASSTHROUGH_CODECS 1
|
|
|
|
/* And selectively enable which codecs are supported by the handset */
|
|
#define PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMU 1
|
|
#define PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMA 1
|
|
#define PJMEDIA_HAS_PASSTHROUGH_CODEC_AMR 1
|
|
#define PJMEDIA_HAS_PASSTHROUGH_CODEC_G729 1
|
|
#define PJMEDIA_HAS_PASSTHROUGH_CODEC_ILBC 1
|
|
|
|
#endif
|
|
|
|
|
|
/*
|
|
* Configuration to activate "APS-Direct" media mode on Windows,
|
|
* useful for testing purposes only.
|
|
*/
|
|
#ifdef PJ_CONFIG_WIN32_WMME_DIRECT
|
|
|
|
/* MUST use switchboard rather than the conference bridge */
|
|
#define PJMEDIA_CONF_USE_SWITCH_BOARD 1
|
|
|
|
/* Only WMME supports the "direct" feature */
|
|
#define PJMEDIA_AUDIO_DEV_HAS_PORTAUDIO 0
|
|
#define PJMEDIA_AUDIO_DEV_HAS_WMME 1
|
|
|
|
/* Enable passthrough codec framework */
|
|
#define PJMEDIA_HAS_PASSTHROUGH_CODECS 1
|
|
|
|
/* Only PCMA and PCMU are supported by WMME-direct */
|
|
#define PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMU 1
|
|
#define PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMA 1
|
|
#define PJMEDIA_HAS_PASSTHROUGH_CODEC_AMR 0
|
|
#define PJMEDIA_HAS_PASSTHROUGH_CODEC_G729 0
|
|
#define PJMEDIA_HAS_PASSTHROUGH_CODEC_ILBC 0
|
|
|
|
#endif
|
|
|
|
/*
|
|
* iPhone sample settings.
|
|
*/
|
|
#if PJ_CONFIG_IPHONE
|
|
/*
|
|
* PJLIB settings.
|
|
*/
|
|
|
|
/* Both armv6 and armv7 has FP hardware support.
|
|
* See https://github.com/pjsip/pjproject/issues/1589 for more info
|
|
*/
|
|
#define PJ_HAS_FLOATING_POINT 1
|
|
|
|
/*
|
|
* PJMEDIA settings
|
|
*/
|
|
|
|
/* We have our own native CoreAudio backend */
|
|
#define PJMEDIA_AUDIO_DEV_HAS_PORTAUDIO 0
|
|
#define PJMEDIA_AUDIO_DEV_HAS_WMME 0
|
|
#define PJMEDIA_AUDIO_DEV_HAS_COREAUDIO 1
|
|
|
|
/* The CoreAudio backend has built-in echo canceller! */
|
|
#define PJMEDIA_HAS_SPEEX_AEC 0
|
|
|
|
/* Disable some codecs */
|
|
#define PJMEDIA_HAS_L16_CODEC 0
|
|
//#define PJMEDIA_HAS_G722_CODEC 0
|
|
|
|
/* Use the built-in CoreAudio's iLBC codec (yay!) */
|
|
#define PJMEDIA_HAS_ILBC_CODEC 1
|
|
#define PJMEDIA_ILBC_CODEC_USE_COREAUDIO 1
|
|
|
|
/* Fine tune Speex's default settings for best performance/quality */
|
|
#define PJMEDIA_CODEC_SPEEX_DEFAULT_QUALITY 5
|
|
|
|
/*
|
|
* PJSIP settings.
|
|
*/
|
|
|
|
/* Increase allowable packet size, just in case */
|
|
//#define PJSIP_MAX_PKT_LEN 2000
|
|
|
|
/*
|
|
* PJSUA settings.
|
|
*/
|
|
|
|
/* Default codec quality, previously was set to 5, however it is now
|
|
* set to 4 to make sure pjsua instantiates resampler with small filter.
|
|
*/
|
|
#define PJSUA_DEFAULT_CODEC_QUALITY 4
|
|
|
|
/* Set maximum number of dialog/transaction/calls to minimum */
|
|
#define PJSIP_MAX_TSX_COUNT 31
|
|
#define PJSIP_MAX_DIALOG_COUNT 31
|
|
#define PJSUA_MAX_CALLS 4
|
|
|
|
/* Other pjsua settings */
|
|
#define PJSUA_MAX_ACC 4
|
|
#define PJSUA_MAX_PLAYERS 4
|
|
#define PJSUA_MAX_RECORDERS 4
|
|
#define PJSUA_MAX_CONF_PORTS (PJSUA_MAX_CALLS+2*PJSUA_MAX_PLAYERS)
|
|
#define PJSUA_MAX_BUDDIES 32
|
|
|
|
#endif
|
|
|
|
/*
|
|
* Android sample settings.
|
|
*/
|
|
#if PJ_CONFIG_ANDROID
|
|
|
|
/*
|
|
* PJLIB settings.
|
|
*/
|
|
|
|
/* Disable floating point support */
|
|
#undef PJ_HAS_FLOATING_POINT
|
|
#define PJ_HAS_FLOATING_POINT 0
|
|
|
|
/*
|
|
* PJMEDIA settings
|
|
*/
|
|
|
|
/* We have our own OpenSL ES backend */
|
|
#define PJMEDIA_AUDIO_DEV_HAS_PORTAUDIO 0
|
|
#define PJMEDIA_AUDIO_DEV_HAS_WMME 0
|
|
#define PJMEDIA_AUDIO_DEV_HAS_OPENSL 0
|
|
#define PJMEDIA_AUDIO_DEV_HAS_ANDROID_JNI 1
|
|
|
|
/* Disable some codecs */
|
|
#define PJMEDIA_HAS_L16_CODEC 0
|
|
//#define PJMEDIA_HAS_G722_CODEC 0
|
|
|
|
/* Fine tune Speex's default settings for best performance/quality */
|
|
#define PJMEDIA_CODEC_SPEEX_DEFAULT_QUALITY 5
|
|
|
|
/* Using software clock for media flow can improve quality,
|
|
* i.e: more consistent RTP timing and less jitter/burst.
|
|
*/
|
|
#define PJSUA_DEFAULT_SND_USE_SW_CLOCK PJ_TRUE
|
|
|
|
/*
|
|
* PJSIP settings.
|
|
*/
|
|
|
|
/* Increase allowable packet size, just in case */
|
|
//#define PJSIP_MAX_PKT_LEN 2000
|
|
|
|
/*
|
|
* PJSUA settings.
|
|
*/
|
|
|
|
/* Default codec quality, previously was set to 5, however it is now
|
|
* set to 4 to make sure pjsua instantiates resampler with small filter.
|
|
*/
|
|
#define PJSUA_DEFAULT_CODEC_QUALITY 4
|
|
|
|
/* Set maximum number of dialog/transaction/calls to minimum */
|
|
#define PJSIP_MAX_TSX_COUNT 31
|
|
#define PJSIP_MAX_DIALOG_COUNT 31
|
|
#define PJSUA_MAX_CALLS 4
|
|
|
|
/* Separate worker thread for timer and ioqueue */
|
|
// #define PJSUA_SEPARATE_WORKER_FOR_TIMER 1
|
|
|
|
/* Other pjsua settings */
|
|
#define PJSUA_MAX_ACC 4
|
|
#define PJSUA_MAX_PLAYERS 4
|
|
#define PJSUA_MAX_RECORDERS 4
|
|
#define PJSUA_MAX_CONF_PORTS (PJSUA_MAX_CALLS+2*PJSUA_MAX_PLAYERS)
|
|
#define PJSUA_MAX_BUDDIES 32
|
|
#endif
|
|
|
|
|
|
/*
|
|
* BB10
|
|
*/
|
|
#if defined(PJ_CONFIG_BB10) && PJ_CONFIG_BB10
|
|
/* Quality 3 - 4 to use resampling small filter */
|
|
#define PJSUA_DEFAULT_CODEC_QUALITY 4
|
|
#define PJMEDIA_HAS_LEGACY_SOUND_API 0
|
|
#undef PJMEDIA_HAS_SPEEX_AEC
|
|
#define PJMEDIA_HAS_SPEEX_AEC 0
|
|
#undef PJMEDIA_AUDIO_DEV_HAS_PORTAUDIO
|
|
#define PJMEDIA_AUDIO_DEV_HAS_PORTAUDIO 0
|
|
#undef PJMEDIA_AUDIO_DEV_HAS_ALSA
|
|
#define PJMEDIA_AUDIO_DEV_HAS_ALSA 0
|
|
#endif
|
|
|
|
|
|
/*
|
|
* Minimum size
|
|
*/
|
|
#ifdef PJ_CONFIG_MINIMAL_SIZE
|
|
|
|
# undef PJ_OS_HAS_CHECK_STACK
|
|
# define PJ_OS_HAS_CHECK_STACK 0
|
|
# define PJ_LOG_MAX_LEVEL 0
|
|
# define PJ_HAS_ERROR_STRING 0
|
|
# undef PJ_IOQUEUE_MAX_HANDLES
|
|
/* Putting max handles to lower than 32 will make pj_fd_set_t size smaller
|
|
* than native fdset_t and will trigger assertion on sock_select.c.
|
|
*/
|
|
# define PJ_IOQUEUE_MAX_HANDLES 32
|
|
# define PJ_CRC32_HAS_TABLES 0
|
|
# define PJSIP_MAX_TSX_COUNT 15
|
|
# define PJSIP_MAX_DIALOG_COUNT 15
|
|
# define PJSIP_UDP_SO_SNDBUF_SIZE 4000
|
|
# define PJSIP_UDP_SO_RCVBUF_SIZE 4000
|
|
# define PJMEDIA_HAS_ALAW_ULAW_TABLE 0
|
|
|
|
#elif defined(PJ_CONFIG_MAXIMUM_SPEED)
|
|
# define PJ_SCANNER_USE_BITWISE 0
|
|
# undef PJ_OS_HAS_CHECK_STACK
|
|
# define PJ_OS_HAS_CHECK_STACK 0
|
|
# define PJ_LOG_MAX_LEVEL 3
|
|
# define PJ_IOQUEUE_MAX_HANDLES 5000
|
|
# define PJSIP_MAX_TSX_COUNT ((640*1024)-1)
|
|
# define PJSIP_MAX_DIALOG_COUNT ((640*1024)-1)
|
|
# define PJSIP_UDP_SO_SNDBUF_SIZE (24*1024*1024)
|
|
# define PJSIP_UDP_SO_RCVBUF_SIZE (24*1024*1024)
|
|
# define PJ_DEBUG 0
|
|
# define PJSIP_SAFE_MODULE 0
|
|
# define PJ_HAS_STRICMP_ALNUM 0
|
|
# define PJSIP_UNESCAPE_IN_PLACE 1
|
|
|
|
# if defined(PJ_WIN32) || defined(PJ_WIN64)
|
|
# define PJSIP_MAX_NET_EVENTS 10
|
|
# endif
|
|
|
|
# define PJSUA_MAX_CALLS 512
|
|
|
|
#endif
|
|
|