1 /* 2 * This file contains several sample settings especially for Windows 3 * Mobile and Symbian targets. You can include this file in your 4 * <pj/config_site.h> file. 5 * 6 * The Windows Mobile and Symbian settings will be activated 7 * automatically if you include this file. 8 * 9 * In addition, you may specify one of these macros (before including 10 * this file) to activate additional settings: 11 * 12 * #define PJ_CONFIG_NOKIA_APS_DIRECT 13 * Use this macro to activate the APS-Direct feature. Please see 14 * http://trac.pjsip.org/repos/wiki/Nokia_APS_VAS_Direct for more 15 * info. 16 * 17 * #define PJ_CONFIG_WIN32_WMME_DIRECT 18 * Configuration to activate "APS-Direct" media mode on Windows or 19 * Windows Mobile, useful for testing purposes only. 20 */ 21 22 23 /* 24 * Typical configuration for WinCE target. 25 */ 26 #if defined(PJ_WIN32_WINCE) && PJ_WIN32_WINCE!=0 27 28 /* 29 * PJLIB settings. 30 */ 31 32 /* Disable floating point support */ 33 #define PJ_HAS_FLOATING_POINT 0 34 35 /* 36 * PJMEDIA settings 37 */ 38 39 /* Select codecs to disable */ 40 #define PJMEDIA_HAS_L16_CODEC 0 41 #define PJMEDIA_HAS_ILBC_CODEC 0 42 43 /* We probably need more buffers on WM, so increase the limit */ 44 #define PJMEDIA_SOUND_BUFFER_COUNT 32 45 46 /* Fine tune Speex's default settings for best performance/quality */ 47 #define PJMEDIA_CODEC_SPEEX_DEFAULT_QUALITY 5 48 49 /* For CPU reason, disable speex AEC and use the echo suppressor. */ 50 #define PJMEDIA_HAS_SPEEX_AEC 0 51 52 /* Previously, resampling is disabled due to performance reason and 53 * this condition prevented some 'light' wideband codecs (e.g: G722.1) 54 * to work along with narrowband codecs. Lately, some tests showed 55 * that 16kHz <-> 8kHz resampling using libresample small filter was 56 * affordable on ARM9 260 MHz, so here we decided to enable resampling. 57 * Note that it is important to make sure that libresample is created 58 * using small filter. For example PJSUA_DEFAULT_CODEC_QUALITY must 59 * be set to 3 or 4 so pjsua-lib will apply small filter resampling. 60 */ 61 //#define PJMEDIA_RESAMPLE_IMP PJMEDIA_RESAMPLE_NONE 62 #define PJMEDIA_RESAMPLE_IMP PJMEDIA_RESAMPLE_LIBRESAMPLE 63 64 /* Use the lighter WSOLA implementation */ 65 #define PJMEDIA_WSOLA_IMP PJMEDIA_WSOLA_IMP_WSOLA_LITE 66 67 /* 68 * PJSIP settings. 69 */ 70 71 /* Set maximum number of dialog/transaction/calls to minimum to reduce 72 * memory usage 73 */ 74 #define PJSIP_MAX_TSX_COUNT 31 75 #define PJSIP_MAX_DIALOG_COUNT 31 76 #define PJSUA_MAX_CALLS 4 77 78 /* 79 * PJSUA settings 80 */ 81 82 /* Default codec quality, previously was set to 5, however it is now 83 * set to 4 to make sure pjsua instantiates resampler with small filter. 84 */ 85 #define PJSUA_DEFAULT_CODEC_QUALITY 4 86 87 /* Set maximum number of objects to minimum to reduce memory usage */ 88 #define PJSUA_MAX_ACC 4 89 #define PJSUA_MAX_PLAYERS 4 90 #define PJSUA_MAX_RECORDERS 4 91 #define PJSUA_MAX_CONF_PORTS (PJSUA_MAX_CALLS+2*PJSUA_MAX_PLAYERS) 92 #define PJSUA_MAX_BUDDIES 32 93 94 #endif /* PJ_WIN32_WINCE */ 95 96 97 /* 98 * Typical configuration for Symbian OS target 99 */ 100 #if defined(PJ_SYMBIAN) && PJ_SYMBIAN!=0 101 102 /* 103 * PJLIB settings. 104 */ 105 106 /* Disable floating point support */ 107 #define PJ_HAS_FLOATING_POINT 0 108 109 /* Misc PJLIB setting */ 110 #define PJ_MAXPATH 80 111 112 /* This is important for Symbian. Symbian lacks vsnprintf(), so 113 * if the log buffer is not long enough it's possible that 114 * large incoming packet will corrupt memory when the log tries 115 * to log the packet. 116 */ 117 #define PJ_LOG_MAX_SIZE (PJSIP_MAX_PKT_LEN+500) 118 119 /* Since we don't have threads, log buffer can use static buffer 120 * rather than stack 121 */ 122 #define PJ_LOG_USE_STACK_BUFFER 0 123 124 /* Disable check stack since it increases footprint */ 125 #define PJ_OS_HAS_CHECK_STACK 0 126 127 128 /* 129 * PJMEDIA settings 130 */ 131 132 /* Disable non-Symbian audio devices */ 133 #define PJMEDIA_AUDIO_DEV_HAS_PORTAUDIO 0 134 #define PJMEDIA_AUDIO_DEV_HAS_WMME 0 135 136 /* Select codecs to disable */ 137 #define PJMEDIA_HAS_L16_CODEC 0 138 #define PJMEDIA_HAS_ILBC_CODEC 0 139 #define PJMEDIA_HAS_G722_CODEC 0 140 141 /* Fine tune Speex's default settings for best performance/quality */ 142 #define PJMEDIA_CODEC_SPEEX_DEFAULT_QUALITY 5 143 144 /* For CPU reason, disable speex AEC and use the echo suppressor. */ 145 #define PJMEDIA_HAS_SPEEX_AEC 0 146 147 /* Previously, resampling is disabled due to performance reason and 148 * this condition prevented some 'light' wideband codecs (e.g: G722.1) 149 * to work along with narrowband codecs. Lately, some tests showed 150 * that 16kHz <-> 8kHz resampling using libresample small filter was 151 * affordable on ARM9 222 MHz, so here we decided to enable resampling. 152 * Note that it is important to make sure that libresample is created 153 * using small filter. For example PJSUA_DEFAULT_CODEC_QUALITY must 154 * be set to 3 or 4 so pjsua-lib will apply small filter resampling. 155 */ 156 //#define PJMEDIA_RESAMPLE_IMP PJMEDIA_RESAMPLE_NONE 157 #define PJMEDIA_RESAMPLE_IMP PJMEDIA_RESAMPLE_LIBRESAMPLE 158 159 /* Use the lighter WSOLA implementation */ 160 #define PJMEDIA_WSOLA_IMP PJMEDIA_WSOLA_IMP_WSOLA_LITE 161 162 /* We probably need more buffers especially if MDA audio backend 163 * is used, so increase the limit 164 */ 165 #define PJMEDIA_SOUND_BUFFER_COUNT 32 166 167 /* 168 * PJSIP settings. 169 */ 170 171 /* Disable safe module access, since we don't use multithreading */ 172 #define PJSIP_SAFE_MODULE 0 173 174 /* Use large enough packet size */ 175 #define PJSIP_MAX_PKT_LEN 2000 176 177 /* Symbian has problem with too many large blocks */ 178 #define PJSIP_POOL_LEN_ENDPT 1000 179 #define PJSIP_POOL_INC_ENDPT 1000 180 #define PJSIP_POOL_RDATA_LEN 2000 181 #define PJSIP_POOL_RDATA_INC 2000 182 #define PJSIP_POOL_LEN_TDATA 2000 183 #define PJSIP_POOL_INC_TDATA 512 184 #define PJSIP_POOL_LEN_UA 2000 185 #define PJSIP_POOL_INC_UA 1000 186 #define PJSIP_POOL_TSX_LAYER_LEN 256 187 #define PJSIP_POOL_TSX_LAYER_INC 256 188 #define PJSIP_POOL_TSX_LEN 512 189 #define PJSIP_POOL_TSX_INC 128 190 191 /* 192 * PJSUA settings. 193 */ 194 195 /* Default codec quality, previously was set to 5, however it is now 196 * set to 4 to make sure pjsua instantiates resampler with small filter. 197 */ 198 #define PJSUA_DEFAULT_CODEC_QUALITY 4 199 200 /* Set maximum number of dialog/transaction/calls to minimum */ 201 #define PJSIP_MAX_TSX_COUNT 31 202 #define PJSIP_MAX_DIALOG_COUNT 31 203 #define PJSUA_MAX_CALLS 4 204 205 /* Other pjsua settings */ 206 #define PJSUA_MAX_ACC 4 207 #define PJSUA_MAX_PLAYERS 4 208 #define PJSUA_MAX_RECORDERS 4 209 #define PJSUA_MAX_CONF_PORTS (PJSUA_MAX_CALLS+2*PJSUA_MAX_PLAYERS) 210 #define PJSUA_MAX_BUDDIES 32 211 #endif 212 213 214 /* 215 * Additional configuration to activate APS-Direct feature for 216 * Nokia S60 target 217 * 218 * Please see http://trac.pjsip.org/repos/wiki/Nokia_APS_VAS_Direct 219 */ 220 #ifdef PJ_CONFIG_NOKIA_APS_DIRECT 221 222 /* MUST use switchboard rather than the conference bridge */ 223 #define PJMEDIA_CONF_USE_SWITCH_BOARD 1 224 225 /* Enable APS sound device backend and disable MDA & VAS */ 226 #define PJMEDIA_AUDIO_DEV_HAS_SYMB_MDA 0 227 #define PJMEDIA_AUDIO_DEV_HAS_SYMB_APS 1 228 #define PJMEDIA_AUDIO_DEV_HAS_SYMB_VAS 0 229 230 /* Enable passthrough codec framework */ 231 #define PJMEDIA_HAS_PASSTHROUGH_CODECS 1 232 233 /* And selectively enable which codecs are supported by the handset */ 234 #define PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMU 1 235 #define PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMA 1 236 #define PJMEDIA_HAS_PASSTHROUGH_CODEC_AMR 1 237 #define PJMEDIA_HAS_PASSTHROUGH_CODEC_G729 1 238 #define PJMEDIA_HAS_PASSTHROUGH_CODEC_ILBC 1 239 240 #endif 241 242 243 /* 244 * Additional configuration to activate VAS-Direct feature for 245 * Nokia S60 target 246 * 247 * Please see http://trac.pjsip.org/repos/wiki/Nokia_APS_VAS_Direct 248 */ 249 #ifdef PJ_CONFIG_NOKIA_VAS_DIRECT 250 251 /* MUST use switchboard rather than the conference bridge */ 252 #define PJMEDIA_CONF_USE_SWITCH_BOARD 1 253 254 /* Enable VAS sound device backend and disable MDA & APS */ 255 #define PJMEDIA_AUDIO_DEV_HAS_SYMB_MDA 0 256 #define PJMEDIA_AUDIO_DEV_HAS_SYMB_APS 0 257 #define PJMEDIA_AUDIO_DEV_HAS_SYMB_VAS 1 258 259 /* Enable passthrough codec framework */ 260 #define PJMEDIA_HAS_PASSTHROUGH_CODECS 1 261 262 /* And selectively enable which codecs are supported by the handset */ 263 #define PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMU 1 264 #define PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMA 1 265 #define PJMEDIA_HAS_PASSTHROUGH_CODEC_AMR 1 266 #define PJMEDIA_HAS_PASSTHROUGH_CODEC_G729 1 267 #define PJMEDIA_HAS_PASSTHROUGH_CODEC_ILBC 1 268 269 #endif 270 271 272 /* 273 * Configuration to activate "APS-Direct" media mode on Windows, 274 * useful for testing purposes only. 275 */ 276 #ifdef PJ_CONFIG_WIN32_WMME_DIRECT 277 278 /* MUST use switchboard rather than the conference bridge */ 279 #define PJMEDIA_CONF_USE_SWITCH_BOARD 1 280 281 /* Only WMME supports the "direct" feature */ 282 #define PJMEDIA_AUDIO_DEV_HAS_PORTAUDIO 0 283 #define PJMEDIA_AUDIO_DEV_HAS_WMME 1 284 285 /* Enable passthrough codec framework */ 286 #define PJMEDIA_HAS_PASSTHROUGH_CODECS 1 287 288 /* Only PCMA and PCMU are supported by WMME-direct */ 289 #define PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMU 1 290 #define PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMA 1 291 #define PJMEDIA_HAS_PASSTHROUGH_CODEC_AMR 0 292 #define PJMEDIA_HAS_PASSTHROUGH_CODEC_G729 0 293 #define PJMEDIA_HAS_PASSTHROUGH_CODEC_ILBC 0 294 295 #endif 296 297 /* 298 * iPhone sample settings. 299 */ 300 #if PJ_CONFIG_IPHONE 301 /* 302 * PJLIB settings. 303 */ 304 305 /* Both armv6 and armv7 has FP hardware support. 306 * See https://trac.pjsip.org/repos/ticket/1589 for more info 307 */ 308 #define PJ_HAS_FLOATING_POINT 1 309 310 /* 311 * PJMEDIA settings 312 */ 313 314 /* We have our own native CoreAudio backend */ 315 #define PJMEDIA_AUDIO_DEV_HAS_PORTAUDIO 0 316 #define PJMEDIA_AUDIO_DEV_HAS_WMME 0 317 #define PJMEDIA_AUDIO_DEV_HAS_COREAUDIO 1 318 319 /* The CoreAudio backend has built-in echo canceller! */ 320 #define PJMEDIA_HAS_SPEEX_AEC 0 321 322 /* Disable some codecs */ 323 #define PJMEDIA_HAS_L16_CODEC 0 324 //#define PJMEDIA_HAS_G722_CODEC 0 325 326 /* Use the built-in CoreAudio's iLBC codec (yay!) */ 327 #define PJMEDIA_HAS_ILBC_CODEC 1 328 #define PJMEDIA_ILBC_CODEC_USE_COREAUDIO 1 329 330 /* Fine tune Speex's default settings for best performance/quality */ 331 #define PJMEDIA_CODEC_SPEEX_DEFAULT_QUALITY 5 332 333 /* 334 * PJSIP settings. 335 */ 336 337 /* Increase allowable packet size, just in case */ 338 //#define PJSIP_MAX_PKT_LEN 2000 339 340 /* 341 * PJSUA settings. 342 */ 343 344 /* Default codec quality, previously was set to 5, however it is now 345 * set to 4 to make sure pjsua instantiates resampler with small filter. 346 */ 347 #define PJSUA_DEFAULT_CODEC_QUALITY 4 348 349 /* Set maximum number of dialog/transaction/calls to minimum */ 350 #define PJSIP_MAX_TSX_COUNT 31 351 #define PJSIP_MAX_DIALOG_COUNT 31 352 #define PJSUA_MAX_CALLS 4 353 354 /* Other pjsua settings */ 355 #define PJSUA_MAX_ACC 4 356 #define PJSUA_MAX_PLAYERS 4 357 #define PJSUA_MAX_RECORDERS 4 358 #define PJSUA_MAX_CONF_PORTS (PJSUA_MAX_CALLS+2*PJSUA_MAX_PLAYERS) 359 #define PJSUA_MAX_BUDDIES 32 360 361 #endif 362 363 /* 364 * Android sample settings. 365 */ 366 #if PJ_CONFIG_ANDROID 367 368 /* 369 * PJLIB settings. 370 */ 371 372 /* Disable floating point support */ 373 #undef PJ_HAS_FLOATING_POINT 374 #define PJ_HAS_FLOATING_POINT 0 375 376 /* 377 * PJMEDIA settings 378 */ 379 380 /* We have our own OpenSL ES backend */ 381 #define PJMEDIA_AUDIO_DEV_HAS_PORTAUDIO 0 382 #define PJMEDIA_AUDIO_DEV_HAS_WMME 0 383 #define PJMEDIA_AUDIO_DEV_HAS_OPENSL 0 384 #define PJMEDIA_AUDIO_DEV_HAS_ANDROID_JNI 1 385 386 /* Disable some codecs */ 387 #define PJMEDIA_HAS_L16_CODEC 0 388 //#define PJMEDIA_HAS_G722_CODEC 0 389 390 /* Fine tune Speex's default settings for best performance/quality */ 391 #define PJMEDIA_CODEC_SPEEX_DEFAULT_QUALITY 5 392 393 /* 394 * PJSIP settings. 395 */ 396 397 /* Increase allowable packet size, just in case */ 398 //#define PJSIP_MAX_PKT_LEN 2000 399 400 /* 401 * PJSUA settings. 402 */ 403 404 /* Default codec quality, previously was set to 5, however it is now 405 * set to 4 to make sure pjsua instantiates resampler with small filter. 406 */ 407 #define PJSUA_DEFAULT_CODEC_QUALITY 4 408 409 /* Set maximum number of dialog/transaction/calls to minimum */ 410 #define PJSIP_MAX_TSX_COUNT 31 411 #define PJSIP_MAX_DIALOG_COUNT 31 412 #define PJSUA_MAX_CALLS 4 413 414 /* Separate worker thread for timer and ioqueue */ 415 // #define PJSUA_SEPARATE_WORKER_FOR_TIMER 1 416 417 /* Other pjsua settings */ 418 #define PJSUA_MAX_ACC 4 419 #define PJSUA_MAX_PLAYERS 4 420 #define PJSUA_MAX_RECORDERS 4 421 #define PJSUA_MAX_CONF_PORTS (PJSUA_MAX_CALLS+2*PJSUA_MAX_PLAYERS) 422 #define PJSUA_MAX_BUDDIES 32 423 #endif 424 425 426 /* 427 * BB10 428 */ 429 #if defined(PJ_CONFIG_BB10) && PJ_CONFIG_BB10 430 /* Quality 3 - 4 to use resampling small filter */ 431 #define PJSUA_DEFAULT_CODEC_QUALITY 4 432 #define PJMEDIA_HAS_LEGACY_SOUND_API 0 433 #undef PJMEDIA_HAS_SPEEX_AEC 434 #define PJMEDIA_HAS_SPEEX_AEC 0 435 #undef PJMEDIA_AUDIO_DEV_HAS_PORTAUDIO 436 #define PJMEDIA_AUDIO_DEV_HAS_PORTAUDIO 0 437 #undef PJMEDIA_AUDIO_DEV_HAS_ALSA 438 #define PJMEDIA_AUDIO_DEV_HAS_ALSA 0 439 #endif 440 441 442 /* 443 * Minimum size 444 */ 445 #ifdef PJ_CONFIG_MINIMAL_SIZE 446 447 # undef PJ_OS_HAS_CHECK_STACK 448 # define PJ_OS_HAS_CHECK_STACK 0 449 # define PJ_LOG_MAX_LEVEL 0 450 # define PJ_ENABLE_EXTRA_CHECK 0 451 # define PJ_HAS_ERROR_STRING 0 452 # undef PJ_IOQUEUE_MAX_HANDLES 453 /* Putting max handles to lower than 32 will make pj_fd_set_t size smaller 454 * than native fdset_t and will trigger assertion on sock_select.c. 455 */ 456 # define PJ_IOQUEUE_MAX_HANDLES 32 457 # define PJ_CRC32_HAS_TABLES 0 458 # define PJSIP_MAX_TSX_COUNT 15 459 # define PJSIP_MAX_DIALOG_COUNT 15 460 # define PJSIP_UDP_SO_SNDBUF_SIZE 4000 461 # define PJSIP_UDP_SO_RCVBUF_SIZE 4000 462 # define PJMEDIA_HAS_ALAW_ULAW_TABLE 0 463 464 #elif defined(PJ_CONFIG_MAXIMUM_SPEED) 465 # define PJ_SCANNER_USE_BITWISE 0 466 # undef PJ_OS_HAS_CHECK_STACK 467 # define PJ_OS_HAS_CHECK_STACK 0 468 # define PJ_LOG_MAX_LEVEL 3 469 # define PJ_ENABLE_EXTRA_CHECK 0 470 # define PJ_IOQUEUE_MAX_HANDLES 5000 471 # define PJSIP_MAX_TSX_COUNT ((640*1024)-1) 472 # define PJSIP_MAX_DIALOG_COUNT ((640*1024)-1) 473 # define PJSIP_UDP_SO_SNDBUF_SIZE (24*1024*1024) 474 # define PJSIP_UDP_SO_RCVBUF_SIZE (24*1024*1024) 475 # define PJ_DEBUG 0 476 # define PJSIP_SAFE_MODULE 0 477 # define PJ_HAS_STRICMP_ALNUM 0 478 # define PJSIP_UNESCAPE_IN_PLACE 1 479 480 # if defined(PJ_WIN32) || defined(PJ_WIN64) 481 # define PJSIP_MAX_NET_EVENTS 10 482 # endif 483 484 # define PJSUA_MAX_CALLS 512 485 486 #endif 487 488