zoukankan      html  css  js  c++  java
  • 终极方法,pjsip发起多方对讲出错Too many objects of the specified type (PJ_ETOOMANY)

    http://blog.csdn.net/zhangjm_123/article/details/26727221

    ——————————————————————————————————————————————————————————————————————————————

    Pjsip提供发起多方对讲功能,允许开发者通过setMaxCalls(int calls)方法设定要发起多少方对讲,最多不能超过32方。但也许很多人发现最多只能设置4方对讲,即使设置了10方对讲 setMaxCalls(10)也不起作用。原因是在我们编译pjsip的时候,pjsip官方在提供给我们的pjproject源代码中做了限制(可能 是其它原因吧),其中一个很重要的常量PJSUA_MAX_CALLS被设成了4,即最大呼叫数量为4. 

    我们只要修改一下pjprojectpjlibincludepjconfig_site_sample.h和pjprojectpjsipsrcpjsua-libpjsua_core.c源文件中的几行代码即可。


    其中config_site_sample.h中这行代码中的4就是限定了发起多方对讲的最大值,所以只要把这个4改成你想要的值就行了。但最好不要超过32,官方文档是这样规定的,最好按照要求去做,否则可能会出现一些意想不到的错误。
     
    1. #define PJSUA_MAX_CALLS     4  
    在上面的config_site_sample.h源文件中出现多处#define PJSUA_MAX_CALLS   4 ,这可能是和不同的平台有关,反正如果你的程序不涉及到不同平台需要限定发起多方对讲的最大值的话,全部都设成同一个值就行了。如:设置最大发起对讲为16方,#define PJSUA_MAX_CALLS   16。


    另外,还需要修改一下pjsua_core.c文件:

     
    1. cfg->max_calls = ((PJSUA_MAX_CALLS) < 4) ? (PJSUA_MAX_CALLS) : 4;  
    把4改为你想要设定的值,如:cfg->max_calls = ((PJSUA_MAX_CALLS) < 16) ? (PJSUA_MAX_CALLS) : 16;

    改完这两个文件之后,保存,重新编译一次pjsip。编译完成之后,setMaxCalls(int calls)方法就起作用了,但int calls传过去的参数不能大于你设定的最大值。

  • 相关阅读:
    cogs 826. [Tyvj Feb11] GF打dota 次短路详细原创讲解! dijkstra
    cogs 2450. 距离 树链剖分求LCA最近公共祖先 快速求树上两点距离 详细讲解 带注释!
    cogs 647. [Youdao2010] 有道搜索框 Trie树 字典树
    cogs 293. [NOI 2000] 单词查找树 Trie树字典树
    P4550 收集邮票
    P1850 换教室 期望dp
    洛谷 UVA11021 Tribles
    P3802 小魔女帕琪 概率与期望
    P3369 【模板】普通平衡树 01Trie树
    P2765 魔术球问题
  • 原文地址:https://www.cnblogs.com/cuizhf/p/4150498.html
Copyright © 2011-2022 走看看