[Users] several questions/concerns about branches

Bogdan-Andrei Iancu bogdan at voice-system.ro
Thu Feb 8 18:48:28 CET 2007


Hi Klaus,

from the beginning I say it is a bug in dispatcher module :)

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