[Users] several questions/concerns about branches

Bogdan-Andrei Iancu bogdan at voice-system.ro
Mon Feb 12 17:21:31 CET 2007


Klaus,

it works for uri/dst, but the not for the rest of per-branch elements 
(flags, path and socket) - you cannot print the values that were pushed 
into branch.

regards,
bogdan

Klaus Darilion wrote:
> On Thu, February 8, 2007 18:48, Bogdan-Andrei Iancu said:
>   
>> Hi Klaus,
>>
>> from the beginning I say it is a bug in dispatcher module :)
>>     
>
> but it works. I just wonder about the values reported by $du and $fs.
>
> regards
> klaus
>
>   
>> the module tries to do both - processing ruri/duri and handling the
>> forking (appending branches). The problem is when doing append_branch-
>> it uses the internal function for replicating the branch[0] as a new
>> branch (changing only duri)...and this does not trigger the new logic
>> about appending branches.
>>
>> so, I see 2 possible fixups:
>>     1) the module will do only uri processing and you do append_branch()
>> from script, if necessary (in failure route). This will be coherent with
>> the current model that you need to do an append_branch in failure route
>> if you want to continue processing. Also it gives you more liberty in
>> processing the duri and ruri after being set by the module (if they are
>> directly pushed into branches they cannot be modified anymore). The big
>> disadvantage will be of course that we change something people got used
>> with - they need an extra append_branch().
>>     2) make the module to do append_branch via do_action() instead of
>> doing it directly.
>>
>> regards,
>> bogdan
>>
>> Klaus Darilion wrote:
>>     
>>> Hi!
>>>
>>> I hav the following questions about branch handling in openser 1.1.1:
>>>
>>> In route[1] I use the dispatcher to forward to the gateway 11.22.33.46.
>>> Thus, the DURI will be set. Further I use port 6060 to send calls to the
>>> GW. So far everything is ok.
>>>
>>> ... setting fr_timer to 2 seconds
>>> XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
>>> route[1]: request's uri:             $ru=sip:123456789 at foobar.net
>>> route[1]: request's destination uri: $du=sip:11.22.33.46:5060
>>> route[1]: request's force_send_sock: $fs=udp:11.22.33.44:6060
>>> route[1]: request's first branch:    $br=<null>
>>> route[1]: request's all branches:    $bR=
>>> route[1]: request's destination set: $ds=Contact:
>>> sip:123456789 at foobar.net
>>> ... t_relay
>>>
>>>
>>> Then, if the GW does not reply within 2 seconds the failure route
>>> triggers:
>>>
>>> First question: Why is the DURI set to NULL now?
>>>
>>> ... entering failure route
>>> ERROR: no response from gateway or clients a1.net ...
>>> branches before ds_next_dst: $ru=sip:123456789 at foobar.net, $du=, $bR=
>>> XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
>>> failure_route[1]: request's uri:
>>> $ru=sip:123456789 at foobar.net
>>> failure_route[1]: request's destination uri: $du=
>>> failure_route[1]: request's force_send_sock: $fs=udp:11.22.33.44:6060
>>> failure_route[1]: request's first branch:    $br=<null>
>>> failure_route[1]: request's all branches:    $bR=
>>> failure_route[1]: request's destination set: $ds=Contact:
>>> sip:123456789 at foobar.net
>>> ... ds_next_dst
>>>
>>> branches after ds_next_dst: $ru=sip:123456789 at foobar.net, $du=,
>>> $bR=sip:123456789 at foobar.net
>>> XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
>>> failure_route[1]: request's uri:
>>> $ru=sip:123456789 at foobar.net
>>> failure_route[1]: request's destination uri: $du=
>>> failure_route[1]: request's force_send_sock: $fs=udp:11.22.33.44:6060
>>> failure_route[1]: request's first branch:
>>> $br=sip:123456789 at foobar.net
>>> failure_route[1]: request's all branches:
>>> $bR=sip:123456789 at foobar.net
>>> failure_route[1]: request's destination set: $ds=Contact:
>>> sip:123456789 at foobar.net, sip:979004369911
>>> ... activating branch_route
>>> ... t_relay
>>>
>>>
>>> Second question: In the branch route the send_socket is reported as
>>> NULL.
>>> AFAIK it will be copied from branches[0] to the new branch during
>>> ds_next_dst. Also the request is sent from port 6060 - thus it looks
>>> like
>>> the $fs is wrong in branch_route.
>>>
>>> ====================================================
>>> branch_route[1]: request's uri:             $ru=sip:123456789 at foobar.net
>>> branch_route[1]: request's destination uri: $du=sip:11.22.33.45:5060
>>> branch_route[1]: request's force_send_sock: $fs=<null>
>>> branch_route[1]: request's first branch:    $br=sip:123456789 at foobar.net
>>> branch_route[1]: request's all branches:    $bR=sip:123456789 at foobar.net
>>> branch_route[1]: request's destination set: $ds=Contact:
>>> sip:123456789 at foobar.net, sip:9790043699111
>>>
>>>
>>>
>>>
>>> thanks
>>> klaus
>>>
>>>
>>> _______________________________________________
>>> Users mailing list
>>> Users at openser.org
>>> http://openser.org/cgi-bin/mailman/listinfo/users
>>>
>>>
>>>       
>>     
>
>
>
>   





More information about the Users mailing list