blob: fde0b9d2a5a0a24934e9ada86929a983344f7e7e [file] [log] [blame]
Benny Prijonoedba0792006-08-06 18:23:56 +00001/*
Benny Prijono64f91382009-03-05 18:02:28 +00002 * 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 Prijonoedba0792006-08-06 18:23:56 +000020 */
21
22
23/*
24 * Typical configuration for WinCE target.
25 */
26#if defined(PJ_WIN32_WINCE) && PJ_WIN32_WINCE!=0
Benny Prijonoedba0792006-08-06 18:23:56 +000027
Benny Prijono64f91382009-03-05 18:02:28 +000028 /*
29 * PJLIB settings.
30 */
Nanang Izzuddin9dbad152008-06-10 18:56:10 +000031
Benny Prijono64f91382009-03-05 18:02:28 +000032 /* Disable floating point support */
33 #define PJ_HAS_FLOATING_POINT 0
Benny Prijono36e76ef2008-08-13 13:56:24 +000034
Benny Prijono64f91382009-03-05 18:02:28 +000035 /*
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 Izzuddinc91cd642009-05-06 18:59:31 +000052 /* 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 Prijono64f91382009-03-05 18:02:28 +000063
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 Izzuddinc91cd642009-05-06 18:59:31 +000082 /* 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 Prijono64f91382009-03-05 18:02:28 +000086
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 Prijonoedba0792006-08-06 18:23:56 +000095
Benny Prijono5d542642007-05-02 18:54:19 +000096
Benny Prijono5feee2e2007-05-01 16:54:54 +000097/*
98 * Typical configuration for Symbian OS target
99 */
100#if defined(PJ_SYMBIAN) && PJ_SYMBIAN!=0
Benny Prijonoba5926a2007-05-02 11:29:37 +0000101
Benny Prijono64f91382009-03-05 18:02:28 +0000102 /*
103 * PJLIB settings.
104 */
Benny Prijonoba5926a2007-05-02 11:29:37 +0000105
Benny Prijono64f91382009-03-05 18:02:28 +0000106 /* Disable floating point support */
107 #define PJ_HAS_FLOATING_POINT 0
Benny Prijono5d542642007-05-02 18:54:19 +0000108
Benny Prijono22e68322008-01-02 07:57:23 +0000109 /* Misc PJLIB setting */
Benny Prijono64f91382009-03-05 18:02:28 +0000110 #define PJ_MAXPATH 80
Benny Prijono5d542642007-05-02 18:54:19 +0000111
Benny Prijono55c6ecc2008-12-18 13:15:32 +0000112 /* 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 Prijono64f91382009-03-05 18:02:28 +0000117 #define PJ_LOG_MAX_SIZE (PJSIP_MAX_PKT_LEN+500)
Benny Prijono55c6ecc2008-12-18 13:15:32 +0000118
Benny Prijono64f91382009-03-05 18:02:28 +0000119 /* 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 Prijono5d542642007-05-02 18:54:19 +0000123
Benny Prijono64f91382009-03-05 18:02:28 +0000124 /* Disable check stack since it increases footprint */
125 #define PJ_OS_HAS_CHECK_STACK 0
126
127
128 /*
129 * PJMEDIA settings
130 */
131
Nanang Izzuddinda37ea32009-03-06 16:24:43 +0000132 /* Disable non-Symbian audio devices */
133 #define PJMEDIA_AUDIO_DEV_HAS_PORTAUDIO 0
134 #define PJMEDIA_AUDIO_DEV_HAS_WMME 0
135
Benny Prijono64f91382009-03-05 18:02:28 +0000136 /* Select codecs to disable */
137 #define PJMEDIA_HAS_L16_CODEC 0
138 #define PJMEDIA_HAS_ILBC_CODEC 0
Nanang Izzuddinda37ea32009-03-06 16:24:43 +0000139 #define PJMEDIA_HAS_G722_CODEC 0
Benny Prijono64f91382009-03-05 18:02:28 +0000140
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 Izzuddin494ff7f2009-05-06 15:37:47 +0000147 /* 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 Prijono64f91382009-03-05 18:02:28 +0000158
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 Prijono22e68322008-01-02 07:57:23 +0000176
Benny Prijono5d542642007-05-02 18:54:19 +0000177 /* Symbian has problem with too many large blocks */
Benny Prijono64f91382009-03-05 18:02:28 +0000178 #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 Izzuddin494ff7f2009-05-06 15:37:47 +0000195 /* 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 Prijono72a81aa2007-05-02 23:06:11 +0000199
200 /* Set maximum number of dialog/transaction/calls to minimum */
Benny Prijono64f91382009-03-05 18:02:28 +0000201 #define PJSIP_MAX_TSX_COUNT 31
202 #define PJSIP_MAX_DIALOG_COUNT 31
203 #define PJSUA_MAX_CALLS 4
Benny Prijono5df8bb62007-12-28 18:55:02 +0000204
Benny Prijono22e68322008-01-02 07:57:23 +0000205 /* Other pjsua settings */
Benny Prijono64f91382009-03-05 18:02:28 +0000206 #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 Prijono5df8bb62007-12-28 18:55:02 +0000212
Benny Prijono64f91382009-03-05 18:02:28 +0000213
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
Nanang Izzuddinfc279de2009-07-14 14:33:39 +0000225 /* Enable APS sound device backend and disable MDA & VAS */
Benny Prijono64f91382009-03-05 18:02:28 +0000226 #define PJMEDIA_AUDIO_DEV_HAS_SYMB_MDA 0
227 #define PJMEDIA_AUDIO_DEV_HAS_SYMB_APS 1
Nanang Izzuddinfc279de2009-07-14 14:33:39 +0000228 #define PJMEDIA_AUDIO_DEV_HAS_SYMB_VAS 0
Benny Prijono64f91382009-03-05 18:02:28 +0000229
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/*
Nanang Izzuddind687a502009-06-30 13:37:26 +0000244 * 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
Nanang Izzuddinfc279de2009-07-14 14:33:39 +0000254 /* Enable VAS sound device backend and disable MDA & APS */
Nanang Izzuddind687a502009-06-30 13:37:26 +0000255 #define PJMEDIA_AUDIO_DEV_HAS_SYMB_MDA 0
Nanang Izzuddinfc279de2009-07-14 14:33:39 +0000256 #define PJMEDIA_AUDIO_DEV_HAS_SYMB_APS 0
Nanang Izzuddind687a502009-06-30 13:37:26 +0000257 #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/*
Benny Prijono64f91382009-03-05 18:02:28 +0000273 * 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
Benny Prijono5feee2e2007-05-01 16:54:54 +0000295#endif
Benny Prijonofd27c662006-08-09 11:59:26 +0000296
297
298/*
299 * Minimum size
300 */
301#ifdef PJ_CONFIG_MINIMAL_SIZE
302
303# undef PJ_OS_HAS_CHECK_STACK
304# define PJ_OS_HAS_CHECK_STACK 0
305# define PJ_LOG_MAX_LEVEL 0
306# define PJ_ENABLE_EXTRA_CHECK 0
307# define PJ_HAS_ERROR_STRING 0
308# undef PJ_IOQUEUE_MAX_HANDLES
Benny Prijonoa95e9292008-04-07 13:16:02 +0000309/* Putting max handles to lower than 32 will make pj_fd_set_t size smaller
310 * than native fdset_t and will trigger assertion on sock_select.c.
311 */
312# define PJ_IOQUEUE_MAX_HANDLES 32
Benny Prijono3059eb62006-10-04 20:46:27 +0000313# define PJSIP_MAX_TSX_COUNT 15
314# define PJSIP_MAX_DIALOG_COUNT 15
Benny Prijonofd27c662006-08-09 11:59:26 +0000315# define PJSIP_UDP_SO_SNDBUF_SIZE 4000
316# define PJSIP_UDP_SO_RCVBUF_SIZE 4000
Benny Prijonofd27c662006-08-09 11:59:26 +0000317# define PJMEDIA_HAS_LARGE_FILTER 0
Benny Prijono3059eb62006-10-04 20:46:27 +0000318# define PJMEDIA_HAS_SMALL_FILTER 0
Benny Prijonofd27c662006-08-09 11:59:26 +0000319
320
321#elif defined(PJ_CONFIG_MAXIMUM_SPEED)
322# define PJ_SCANNER_USE_BITWISE 0
323# undef PJ_OS_HAS_CHECK_STACK
324# define PJ_OS_HAS_CHECK_STACK 0
325# define PJ_LOG_MAX_LEVEL 3
326# define PJ_ENABLE_EXTRA_CHECK 0
327# define PJ_IOQUEUE_MAX_HANDLES 5000
328# define PJSIP_MAX_TSX_COUNT ((640*1024)-1)
329# define PJSIP_MAX_DIALOG_COUNT ((640*1024)-1)
330# define PJSIP_UDP_SO_SNDBUF_SIZE (24*1024*1024)
331# define PJSIP_UDP_SO_RCVBUF_SIZE (24*1024*1024)
332# define PJ_DEBUG 0
333# define PJSIP_SAFE_MODULE 0
Benny Prijonof260e462007-04-30 21:03:32 +0000334# define PJ_HAS_STRICMP_ALNUM 0
Benny Prijonofd27c662006-08-09 11:59:26 +0000335# define PJ_HASH_USE_OWN_TOLOWER 1
336# define PJSIP_UNESCAPE_IN_PLACE 1
337
338# ifdef PJ_WIN32
339# define PJSIP_MAX_NET_EVENTS 10
340# endif
341
342# define PJSUA_MAX_CALLS 512
Benny Prijonod6388ac2006-09-09 13:23:09 +0000343
Benny Prijonofd27c662006-08-09 11:59:26 +0000344#endif
345