Hi Klaus,
i followed your suggestion and tried to add branches manually and
serialize_branches does not work the same.
Instead of my exec_dset i used following lines:
append_branch("sip:123456@10.0.0.1:5062;q=0.3");
append_branch("sip:123456@10.0.0.2:5060;q=0.2");
append_branch("sip:123456@10.0.0.3:5060;q=0.1");
serialize_branches();
and i still get :
DEBUG:serialize_branches: nothing to do - all same q!
I digged in serialize.c source code and saw at line 92 this statements:
*************************************************************************
for( idx=0 ;
(branch.s=get_branch(idx,&branch.len,&q,0,0,0,0))!=0 ; idx++ ) {
if (q != ruri_q)
break;
}
if (branch.s==0) {
DBG("DEBUG:serialize_branches: nothing to do - all same
q!\n");
return 0;
}
*************************************************************************
I changed if condition from if (q != ruri_q) to if (q == ruri_q) and
recompiled.
In this way serialize branches load branches in serial_avp but still
have problems loading the qvalue
correctly. It put all qvalues to -1 . Look at the log:
DEBUG:serialize_branches: loaded <sip:123456@10.0.0.1:5062;q=0.3>, q=-1
q_flag <0>
DEBUG:serialize_branches: loaded <sip:123456@10.0.0.2:5060;q=0.2>, q=-1
q_flag <0>
DEBUG:serialize_branches: loaded <sip:123456@10.0.0.3:5060;q=0.1>, q=-1
q_flag <0>
This lead me to understand that the real problem is to parse and get the
qvalue from the URIs.
I'm not a C coder so i'm not able to go deeper in the issue.
I posted a bugreport on yesterday about it.
Thank you for your help and if you, or some one else out there, have
ideas on how to solve the issue let me know please, it is very
important to have this to work for me.
A curiosity: There is someone having serialize_branches to work
correctly in some way out there?
Bye,
Marcello
Klaus Darilion wrote:
Marcello Lupo schrieb:
Hi Klaus,
i tested the exec_dset without the serialiaze_branches() and it is
working correctly going in parallel forking to
the 2 gateways in parallel. So I'm sure that branches are correct.
It seems to be really a serialize_branches() bug.
Do you know to who ask about the serialize_branches(), some developer
os similar?
As you already know how it should work you can try to dig into the
source code yourself. (use debug=4 to find out what is going on
internally in openser). I guess the answer is somewhere in serialize.c
or dset.c.
You could also file a bugreport on the bugtracker on sourceforge.
regards
klaus
> Any way thanks for your help.
> Bye,
> Marcello
>
> Klaus Darilion wrote:
>> I've never used serialize_branches() yet - but I think you are doing
>> it correctly and the destination set looks fine.
>>
>> regards
>> klaus
>>
>> Marcello Lupo schrieb:
>>> Hi Klaus,
>>> thanks for the answer, i will try it in few minutes. Anyway i have
>>> a question.
>>> As i know append_branch(...) is used to appen branches to the
>>> destination set.
>>> After the execution of exec_dset i have already the destination set
>>> populated with my gateways information ($ds and $bR confirm it).
>>> In my tests i tried getting 2 gateways from exec_dset with q value
>>> of 0.1 and 0.2 as follows:
>>>
>>> sip:123456@10.10.10.1:5062;q=0.2
>>> sip:123456@10.10.10.10:5060;q=0.1
>>>
>>> $ds become : Contact: sip:123456@10.10.10.1:5062;q=0.2,
>>> sip:123456@10.10.10.10:5060;q=0.1
>>>
>>> RURI become: sip:123456@10.10.10.1:5062;q=0.2
>>>
>>> $bR become: sip:123456@10.10.10.10:5060;q=0.1
>>>
>>> Is possible that i miss understood something in the append_branch()
>>> and serialize_branches() usage?
>>> Thanks,
>>> Bye,
>>> Marcello
>>>
>>>
>>> Klaus Darilion wrote:
>>>> Hi Marcello!
>>>>
>>>> does serialize_branches() work if you add the branches in
>>>> openser.cfg? E.g. you could use append_branch(......) to add the
>>>> branches manually and then try serialize_branches() .
>>>>
>>>> klaus
>>>>
>>>> Marcello Lupo schrieb:
>>>>> Hi to all,
>>>>> i made some other tests about this issue and i think it can be a
>>>>> bug somewhere in the serialize_branches() executed after
>>>>> exec_dset().
>>>>> I made tests changing the qvalue to format:
>>>>>
>>>>> q=1.0
>>>>> q=0.1
>>>>> q=1
>>>>>
>>>>> both with \n and \r\n at the end of lines and
>>>>> serialize_branches() give me all the time the same result:
>>>>>
>>>>> DEBUG:serialize_branches: nothing to do - all same q!
>>>>>
>>>>> But if i got only one line from exec_dset() it give me:
>>>>>
>>>>> DEBUG:serialize_branches: nothing to do - no branches!
>>>>>
>>>>> So it see the difference between one line and more lines from
>>>>> exec_dset() .
>>>>> Please help me with this issue i really need serial forking from
>>>>> exec_dset() to work.
>>>>>
>>>>> Thanks,
>>>>> Bye,
>>>>> Marcello
>>>>>
>>>>>
>>>>> Marcello Lupo wrote:
>>>>>> Hi to all,
>>>>>> i'm using openser 1.2.2 no tls and i use exec_dset to get
list
>>>>>> of gateways in destination set to be serialized.
>>>>>>
>>>>>> After execution of exec_dset i get in output:
>>>>>>
>>>>>> sip:123456@10.10.10.1:5062;q=0.2
>>>>>> sip:123456@10.10.10.10:5060;q=0.1
>>>>>>
>>>>>> $ds become : Contact: sip:123456@10.10.10.1:5062;q=0.2,
>>>>>> sip:123456@10.10.10.10:5060;q=0.1
>>>>>>
>>>>>> RURI become: sip:123456@10.10.10.1:5062;q=0.2
>>>>>>
>>>>>> $bR become: sip:123456@10.10.10.10:5060;q=0.1
>>>>>>
>>>>>> All seems to be fine but when i run serialize_branches() i get:
>>>>>>
>>>>>> DEBUG:serialize_branches: nothing to do - all same q!
>>>>>>
>>>>>> Any ideas on what i'm missing?
>>>>>>
>>>>>> May be something in the output of exec_dset??
>>>>>> I'm using the \n between lines in my custom LCR scripts to
get
>>>>>> gateways from DB.