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:[EMAIL PROTECTED]
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:[EMAIL PROTECTED]
... 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:[EMAIL PROTECTED], $du=, $bR=
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
failure_route[1]: request's uri:             $ru=sip:[EMAIL PROTECTED]
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:[EMAIL PROTECTED]
... ds_next_dst

branches after ds_next_dst: $ru=sip:[EMAIL PROTECTED], $du=,
$bR=sip:[EMAIL PROTECTED]
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
failure_route[1]: request's uri:             $ru=sip:[EMAIL PROTECTED]
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:[EMAIL PROTECTED]
failure_route[1]: request's all branches:    $bR=sip:[EMAIL PROTECTED]
failure_route[1]: request's destination set: $ds=Contact:
sip:[EMAIL PROTECTED], 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:[EMAIL PROTECTED]
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:[EMAIL PROTECTED]
branch_route[1]: request's all branches:    $bR=sip:[EMAIL PROTECTED]
branch_route[1]: request's destination set: $ds=Contact:
sip:[EMAIL PROTECTED], sip:9790043699111




thanks
klaus


_______________________________________________
Users mailing list
[email protected]
http://openser.org/cgi-bin/mailman/listinfo/users



_______________________________________________
Users mailing list
[email protected]
http://openser.org/cgi-bin/mailman/listinfo/users

Reply via email to