// settings copied from config_site_sample.h, under section 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 6 // debug, skips trace levels 5 & 6 #define PJ_ENABLE_EXTRA_CHECK 1 // enable checks for invalid values passed to pjsip functions (example: invalid callslot in conference.c) - avoids crash #define PJ_LOG_SENDER_WIDTH 22 // 64-bit system: log width of internal pointers (like strm) - 16 hex chars (nibbles) required per pointer + 4 chars prefix // PJ_IOQUEUE_MAX_HANDLES cannot be greater than FD_SETSIZE, which is 1024 on Linux #define PJ_IOQUEUE_MAX_HANDLES 1024 #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 301 #define PJSUA_MAX_PLAYERS PJSUA_MAX_CALLS #define PJSUA_MAX_RECORDERS PJSUA_MAX_CALLS #define PJSUA_MAX_CONF_PORTS (PJSUA_MAX_CALLS+PJSUA_MAX_PLAYERS+PJSUA_MAX_RECORDERS) #define PJSUA_MAX_ACC 100 // mainly used for load testing (IVR for agents) where registrations are done via csv-file // MEDIA PERFORMANCE OPTIMIZATIONS - https://trac.pjsip.org/repos/wiki/FAQ#pjsua-lib-perf // disable software echo canceller #define PJMEDIA_HAS_SPEEX_AEC 0 #define PJMEDIA_HAS_INTEL_IPP_AEC 0 #define PJMEDIA_HAS_WEBRTC_AEC 0 // codec optimizations - disable all codecs, except A-law & Mu-law // is this too restrictive ?? #define PJMEDIA_HAS_ALAW_ULAW_TABLE 1 #define PJMEDIA_HAS_OPUS_CODEC 1 #define PJMEDIA_HAS_L16_CODEC 0 #define PJMEDIA_HAS_ILBC_CODEC 0 #define PJMEDIA_HAS_G722_CODEC 0 #define PJMEDIA_HAS_SPEEX_CODEC 0 #define PJMEDIA_HAS_GSM_CODEC 0 // avoid resampling #define PJMEDIA_RESAMPLE_IMP PJMEDIA_RESAMPLE_NONE #define PJSUA_DEFAULT_CLOCK_RATE 8000 // defines required for implementation without pjsua #define PJSUA_DEFAULT_AUDIO_FRAME_PTIME 20 // conferencing ENABLED - required for duplex recording & play announcement during MOH #define PJMEDIA_CONF_USE_SWITCH_BOARD 0 #define PJMEDIA_AUDIO_DEV_HAS_NULL_AUDIO 1 // disabled to avoid license cost // see https://trac.pjsip.org/repos/wiki/PJSIP-Detail-License#bcg729 #define PJMEDIA_HAS_BCG729 0 // set PJMEDIA_SDP_NEG_PREFER_REMOTE_CODEC_ORDER to 0 to respond with the local preferred codec (required for opus - softphone) #define PJMEDIA_SDP_NEG_PREFER_REMOTE_CODEC_ORDER 0 // ICE optimizations // copied from https://gerrit.asterisk.org/c/asterisk/+/4430 // local candidates & remote candidates max is PJ_ICE_MAX_CAND // but pj_ice_sess_create_check_list contains a double for-loop for all combinations // local candidates on my laptop is 12 : docker, hyper-V, npcap, local ip, ext ip & turn server times two #define PJ_ICE_MAX_CHECKS (PJ_ICE_MAX_CAND * PJ_ICE_MAX_CAND) // secure audio #define PJMEDIA_SRTP_HAS_DTLS 1 #define PJ_HAS_SSL_SOCK 1