Benny Prijono | edba079 | 2006-08-06 18:23:56 +0000 | [diff] [blame] | 1 | /* |
Benny Prijono | 64f9138 | 2009-03-05 18:02:28 +0000 | [diff] [blame] | 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. |
Benny Prijono | edba079 | 2006-08-06 18:23:56 +0000 | [diff] [blame] | 20 | */ |
| 21 | |
| 22 | |
| 23 | /* |
| 24 | * Typical configuration for WinCE target. |
| 25 | */ |
| 26 | #if defined(PJ_WIN32_WINCE) && PJ_WIN32_WINCE!=0 |
Benny Prijono | edba079 | 2006-08-06 18:23:56 +0000 | [diff] [blame] | 27 | |
Benny Prijono | 64f9138 | 2009-03-05 18:02:28 +0000 | [diff] [blame] | 28 | /* |
| 29 | * PJLIB settings. |
| 30 | */ |
Nanang Izzuddin | 9dbad15 | 2008-06-10 18:56:10 +0000 | [diff] [blame] | 31 | |
Benny Prijono | 64f9138 | 2009-03-05 18:02:28 +0000 | [diff] [blame] | 32 | /* Disable floating point support */ |
| 33 | #define PJ_HAS_FLOATING_POINT 0 |
Benny Prijono | 36e76ef | 2008-08-13 13:56:24 +0000 | [diff] [blame] | 34 | |
Benny Prijono | 64f9138 | 2009-03-05 18:02:28 +0000 | [diff] [blame] | 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 | |
Nanang Izzuddin | c91cd64 | 2009-05-06 18:59:31 +0000 | [diff] [blame^] | 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 |
Benny Prijono | 64f9138 | 2009-03-05 18:02:28 +0000 | [diff] [blame] | 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 | |
Nanang Izzuddin | c91cd64 | 2009-05-06 18:59:31 +0000 | [diff] [blame^] | 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 |
Benny Prijono | 64f9138 | 2009-03-05 18:02:28 +0000 | [diff] [blame] | 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 */ |
Benny Prijono | edba079 | 2006-08-06 18:23:56 +0000 | [diff] [blame] | 95 | |
Benny Prijono | 5d54264 | 2007-05-02 18:54:19 +0000 | [diff] [blame] | 96 | |
Benny Prijono | 5feee2e | 2007-05-01 16:54:54 +0000 | [diff] [blame] | 97 | /* |
| 98 | * Typical configuration for Symbian OS target |
| 99 | */ |
| 100 | #if defined(PJ_SYMBIAN) && PJ_SYMBIAN!=0 |
Benny Prijono | ba5926a | 2007-05-02 11:29:37 +0000 | [diff] [blame] | 101 | |
Benny Prijono | 64f9138 | 2009-03-05 18:02:28 +0000 | [diff] [blame] | 102 | /* |
| 103 | * PJLIB settings. |
| 104 | */ |
Benny Prijono | ba5926a | 2007-05-02 11:29:37 +0000 | [diff] [blame] | 105 | |
Benny Prijono | 64f9138 | 2009-03-05 18:02:28 +0000 | [diff] [blame] | 106 | /* Disable floating point support */ |
| 107 | #define PJ_HAS_FLOATING_POINT 0 |
Benny Prijono | 5d54264 | 2007-05-02 18:54:19 +0000 | [diff] [blame] | 108 | |
Benny Prijono | 22e6832 | 2008-01-02 07:57:23 +0000 | [diff] [blame] | 109 | /* Misc PJLIB setting */ |
Benny Prijono | 64f9138 | 2009-03-05 18:02:28 +0000 | [diff] [blame] | 110 | #define PJ_MAXPATH 80 |
Benny Prijono | 5d54264 | 2007-05-02 18:54:19 +0000 | [diff] [blame] | 111 | |
Benny Prijono | 55c6ecc | 2008-12-18 13:15:32 +0000 | [diff] [blame] | 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 | */ |
Benny Prijono | 64f9138 | 2009-03-05 18:02:28 +0000 | [diff] [blame] | 117 | #define PJ_LOG_MAX_SIZE (PJSIP_MAX_PKT_LEN+500) |
Benny Prijono | 55c6ecc | 2008-12-18 13:15:32 +0000 | [diff] [blame] | 118 | |
Benny Prijono | 64f9138 | 2009-03-05 18:02:28 +0000 | [diff] [blame] | 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 |
Benny Prijono | 5d54264 | 2007-05-02 18:54:19 +0000 | [diff] [blame] | 123 | |
Benny Prijono | 64f9138 | 2009-03-05 18:02:28 +0000 | [diff] [blame] | 124 | /* Disable check stack since it increases footprint */ |
| 125 | #define PJ_OS_HAS_CHECK_STACK 0 |
| 126 | |
| 127 | |
| 128 | /* |
| 129 | * PJMEDIA settings |
| 130 | */ |
| 131 | |
Nanang Izzuddin | da37ea3 | 2009-03-06 16:24:43 +0000 | [diff] [blame] | 132 | /* Disable non-Symbian audio devices */ |
| 133 | #define PJMEDIA_AUDIO_DEV_HAS_PORTAUDIO 0 |
| 134 | #define PJMEDIA_AUDIO_DEV_HAS_WMME 0 |
| 135 | |
Benny Prijono | 64f9138 | 2009-03-05 18:02:28 +0000 | [diff] [blame] | 136 | /* Select codecs to disable */ |
| 137 | #define PJMEDIA_HAS_L16_CODEC 0 |
| 138 | #define PJMEDIA_HAS_ILBC_CODEC 0 |
Nanang Izzuddin | da37ea3 | 2009-03-06 16:24:43 +0000 | [diff] [blame] | 139 | #define PJMEDIA_HAS_G722_CODEC 0 |
Benny Prijono | 64f9138 | 2009-03-05 18:02:28 +0000 | [diff] [blame] | 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 | |
Nanang Izzuddin | 494ff7f | 2009-05-06 15:37:47 +0000 | [diff] [blame] | 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 |
Benny Prijono | 64f9138 | 2009-03-05 18:02:28 +0000 | [diff] [blame] | 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 | /* Increase allowable packet size, just in case */ |
| 175 | #define PJSIP_MAX_PKT_LEN 2000 |
Benny Prijono | 22e6832 | 2008-01-02 07:57:23 +0000 | [diff] [blame] | 176 | |
Benny Prijono | 5d54264 | 2007-05-02 18:54:19 +0000 | [diff] [blame] | 177 | /* Symbian has problem with too many large blocks */ |
Benny Prijono | 64f9138 | 2009-03-05 18:02:28 +0000 | [diff] [blame] | 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 | |
Nanang Izzuddin | 494ff7f | 2009-05-06 15:37:47 +0000 | [diff] [blame] | 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 |
Benny Prijono | 72a81aa | 2007-05-02 23:06:11 +0000 | [diff] [blame] | 199 | |
| 200 | /* Set maximum number of dialog/transaction/calls to minimum */ |
Benny Prijono | 64f9138 | 2009-03-05 18:02:28 +0000 | [diff] [blame] | 201 | #define PJSIP_MAX_TSX_COUNT 31 |
| 202 | #define PJSIP_MAX_DIALOG_COUNT 31 |
| 203 | #define PJSUA_MAX_CALLS 4 |
Benny Prijono | 5df8bb6 | 2007-12-28 18:55:02 +0000 | [diff] [blame] | 204 | |
Benny Prijono | 22e6832 | 2008-01-02 07:57:23 +0000 | [diff] [blame] | 205 | /* Other pjsua settings */ |
Benny Prijono | 64f9138 | 2009-03-05 18:02:28 +0000 | [diff] [blame] | 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 |
Benny Prijono | 5df8bb6 | 2007-12-28 18:55:02 +0000 | [diff] [blame] | 212 | |
Benny Prijono | 64f9138 | 2009-03-05 18:02:28 +0000 | [diff] [blame] | 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 */ |
| 226 | #define PJMEDIA_AUDIO_DEV_HAS_SYMB_MDA 0 |
| 227 | #define PJMEDIA_AUDIO_DEV_HAS_SYMB_APS 1 |
| 228 | |
| 229 | /* Enable passthrough codec framework */ |
| 230 | #define PJMEDIA_HAS_PASSTHROUGH_CODECS 1 |
| 231 | |
| 232 | /* And selectively enable which codecs are supported by the handset */ |
| 233 | #define PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMU 1 |
| 234 | #define PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMA 1 |
| 235 | #define PJMEDIA_HAS_PASSTHROUGH_CODEC_AMR 1 |
| 236 | #define PJMEDIA_HAS_PASSTHROUGH_CODEC_G729 1 |
| 237 | #define PJMEDIA_HAS_PASSTHROUGH_CODEC_ILBC 1 |
| 238 | |
| 239 | #endif |
| 240 | |
| 241 | |
| 242 | /* |
| 243 | * Configuration to activate "APS-Direct" media mode on Windows, |
| 244 | * useful for testing purposes only. |
| 245 | */ |
| 246 | #ifdef PJ_CONFIG_WIN32_WMME_DIRECT |
| 247 | |
| 248 | /* MUST use switchboard rather than the conference bridge */ |
| 249 | #define PJMEDIA_CONF_USE_SWITCH_BOARD 1 |
| 250 | |
| 251 | /* Only WMME supports the "direct" feature */ |
| 252 | #define PJMEDIA_AUDIO_DEV_HAS_PORTAUDIO 0 |
| 253 | #define PJMEDIA_AUDIO_DEV_HAS_WMME 1 |
| 254 | |
| 255 | /* Enable passthrough codec framework */ |
| 256 | #define PJMEDIA_HAS_PASSTHROUGH_CODECS 1 |
| 257 | |
| 258 | /* Only PCMA and PCMU are supported by WMME-direct */ |
| 259 | #define PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMU 1 |
| 260 | #define PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMA 1 |
| 261 | #define PJMEDIA_HAS_PASSTHROUGH_CODEC_AMR 0 |
| 262 | #define PJMEDIA_HAS_PASSTHROUGH_CODEC_G729 0 |
| 263 | #define PJMEDIA_HAS_PASSTHROUGH_CODEC_ILBC 0 |
| 264 | |
Benny Prijono | 5feee2e | 2007-05-01 16:54:54 +0000 | [diff] [blame] | 265 | #endif |
Benny Prijono | fd27c66 | 2006-08-09 11:59:26 +0000 | [diff] [blame] | 266 | |
| 267 | |
| 268 | /* |
| 269 | * Minimum size |
| 270 | */ |
| 271 | #ifdef PJ_CONFIG_MINIMAL_SIZE |
| 272 | |
| 273 | # undef PJ_OS_HAS_CHECK_STACK |
| 274 | # define PJ_OS_HAS_CHECK_STACK 0 |
| 275 | # define PJ_LOG_MAX_LEVEL 0 |
| 276 | # define PJ_ENABLE_EXTRA_CHECK 0 |
| 277 | # define PJ_HAS_ERROR_STRING 0 |
| 278 | # undef PJ_IOQUEUE_MAX_HANDLES |
Benny Prijono | a95e929 | 2008-04-07 13:16:02 +0000 | [diff] [blame] | 279 | /* Putting max handles to lower than 32 will make pj_fd_set_t size smaller |
| 280 | * than native fdset_t and will trigger assertion on sock_select.c. |
| 281 | */ |
| 282 | # define PJ_IOQUEUE_MAX_HANDLES 32 |
Benny Prijono | 3059eb6 | 2006-10-04 20:46:27 +0000 | [diff] [blame] | 283 | # define PJSIP_MAX_TSX_COUNT 15 |
| 284 | # define PJSIP_MAX_DIALOG_COUNT 15 |
Benny Prijono | fd27c66 | 2006-08-09 11:59:26 +0000 | [diff] [blame] | 285 | # define PJSIP_UDP_SO_SNDBUF_SIZE 4000 |
| 286 | # define PJSIP_UDP_SO_RCVBUF_SIZE 4000 |
Benny Prijono | fd27c66 | 2006-08-09 11:59:26 +0000 | [diff] [blame] | 287 | # define PJMEDIA_HAS_LARGE_FILTER 0 |
Benny Prijono | 3059eb6 | 2006-10-04 20:46:27 +0000 | [diff] [blame] | 288 | # define PJMEDIA_HAS_SMALL_FILTER 0 |
Benny Prijono | fd27c66 | 2006-08-09 11:59:26 +0000 | [diff] [blame] | 289 | |
| 290 | |
| 291 | #elif defined(PJ_CONFIG_MAXIMUM_SPEED) |
| 292 | # define PJ_SCANNER_USE_BITWISE 0 |
| 293 | # undef PJ_OS_HAS_CHECK_STACK |
| 294 | # define PJ_OS_HAS_CHECK_STACK 0 |
| 295 | # define PJ_LOG_MAX_LEVEL 3 |
| 296 | # define PJ_ENABLE_EXTRA_CHECK 0 |
| 297 | # define PJ_IOQUEUE_MAX_HANDLES 5000 |
| 298 | # define PJSIP_MAX_TSX_COUNT ((640*1024)-1) |
| 299 | # define PJSIP_MAX_DIALOG_COUNT ((640*1024)-1) |
| 300 | # define PJSIP_UDP_SO_SNDBUF_SIZE (24*1024*1024) |
| 301 | # define PJSIP_UDP_SO_RCVBUF_SIZE (24*1024*1024) |
| 302 | # define PJ_DEBUG 0 |
| 303 | # define PJSIP_SAFE_MODULE 0 |
Benny Prijono | f260e46 | 2007-04-30 21:03:32 +0000 | [diff] [blame] | 304 | # define PJ_HAS_STRICMP_ALNUM 0 |
Benny Prijono | fd27c66 | 2006-08-09 11:59:26 +0000 | [diff] [blame] | 305 | # define PJ_HASH_USE_OWN_TOLOWER 1 |
| 306 | # define PJSIP_UNESCAPE_IN_PLACE 1 |
| 307 | |
| 308 | # ifdef PJ_WIN32 |
| 309 | # define PJSIP_MAX_NET_EVENTS 10 |
| 310 | # endif |
| 311 | |
| 312 | # define PJSUA_MAX_CALLS 512 |
Benny Prijono | d6388ac | 2006-09-09 13:23:09 +0000 | [diff] [blame] | 313 | |
Benny Prijono | fd27c66 | 2006-08-09 11:59:26 +0000 | [diff] [blame] | 314 | #endif |
| 315 | |