High amount of accounts with pjsip (python binding)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Attached is the patch.
It's basically just reseting auth_cred in the constructor (def 
__init__) of "class AccountConfig:".
A one line patch.

On Thu, 11 Mar 2010 01:17:08 +0100 Jens Jorgensen 
<jbj1 at ultraemail.net> wrote:
>Perhaps you could attach a patch so all would benefit?
>
>pjadx at hushmail.com wrote:
>> Hi,
>>
>> It's me responding to my message. 
>> I finally found out what the problem was, it's located within 
>> "pjsua.py" in "class Account:".
>> There are here a lot of static class object, and one of them is 
>> "auth_cred = []", which means everytime you instanciate a new 
>> Account() object it has the whole credentials of previous 
>> instanciated Account() object. This will later create problem as 
>
>> the C API don't support as much account as the auth_cred array 
>has.
>>
>> By just reseting auth_cred to [] in the constructor, i get rid 
>of 
>> this problem.
>> Each Account() has now only ONE cred info.
>> So that increasing PJSUA_MAX_ACC without increasing 
>> PJSUA_ACC_MAX_PROXIES is enough.
>> I don't know if i did it the proper way, but well, at least it's 
>
>> working for me.
>>
>> Regards,
>>
>> Nicolas
>>
>> On Tue, 09 Mar 2010 16:37:54 +0100 pjadx at hushmail.com wrote:
>>   
>>> Hi,
>>>
>>> I am using the PJSIP python binding to register a *lot* of 
>>> account.
>>> "a lot" means approximately 10 K users.
>>> So, first i had to raise the PJSUA_MAX_ACC in config_site.h, 
>but 
>>> then i discovered only the first 8 account registered correctly 
>:
>>> Above 8 the digest.username is the 8th, aka the 
>>> PJSUA_ACC_MAX_PROXIES'th (it means that the cred[8] will be use 
>as 
>>>
>>> username for all the others 10k account minus 8).
>>>
>>> The problem is the following, pjsua_var.acc contains an array 
>of 
>>> PJSUA_MAX_ACC, and each one of this struct pjsua_acc contains 
>an 
>>> array of PJSUA_ACC_MAX_PROXIES credentials entry. Increasing 
>both 
>>> to 10k will make gcc refuse to compile.
>>>
>>> For some reason there is something here i do not understand ; 
>it 
>>> seems that each account contain the whole credentials of all 
>>> others 
>>> accounts.
>>>
>>> Anyway, if I want to have 10k account registering with the 10k 
>>> uniq 
>>> users, i would have to raise both PJSUA_MAX_ACC and 
>>> PJSUA_ACC_MAX_PROXIES to 10k.
>>> But gcc refuse to compile because the structure become too big.
>>>
>>> I am looking for a way to make pjsip work with lot of accounts. 
>
>>> Even if i have to modify the code source and do changement in 
>the 
>>> C 
>>> code (i am fluent with C).
>>> I am looking at the source code since yesterday and finnally 
>>> decide 
>>> that you are the best to advise me how to solve it the clean 
>way 
>>> without too much ugly hacking.
>>>
>>> Any advise are welcome to resolve this situation.
>>>
>>> Thanks. And thanks for the good work done on PJ.
>>>
>>> Regards,
>>>
>>> Nicolas
>>>
>>>
>>> _______________________________________________
>>> Visit our blog: http://blog.pjsip.org
>>>
>>> pjsip mailing list
>>> pjsip at lists.pjsip.org
>>> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>>>     
>>
>>
>> _______________________________________________
>> Visit our blog: http://blog.pjsip.org
>>
>> pjsip mailing list
>> pjsip at lists.pjsip.org
>> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>>   
>
>
>-- 
>Jens B. Jorgensen
>jbj1 at ultraemail.net
>
>
>_______________________________________________
>Visit our blog: http://blog.pjsip.org
>
>pjsip mailing list
>pjsip at lists.pjsip.org
>http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pjsua.py.patch
Type: text/x-diff
Size: 37 bytes
Desc: not available
URL: <http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/attachments/20100312/e58718d8/attachment.patch>


[Index of Archives]     [Asterisk Users]     [Asterisk App Development]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [Linux API]
  Powered by Linux