在PJSIP max_calls上呼叫有限的32个呼叫



我们在PJSIP和Asterisk上的max_calls设置方面遇到了问题。 我们正在对Asterisk服务器进行压力测试,但发现我们的PJSIP模块最多有32个活动呼叫限制。我们正在使用PJSIP来测试我们的Asterisk服务器

快速谷歌后,我们发现以下设置可以解决问题。

Following steps can be taken to increase number of calls supported on PJSIP:
Example: If you have to increase simultaneous calls to 1000 change the following:
1.       Change PJSUA_MAX_CALLS to 1000 and PJSUA_MAX_ACC to 1000
2.       Change PJ_IOQUEUE_MAX_HANDLES to 2000 (double of desired number of calls).
3.       Change __FD_SETSIZE to double to 2000 (double of desired number of calls).
4.       Change PJSUA_MAX_PLAYERS to 1000.
5.       Recompile pjsip using following steps:
a.       ./configure --disable-ssl --disable-sound; 
b.      make dep
c.       make 
d.      make install
6.       Recompile your application with new libs.

不知何故,这对我们不起作用; 我们在这里做错了什么? 任何人的建议。帮助将不胜感激。

我们在config_site.php文件中的代码

/*
* This file contains several sample settings especially for Windows
* Mobile and Symbian targets. You can include this file in your
* <pj/config_site.h> file.
*
* The Windows Mobile and Symbian settings will be activated
* automatically if you include this file.
*
* In addition, you may specify one of these macros (before including
* this file) to activate additional settings:
*
* #define PJ_CONFIG_NOKIA_APS_DIRECT
*   Use this macro to activate the APS-Direct feature. Please see
*   http://trac.pjsip.org/repos/wiki/Nokia_APS_VAS_Direct for more
*   info.
*
* #define PJ_CONFIG_WIN32_WMME_DIRECT
*   Configuration to activate "APS-Direct" media mode on Windows or
*   Windows Mobile, useful for testing purposes only.
*/
/*
* Typical configuration for WinCE target.
*/
#if defined(PJ_WIN32_WINCE) && PJ_WIN32_WINCE!=0
/*
* PJLIB settings.
*/
/* Disable floating point support */
#define PJ_HAS_FLOATING_POINT               0
/*
* PJMEDIA settings
*/
/* Select codecs to disable */
#define PJMEDIA_HAS_L16_CODEC               0
#define PJMEDIA_HAS_ILBC_CODEC              0
/* We probably need more buffers on WM, so increase the limit */
#define PJMEDIA_SOUND_BUFFER_COUNT          32
/* Fine tune Speex's default settings for best performance/quality */
#define PJMEDIA_CODEC_SPEEX_DEFAULT_QUALITY 5
/* For CPU reason, disable speex AEC and use the echo suppressor. */
#define PJMEDIA_HAS_SPEEX_AEC               0
/* Previously, resampling is disabled due to performance reason and
* this condition prevented some 'light' wideband codecs (e.g: G722.1)
* to work along with narrowband codecs. Lately, some tests showed
* that 16kHz <-> 8kHz resampling using libresample small filter was
* affordable on ARM9 260 MHz, so here we decided to enable resampling.
* Note that it is important to make sure that libresample is created
* using small filter. For example PJSUA_DEFAULT_CODEC_QUALITY must
* be set to 3 or 4 so pjsua-lib will apply small filter resampling.
*/
//#define PJMEDIA_RESAMPLE_IMP              PJMEDIA_RESAMPLE_NONE
#define PJMEDIA_RESAMPLE_IMP                PJMEDIA_RESAMPLE_LIBRESAMPLE
/* Use the lighter WSOLA implementation */
#define PJMEDIA_WSOLA_IMP                   PJMEDIA_WSOLA_IMP_WSOLA_LITE
/*
* PJSIP settings.
*/
/* Set maximum number of dialog/transaction/calls to minimum to reduce
* memory usage
*/
#define PJSIP_MAX_TSX_COUNT                 31
#define PJSIP_MAX_DIALOG_COUNT              31
#define PJSUA_MAX_CALLS                     64
/*
* PJSUA settings
*/
/* Default codec quality, previously was set to 5, however it is now
* set to 4 to make sure pjsua instantiates resampler with small filter.
*/
#define PJSUA_DEFAULT_CODEC_QUALITY         4
/* Set maximum number of objects to minimum to reduce memory usage */
#define PJSUA_MAX_ACC                       64
#define PJSUA_MAX_PLAYERS                   64
#define PJSUA_MAX_RECORDERS                 4
#define PJSUA_MAX_CONF_PORTS                (PJSUA_MAX_CALLS+2*PJSUA_MAX_PLAYERS)
#define PJSUA_MAX_BUDDIES                   32
#endif  /* PJ_WIN32_WINCE */
/*
* Typical configuration for Symbian OS target
*/
#if defined(PJ_SYMBIAN) && PJ_SYMBIAN!=0
/*
* PJLIB settings.
*/
/* Disable floating point support */
#define PJ_HAS_FLOATING_POINT               0
/* Misc PJLIB setting */
#define PJ_MAXPATH                          80
/* This is important for Symbian. Symbian lacks vsnprintf(), so
* if the log buffer is not long enough it's possible that
* large incoming packet will corrupt memory when the log tries
* to log the packet.
*/
#define PJ_LOG_MAX_SIZE                     (PJSIP_MAX_PKT_LEN+500)
/* Since we don't have threads, log buffer can use static buffer
* rather than stack
*/
#define PJ_LOG_USE_STACK_BUFFER             0
/* Disable check stack since it increases footprint */
#define PJ_OS_HAS_CHECK_STACK               0
/*
* PJMEDIA settings
*/
/* Disable non-Symbian audio devices */
#define PJMEDIA_AUDIO_DEV_HAS_PORTAUDIO     0
#define PJMEDIA_AUDIO_DEV_HAS_WMME          0
/* Select codecs to disable */
#define PJMEDIA_HAS_L16_CODEC               0
#define PJMEDIA_HAS_ILBC_CODEC              0
#define PJMEDIA_HAS_G722_CODEC              0
/* Fine tune Speex's default settings for best performance/quality */
#define PJMEDIA_CODEC_SPEEX_DEFAULT_QUALITY 5
/* For CPU reason, disable speex AEC and use the echo suppressor. */
#define PJMEDIA_HAS_SPEEX_AEC               0
/* Previously, resampling is disabled due to performance reason and
* this condition prevented some 'light' wideband codecs (e.g: G722.1)
* to work along with narrowband codecs. Lately, some tests showed
* that 16kHz <-> 8kHz resampling using libresample small filter was
* affordable on ARM9 222 MHz, so here we decided to enable resampling.
* Note that it is important to make sure that libresample is created
* using small filter. For example PJSUA_DEFAULT_CODEC_QUALITY must
* be set to 3 or 4 so pjsua-lib will apply small filter resampling.
*/
//#define PJMEDIA_RESAMPLE_IMP              PJMEDIA_RESAMPLE_NONE
#define PJMEDIA_RESAMPLE_IMP                PJMEDIA_RESAMPLE_LIBRESAMPLE
/* Use the lighter WSOLA implementation */
#define PJMEDIA_WSOLA_IMP                   PJMEDIA_WSOLA_IMP_WSOLA_LITE
/* We probably need more buffers especially if MDA audio backend
* is used, so increase the limit
*/
#define PJMEDIA_SOUND_BUFFER_COUNT          32
/*
* PJSIP settings.
*/
/* Disable safe module access, since we don't use multithreading */
#define PJSIP_SAFE_MODULE                   0
/* Use large enough packet size  */
#define PJSIP_MAX_PKT_LEN                   2000
/* Symbian has problem with too many large blocks */
#define PJSIP_POOL_LEN_ENDPT                1000
#define PJSIP_POOL_INC_ENDPT                1000
#define PJSIP_POOL_RDATA_LEN                2000
#define PJSIP_POOL_RDATA_INC                2000
#define PJSIP_POOL_LEN_TDATA                2000
#define PJSIP_POOL_INC_TDATA                512
#define PJSIP_POOL_LEN_UA                   2000
#define PJSIP_POOL_INC_UA                   1000
#define PJSIP_POOL_TSX_LAYER_LEN            256
#define PJSIP_POOL_TSX_LAYER_INC            256
#define PJSIP_POOL_TSX_LEN                  512
#define PJSIP_POOL_TSX_INC                  128
/*
* PJSUA settings.
*/
/* Default codec quality, previously was set to 5, however it is now
* set to 4 to make sure pjsua instantiates resampler with small filter.
*/
#define PJSUA_DEFAULT_CODEC_QUALITY         4
/* Set maximum number of dialog/transaction/calls to minimum */
#define PJSIP_MAX_TSX_COUNT                 31
#define PJSIP_MAX_DIALOG_COUNT              31
#define PJSUA_MAX_CALLS                     64
/* Other pjsua settings */
#define PJSUA_MAX_ACC                       64
#define PJSUA_MAX_PLAYERS                   64
#define PJSUA_MAX_RECORDERS                 4
#define PJSUA_MAX_CONF_PORTS                (PJSUA_MAX_CALLS+2*PJSUA_MAX_PLAYERS)
#define PJSUA_MAX_BUDDIES                   32
#endif
/*
* Additional configuration to activate APS-Direct feature for
* Nokia S60 target
*
* Please see http://trac.pjsip.org/repos/wiki/Nokia_APS_VAS_Direct
*/
#ifdef PJ_CONFIG_NOKIA_APS_DIRECT
/* MUST use switchboard rather than the conference bridge */
#define PJMEDIA_CONF_USE_SWITCH_BOARD       1
/* Enable APS sound device backend and disable MDA & VAS */
#define PJMEDIA_AUDIO_DEV_HAS_SYMB_MDA      0
#define PJMEDIA_AUDIO_DEV_HAS_SYMB_APS      1
#define PJMEDIA_AUDIO_DEV_HAS_SYMB_VAS      0
/* Enable passthrough codec framework */
#define PJMEDIA_HAS_PASSTHROUGH_CODECS      1
/* And selectively enable which codecs are supported by the handset */
#define PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMU  1
#define PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMA  1
#define PJMEDIA_HAS_PASSTHROUGH_CODEC_AMR   1
#define PJMEDIA_HAS_PASSTHROUGH_CODEC_G729  1
#define PJMEDIA_HAS_PASSTHROUGH_CODEC_ILBC  1
#endif
/*
* Additional configuration to activate VAS-Direct feature for
* Nokia S60 target
*
* Please see http://trac.pjsip.org/repos/wiki/Nokia_APS_VAS_Direct
*/
#ifdef PJ_CONFIG_NOKIA_VAS_DIRECT
/* MUST use switchboard rather than the conference bridge */
#define PJMEDIA_CONF_USE_SWITCH_BOARD       1
/* Enable VAS sound device backend and disable MDA & APS */
#define PJMEDIA_AUDIO_DEV_HAS_SYMB_MDA      0
#define PJMEDIA_AUDIO_DEV_HAS_SYMB_APS      0
#define PJMEDIA_AUDIO_DEV_HAS_SYMB_VAS      1
/* Enable passthrough codec framework */
#define PJMEDIA_HAS_PASSTHROUGH_CODECS      1
/* And selectively enable which codecs are supported by the handset */
#define PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMU  1
#define PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMA  1
#define PJMEDIA_HAS_PASSTHROUGH_CODEC_AMR   1
#define PJMEDIA_HAS_PASSTHROUGH_CODEC_G729  1
#define PJMEDIA_HAS_PASSTHROUGH_CODEC_ILBC  1
#endif
/*
* Configuration to activate "APS-Direct" media mode on Windows,
* useful for testing purposes only.
*/
#ifdef PJ_CONFIG_WIN32_WMME_DIRECT
/* MUST use switchboard rather than the conference bridge */
#define PJMEDIA_CONF_USE_SWITCH_BOARD       1
/* Only WMME supports the "direct" feature */
#define PJMEDIA_AUDIO_DEV_HAS_PORTAUDIO     0
#define PJMEDIA_AUDIO_DEV_HAS_WMME          1
/* Enable passthrough codec framework */
#define PJMEDIA_HAS_PASSTHROUGH_CODECS      1
/* Only PCMA and PCMU are supported by WMME-direct */
#define PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMU  1
#define PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMA  1
#define PJMEDIA_HAS_PASSTHROUGH_CODEC_AMR   0
#define PJMEDIA_HAS_PASSTHROUGH_CODEC_G729  0
#define PJMEDIA_HAS_PASSTHROUGH_CODEC_ILBC  0
#endif
/*
* iPhone sample settings.
*/
#if PJ_CONFIG_IPHONE
/*
* PJLIB settings.
*/
/* Both armv6 and armv7 has FP hardware support.
* See https://trac.pjsip.org/repos/ticket/1589 for more info
*/
#define PJ_HAS_FLOATING_POINT               1
/*
* PJMEDIA settings
*/
/* We have our own native CoreAudio backend */
#define PJMEDIA_AUDIO_DEV_HAS_PORTAUDIO     0
#define PJMEDIA_AUDIO_DEV_HAS_WMME          0
#define PJMEDIA_AUDIO_DEV_HAS_COREAUDIO     1
/* The CoreAudio backend has built-in echo canceller! */
#define PJMEDIA_HAS_SPEEX_AEC    0
/* Disable some codecs */
#define PJMEDIA_HAS_L16_CODEC               0
#define PJMEDIA_HAS_G722_CODEC              0
/* Use the built-in CoreAudio's iLBC codec (yay!) */
#define PJMEDIA_HAS_ILBC_CODEC              1
#define PJMEDIA_ILBC_CODEC_USE_COREAUDIO    1
/* Fine tune Speex's default settings for best performance/quality */
#define PJMEDIA_CODEC_SPEEX_DEFAULT_QUALITY 5
/*
* PJSIP settings.
*/
/* Increase allowable packet size, just in case */
//#define PJSIP_MAX_PKT_LEN                 2000
/*
* PJSUA settings.
*/
/* Default codec quality, previously was set to 5, however it is now
* set to 4 to make sure pjsua instantiates resampler with small filter.
*/
#define PJSUA_DEFAULT_CODEC_QUALITY         4
/* Set maximum number of dialog/transaction/calls to minimum */
#define PJSIP_MAX_TSX_COUNT                 31
#define PJSIP_MAX_DIALOG_COUNT              31
#define PJSUA_MAX_CALLS                     64
/* Other pjsua settings */
#define PJSUA_MAX_ACC                       64
#define PJSUA_MAX_PLAYERS                   64
#define PJSUA_MAX_RECORDERS                 4
#define PJSUA_MAX_CONF_PORTS                (PJSUA_MAX_CALLS+2*PJSUA_MAX_PLAYERS)
#define PJSUA_MAX_BUDDIES                   32
#endif
/*
* Android sample settings.
*/
#if PJ_CONFIG_ANDROID
#define PJ_ANDROID                          1
/*
* PJLIB settings.
*/
/* Disable floating point support */
#undef PJ_HAS_FLOATING_POINT
#define PJ_HAS_FLOATING_POINT               0
/*
* PJMEDIA settings
*/
/* We have our own OpenSL ES backend */
#define PJMEDIA_AUDIO_DEV_HAS_PORTAUDIO     0
#define PJMEDIA_AUDIO_DEV_HAS_WMME          0
#define PJMEDIA_AUDIO_DEV_HAS_OPENSL        0
#define PJMEDIA_AUDIO_DEV_HAS_ANDROID_JNI   1
/* Disable some codecs */
#define PJMEDIA_HAS_L16_CODEC               0
#define PJMEDIA_HAS_G722_CODEC              0
/* Fine tune Speex's default settings for best performance/quality */
#define PJMEDIA_CODEC_SPEEX_DEFAULT_QUALITY 5
/*
* PJSIP settings.
*/
/* Increase allowable packet size, just in case */
//#define PJSIP_MAX_PKT_LEN                 2000
/*
* PJSUA settings.
*/
/* Default codec quality, previously was set to 5, however it is now
* set to 4 to make sure pjsua instantiates resampler with small filter.
*/
#define PJSUA_DEFAULT_CODEC_QUALITY         4
/* Set maximum number of dialog/transaction/calls to minimum */
#define PJSIP_MAX_TSX_COUNT                 31
#define PJSIP_MAX_DIALOG_COUNT              31
#define PJSUA_MAX_CALLS                     64
/* Other pjsua settings */
#define PJSUA_MAX_ACC                       64
#define PJSUA_MAX_PLAYERS                   64
#define PJSUA_MAX_RECORDERS                 4
#define PJSUA_MAX_CONF_PORTS                (PJSUA_MAX_CALLS+2*PJSUA_MAX_PLAYERS)
#define PJSUA_MAX_BUDDIES                   32
#endif
/*
* BB10
*/
#if defined(PJ_CONFIG_BB10) && PJ_CONFIG_BB10
/* Quality 3 - 4 to use resampling small filter */
#define PJSUA_DEFAULT_CODEC_QUALITY                 4
#define PJMEDIA_HAS_LEGACY_SOUND_API                0
#undef PJMEDIA_HAS_SPEEX_AEC
#define PJMEDIA_HAS_SPEEX_AEC                       0
#undef PJMEDIA_AUDIO_DEV_HAS_PORTAUDIO
#define PJMEDIA_AUDIO_DEV_HAS_PORTAUDIO             0
#endif
/*
* Minimum size
*/
#ifdef PJ_CONFIG_MINIMAL_SIZE
#   undef PJ_OS_HAS_CHECK_STACK
#   define PJ_OS_HAS_CHECK_STACK        0
#   define PJ_LOG_MAX_LEVEL             0
#   define PJ_ENABLE_EXTRA_CHECK        0
#   define PJ_HAS_ERROR_STRING          0
#   undef PJ_IOQUEUE_MAX_HANDLES
/* Putting max handles to lower than 32 will make pj_fd_set_t size smaller
* than native fdset_t and will trigger assertion on sock_select.c.
*/
#   define PJ_IOQUEUE_MAX_HANDLES       128
#   define PJ_CRC32_HAS_TABLES          0
#   define PJSIP_MAX_TSX_COUNT          15
#   define PJSIP_MAX_DIALOG_COUNT       15
#   define PJSIP_UDP_SO_SNDBUF_SIZE     4000
#   define PJSIP_UDP_SO_RCVBUF_SIZE     4000
#   define PJMEDIA_HAS_ALAW_ULAW_TABLE  0
#elif defined(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             3
#   define PJ_ENABLE_EXTRA_CHECK        0
#   define PJ_IOQUEUE_MAX_HANDLES       5000
#   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 PJ_HASH_USE_OWN_TOLOWER      1
#   define PJSIP_UNESCAPE_IN_PLACE      1
#   if defined(PJ_WIN32) || defined(PJ_WIN64)
#     define PJSIP_MAX_NET_EVENTS       10
#   endif
#   define PJSUA_MAX_CALLS              512
#endif

要更改 PJSIP 中的调用限制:

1---

转到

vim/home/administrator/pjproject-2.8/pjlib/include/pj/config_site.h

#define PJSUA_MAX_CALLS                 400
#define PJSUA_MAX_ACC                   400
#define PJ_IOQUEUE_MAX_HANDLES          400
#define __FD_SETSIZE                    800
#define PJSUA_MAX_PLAYERS               400

阿拉伯数字--

转到

vim pjproject-2.8\pjproject-2.8\pjsip\src\pjsua-lib\pjsua_core.c

cfg->max_calls = ((PJSUA_MAX_CALLS) < 400) ? (PJSUA_MAX_CALLS) : 400;

相关内容

  • 没有找到相关文章

最新更新