blob: c48ea8eaee66e240744eb33c07bd96158b7f39c4 [file] [log] [blame]
Tristan Matthews0a329cc2013-07-17 13:20:14 -04001/*
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 #define PJ_ANDROID 1
369
370 /*
371 * PJLIB settings.
372 */
373
374 /* Disable floating point support */
375 #undef PJ_HAS_FLOATING_POINT
376 #define PJ_HAS_FLOATING_POINT 0
377
378 /*
379 * PJMEDIA settings
380 */
381
382 /* We have our own OpenSL ES backend */
383 #define PJMEDIA_AUDIO_DEV_HAS_PORTAUDIO 0
384 #define PJMEDIA_AUDIO_DEV_HAS_WMME 0
385 #define PJMEDIA_AUDIO_DEV_HAS_OPENSL 1
386 #define PJMEDIA_AUDIO_DEV_HAS_ANDROID_JNI 0
387
388 /* Disable some codecs */
389 #define PJMEDIA_HAS_L16_CODEC 0
390 #define PJMEDIA_HAS_G722_CODEC 0
391
392 /* Fine tune Speex's default settings for best performance/quality */
393 #define PJMEDIA_CODEC_SPEEX_DEFAULT_QUALITY 5
394
395 /*
396 * PJSIP settings.
397 */
398
399 /* Increase allowable packet size, just in case */
400 //#define PJSIP_MAX_PKT_LEN 2000
401
402 /*
403 * PJSUA settings.
404 */
405
406 /* Default codec quality, previously was set to 5, however it is now
407 * set to 4 to make sure pjsua instantiates resampler with small filter.
408 */
409 #define PJSUA_DEFAULT_CODEC_QUALITY 4
410
411 /* Set maximum number of dialog/transaction/calls to minimum */
412 #define PJSIP_MAX_TSX_COUNT 31
413 #define PJSIP_MAX_DIALOG_COUNT 31
414 #define PJSUA_MAX_CALLS 4
415
416 /* Other pjsua settings */
417 #define PJSUA_MAX_ACC 4
418 #define PJSUA_MAX_PLAYERS 4
419 #define PJSUA_MAX_RECORDERS 4
420 #define PJSUA_MAX_CONF_PORTS (PJSUA_MAX_CALLS+2*PJSUA_MAX_PLAYERS)
421 #define PJSUA_MAX_BUDDIES 32
422#endif
423
424
425/*
426 * BB10
427 */
428#if defined(PJ_CONFIG_BB10) && PJ_CONFIG_BB10
429 /* Quality 3 - 4 to use resampling small filter */
430 #define PJSUA_DEFAULT_CODEC_QUALITY 4
431 #define PJMEDIA_HAS_LEGACY_SOUND_API 0
432 #undef PJMEDIA_HAS_SPEEX_AEC
433 #define PJMEDIA_HAS_SPEEX_AEC 0
434 #undef PJMEDIA_AUDIO_DEV_HAS_PORTAUDIO
435 #define PJMEDIA_AUDIO_DEV_HAS_PORTAUDIO 0
436#endif
437
438
439/*
440 * Minimum size
441 */
442#ifdef PJ_CONFIG_MINIMAL_SIZE
443
444# undef PJ_OS_HAS_CHECK_STACK
445# define PJ_OS_HAS_CHECK_STACK 0
446# define PJ_LOG_MAX_LEVEL 0
447# define PJ_ENABLE_EXTRA_CHECK 0
448# define PJ_HAS_ERROR_STRING 0
449# undef PJ_IOQUEUE_MAX_HANDLES
450/* Putting max handles to lower than 32 will make pj_fd_set_t size smaller
451 * than native fdset_t and will trigger assertion on sock_select.c.
452 */
453# define PJ_IOQUEUE_MAX_HANDLES 32
454# define PJ_CRC32_HAS_TABLES 0
455# define PJSIP_MAX_TSX_COUNT 15
456# define PJSIP_MAX_DIALOG_COUNT 15
457# define PJSIP_UDP_SO_SNDBUF_SIZE 4000
458# define PJSIP_UDP_SO_RCVBUF_SIZE 4000
459# define PJMEDIA_HAS_ALAW_ULAW_TABLE 0
460
461#elif defined(PJ_CONFIG_MAXIMUM_SPEED)
462# define PJ_SCANNER_USE_BITWISE 0
463# undef PJ_OS_HAS_CHECK_STACK
464# define PJ_OS_HAS_CHECK_STACK 0
465# define PJ_LOG_MAX_LEVEL 3
466# define PJ_ENABLE_EXTRA_CHECK 0
467# define PJ_IOQUEUE_MAX_HANDLES 5000
468# define PJSIP_MAX_TSX_COUNT ((640*1024)-1)
469# define PJSIP_MAX_DIALOG_COUNT ((640*1024)-1)
470# define PJSIP_UDP_SO_SNDBUF_SIZE (24*1024*1024)
471# define PJSIP_UDP_SO_RCVBUF_SIZE (24*1024*1024)
472# define PJ_DEBUG 0
473# define PJSIP_SAFE_MODULE 0
474# define PJ_HAS_STRICMP_ALNUM 0
475# define PJ_HASH_USE_OWN_TOLOWER 1
476# define PJSIP_UNESCAPE_IN_PLACE 1
477
478# if defined(PJ_WIN32) || defined(PJ_WIN64)
479# define PJSIP_MAX_NET_EVENTS 10
480# endif
481
482# define PJSUA_MAX_CALLS 512
483
484#endif
485